// Owner: if (typeof(r) == "undefined") { function r(text, value, parent) { this.text = text; this.value = value; this.parent = parent; } } if (typeof(da) == "undefined") { function da (design,name,ds,allowpopover,allowmain,allowpopunder) { this.design = design; this.name = name; this.defaultselected = ds; this.allowpopover = allowpopover; this.allowmain = allowmain; this.allowpopunder = allowpopunder; } function datoString() { return 'Design: '+this.design +'\nName: '+this.name +'\nDefault: '+this.defaultselected +'\nallowpopover: '+this.allowpopover +'\nallowmain: '+this.allowmain +'\nallowpopunder: '+this.allowpopunder+'\n'; } da.prototype.toString = datoString; } function tree () { this.members = new Array(); this.parent = new Array(); this.levels = new Array(); this.secondary = new Array(); this.mapping = new Array(); this.designsavail = new Array(); this.designs = new Array(); this.dglitetemplates = new Array(); this.oneoffs = new Array(); this.allowpopover = new Array(); this.allowmain = new Array(); this.allowpopunder = new Array(); } function addmember(catid, name,secondarycatid) { this.members[catid] = name; this.secondary[catid] = secondarycatid; } function addtree (parentid, childid, defaultparent) { if (typeof(this.levels[parentid]) == 'undefined') { this.levels[parentid] = new Array(); } if (defaultparent == 't') { this.parent[childid] = parentid; } this.levels[parentid] = dounshift(this.levels[parentid],childid); } function adddesign(design, description,allowpopover,allowmain,allowpopunder) { this.designs[design] = description; this.allowpopover[design] = allowpopover; this.allowmain[design] = allowmain; this.allowpopunder[design] = allowpopunder; } function adddglitetemplate(dgliteid, title) { this.dglitetemplates[dgliteid] = title; } function adddesignavail(id, design, defaultselected) { if (typeof(this.designsavail[id]) == 'undefined') { this.designsavail[id] = new Array(); } this.designsavail[id] = dounshift(this.designsavail[id],new da(design,null, defaultselected)); if (id == 0) { return; } idtree = this.gettree (id); idtreecont : for (var i in idtree) { if (idtree[i] == 0) { // alert ('continuing on 0 for '+design); continue; } // alert ("Adding "+design+" to -"+idtree[i]); if (typeof(this.designsavail[-1*idtree[i]]) == 'undefined') { this.designsavail[-1*idtree[i]] = new Array(); } for (var d in this.designsavail[-1*idtree[i]]) { if (this.designsavail[-1*idtree[i]][d].design == design) { // alert ('design '+design+' already found'); continue idtreecont; } } this.designsavail[-1*idtree[i]] = dounshift(this.designsavail[-1*idtree[i]],new da(design,null, defaultselected)); } // if (typeof(this.designsavail[-1]) == 'undefined') { // this.designsavail[-1] = new Array(); // } // this.designsavail[-1] = dounshift(this.designsavail[-1],new da(design,null, defaultselected)); } function gettree(childid) { var returnarray = new Array(); if (typeof(this.mapping[childid]) != "undefined") { childid = this.mapping[childid]; } if (childid < 0) { childid = childid*-1; } counter = 0; while (typeof(this.parent[childid]) != 'undefined' && this.parent[childid] != childid && counter++ < 50) { returnarray = dounshift(returnarray,childid); childid = this.parent[childid]; } returnarray = dounshift(returnarray,childid); return returnarray; } function getlevel (parentid) { var returnarray = new Array(); // alert ("getlevel(parentid="+parentid+") = "+returnarray); if (typeof(this.levels[parentid]) == 'undefined') { // alert ("returning because undefined"); return undefined; } for (var i=0;i 0 && this.allowpopover[this.designsavail[id][i].design] == 't') || (pagelevel == 0 && this.allowmain[this.designsavail[id][i].design] == 't') || (pagelevel < 0 && this.allowpopunder[this.designsavail[id][i].design] == 't')) { getdesignavailreturnarray = dounshift(getdesignavailreturnarray,new da(this.designsavail[id][i].design,this.designs[this.designsavail[id][i].design],this.designsavail[id][i].defaultselected,this.allowpopover[this.designsavail[id][i].design],this.allowmain[this.designsavail[id][i].design],this.allowpopunder[this.designsavail[id][i].design])); } } } if (id == 1) { for (var i=0;i