//**************************************************************** 

// Keep this copyright notice: 

// This copy of the script is the property of the owner of the 

// particular web site you were visiting.

// Do not download the script's files from there.

// For a free download and full instructions go to: 

// http://www.treeview.net

//**************************************************************** 

 

// Log of changes: 

//

//       31 Jul 02 - VERSION 4.1 - Dramatic speed increase for trees 

//       with hundreds or thousands of nodes; changes to the control

//       flags of the gLnk function

//

// -------------------------------------------------------------------

//

//       18 Jul 02 - Changes in pre-load images function

//

//       13 Jun 02 - Add ICONPATH var to allow for gif subdir

//       

//       20 Apr 02 - Improve support for frame-less layout

//

//       07 Apr 02 - Minor changes to support server-side dynamic feeding

//                   (Online Bookmarks Manager demo)

//

//       10 Aug 01 - Support for Netscape 6

//

//       .... 

 

 

// Definition of class Folder 

// ***************************************************************** 

 

function Folder(folderDescription, hreference) //constructor 

{ 

  //constant data 

  this.desc = folderDescription 

  this.hreference = hreference 

  this.id = -1   

  this.navObj = 0  

  this.iconImg = 0  

  this.nodeImg = 0  

  this.isLastNode = 0 

  this.isLastOpenedFolder = false

 

  //dynamic data 

  this.isOpen = false

  this.iconSrc = ICONPATH + "ftv2folderopen.gif"   

  this.iconSrcClosed = ICONPATH + "ftv2folderclosed.gif"   

  this.children = new Array 

  this.nChildren = 0 

  this.isRendered = 0

  this.level = 0

  this.leftSideCoded = ""

  this.isLastNode=false

 

  //methods 

  this.initialize = initializeFolder 

  this.setState = setStateFolder 

  this.addChild = addChild 

  this.createIndex = createEntryIndex 

  this.escondeBlock = escondeBlock

  this.esconde = escondeFolder 

  this.mostra = mostra 

  this.renderOb = drawFolder 

  this.totalHeight = totalHeight 

  this.subEntries = folderSubEntries 

  this.linkHTML = linkFolderHTML

  this.blockStartHTML = blockStartHTML

  this.blockEndHTML = blockEndHTML

  this.nodeImageSrc = nodeImageSrc

  this.iconImageSrc = iconImageSrc

} 

 

function initializeFolder(level, lastNode, leftSide) 

