123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- /*
- * DON'T REMOVE THE FOLLOWING LICENSE
- * INFORMATION!
- * ----------------------------------
- * Copyright by
- * Dennis Ritz
- * Author: Dennis Ritz
- * dennis.ritz@gmx.net
- * 2007-2008
- * ----------------------------------
- */
- function Tree() {
- this.name = "Tree";
-
-
- this.__toString = function __toString() {
- return this.name;
- }
-
- this.setProp = function setProp(p_node,p_prop,p_value) {
- var i=0;
- var treeID = null;
- var nodeID = null;
- var foundTreeRoot = false;
- var p_parentNode = p_node;
- while (foundTreeRoot == false){
- if(i>500)
- foundTreeRoot = true;
- if(p_parentNode.className == "tree" && p_parentNode.id != "") {
- treeID = p_parentNode.id;
- foundTreeRoot = true;
- }
- if(p_parentNode.className == "treeNode" && nodeID == null && p_parentNode.id != "") {
- nodeID = p_parentNode.id;
- }
- p_parentNode = p_parentNode.parentNode;
- i++;
- }
- if(treeID != null && nodeID != null) {
- Cookie.create(Tree.__toString()+"_"+treeID+"_"+nodeID+"_"+p_prop,p_value);
- }
- }
-
- this.getProp = function getProp(p_node,p_prop) {
- var i=0;
- var treeID = null;
- var nodeID = null;
- var foundTreeRoot = false;
- var p_parentNode = p_node;
- while (foundTreeRoot == false){
- if(i>500)
- foundTreeRoot = true;
- if(p_parentNode.className == "tree" && p_parentNode.id != "") {
- treeID = p_parentNode.id;
- foundTreeRoot = true;
- }
- if((p_parentNode.className == "treeNode" || p_parentNode.className == "treeNodeLeaf") && nodeID == null && p_parentNode.id != "") {
- nodeID = p_parentNode.id;
- }
- p_parentNode = p_parentNode.parentNode;
- i++;
- }
- if(treeID != null && nodeID != null) {
- return Cookie.read(Tree.__toString()+"_"+treeID+"_"+nodeID+"_"+p_prop);
- }else{
- return null;
- }
- }
-
- this.select = function select(evt,p_node) {
- var i=0;
- var obj = null;
- if(!evt) evt = window.event;
- var ctrlPressed=0;
- var selectedArr=new Array();
- var treeID = null;
- var newSelectedArr = new Array();
- var nodeID = null;
- var foundTreeRoot = false;
- var p_parentNode = p_node;
- if(typeof p_parentNode == "undefined") return;
- while (foundTreeRoot == false){
- if(i>500)
- foundTreeRoot = true;
- if(p_parentNode.className == "tree" && p_parentNode.id != "") {
- treeID = p_parentNode.id;
- foundTreeRoot = true;
- }
- if((p_parentNode.className == "treeNode" || p_parentNode.className == "treeNodeLeaf") && nodeID == null && p_parentNode.id != "") {
- nodeID = p_parentNode.id;
- }
- p_parentNode = p_parentNode.parentNode;
- i++;
- }
- if(treeID != null && nodeID != null) {
- var p_selected = Cookie.read(Tree.__toString()+"_"+treeID+"_selected");
- // NEWER BROWSERS [CROSS-PLATFORM]
- if(evt!=null)
- ctrlPressed =evt.ctrlKey;
- if(p_selected != null) {
- selectedArr = p_selected.split("|");
- for(i=0;i<selectedArr.length;i++) {
- if(nodeID == selectedArr[i]) {
- var obj = Browser.getElementById(selectedArr[i]);
- }
- }
- }
- if(evt != null && obj != null && Mouse.checkRClick(evt)){
- newSelectedArr = selectedArr;
- }else if(obj == null && ctrlPressed) {
- newSelectedArr = selectedArr;
- newSelectedArr.push(nodeID);
- Browser.getElementById(nodeID).style.background="url('img/GUI/Tree/active.png') repeat-y";
- }else if(obj != null && ctrlPressed) {
- obj.style.background="transparent";
- for(i=0;i<selectedArr.length;i++) {
- if(nodeID != selectedArr[i]) {
- newSelectedArr.push(selectedArr[i]);
- }
- }
- }else if((obj != null && !ctrlPressed) || (obj == null && !ctrlPressed)) {
- for(i=0;i<selectedArr.length;i++) {
- var obj = Browser.getElementById(selectedArr[i]);
- if(obj != null){
- obj.style.background="transparent";
- }
- }
- newSelectedArr.push(nodeID);
- Browser.getElementById(nodeID).style.background="url('img/GUI/Tree/active.png') repeat-y";
- }
- }
- Cookie.create(Tree.__toString()+"_"+treeID+"_selected",newSelectedArr.join("|"));
- //alert("select: tree["+treeID+"] node["+nodeID+"]");
-
- }
-
- this.unselect = function unselect(p_node) {
- var i=0;
- var treeID = null;
- var nodeID = null;
- var foundTreeRoot = false;
- var selectedArr=new Array();
- var p_parentNode = p_node;
- while (foundTreeRoot == false){
- if(i>500)
- foundTreeRoot = true;
- if(p_parentNode.className == "tree" && p_parentNode.id != "") {
- treeID = p_parentNode.id;
- foundTreeRoot = true;
- }
- if((p_parentNode.className == "treeNode" || p_parentNode.className == "treeNodeLeaf") && nodeID == null && p_parentNode.id != "") {
- nodeID = p_parentNode.id;
- }
- p_parentNode = p_parentNode.parentNode;
- i++;
- }
- if(treeID != null && nodeID != null) {
- var p_selected = Cookie.read(Tree.__toString()+"_"+treeID+"_selected");
- selectedArr = p_selected.split("|");
- for(i=0;i<selectedArr.length;i++) {
- var obj = Browser.getElementById(selectedArr[i]);
-
- if(obj != null){
- obj.style.background="transparent";
- }
- }
- }
- Cookie.create(Tree.__toString()+"_"+treeID+"_selected",nodeID);
- nodeID = Cookie.read(Tree.__toString()+"_"+treeID+"_selected");
- //alert("select: tree["+treeID+"] node["+nodeID+"]");
- //p_node.style.background="url('img/GUI/Tree/active.png') repeat-y";
- }
- this.expand = function expand(p_node) {
- var elements = p_node.getElementsByTagName("DIV");
- for(var i in elements) {
- if(typeof elements[i] != "undefined"){
- if(elements[i].className == "treeNodeSub") {
- if(Browser.getDisplay(elements[i])) {
- this.setProp(p_node,"expand",false);
- Browser.setDisplay(elements[i],false);
- p_node.firstChild.childNodes[1].src = "img/GUI/Tree/expand.png";
- } else {
- this.setProp(p_node,"expand",true);
- Browser.setDisplay(elements[i],true);
- p_node.firstChild.childNodes[1].src = "img/GUI/Tree/collapse.png";
- }
- break;
- }
- }
- }
- }
-
- this.setToUserView = function setToUserView(p_node) {
- var i=0;
- var treeID = null;
- var nodeID = null;
- var foundTreeRoot = false;
- var selectedArr = new Array();
- var p_parentNode = p_node;
- if(p_node == null) return;
- while (foundTreeRoot == false){
- if(i>500)
- foundTreeRoot = true;
- if(p_parentNode.className == "tree" && p_parentNode.id != "") {
- treeID = p_parentNode.id;
- foundTreeRoot = true;
- }
- p_parentNode = p_parentNode.parentNode;
- i++;
- }
- var p_selected = null;
-
- if(treeID != null) {
-
- var p_selected = Cookie.read(Tree.__toString()+"_"+treeID+"_selected");
- if(p_selected !=null) {
- selectedArr = p_selected.split("|");
- for(i=0;i<selectedArr.length;i++) {
- var obj = Browser.getElementById(selectedArr[i]);
- if(obj != null){
- obj.style.background="url('img/GUI/Tree/active.png') repeat-y";
- }
- }
- }
- }
-
- var elements = p_node.getElementsByTagName("DIV");
- for(var i in elements) {
- if(typeof elements[i] != "undefined"){
- if(elements[i].className == "treeNodeSub") {
- if(this.getProp(elements[i],"expand")=='true'){
- Browser.setDisplay(elements[i],true);
- if(elements[i].firstChild)
- elements[i].previousSibling.childNodes[1].src = "img/GUI/Tree/collapse.png";
- }else{
- Browser.setDisplay(elements[i],false);
- if(elements[i].firstChild)
- elements[i].previousSibling.childNodes[1].src = "img/GUI/Tree/expand.png";
- }
- }
- }
- }
- var p_scroll = Cookie.read(Tree.__toString()+"_"+treeID+"_scroll");
-
- if(p_scroll == null)p_scroll = 0;
- Browser.getElementById(treeID).parentNode.scrollTop = p_scroll;
- //alert(p_scroll);
- }
-
- this.scrolling = function(p_container) {
- //alert(p_container.scrollTop);
- var treeID = p_container.firstChild.id;
- Cookie.create(Tree.__toString()+"_"+treeID+"_scroll",p_container.scrollTop);
- }
- }
- var Tree = new Tree();
|