var snm = function(data, config) { this.level = 0; this.config = config; this.data = data; this.strHTML=""; this.isDefined=function(el){return (typeof(el)=="undefined"||el==null)?false:true;}; this.build=function() { var strHTML = ""; strHTML += "
"; this.container.innerHTML = strHTML; this.selectednodelevel -= 2; }; this.getSubArray=function(n) { var path = n.split("/"); if(path.length>4) { var tofind = path[0]+"/"+path[1]+"/"; var i=2; var df = this.sausages(this.data, tofind); while(i<3) { tofind += path[i]+"/"; df = this.sausages(df, tofind); i++; } this.data = (df!=null)?df:data; return (df!=null); } else return false; }; this.getPartialDataFile=function(df, tofind) { if(df) { for(var i=0; i=3) { var tofind = path[0]+"/"+path[1]+"/"; var i=2; var df = this.getPartialDataFile(this.data, tofind); while(i<3 ) { tofind += path[i]+"/"; df = this.getPartialDataFile(df, tofind); i++; } var john = false; if(df) { john = this.havesection(df, node); } if(df && john) return df; else return false; } else return false; }; this.havesection=function(arr, tofind) { for(var i=3; i"; var img; do{ str += this.buildRow(arr[child]); child++; }while(arr[child]&&arr[child]!=null) str += ""; this.menus++; return str; }; this.buildRow=function(arr) { var str = ""; var bg = ""; var style = ""; var url; var target; if(arr) { var mover=""; var mout=""; var bg_arrow = ""; if(this.isDefined(arr[3])&& this.level<1) bg_arrow="style=\"background-image:url("+this.root+"resources/images/jumeirah/arrow_green_right.gif);background-repeat:no-repeat; background-position:176px 50%;\""; url = (arr[2].indexOf("http")!=-1)?arr[2]:this.root+arr[2]; target = (arr[2].indexOf("http")!=-1)?"_blank":""; str += "
  • "+((this.level==2)?"  - ":"")+arr[0]+""; if(this.isDefined(arr[3]) && this.level<2) { this.level++; str += this.addItems(arr); this.level--; } str += "
  • "; } return str; }; this.getStyle = function() { var sli = this.config.style[this.level].li; var sa = this.config.style[this.level].a; var li = ""; var a = ""; for(key in sli) { li += key+":"+sli[key]; } for(key in sa) { a += key+":"+sa[key]; } return [li, a]; }; this.expandToNode=function(node, selItem) { var n = getElement(this.config.prefix+""+node); var childUL = findChild(n, "UL");el = null; // IF THE NODE HAS A CHILD UL THEN SHOW. if(childUL) { n.firstChild.style.background = "url("+this.root+"resources/images/jumeirah/arrow_white_down.gif) #A4B03D no-repeat 176px 50%"; childUL.style.display = ""; } // THIS ITERATES THROUGH ALL THE PARENT NODES EXPANDING. if(n!=null) { this.selectednodelevel--; n.firstChild.style.backgroundColor=this.config.colours[this.selectednodelevel].selected; n.firstChild.style.color="#FFFFFF"; while(n.parentNode && this.selectednodelevel>=0) { if(n.parentNode.id==(this.config.prefix+"_root")) break; if(n.parentNode.tagName=="UL") { n.parentNode.style.display = ""; } else if(n.parentNode.tagName == "LI") { this.selectednodelevel--; n.parentNode.firstChild.style.color="#FFFFFF"; var cs = this.getColourScheme(); n.parentNode.firstChild.style.background = "url("+this.root+"resources/images/jumeirah/arrow_white_down.gif) "+cs.sel+" no-repeat 176px 50%"; } n = n.parentNode; } } }; this.changeImage=function(el) { // this is called to change the plus and minus when you're showing and hiding a nodes children if(getFileName(el.src)=="arrow_right.gif") changeImage(el, this.ptr+dots+'resources/images/jumeirah/arrow_down.gif'); else changeImage(el, this.ptr+dots+'resources/images/jumeirah/arrow_right.gif'); }; this.getColourScheme=function() { var cs = new Array(); if(this.selectednodelevel<0) this.selectednodelevel=1; var index = (this.selectednodelevel<3)?this.selectednodelevel:2 cs["bg"] = this.config.colours[index].background; cs["sel"] = this.config.colours[index].selected; return cs; }; this.getPadding=function(cl) { // this is used to get the padding that we're going to apply to an item in the SNM var pt, pb, pl; if(cl=="root") { pt=1; pb=2; } else{ pt=2; pb=3; pl = 6; } return [pt, pb, pl]; }; this.getUrl=function(str) { // this is used to create a URL, basically wrapping a current url in a confirm function. var ahref = str; ahref = (ahref!=null)?(ahref.indexOf("javascript:void(")==-1)?"javascript:confirmRedirect(\""+ahref+"\");":ahref:"javascript:void(0);"; return ahref; }; } var el = null; function findChild(a, b) { for(var i=0; i