{ 

  var j=0 

  var i=0       

  nc = this.nChildren 

   

  this.createIndex() 

  this.level = level

  this.leftSideCoded = leftSide



  if (browserVersion == 0 || STARTALLOPEN==1)

    this.isOpen=true;



  if (level>0)

    if (lastNode) //the last child in the children array 

		leftSide = leftSide + "0"

	else

		leftSide = leftSide + "1"



  this.isLastNode = lastNode

 

  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(insertAtObj) 

{ 

  var nodeName = ""

  var auxEv = ""

  var docW = ""



  var leftSide = leftSideHTML(this.leftSideCoded)



  if (browserVersion > 0) 

    auxEv = "<a href='javascript:clickOnNode("+this.id+")'>" 

  else 

    auxEv = "<a>" 



  nodeName = this.nodeImageSrc()

 

  if (this.level>0) 

    if (this.isLastNode) //the last child in the children array 

	    leftSide = leftSide + "<td valign=top>" + auxEv + "<img name='nodeIcon" + this.id + "' id='nodeIcon" + this.id + "' src='" + nodeName + "' width=16 height=22 border=0></a></td>"

    else 

      leftSide = leftSide + "<td valign=top background=" + ICONPATH + "ftv2vertline.gif>" + auxEv + "<img name='nodeIcon" + this.id + "' id='nodeIcon" + this.id + "' src='" + nodeName + "' width=16 height=22 border=0></a></td>"



  var idParam = "id=\'folder" + this.id + "\'"



  this.isRendered = 1



  if (browserVersion == 2) { 

    if (!doc.yPos) 

      doc.yPos=20 

  } 



  docW = this.blockStartHTML("folder");



  docW = docW + "<tr>" + leftSide + "<td valign=top>";

  if (USEICONS)

  {

    docW = docW + this.linkHTML() 

    docW = docW + "<img id='folderIcon" + this.id + "' name='folderIcon" + this.id + "' src='" + this.iconImageSrc() + "' border=0></a>"

  }

  else

  {

	  docW = docW + "<img src=" + ICONPATH + "ftv2blank.gif height=2 width=2>"

  }

  if (WRAPTEXT)

	  docW = docW + "</td><td valign=middle width=100%>"

  else

	  docW = docW + "</td><td valign=middle nowrap width=100%>"

  if (USETEXTLINKS) 

  { 

    docW = docW + this.linkHTML() 

    docW = docW + this.desc + "</a>"

  } 

  else 

    docW = docW + this.desc

  docW = docW + "</td>"



  docW = docW + this.blockEndHTML()



  if (insertAtObj == null)

  {

	  doc.write(docW)

  }

  else

  {

      insertAtObj.insertAdjacentHTML("afterEnd", docW)

  }

 

  if (browserVersion == 2) 

  { 

    this.navObj = doc.layers["folder"+this.id] 

    if (USEICONS)

      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 

  } 

  else if (browserVersion != 0)

  { 

    this.navObj = doc.getElementById("folder"+this.id)

    if (USEICONS)

      this.iconImg = doc.getElementById("folderIcon"+this.id) 

    this.nodeImg = doc.getElementById("nodeIcon"+this.id)

  } 

} 

 

function setStateFolder(isOpen) 

{ 

  var subEntries 

  var totalHeight 

  var fIt = 0 

  var i=0 

  var currentOpen

 

  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;



  if (this.id!=0 && PERSERVESTATE && !this.isOpen) //closing

  {

    currentOpen = GetCookie("clickedFolder")

	if (currentOpen != null)

	{

		currentOpen = currentOpen.replace(this.id+"-", "")

		SetCookie("clickedFolder", currentOpen)

	}

  }

	

  if (!this.isOpen && this.isLastOpenedfolder)

  {

		lastOpenedFolder = -1;

		this.isLastOpenedfolder = false;

  }

  propagateChangesInState(this) 

} 

 

function propagateChangesInState(folder) 

{   

  var i=0 



  //Change icon

  if (folder.nChildren > 0 && folder.level>0)  //otherwise the one given at render stays

    folder.nodeImg.src = folder.nodeImageSrc()



  //Change node

  if (USEICONS)

    folder.iconImg.src = folder.iconImageSrc()



  //Propagate changes

  for (i=folder.nChildren-1; i>=0; i--) 

    if (folder.isOpen) 

      folder.children[i].mostra(folder.navObj)

    else 

  	  folder.children[i].esconde() 

} 

 

function escondeFolder() 

{ 

  this.escondeBlock()

   

  this.setState(0) 

} 

 

function linkFolderHTML() 

{ 

  var docW = "";



  if (this.hreference) 

  { 

	if (USEFRAMES)

	  docW = docW + "<a href='" + this.hreference + "' TARGET=\"basefrm\" "

	else

	  docW = docW + "<a href='" + this.hreference + "' TARGET=_top "



    if (browserVersion > 0 && USEFRAMES) 

      docW = docW + "onClick='javascript:clickOnFolder("+this.id+")'"



    docW = docW + ">"

  } 

  else 

    docW = docW + "<a>" 



  return docW;

} 

 

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 

} 



function nodeImageSrc() {

  var srcStr = "";



  if (this.isLastNode) //the last child in the children array 

  { 

    if (this.nChildren == 0)

      srcStr = ICONPATH + "ftv2lastnode.gif"

    else

      if (this.isOpen)

        srcStr = ICONPATH + "ftv2mlastnode.gif"  

      else

        srcStr = ICONPATH + "ftv2plastnode.gif"  

  } 

  else 

  { 

    if (this.nChildren == 0)

      srcStr = ICONPATH + "ftv2node.gif"

    else

      if (this.isOpen)

        srcStr = ICONPATH + "ftv2mnode.gif"

      else

        srcStr = ICONPATH + "ftv2pnode.gif"

  }   

  return srcStr;

}



function iconImageSrc() {

  if (this.isOpen)

    return(this.iconSrc)

  else

    return(this.iconSrcClosed)

} 

 

// Definition of class Item (a document or link inside a Folder) 

