/* Generated by Visual Folder Tree Builder 1.02 http://flybum.hypermart.net/vtree/ */ //**************************************************************** // You are free to copy the "Folder-Tree" script as long as you // keep this copyright notice: // Script found in: http://www.geocities.com/Paris/LeftBank/2178/ // Author: Marcelino Alves Martins (martins@hks.com) December '97. //**************************************************************** /* Definition of class Folder */ function Folder(folderDescription, hreference) { this.desc = folderDescription this.hreference = hreference this.id = -1 this.navObj = 0 this.iconImg = 0 this.nodeImg = 0 this.isLastNode = 0 /* dynamic data */ this.isOpen = true this.iconSrc = "../../images/tree/ftv2folderopen.gif" this.children = new Array this.nChildren = 0 /* methods */ this.initialize = initializeFolder this.setState = setStateFolder this.addChild = addChild this.createIndex = createEntryIndex this.hide = hideFolder this.display = display this.renderOb = drawFolder this.totalHeight = totalHeight this.subEntries = folderSubEntries this.outputLink = outputFolderLink } function setStateFolder(isOpen) { var subEntries var totalHeight var fIt = 0 var i=0 if (isOpen == this.isOpen) return if (browserVersion == 2) { totalHeight = 0 for (i=0; i < this.nChildren; i++) totalHeight = totalHeight + this.children[i].navObj.clip.height subEntries = this.subEntries() if (this.isOpen) totalHeight = 0 - totalHeight for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) indexOfEntries[fIt].navObj.moveBy(0, totalHeight) } this.isOpen = isOpen propagateChangesInState(this) } function propagateChangesInState(folder) { var i=0 if (folder.isOpen) { if (folder.nodeImg) if (folder.isLastNode) folder.nodeImg.src = "../../images/tree/ftv2mlastnode.gif" else folder.nodeImg.src = "../../images/tree/ftv2mnode.gif" folder.iconImg.src = "../../images/tree/ftv2folderopen.gif" for (i=0; i 0) auxEv = "" else auxEv = "" if (level>0) if (lastNode) /* the last 'brother' in the children array */ { this.renderOb(leftSide + auxEv + "") leftSide = leftSide + "" this.isLastNode = 1 } else { this.renderOb(leftSide + auxEv + "") leftSide = leftSide + "" this.isLastNode = 0 } else this.renderOb("") if (nc > 0) { level = level + 1 for (i=0 ; i < this.nChildren; i++) { if (i == this.nChildren-1) this.children[i].initialize(level, 1, leftSide) else this.children[i].initialize(level, 0, leftSide) } } } function drawFolder(leftSide) { if (browserVersion == 2) { if (!doc.yPos) doc.yPos=8 doc.write("") } doc.write("") doc.write("") doc.write("
") doc.write(leftSide) this.outputLink() doc.write("") doc.write("") if (USETEXTLINKS) { this.outputLink() doc.write("" + this.desc + "") } else doc.write("" + this.desc + "") doc.write("
") if (browserVersion == 2) { doc.write("
") } if (browserVersion == 1) { this.navObj = doc.all["folder"+this.id] this.iconImg = doc.all["folderIcon"+this.id] this.nodeImg = doc.all["nodeIcon"+this.id] } else if (browserVersion == 2) { this.navObj = doc.layers["folder"+this.id] this.iconImg = this.navObj.document.images["folderIcon"+this.id] this.nodeImg = this.navObj.document.images["nodeIcon"+this.id] doc.yPos=doc.yPos+this.navObj.clip.height } } function outputFolderLink() { if (this.hreference) { doc.write(" 0) doc.write("onMouseDown='clickOnFolder("+this.id+")'>") }else{ if (this.id!=0) doc.write("") /* 100600 */ } } function addChild(childNode) { this.children[this.nChildren] = childNode this.nChildren++ return childNode } function folderSubEntries() { var i = 0 var se = this.nChildren for (i=0; i < this.nChildren; i++){ if (this.children[i].children) //is a folder se = se + this.children[i].subEntries() } return se } /* Definition of class Item (a document or link inside a Folder) */ function Item(itemDescription, itemLink) { /* constant data */ this.desc = itemDescription this.link = itemLink this.id = -1 //initialized in initalize() this.navObj = 0 //initialized in render() this.iconImg = 0 //initialized in render() this.iconSrc = "../../images/tree/ftv2doc.gif" /* methods */ this.initialize = initializeItem this.createIndex = createEntryIndex this.hide = hideItem this.display = display this.renderOb = drawItem this.totalHeight = totalHeight } function hideItem() { if (browserVersion == 1) { if (this.navObj.style.display == "none") return this.navObj.style.display = "none" } else { if (this.navObj.visibility == "hiden") return this.navObj.visibility = "hiden" } } function initializeItem(level, lastNode, leftSide) { this.createIndex() if (level>0) if (lastNode) //the last 'brother' in the children array { this.renderOb(leftSide + "") leftSide = leftSide + "" } else { this.renderOb(leftSide + "") leftSide = leftSide + "" } else this.renderOb("") } function drawItem(leftSide) { if (browserVersion == 2) doc.write("") doc.write("") doc.write("
") doc.write(leftSide) if (this.link) doc.write("") doc.write("") doc.write("") doc.write("") if (USETEXTLINKS && this.link) doc.write("" + this.desc + "") else doc.write("" + this.desc + "") doc.write("
") if (browserVersion == 2) doc.write("
") if (browserVersion == 1) { this.navObj = doc.all["item"+this.id] this.iconImg = doc.all["itemIcon"+this.id] } else if (browserVersion == 2) { this.navObj = doc.layers["item"+this.id] this.iconImg = this.navObj.document.images["itemIcon"+this.id] doc.yPos=doc.yPos+this.navObj.clip.height } } /* Methods common to both objects (pseudo-inheritance) */ function display() { if (browserVersion == 1) this.navObj.style.display = "block" else this.navObj.visibility = "show" } function createEntryIndex() { this.id = nEntries indexOfEntries[nEntries] = this nEntries++ } /* total height of subEntries open */ function totalHeight() //used with browserVersion == 2 { var h = this.navObj.clip.height var i = 0 if (this.isOpen) //is a folder and _is_ open for (i=0 ; i < this.nChildren; i++) h = h + this.children[i].totalHeight() return h } function clickOnFolder(folderId) { var clicked = indexOfEntries[folderId] if (!clicked.isOpen) clickOnNode(folderId) return if (clicked.isSelected) return } function clickOnNode(folderId) { var clickedFolder = 0 var state = 0 clickedFolder = indexOfEntries[folderId] state = clickedFolder.isOpen clickedFolder.setState(!state) return false; } /* Auxiliary Functions for Folder-Tree backward compatibility */ function gFld(description, ref) { if (DWIN && ref) ref = "javascript:go(\""+ref+"\")" folder = new Folder(description, ref) return folder } function gLnk(target, description, ref) { fullLink = "" if (DWIN && ref) ref = "javascript:go(\""+ref+"\")" if (ref) if (target==0) fullLink = "'"+ref+"' target=\"" + TFRAME + "\"" else fullLink = "'"+ref+"' target=_blank" linkItem = new Item(description, fullLink) return linkItem } function insFld(parentFolder, childFolder) { return parentFolder.addChild(childFolder) } function insDoc(parentFolder, document) { parentFolder.addChild(document) } function initializeDocument() { if (doc.all) browserVersion = 1 /* IE */ else if (doc.layers) { browserVersion = 2 /* NS */ self.onresize = self.doResize } else browserVersion = 0 /* other */ foldersTree.initialize(0, 1, "") foldersTree.display() if (browserVersion > 0) { doc.write(" ") /* close the whole tree */ clickOnNode(0) /* open the root folder */ clickOnNode(0) } } function go(s) { onerror=goNewW; /* IE */ sErrREF = s; /* IE */ if (!opener.closed) opener.document.location=s; else window.open(s,"newW"); /* NS */ } function goNewW() /* IE */ { window.open(sErrREF,"newW"); } function doResize() /* NS */ { document.location.reload(); } function hideLayer(layerName){ eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"'); } indexOfEntries = new Array nEntries = 0 doc = document browserVersion = 0 selectedFolder=0 sErrREF = ""; /* IE */ layerRef="document.all"; styleSwitch=".style"; if (navigator.appName == "Netscape") { layerRef="document.layers"; styleSwitch=""; } USETEXTLINKS = 1 TFRAME="tour_mainframe" DWIN=0 foldersTree = gFld("Sightseeing Tours", "") a1 = insFld(foldersTree, gFld("China", "")) insDoc(a1, gLnk(0, "Adelaide", "australia/h_adelaide.html")) insDoc(a1, gLnk(0, "Brisbane", "australia/h_brisbane.html")) insDoc(a1, gLnk(0, "Cairns", "australia/h_cairns.html")) insDoc(a1, gLnk(0, "Canberra", "australia/h_canberra.html")) insDoc(a1, gLnk(0, "Gold Coast", "australia/h_goldcoast.html")) insDoc(a1, gLnk(0, "Melbourne", "australia/h_melbourne.html")) insDoc(a1, gLnk(0, "Perth", "australia/h_perth.html")) insDoc(a1, gLnk(0, "Sydney", "australia/h_sydney.html")) a10 = insFld(foldersTree, gFld("Hong Kong", "")) insDoc(a10, gLnk(0, "Beijing", "china/h_beijing.html")) insDoc(a10, gLnk(0, "Beijing", "china/h_beijing.html")) insDoc(a10, gLnk(0, "Beijing", "china/h_beijing.html")) insDoc(a10, gLnk(0, "Beijing", "china/h_beijing.html"))