function getCurrState() {
  var result = "", myCookie = " "+document.cookie+";", searchName = " currState=";
  var startOfCookie = myCookie.indexOf(searchName), endOfCookie;
  if (startOfCookie != -1){
          startOfCookie += searchName.length;
          endOfCookie = myCookie.indexOf(";",startOfCookie);
          result = unescape(myCookie.substring(startOfCookie, endOfCookie));
  }
  return result;
}
function setCurrState(setting) {
  var expire = new Date();
  expire.setTime(expire.getTime() + ( 7*24*60*60*1000 ) );
  document.cookie = "currState=" + escape(setting) + "; expires=" + expire.toGMTString();
}
function Folder(folderDescription, hreference){ 
  this.desc = folderDescription 
  this.hreference = hreference 
  this.id = -1   
  this.nm = "folder"
  this.navObj = 0  
  this.nodeImg = 0  
  this.isLastNode = 0 
  this.isOpen = true 
  this.children = new Array 
  this.nChildren = 0 
  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.outputLink = outputFolderLink 
  this.blockStart = blockStart
  this.blockEnd = blockEnd
} 
function initializeFolder(level, lastNode, leftSide){ 
  var j=0,i=0,numberOfFolders,numberOfDocs,nc 
  nc = this.nChildren 
  this.createIndex() 
  var auxEv = "" 
  if (browserVersion > 0) auxEv = "<a  class='menuss'  href='javascript:clickOnNode("+this.id+",1)' class='menuss'>" 
   else auxEv = "<a  class='menuss' >" 
  if (level>0) 
    if (lastNode) { 
      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' id='nodeIcon" + this.id + "' src='" + path + "images/minus.gif' border=0></a>") 
      leftSide = leftSide + "<img src='" + path + "images/blank.gif' border=0>"  
      this.isLastNode = 1 
    } else { 
      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' id='nodeIcon" + this.id + "' src='" + path + "images/minus.gif' border=0></a>") 
      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 setStateFolder(isOpen) { 
  var subEntries,totalHeight,fIt = 0,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 = path + "images/minus.gif" 
       else folder.nodeImg.src = path + "images/minus.gif" 
    for (i=0; i<folder.nChildren; i++) folder.children[i].mostra() 
  } else { 
    if (folder.nodeImg) 
      if (folder.isLastNode) folder.nodeImg.src = path + "images/plus.gif" 
       else folder.nodeImg.src = path + "images/plus.gif" 
    for (i=0; i<folder.nChildren; i++) folder.children[i].esconde() 
  }  
} 
function escondeFolder() { 
  this.escondeBlock()
  this.setState(0) 
} 
function drawFolder(leftSide) { 
  var idParam = "id='folder" + this.id + "'"
  if (browserVersion == 2) if (!doc.yPos) doc.yPos=20 
  this.blockStart("folder")
  doc.write("<tr><td>") 
  doc.write(leftSide) 
  this.outputLink() 
  doc.write("</a></td><td valign=middle nowrap>") 
  if (USETEXTLINKS) { 
    this.outputLink() 
    doc.write(this.desc + "</a>") 
  } else doc.write(this.desc)
  doc.write("</td>")  
  this.blockEnd()
  if (browserVersion == 1) { 
    this.navObj = doc.all["folder"+this.id] 
    this.nodeImg = doc.all["nodeIcon"+this.id] 
  } else if (browserVersion == 2) { 
    this.navObj = doc.layers["folder"+this.id] 
    this.nodeImg = this.navObj.document.images["nodeIcon"+this.id] 
    doc.yPos=doc.yPos+this.navObj.clip.height 
  } else if (browserVersion == 3) { 
    this.navObj = doc.getElementById("folder"+this.id)
    this.nodeImg = doc.getElementById("nodeIcon"+this.id)
  } 
} 
function outputFolderLink() { 
  if (this.hreference) { 
    doc.write("<a class='menuss' href='" + this.hreference + "' ") 
    if (browserVersion > 0) doc.write("onClick='javascript:clickOnFolder("+this.id+")'") 
    doc.write(">") 
  } else doc.write("<a class='menuss'  href='javascript:clickOnNode("+this.id+",1)'>") 
} 
function addChild(childNode, p) { 
   this.children[this.nChildren] = childNode 
   this.nChildren++ 
  return childNode 
} 
function folderSubEntries() { 
  var i = 0,se = this.nChildren 
  for (i=0; i < this.nChildren; i++) if (this.children[i].children) se = se + this.children[i].subEntries() 
  return se 
} 
function Item(itemDescription, itemLink) { 
  this.desc = itemDescription 
  this.link = itemLink 
  this.id = -1 
  this.nm = "item"
  this.navObj = 0 
  this.iconSrc = path + "images/blank2.gif" 
  this.initialize = initializeItem 
  this.createIndex = createEntryIndex 
  this.esconde = escondeBlock
  this.mostra = mostra 
  this.renderOb = drawItem 
  this.totalHeight = totalHeight 
  this.blockStart = blockStart
  this.blockEnd = blockEnd
} 
function initializeItem(level, lastNode, leftSide) {  
  this.createIndex() 
  this.renderOb("") 
} 
function drawItem(leftSide) { 
  this.blockStart("item")
  doc.write("<tr><td>"+leftSide+"<img src='"+this.iconSrc+"' border=0></td><td valign=middle width=200>") 
  if (USETEXTLINKS) {
          if (this.link != "") doc.write("<a class='menuss' href=" + this.link + ">" + this.desc + "</a>"); 
           else doc.write(this.desc); } else doc.write(this.desc) 
  this.blockEnd()
  if (browserVersion == 1) this.navObj = doc.all["item"+this.id] 
   else if (browserVersion == 2) { 
    this.navObj = doc.layers["item"+this.id] 
    doc.yPos=doc.yPos+this.navObj.clip.height 
  } else if (browserVersion == 3) this.navObj = doc.getElementById("item"+this.id)
} 
function mostra() { 
  if (browserVersion == 1 || browserVersion == 3) this.navObj.style.display = "block"; else this.navObj.visibility = "show" 
} 
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 blockStart(idprefix) {
  var idParam = "id='" + idprefix + this.id + "'"
  if (browserVersion == 2) doc.write("<layer "+ idParam + " top=" + doc.yPos + " visibility=show>") 
  if (browserVersion == 3) doc.write("<div " + idParam + " style='display:block; position:block;'>")
  doc.write("<table border=0 cellspacing=0 cellpadding=0 ") 
  if (browserVersion == 1) doc.write(idParam + " style='display:block; position:block; '>"); else doc.write(">") 
}
function blockEnd() {
  doc.write("</table>") 
  if (browserVersion == 2) doc.write("</layer>") 
  if (browserVersion == 3) doc.write("</div>") 
}
function createEntryIndex() { 
  this.id = nEntries 
  indexOfEntries[nEntries] = this 
  nEntries++ 
} 
function totalHeight() { 
  var h = this.navObj.clip.height,i = 0 
  if (this.isOpen) 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, pr) { 
  var clickedFolder = 0,state = 0, i = 0, p = false; 
  clickedFolder = indexOfEntries[folderId] 
if (clickedFolder!=null) 
if (clickedFolder.nm != "item") {
  state = clickedFolder.isOpen 
  clickedFolder.setState(!state)
  if (pr!=0){
        var newString = "";
        newStr = "clickOnNode("+folderId+",0)";
        old = getCurrState();
        if (old != ""){
         oldArr = old.split(";");
         for (i=0; i<oldArr.length; i++){
      if (oldArr[i] != newStr) {
           if (newString != "") newString += ";";
       newString += oldArr[i];
          } else p = true;
         }
        }
    if (!p) {
     if (newString != "") newString += ";";
     newString += newStr;
        }
        setCurrState(newString); 
  }
 }
} 
function gFld(description, hreference) { 
  folder = new Folder(description, hreference) 
  return folder 
} 
function gLnk(target, description, linkData) { 
  fullLink = "" 
  if (linkData != "")
   if (target==0) fullLink = "'"+linkData+"' " 
    else if (target==1) fullLink = "'http://"+linkData+"' "; else fullLink = "'http://"+linkData+"' " 
  linkItem = new Item(description, fullLink)   
  return linkItem 
} 
function insFld(parentFolder, childFolder) { 
  return parentFolder.addChild(childFolder,1) 
} 
function insDoc(parentFolder, document) { 
  parentFolder.addChild(document,0) 
} 
USETEXTLINKS = 1 
STARTALLOPEN = 0
indexOfEntries = new Array 
nEntries = 0 
doc = document 
browserVersion = 0 
selectedFolder=0
function initializeDocument() { 
  switch(navigator.family) {
    case 'ie4': browserVersion = 1; break;
    case 'nn4': browserVersion = 2; break;
    case 'gecko': browserVersion = 3; break;
    default: browserVersion = 0; break;
  }      
  foldersTree.initialize(0, 1, "") 
  if (browserVersion == 2) doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>") 
  if (!STARTALLOPEN) if (browserVersion > 0) { clickOnNode(0,0); clickOnNode(0,0); eval(getCurrState()); }
} 
 