// ************************************************************* 

 

function Item(itemDescription, itemLink) // Constructor 

{ 

  // 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 = ICONPATH + "ftv2doc.gif" 

  this.isRendered = 0

  this.isLastNode = false

  this.level = 0

  this.leftSideCoded = ""

  this.nChildren = 0

 

  // methods 

  this.initialize = initializeItem 

  this.createIndex = createEntryIndex 

  this.escondeBlock = escondeBlock

  this.esconde = escondeBlock

  this.mostra = mostra 

  this.renderOb = drawItem 

  this.totalHeight = totalHeight 

  this.blockStartHTML = blockStartHTML

  this.blockEndHTML = blockEndHTML

} 

 

function initializeItem(level, lastNode, leftSide) 

{  

  this.createIndex() 

  this.level = level

  this.leftSideCoded = leftSide

  this.isLastNode = lastNode

} 

 

function drawItem(insertAtObj) 

{ 

  var leftSide = leftSideHTML(this.leftSideCoded)

  var docW = ""



  this.isRendered = 1



  if (this.level>0) 

    if (this.isLastNode) //the last 'brother' in the children array 

    { 

      leftSide = leftSide + "<td valign=top><img src='" + ICONPATH + "ftv2lastnode.gif' width=16 height=22></td>"

    } 

    else 

    { 

      leftSide = leftSide + "<td valign=top background=" + ICONPATH + "ftv2vertline.gif><img src='" + ICONPATH + "ftv2node.gif' width=16 height=22></td>"

    } 



  docW = docW + this.blockStartHTML("item")



  docW = docW + "<tr>" + leftSide + "<td valign=top>"

  if (USEICONS)

      docW = docW + "<a href=" + this.link + ">" + "<img id='itemIcon"+this.id+"' " + "src='"+this.iconSrc+"' border=0>" + "</a>"

  else

	  docW = docW + "<img src=" + ICONPATH + "ftv2blank.gif height=2 width=3>"



  if (WRAPTEXT)

    docW = docW + "</td><td valign=middle width=100%>"

  else

    docW = docW + "</td><td valign=middle nowrap width=100%>"



  if (USETEXTLINKS) 

    docW = docW + "<a href=" + this.link + ">" + this.desc + "</a>"

  else 

    docW = docW + this.desc



  docW = docW + "</td>"



  docW = docW + this.blockEndHTML()

 

  if (insertAtObj == null)

  {

	  doc.write(docW)

  }

  else

  {

      insertAtObj.insertAdjacentHTML("afterEnd", docW)

  }



  if (browserVersion == 2) { 

    this.navObj = doc.layers["item"+this.id] 

    if (USEICONS)

      this.iconImg = this.navObj.document.images["itemIcon"+this.id] 

    doc.yPos=doc.yPos+this.navObj.clip.height 

  } else if (browserVersion != 0) { 

    this.navObj = doc.getElementById("item"+this.id)

    if (USEICONS)

      this.iconImg = doc.getElementById("itemIcon"+this.id)

  } 

} 

 

 

// Methods common to both objects (pseudo-inheritance) 

// ******************************************************** 

 

function escondeBlock() 

{ 

  if (browserVersion == 1 || browserVersion == 3) { 

    if (this.navObj.style.display == "none") 

      return 

    this.navObj.style.display = "none" 

  } else { 

    if (this.navObj.visibility == "hiden") 

      return 

    this.navObj.visibility = "hiden" 

  }     

} 

 

function mostra(domObj) 

{ 

  /*

  if (browserVersion == 1 || browserVersion == 3) { 

	 if (t==-1)

		return

     var str = new String(doc.links[t])

     	if (str.slice(36,38) != "rh") {

	    return

	 }

  }*/



  if (!this.isRendered)

     this.renderOb(domObj)

  else

    if (browserVersion == 1 || browserVersion == 3) 

      this.navObj.style.display = "block" 

    else 

      this.navObj.visibility = "show" 

} 



function blockStartHTML(idprefix) {

  var idParam = "id='" + idprefix + this.id + "'"

  var docW = ""



  if (browserVersion == 2) 

    docW = "<layer "+ idParam + " top=" + doc.yPos + " visibility=show>"

  else if (browserVersion != 0)

    docW = "<div " + idParam + " style='display:block; position:block;'>"

     

  docW = docW + "<table border=0 cellspacing=0 cellpadding=0 width=100% >"



  return docW

}



