// XO section // //------------------------------// var browser; var panelNameRef = "panel"; var panelControllerNameRef = "pc"; var maxLevels = 5; var panels = new Array(); var controllers = new Array(); var layer; var statusTimer = null; var textHeight = 10; var textPadding = 10; var panelCounter = panelControllerCounter = 0; var panelNameLength = panelNameRef.length; var panelControllerNameLength = panelControllerNameRef.length; var panelWidth = new Array(140,190,200); var panelChars = new Array(23,24,35); var levelSpace = new Array(20,0,0); var optionHeight = new Array(20,20,20); // data constants DATAOBJ_LINK = 0; DATAOBJ_STATUS = 1; DATAOBJ_TARGET = 2; //---------------------------------------------------- start XOBrowserCheck function BrowserCheck() { var b = navigator.appName if (b=="Netscape") this.b = "ns" else if (b=="Microsoft Internet Explorer") this.b = "ie" else this.b = b this.v = parseInt(navigator.appVersion) this.ns = (this.b=="ns" && this.v>=4) this.ns4 = (this.b=="ns" && this.v==4) this.ns5 = (this.b=="ns" && this.v==5) this.ie = (this.b=="ie" && this.v>=4) this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0) this.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0) if (this.ie5) this.v = 5 this.min = (this.ns||this.ie) } //---------------------------------------------------- end XOBrowserCheck //---------------------------------------------------- start XODataObject function XODataObject(xobj, childNum, parent, xlevel, defHeight, yPos) { this.obj = this.event = xobj; if (xobj.style) this.obj.css = xobj.style; else this.obj.css = xobj; this.obj.childNum = childNum+1; this.obj.parent = parent; this.id = xobj.id.substr(2); this.obj.childPanel = null; this.obj.objLevel = xlevel; this.objPos = xobj.id.split("x"); this.level = this.objPos.length-2; switch (this.level) { case 0: this.branchNo = this.objPos[1]; this.obj.onTxtColor = eval("branch"+this.branchNo+"col01.fontColor"); this.obj.offTxtColor = eval("L1off.fontColor"); this.obj.onBg = eval("branch"+this.branchNo+"col01.bgColor"); this.obj.offBg = eval("L1off.bgColor"); break; case 1: this.branchNo = this.objPos[1]; this.obj.onTxtColor = eval("branch"+this.branchNo+"col01.fontColor"); this.obj.offTxtColor = eval("branch"+this.branchNo+"col02.fontColor"); this.obj.onBg = eval("branch"+this.branchNo+"col01.bgColor"); this.obj.offBg = eval("branch"+this.branchNo+"col02.bgColor"); break; case 2: this.branchNo = this.objPos[1]; this.obj.onTxtColor = eval("branch"+this.branchNo+"col01.fontColor"); this.obj.offTxtColor = eval("branch"+this.branchNo+"col02.fontColor"); this.obj.onBg = eval("branch"+this.branchNo+"col01.bgColor"); this.obj.offBg = eval("branch"+this.branchNo+"col02.bgColor"); break; default: break; } // attribute settings this.obj.data = null; this.obj.colors = null; //this.obj.onColor = null; //this.obj.offColor = null; this.obj.url = null; this.obj.target = null; this.obj.status = null; // find data object var idx = this.id.lastIndexOf('x'); var key = this.id.substr(idx+1); var code = this.id.substr(0,idx); this.obj.data = eval("obj"+code+"["+this.obj.childNum+"]"); if (this.obj.data) { this.obj.url = this.obj.data[DATAOBJ_LINK]; this.obj.target = this.obj.data[DATAOBJ_TARGET]; this.obj.status = new String(this.obj.data[DATAOBJ_STATUS]); } // CSS settings var numOfLines = Math.round(parseInt(this.obj.status.length)/panelChars[this.obj.objLevel]); if (numOfLines>1) { this.height = (numOfLines * textHeight) + textPadding; } else { this.height = defHeight; } this.obj.css.top = yPos; if (browser.ns4) { this.obj.css.clip.bottom = this.height;} else { this.obj.css.height = this.height; this.obj.css.clip = "rect(0px, "+panelWidth[this.obj.objLevel]+"," + this.height + "px, 0px)"; } // functions this.obj.onOver = this.onOver; this.obj.setPanel = this.setPanel; this.obj.showPanel = this.showPanel; this.obj.hidePanel = this.hidePanel; this.obj.highlight = this.highlight; this.obj.dehighlight = this.dehighlight; this.obj.getHeight = this.getHeight; this.obj.getLevel = this.getLevel; // events if (browser.ns4) {this.obj.captureEvents(Event.MOUSEDOWN);} this.obj.onmouseover = this.onOver; this.obj.onmousedown = this.onDown; // reset settings on first display this.dehighlight(); } // protected functions // Event functions XODataObject.prototype.onDown=function(e) { if (this.url != null) { window.open(this.url, this.target); } return false; } XODataObject.prototype.onOver=function(event) { this.css.cursor = "hand"; this.parent.setSelected(this); } // Functions XODataObject.prototype.getHeight=function() { return this.height; } XODataObject.prototype.showPanel=function() { if (this.childPanel) { this.childPanel.show(); } } XODataObject.prototype.hidePanel=function() { if (this.childPanel) { this.childPanel.hide(); } } XODataObject.prototype.setPanel=function(panel) { this.childPanel = panel; } XODataObject.prototype.highlight=function() { if (this.objLevel == 0 || this.objLevel == 1 || this.objLevel == 2) { this.css.color = this.onTxtColor; } if (this.obj) { this.obj.bgColor = this.obj.onColor; this.obj.css.backgroundColor = this.obj.onBg; } else { this.bgColor = this.onBg; this.css.backgroundColor = this.onBg; } this.showPanel(); } XODataObject.prototype.dehighlight=function() { if (this.objLevel == 0 || this.objLevel == 1 || this.objLevel == 2) { this.css.color = this.offTxtColor; } if (this.obj) { this.obj.bgColor = this.obj.offBg; this.obj.css.backgroundColor = this.obj.offBg; } else { this.bgColor = this.offBg; this.css.backgroundColor = this.offBg; } this.hidePanel(); } //---------------------------------------------------- end XODataObject XODataObject.prototype.getLevel=function() { return this.objLevel; } //---------------------------------------------------- end XODataObject //---------------------------------------------------- start XOPanel function XOPanel(obj) { this.obj = this.event = obj; if (obj.style) this.obj.css = obj.style; // ie else this.obj.css = obj; // netscape this.obj.selected = null; this.id = obj.id; this.numContent = 0; this.content = new Array(); this.obj.show = this.show; this.obj.hide = this.hide; this.obj.collectContent = this.collectContent; this.obj.setController = this.setController; this.obj.setControllerPanel = this.setControllerPanel; this.obj.setSelected = this.setSelected; } XOPanel.prototype.setControllerPanel=function(xobj, panel) { var code = xobj.substr(panelNameLength); var level = code.substr(0,code.indexOf('x'))-1; if (code.indexOf('x') > 0 ) { code = code.substr(code.indexOf('x')+1); code = panelControllerNameRef + level + "x" + code; } else code = panelControllerNameRef + level; var obj; if (this.layers) obj = this.layers[code]; else obj = document.getElementById(code); obj.setPanel(panel); } XOPanel.prototype.setSelected=function(xobj) { if (this.selected) { this.selected.dehighlight(); } this.selected = xobj; if (this.selected) this.selected.highlight(); } XOPanel.prototype.setController=function() { var code = this.id.substr(panelNameLength); level = code.substr(0,code.indexOf('x')); code = code.substr(code.indexOf('x')); if (level && code) { level--; code = level + "" + code; code = code.substr(0,code.lastIndexOf('x')); var panel = null; if (document.layers) panel = eval("document."+panelNameRef+code); else panel = document.getElementById(panelNameRef+code); if (panel) { panel.setControllerPanel(this.id, this.obj); } } } XOPanel.prototype.show=function() { if (this.css) this.css.visibility = "visible"; else this.obj.css.visibility = "visible"; } XOPanel.prototype.hide=function() { this.setSelected(null); this.css.visibility = "hidden"; } XOPanel.prototype.collectContent=function() { var level = this.obj.id.substr(panelNameLength,1)-1; if (this.obj.layers) { var l = this.obj.layers; var yPos = 0; for (numContent=0; numContent= 0 || idx2 >= 0) { a[arrCounter++] = tags[x]; } else { a[x] = null; } } return a; } //------------------------------------------------------------------ start init function createConnections() { var arr = panels; for (var x=0; x