var tree = Array(); // //********************************************** function createNode(){ this.up = -1; //chield menu up index this.next = Array(); //chield menu next indexes this.inf = ""; //chield menu name this.obj = null; //chield menu object difinition this.left_pos = -500; //chield menu left position this.top_pos = 0; //chield menu left position this.t = 0; //chield menu switch on-off timer } //********************************************** function create_tree(content){ new_node = Array(); root_node = new createNode(); new_node[0] = root_node; return(new_node); } //********************************************** function addNode(tree_array){ node = new createNode(); //create new node tree_array[tree_array.length] = node; //add node into tree return(tree_array.length - 1); //return node index } //********************************************** function addContent(tree_array, handle, content){ node = tree_array[handle]; // get tree node if (!tree_array[handle]) { // check if it exists alert("Node index " + handle + " doesn't exist.."); return false; } node.inf = content; //write node content tree_array[handle] = node; //save changes return true; } //********************************************** function linkNext(tree_array, link_to, chield){ //get parent (link_to) and chield (chield) nodes link_node = tree_array[link_to]; chield_node = tree_array[chield]; //get free node free_link = link_node.next.length; //link nodes link_node.next[free_link] = chield; chield_node.up = link_to; //save changes tree_array[link_to] = link_node; tree_array[chield] = chield_node; return true; } //********************************************** function getChildNode(tree_array, handle){ node = tree_array[handle]; // get tree node if (!tree_array[handle]) { // check if it exists alert("(getChildNode) : Node index "+handle+" doesn't exist ..."); return false; } return node; //return node }