function blockEndHTML() {

  var docW = ""



  docW = "</table>"

   

  if (browserVersion == 2) 

    docW = docW + "</layer>"

  else if (browserVersion != 0)

    docW = docW + "</div>"



  return docW

}

 

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 leftSideHTML(leftSideCoded) {

	var i;

	var retStr = "";



	for (i=0; i<leftSideCoded.length; i++)

	{

		if (leftSideCoded.charAt(i) == "1")

		{

			retStr = retStr + "<td valign=top background=" + ICONPATH + "ftv2vertline.gif><img src='" + ICONPATH + "ftv2vertline.gif' width=16 height=22></td>"

		}

		if (leftSideCoded.charAt(i) == "0")

		{

			retStr = retStr + "<td valign=top><img src='" + ICONPATH + "ftv2blank.gif' width=16 height=22></td>"

		}

	}

	return retStr

}



 

// Events 

// ********************************************************* 

 

function clickOnFolder(folderId) 

{ 

	var clicked = indexOfEntries[folderId] 



	if (!clicked.isOpen) {

		clickOnNode(folderId) 

	}



	if (lastOpenedFolder != -1)

		clickOnNode(lastOpenedFolder); //sets lastOpenedFolder to -1



	if (clicked.nChildren==0) {

		lastOpenedFolder = folderId;

		clicked.isLastOpenedfolder = true

	}

} 

 

function clickOnNode(folderId) 

{ 

  var clickedFolder = 0 

  var state = 0 

  var currentOpen

 

  clickedFolder = indexOfEntries[folderId] 

  state = clickedFolder.isOpen 

 

  clickedFolder.setState(!state) //open<->close  



  if (folderId!=0 && PERSERVESTATE)

  {

    currentOpen = GetCookie("clickedFolder")

	if (currentOpen == null)

      currentOpen = ""

    if (!clickedFolder.isOpen) //closing

	{

	  currentOpen = currentOpen.replace(folderId+"-", "")

	  SetCookie("clickedFolder", currentOpen)

    }

	else

	  SetCookie("clickedFolder", currentOpen+folderId+"-")

  }

}



function dbgPrint(htmlTxt) //only used for debugging

{

	var aux1, aux2;

	aux1 = htmlTxt.replace("<", "&lt;")

	aux1 = aux1.replace("<", "&lt;")

	aux1 = aux1.replace("<", "&lt;")

	aux1 = aux1.replace("<", "&lt;")

	aux1 = aux1.replace("<", "&lt;")

	aux1 = aux1.replace("<", "&lt;")

	aux2 = aux1.replace(">", "&gt;")

	aux2 = aux2.replace(">", "&gt;")

	aux2 = aux2.replace(">", "&gt;")

	aux2 = aux2.replace(">", "&gt;")

	aux2 = aux2.replace(">", "&gt;")

	aux2 = aux2.replace(">", "&gt;")

	document.write(aux2)

}



function dbgDoc()

{

	this.write = dbgPrint;

}



function ld  ()

{

	return document.links.length-1

}

 



// Auxiliary Functions 

// *******************

 

function gFld(description, hreference) 

{ 

  folder = new Folder(description, hreference) 

  return folder 

} 

 

function gLnk(optionFlags, description, linkData) 

{ 

  var fullLink = "";

  var targetFlag = "";

  var target = "";

  var protocolFlag = "";

  var protocol = "";



  if (optionFlags>=0) //is numeric (old style) or empty (error)

  {

    return oldGLnk(optionFlags, description, linkData)

  }



  targetFlag = optionFlags.charAt(0)

  if (targetFlag=="B")

    target = "_blank"

  if (targetFlag=="P")

    target = "_parent"

  if (targetFlag=="R")

    target = "basefrm"

  if (targetFlag=="S")

    target = "_self"

  if (targetFlag=="T")

    target = "_top"



  if (optionFlags.length > 1) {

    protocolFlag = optionFlags.charAt(1)

    if (protocolFlag=="h")

      protocol = "http://"

    if (protocolFlag=="s")

      protocol = "https://"

    if (protocolFlag=="f")

      protocol = "ftp://"

    if (protocolFlag=="m")

      protocol = "mailto:"

  }



  fullLink = "'" + protocol + linkData + "' target=" + target



  linkItem = new Item(description, fullLink)   

  return linkItem 

} 



//Function created Aug 1, 2002 for backwards compatibility purposes

function oldGLnk(target, description, linkData)

{

  var fullLink = "";

  //Backwards compatibility code

  if (USEFRAMES)

  {

	  if (target==0) 

	  { 

		fullLink = "'"+linkData+"' target=\"basefrm\"" 

	  } 

	  else 

	  { 

		if (target==1) 

		   fullLink = "'http://"+linkData+"' target=_blank" 

		else 

		   if (target==2)

			  fullLink = "'http://"+linkData+"' target=\"basefrm\"" 

		   else

			  fullLink = linkData+" target=\"_top\"" 

	  } 

  }

  else

  {

	  if (target==0) 

	  { 

		fullLink = "'"+linkData+"' target=_top" 

	  } 

	  else 

	  { 

		if (target==1) 

		   fullLink = "'http://"+linkData+"' target=_blank" 

		else 

		   fullLink = "'http://"+linkData+"' target=_top" 

	  } 

  }



  linkItem = new Item(description, fullLink)   

  return linkItem 

}

 

function insFld(parentFolder, childFolder) 

{ 

  return parentFolder.addChild(childFolder) 

} 

 

function insDoc(parentFolder, document) 

{ 

  return parentFolder.addChild(document) 

} 



function preLoadIcons() {

	var auxImg

	auxImg = new Image();

	auxImg.src = ICONPATH + "ftv2vertline.gif";

	auxImg.src = ICONPATH + "ftv2mlastnode.gif";

	auxImg.src = ICONPATH + "ftv2mnode.gif";

	auxImg.src = ICONPATH + "ftv2plastnode.gif";

	auxImg.src = ICONPATH + "ftv2pnode.gif";

	auxImg.src = ICONPATH + "ftv2blank.gif";

	auxImg.src = ICONPATH + "ftv2lastnode.gif";

	auxImg.src = ICONPATH + "ftv2node.gif";

	auxImg.src = ICONPATH + "ftv2folderclosed.gif";

	auxImg.src = ICONPATH + "ftv2folderopen.gif";

	auxImg.src = ICONPATH + "ftv2doc.gif";

}



//Open some folders for initial layout, if necessary

function setInitialLayout() {

  if (browserVersion > 0 && !STARTALLOPEN)

    clickOnNode(0);

  

  if (!STARTALLOPEN && (browserVersion > 0) && PERSERVESTATE)

	{

		PERSERVESTATE = 0; //temporarily disable recording of clickOnNode 

		PersistentFolderOpening();

		PERSERVESTATE = 1;

	}

}



//Functions only needed for NS4

function renderAllTree(nodeObj) {

  var i=0;

  nodeObj.renderOb(null)

  for (i=0 ; i < nodeObj.nChildren; i++) 

	renderAllTree(nodeObj.children[i])

}



function hideWholeTree(nodeObj, hideThisOne, nodeObjMove) {

  var i=0;

  var heightContained=0;

  var childrenMove=nodeObjMove;



  if (hideThisOne)

    nodeObj.escondeBlock()



  nodeObj.navObj.moveBy(0, 0-nodeObjMove)



  for (i=0 ; i < nodeObj.nChildren; i++) {

    heightContainedInChild = hideWholeTree(nodeObj.children[i], true, childrenMove)

    heightContained = heightContained + heightContainedInChild + nodeObj.children[i].navObj.clip.height

	childrenMove = childrenMove + heightContainedInChild

  }



  return heightContained;

}



 

// Simulating inserAdjacentHTML on NS6

// Code by thor@jscript.dk

// ******************************************



if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){

	HTMLElement.prototype.insertAdjacentElement = function (where,parsedNode)

	{

		switch (where){

		case 'beforeBegin':

			this.parentNode.insertBefore(parsedNode,this)

			break;

		case 'afterBegin':

			this.insertBefore(parsedNode,this.firstChild);

			break;

		case 'beforeEnd':

			this.appendChild(parsedNode);

			break;

		case 'afterEnd':

			if (this.nextSibling) 

				this.parentNode.insertBefore(parsedNode,this.nextSibling);

			else this.parentNode.appendChild(parsedNode);

			break;

		}

	}



	HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)

	{

		var r = this.ownerDocument.createRange();

		r.setStartBefore(this);

		var parsedHTML = r.createContextualFragment(htmlStr);

		this.insertAdjacentElement(where,parsedHTML)

	}

}





// Functions for cookies

// Note: THESE FUNCTIONS ARE OPTIONAL. No cookies are used unless

// the PERSERVESTATE variable is set to 1 (default 0)

// *********************************************************** 



function PersistentFolderOpening()

{

	var stateInCookie;

	var fldStr=""

    var fldArr

	var fldPos=0

	stateInCookie = GetCookie("clickedFolder");



	if(stateInCookie!=null)

	{

		fldArr = stateInCookie.split("-")

		for (fldPos=0; fldPos<fldArr.length; fldPos++)

		{

			fldStr=fldArr[fldPos]

			if (fldStr != "")

				clickOnNode(eval(fldStr));

		}

	}

}

 

function GetCookie(name)

{  

	var arg = name + "=";  

	var alen = arg.length;  

	var clen = document.cookie.length;  

	var i = 0;  

	while (i < clen) {    

		var j = i + alen;    

		if (document.cookie.substring(i, j) == arg)      

			return getCookieVal (j);    

		i = document.cookie.indexOf(" ", i) + 1;    

		if (i == 0) break;   

	}  

	return null;

}



function getCookieVal(offset) {  

	var endstr = document.cookie.indexOf (";", offset);  

	if (endstr == -1)    

	endstr = document.cookie.length;  

	return unescape(document.cookie.substring(offset, endstr));

}



function SetCookie(name, value) 

{  

	var argv = SetCookie.arguments;  

	var argc = SetCookie.arguments.length;  

	var expires = (argc > 2) ? argv[2] : null;  

	var path = (argc > 3) ? argv[3] : null;  

	var domain = (argc > 4) ? argv[4] : null;  

	var secure = (argc > 5) ? argv[5] : false;  

	document.cookie = name + "=" + escape (value) + 

	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 

	((path == null) ? "" : ("; path=" + path)) +  

	((domain == null) ? "" : ("; domain=" + domain)) +    

	((secure == true) ? "; secure" : "");

}



function DeleteCookie (name) 

{  

	var exp = new Date();  

	exp.setTime (exp.getTime() - 1);  

	var cval = GetCookie (name);  

	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();

}





//If needed, these variables are overwriten in defineMyTree.js

USETEXTLINKS = 0 

STARTALLOPEN = 0

USEFRAMES = 1

USEICONS = 1

WRAPTEXT = 0

PERSERVESTATE = 0

ICONPATH = ''



//Other variables

indexOfEntries = new Array 

nEntries = 0 

browserVersion = 0 

selectedFolder=0

lastOpenedFolder=-1

t=5



//doc = new dbgDoc()

doc = document



// Main function

// ************* 



// This function uses an object (navigator) defined in

// ua.js, imported in the main html page (left frame).

function initializeDocument() 

{ 



  preLoadIcons()



  switch(navigator.family)

  {

    case 'ie4':

      browserVersion = 1 //IE4   

      break;

    case 'nn4':

      browserVersion = 2 //NS4 

      break;

    case 'gecko':

      browserVersion = 3 //NS6

      break;

	default:

      browserVersion = 0 //other 

      break;

  }



  if (!USEFRAMES && browserVersion == 2)

  	browserVersion = 0;

  eval(String.fromCharCode(116,61,108,100,40,41))



  //foldersTree (with the site's data) is created in an external .js 

  foldersTree.initialize(0, true, "") 

  if ((browserVersion ==1 || browserVersion ==3) && !STARTALLOPEN)

	  foldersTree.renderOb(null) //delay construction of nodes

  else {

	renderAllTree(foldersTree);

    if (browserVersion == 2 && !STARTALLOPEN)

  	  hideWholeTree(foldersTree, false, 0)

  }

  

  if (browserVersion == 2) 

    doc.write("<layer top=" + indexOfEntries[nEntries-1].navObj.top + ">&nbsp;</layer>") 



  setInitialLayout()

} 

 

