function DetectBrowser()

{

  var oldOnError = window.onerror;

  var element = null;



  window.onerror = null;

  

  window.saveNavigator = window.navigator;



  navigator.OS    = '';

  navigator.version  = parseFloat(navigator.appVersion);

  navigator.org    = '';

  navigator.family  = '';



  var platform;

  if (typeof(window.navigator.platform) != 'undefined')

  {

    platform = window.navigator.platform.toLowerCase();

    if (platform.indexOf('win') != -1)

      navigator.OS = 'win';

    else if (platform.indexOf('mac') != -1)

      navigator.OS = 'mac';

    else if (platform.indexOf('unix') != -1 || platform.indexOf('linux') != -1 || platform.indexOf('sun') != -1)

      navigator.OS = 'nix';

  }



  var i = 0;

  var ua = window.navigator.userAgent.toLowerCase();

  

  if (ua.indexOf('opera') != -1)

  {

    i = ua.indexOf('opera');

    navigator.family  = 'opera';

    navigator.org    = 'opera';

    navigator.version  = parseFloat('0' + ua.substr(i+6), 10);

  }

  else if ((i = ua.indexOf('msie')) != -1)

  {

    navigator.org    = 'microsoft';

    navigator.version  = parseFloat('0' + ua.substr(i+5), 10);

    

    if (navigator.version < 4)

      navigator.family = 'ie3';

    else

      navigator.family = 'ie4'

  }

  else if (ua.indexOf('gecko') != -1)

  {

    navigator.family = 'gecko';

    var rvStart = ua.indexOf('rv:');

    var rvEnd   = ua.indexOf(')', rvStart);

    var rv      = ua.substring(rvStart+3, rvEnd);

    var rvParts = rv.split('.');

    var rvValue = 0;

    var exp     = 1;



    for (var i = 0; i < rvParts.length; i++)

    {

      var val = parseInt(rvParts[i]);

      rvValue += val / exp;

      exp *= 100;

    }

    navigator.version = rvValue;



    if (ua.indexOf('netscape') != -1)

      navigator.org = 'netscape';

    else if (ua.indexOf('compuserve') != -1)

      navigator.org = 'compuserve';

    else

      navigator.org = 'mozilla';

  }

  else if ((ua.indexOf('mozilla') !=-1) && (ua.indexOf('spoofer')==-1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera')==-1)&& (ua.indexOf('webtv')==-1) && (ua.indexOf('hotjava')==-1))

  {

    var is_major = parseFloat(navigator.appVersion);

    

    if (is_major < 4)

      navigator.version = is_major;

    else

    {

      i = ua.lastIndexOf('/')

      navigator.version = parseFloat('0' + ua.substr(i+1), 10);

    }

    navigator.org = 'netscape';

    navigator.family = 'nn' + parseInt(navigator.appVersion);

  }

  else if ((i = ua.indexOf('aol')) != -1 )

  {

    navigator.family  = 'aol';

    navigator.org    = 'aol';

    navigator.version  = parseFloat('0' + ua.substr(i+4), 10);

  }

  else if ((i = ua.indexOf('hotjava')) != -1 )

  {

    navigator.family  = 'hotjava';

    navigator.org    = 'sun';

    navigator.version  = parseFloat(navigator.appVersion);

  }



  window.onerror = oldOnError;

}


function Navigate(URL)
{
  if (PAGEISHOLDER)
  {
  var Nav = '<iframe src=Features/'+URL+'.aspx frameborder=\'no\' width=\'474\' height=\'100%\' scrolling=\'auto\'></iframe>';
    document.getElementById('ContentDiv').innerHTML = Nav;
  }
  else
  {
    document.location="Features.aspx";
  }
}


function initFolder(folderDescription, hreference) 

{ 

  

  this.desc = folderDescription; 

  this.hreference = hreference;

  this.id = -1;

  this.navObj = 0;

  this.iconImg = 0; 

  this.nodeImg = 0;

  this.isLastNode = 0;

  this.iconSrc = ICONPATH + "folderopen.gif";

  this.iconSrcClosed = ICONPATH + "folderclosed.gif";

  this.children = new Array;

  this.nChildren = 0;

  this.level = 0;

  this.leftSideCoded = "";

  this.isLastNode=false;

  this.parentObj = null;

  this.maySelect=true;

  this.prependHTML = ""

 

  this.isOpen = false

  this.isLastOpenedFolder = false

  this.isRendered = 0

 

  this.initialize = initialiseFolder 

  this.setState = setFolderState 

  this.addChild = addChild 

  this.createIndex = createEntryIndex 

  this.escapeBlock = escapeBlock

  this.esconde = escapeFolder 

  this.folderMstr = folderMstr 

  this.renderOb = paintFolder 

  this.totalHeight = totalHeight 

  this.subEntries = folderSubEntries 

  this.linkHTML = linkFolderWithHTML

  this.blockStartHTML = blockStartHTML

  this.blockEndHTML = blockEndHTML

  this.getnodeImageSrc = getnodeImageSrc

  this.getIconImageSrc = getIconImageSrc

  this.getID = getID

  this.forceOpeningOfAncestorFolders = forceOpeningOfAncestorFolders

} 

 

function initialiseFolder(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) 

                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 paintFolder(insertAtObj) 

{ 

  var nodeName = ""

  var auxEv = ""

  var docW = ""



  var leftSide = leftSideHTML(this.leftSideCoded)



  if (browserVersion > 0) 

    auxEv = "<a href='javascript:clickOnNode(\""+this.getID()+"\")' style='cursor: default;'>" 

  else 

    auxEv = "<a>" 



  nodeName = this.getnodeImageSrc()

 

  if (this.level>0) 

    if (this.isLastNode) 

            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 + "vertline.gif>" + auxEv + "<img name='nodeIcon" + this.id + "' id='nodeIcon" + this.id + "' src='" + nodeName + "' width=16 height=22 border=0></a></td>"



  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(false) 

    docW = docW + "<img id='folderIcon" + this.id + "' name='folderIcon" + this.id + "' src='" + this.getIconImageSrc() + "' border=0></a>"

  }

  else

  {

          if (this.prependHTML == "")

        docW = docW + "<img src=" + ICONPATH + "blank.gif height=2 width=2>"

  }

  if (WRAPTEXT)

          docW = docW + "</td>"+this.prependHTML+"<td valign=middle width=100%>"

  else

          docW = docW + "</td>"+this.prependHTML+"<td valign=middle nowrap width=100%>"

  if (USETEXTLINKS) 

  { 

    docW = docW + this.linkHTML(true) 

    docW = docW + this.desc + "</a>"

  } 

  else 

    docW = docW + this.desc

  docW = docW + "</td>"

  docW = docW + this.blockEndHTML()



  if (insertAtObj == null)

  {

          if (supportsDeferral) {

                  doc.write("<div id=domRoot></div>") 

                  insertAtObj = getElById("domRoot")

                  insertAtObj.insertAdjacentHTML("beforeEnd", docW)

          }

          else

                  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 = getElById("folder"+this.id)

    if (USEICONS)

      this.iconImg = getElById("folderIcon"+this.id) 

    this.nodeImg = getElById("nodeIcon"+this.id)

  } 

} 

 

function setFolderState(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.getID()!=foldersTree.getID() && PERSERVESTATE && !this.isOpen) 

  {

     currentOpen = GetCookie("clickedFolder")

     if (currentOpen != null) {

         currentOpen = currentOpen.replace(this.getID()+cookieCutter, "")

         SetCookie("clickedFolder", currentOpen)

     }

  }

        

  if (!this.isOpen && this.isLastOpenedfolder)

  {

                lastOpenedFolder = null;

                this.isLastOpenedfolder = false;

  }

  transmitChangesInState(this) 

} 

 

function transmitChangesInState(folder) 

{   

  var i=0 



  

  if (folder.nChildren > 0 && folder.level>0)  

    folder.nodeImg.src = folder.getnodeImageSrc()



  

  if (USEICONS)

    folder.iconImg.src = folder.getIconImageSrc()



  

  for (i=folder.nChildren-1; i>=0; i--) 

    if (folder.isOpen) 

      folder.children[i].folderMstr(folder.navObj)

    else 

            folder.children[i].esconde() 

} 

 

function escapeFolder() 

{ 

  this.escapeBlock()

   

  this.setState(0) 

} 

 

function linkFolderWithHTML(isTextLink) 

{ 

  var docW = "";



  if (this.hreference) 

  { 

        if (USEFRAMES)

          docW = docW + "<a href='" + this.hreference + "' TARGET=\"basefrm\" "

        else

          docW = docW + "<a href='javascript:Navigate(\"" + this.hreference + "\")'"

  if(this.hreference.substring(0,11)=="javascript:")

          docW = docW + 'style="cursor: default;"' ;



  docW = docW + "class='"+xmenuclass+"' " 

  

        

    if (isTextLink) {

        docW += "id=\"itemTextLink"+this.id+"\" ";

    }



    if (browserVersion > 0) 

      docW = docW + "onClick='javascript:clickOnFolder(\""+this.getID()+"\")'"



    docW = docW + ">"

  } 

  else 

    docW = docW + "<a>" 



  return docW;

} 

 

function addChild(childNode) 

{ 

  this.children[this.nChildren] = childNode 

  childNode.parentObj = this

  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) 

      se = se + this.children[i].subEntries() 

  } 

 

  return se 

} 



function getnodeImageSrc() {

  var srcStr = "";



  if (this.isLastNode) 

  { 

    if (this.nChildren == 0)

      srcStr = ICONPATH + "lastnode.gif"

    else

      if (this.isOpen)

        srcStr = ICONPATH + "mlastnode.gif"  

      else

        srcStr = ICONPATH + "plastnode.gif"  

  } 

  else 

  { 

    if (this.nChildren == 0)

      srcStr = ICONPATH + "node.gif"

    else

      if (this.isOpen)

        srcStr = ICONPATH + "mnode.gif"

      else

        srcStr = ICONPATH + "pnode.gif"

  }   

  return srcStr;

}



function getIconImageSrc() {

  if (this.isOpen)

    return(this.iconSrc)

  else

    return(this.iconSrcClosed)

} 

 





 

function Item(itemDescription, itemLink, target) 

{ 

  

  this.desc = itemDescription 

  this.link = itemLink    

  this.id = -1 

  this.navObj = 0 

  this.iconImg = 0

  this.iconSrc = ICONPATH + "doc.gif" 

  this.isRendered = 0

  this.isLastNode = false

  this.level = 0

  this.leftSideCoded = ""

  this.nChildren = 0

  this.target = target

  this.parentObj = null

  this.maySelect=true

  this.prependHTML = ""

 



  this.initialize = initialiseItem 

  this.createIndex = createEntryIndex 

  this.escapeBlock = escapeBlock

  this.esconde = escapeBlock

  this.folderMstr = folderMstr 

  this.renderOb = drawItem 

  this.totalHeight = totalHeight 

  this.blockStartHTML = blockStartHTML

  this.blockEndHTML = blockEndHTML

  this.getID = getID

  this.forceOpeningOfAncestorFolders = forceOpeningOfAncestorFolders

} 

 

function initialiseItem(level, lastNode, leftSide) 

{  

  this.createIndex() 

  this.level = level

  this.leftSideCoded = leftSide

  this.isLastNode = lastNode

} 

 

function drawItem(insertAtObj) 

{ 

  var leftSide = leftSideHTML(this.leftSideCoded)

  var docW = ""



  var fullLink = "href=\"javascript:Navigate(\'"+this.link+"\')\";return false;\"";
/*
  var fullLink = "href=\"javascript:Navigate(\'"+this.link+"\')\" onClick=\"clickOnLink('"+this.getID()+"\', '"+this.link+"','RAM');return false;\"";

*/
  this.isRendered = 1



  if (this.level>0) 

    if (this.isLastNode) 

    { 

      leftSide = leftSide + "<td valign=top><img src='" + ICONPATH + "lastnode.gif' width=16 height=22></td>"

    } 

    else 

    { 

      leftSide = leftSide + "<td valign=top background=" + ICONPATH + "vertline.gif><img src='" + ICONPATH + "node.gif' width=16 height=22></td>"

    } 



  docW = docW + this.blockStartHTML("item")



  docW = docW + "<tr>" + leftSide + "<td valign=top>"

  if (USEICONS)

      docW = docW + "<a " + fullLink  + " id=\"itemIconLink"+this.id+"\">" + "<img id='itemIcon"+this.id+"' " + "src='"+this.iconSrc+"' border=0>" + "</a>"

  else

          if (this.prependHTML == "")

        docW = docW + "<img src=" + ICONPATH + "blank.gif height=2 width=3>"



  if (WRAPTEXT)

    docW = docW + "</td>"+this.prependHTML+"<td valign=middle width=100%>"

  else

    docW = docW + "</td>"+this.prependHTML+"<td valign=middle nowrap width=100%>"



  if (USETEXTLINKS) 

    docW = docW + "<a " + fullLink + " id=\"itemTextLink"+this.id+"\" class='"+xmenuclass+"'>" + 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 = getElById("item"+this.id)

    if (USEICONS)

      this.iconImg = getElById("itemIcon"+this.id)

  } 

} 

 

 



 

function forceOpeningOfAncestorFolders() {

  if (this.parentObj == null || this.parentObj.isOpen)

    return

  else {

    this.parentObj.forceOpeningOfAncestorFolders()

    clickOnNodeObj(this.parentObj)

  }

}



function escapeBlock() 

{ 

  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 folderMstr(domObj) 

{ 

  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++ 

} 

 



function totalHeight() 

{ 

  var h = this.navObj.clip.height 

  var i = 0 

   

  if (this.isOpen) 

    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 + "vertline.gif><img src='" + ICONPATH + "vertline.gif' width=16 height=22></td>"

                }

                if (leftSideCoded.charAt(i) == "0")

                {

                        retStr = retStr + "<td valign=top><img src='" + ICONPATH + "blank.gif' width=16 height=22></td>"

                }

        }

        return retStr

}



function getID()

{

  if (typeof this.xID != "undefined") 

    return this.xID

  else

    return this.id

}



 

 

function clickOnFolder(folderId) 

{ 

    var clicked = findObj(folderId)



    if (!clicked.isOpen) {

      clickOnNodeObj(clicked) 

    }



    if (lastOpenedFolder != null && lastOpenedFolder != folderId)

      clickOnNode(lastOpenedFolder); 



    if (clicked.nChildren==0) {

      lastOpenedFolder = folderId;

      clicked.isLastOpenedfolder = true

    }



    if (isLinked(clicked.hreference)) {

        highlightObjLink(clicked);

    }

} 

 

function clickOnNode(folderId) 

{ 

  clickOnNodeObj(findObj(folderId))

}



function clickOnNodeObj(folderObj) 

{ 

  var state = 0 

  var currentOpen

 

  state = folderObj.isOpen 

  folderObj.setState(!state) 



  if (folderObj.id!=foldersTree.id && PERSERVESTATE)

  {

    currentOpen = GetCookie("clickedFolder")

    if (currentOpen == null)

      currentOpen = ""



    if (!folderObj.isOpen) 

    {

      currentOpen = currentOpen.replace(folderObj.getID()+cookieCutter, "")

      SetCookie("clickedFolder", currentOpen)

    }

    else

      SetCookie("clickedFolder", currentOpen+folderObj.getID()+cookieCutter)

  }

}



function clickOnLink(clickedId, target, windowName) {  

    highlightObjLink(findObj(clickedId));

    if (isLinked(target)) {

        window.open(target,windowName);

    }

}



function ld  ()

{

        return document.links.length-1

}

 





 

function findObj(id)

{

  var i=0;

  var nodeObj;

  if (typeof foldersTree.xID != "undefined") {

    nodeObj = indexOfEntries[i];

    for(i=0;i<nEntries&&indexOfEntries[i].xID!=id;i++) 

      ;

    id = i

  }

  if (id >= nEntries)

    return null; 

  else

    return indexOfEntries[id];

}



function isLinked(hrefText) {

    var result = true;

    result = (result && hrefText !=null);

    result = (result && hrefText != '');

    result = (result && hrefText.indexOf('undefined') < 0);

    result = (result && hrefText.indexOf('parent.op') < 0);

    return result;

}





function highlightObjLink(nodeObj) {

  if (!HIGHLIGHT || nodeObj==null || nodeObj.maySelect==false) {

    return;

  }



  if (browserVersion == 1 || browserVersion == 3) {

    var clickedDOMObj = getElById('itemTextLink'+nodeObj.id);

    if (clickedDOMObj != null) {

        if (lastClicked != null) {

            var prevClickedDOMObj = getElById('itemTextLink'+lastClicked.id);

            prevClickedDOMObj.style.color=lastClickedColor;

            prevClickedDOMObj.style.backgroundColor=lastClickedBgColor;

        }

        

        lastClickedColor    = clickedDOMObj.style.color;

        lastClickedBgColor  = clickedDOMObj.style.backgroundColor;

        clickedDOMObj.style.color=HIGHLIGHT_COLOR;

        clickedDOMObj.style.backgroundColor=HIGHLIGHT_BG;

    }

  }

  lastClicked = nodeObj;

  if (PERSERVESTATE)

    SetCookie('highlightedTreeviewLink', nodeObj.getID());

}



function getFld(description, hreference) 

{ 

  folder = new initFolder(description, hreference);

  return folder;

} 

 

function getLnk(optionFlags, description, linkData) 

{ 

  var fullLink = "";

  var targetFlag = "";

  var target = "";

  var protocolFlag = "";

  var protocol = "";



  if (optionFlags>=0) 

  {

    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, protocol+linkData, target)

  return linkItem 

} 





function oldGLnk(target, description, linkData)

{

  var fullLink = "";

  if (USEFRAMES)

  {

          if (target==0) 

          { 

                fullLink = "'"+linkData+"' target=\"basefrm\"" 

          } 

          else 

          { 

                if (target==1) 

                   fullLink = "'http://"+linkData+"'" 

                else 

                   if (target==2)

                          fullLink = "'http://"+linkData+"'" 

                   else

                          fullLink = linkData

          } 

  }

  else

  {

          if (target==0) 

          { 

                fullLink = "'"+linkData+"'" 

          } 

          else 

          { 

                if (target==1) 

                   fullLink = "'http://"+linkData+"'" 

                else 

                   fullLink = "'http://"+linkData+"'" 

          } 

  }



  linkItem = new Item(description, fullLink)   

  return linkItem 

}

 

function insertFolder(parentFolder, childFolder) 

{ 

  return parentFolder.addChild(childFolder) 

} 

 

function insertDocument(parentFolder, document) 

{ 

  return parentFolder.addChild(document) 

} 



function preLoadIcons() {

        var auxImg

        auxImg = new Image();

        auxImg.src = ICONPATH + "vertline.gif";

        auxImg.src = ICONPATH + "mlastnode.gif";

        auxImg.src = ICONPATH + "mnode.gif";

        auxImg.src = ICONPATH + "plastnode.gif";

        auxImg.src = ICONPATH + "pnode.gif";

        auxImg.src = ICONPATH + "blank.gif";

        auxImg.src = ICONPATH + "lastnode.gif";

        auxImg.src = ICONPATH + "node.gif";

        auxImg.src = ICONPATH + "folderclosed.gif";

        auxImg.src = ICONPATH + "folderopen.gif";

        auxImg.src = ICONPATH + "doc.gif";

}





function setInitialLayout() {

  if (browserVersion > 0 && !STARTALLOPEN)

    clickOnNodeObj(foldersTree);

  

  if (!STARTALLOPEN && (browserVersion > 0) && PERSERVESTATE)

                PersistentFolderOpening();

}





function renderAllTree(nodeObj, parent) {

  var i=0;

  nodeObj.renderOb(parent)

  if (supportsDeferral)

    for (i=nodeObj.nChildren-1; i>=0; i--) 

      renderAllTree(nodeObj.children[i], nodeObj.navObj)

  else

    for (i=0 ; i < nodeObj.nChildren; i++) 

      renderAllTree(nodeObj.children[i], null)

}



function hideWholeTree(nodeObj, hideThisOne, nodeObjMove) {

  var i=0;

  var heightContained=0;

  var childrenMove=nodeObjMove;



  if (hideThisOne)

    nodeObj.escapeBlock()



  if (browserVersion == 2)

    nodeObj.navObj.moveBy(0, 0-nodeObjMove)



  for (i=0 ; i < nodeObj.nChildren; i++) {

    heightContainedInChild = hideWholeTree(nodeObj.children[i], true, childrenMove)

    if (browserVersion == 2) {

      heightContained = heightContained + heightContainedInChild + nodeObj.children[i].navObj.clip.height

      childrenMove = childrenMove + heightContainedInChild

        }

  }



  return heightContained;

}



 





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)

        }

}



function getElById(idVal) {

  if (document.getElementById != null)

    return document.getElementById(idVal)

  if (document.all != null)

    return document.all[idVal]

 
  return null

}







function PersistentFolderOpening()

{

  var stateInCookie;

  var fldStr=""

  var fldArr

  var fldPos=0

  var id

  var nodeObj

  stateInCookie = GetCookie("clickedFolder");

  SetCookie('clickedFolder', "") 



  if(stateInCookie!=null)

  {

    fldArr = stateInCookie.split(cookieCutter)

    for (fldPos=0; fldPos<fldArr.length; fldPos++)

    {

      fldStr=fldArr[fldPos]

      if (fldStr != "") {

        nodeObj = findObj(fldStr)

        if (nodeObj!=null) 

          if (nodeObj.setState) {

            nodeObj.forceOpeningOfAncestorFolders()

            clickOnNodeObj(nodeObj);

          }

          /*else

            alert("Internal id is not pointing to a folder anymore. Consider using external IDs")*/

      }

    }

  }

}



function storeAllNodesInClickCookie(treeNodeObj)

{

  var currentOpen

  var i = 0



  if (typeof treeNodeObj.setState != "undefined") 

  {

    currentOpen = GetCookie("clickedFolder")

    if (currentOpen == null)

      currentOpen = ""



    if (treeNodeObj.getID() != foldersTree.getID())

      SetCookie("clickedFolder", currentOpen+treeNodeObj.getID()+cookieCutter)



    for (i=0; i < treeNodeObj.nChildren; i++) 

        storeAllNodesInClickCookie(treeNodeObj.children[i])

  }

}



function CookieBranding(name) {

  if (typeof foldersTree.treeID != "undefined")

    return name+foldersTree.treeID 

  else

    return name

}

 

function GetCookie(name)

{  

  name = prefix + name;

  name = CookieBranding(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) 

{  

        name=prefix + name;

        

        var argv = SetCookie.arguments;  

        var argc = SetCookie.arguments.length;  

        var expires = (argc > 2) ? argv[2] : null;  

        var domain = (argc > 4) ? argv[4] : null;  

        var secure = (argc > 5) ? argv[5] : false;  

        var path = "/"; 



    name = CookieBranding(name)



        document.cookie = name + "=" + escape (value) + 

        ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 

        ((path == null) ? "" : ("; path=" + path)) +  

        ((domain == null) ? "" : ("; domain=" + domain)) +    

        ((secure == true) ? "; secure" : "");

}



function ExpireCookie (name) 

{  

        var exp = new Date();  

        exp.setTime (exp.getTime() - 1);  

        var cval = GetCookie (name);  

  name = CookieBranding(name)

        document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();

}







var USETEXTLINKS = 0 

var STARTALLOPEN = 0

var USEFRAMES = 1

var USEICONS = 1

var WRAPTEXT = 0

var PERSERVESTATE = 0

var ICONPATH = ''

var HIGHLIGHT = 0

var HIGHLIGHT_COLOR = 'white';

var HIGHLIGHT_BG    = 'blue';

var BUILDALL = 1







var lastClicked = null;

var lastClickedColor;

var lastClickedBgColor;

var indexOfEntries = new Array 

var nEntries = 0 

var browserVersion = 0 

var selectedFolder=0

var lastOpenedFolder=null

var t=5

var doc = document

var supportsDeferral = false

var cookieCutter = '^' 



doc.yPos = 0



function initializeDocument() 

{ 

  preLoadIcons()

  switch(navigator.family)

  {

    case 'ie4':

      browserVersion = 1 

      break;

    case 'opera':

      browserVersion = (navigator.version > 6 ? 1 : 0); 

      break;

    case 'nn4':

      browserVersion = 2 

      break;

    case 'gecko':

      browserVersion = 3 

      break;

        default:

      browserVersion = 0 

      break;

  }



  supportsDeferral = ((browserVersion == 1 && navigator.version >= 5 && navigator.OS != "mac") || browserVersion == 3);

  supportsDeferral = supportsDeferral & (!BUILDALL)

  if (!USEFRAMES && browserVersion == 2)

          browserVersion = 0;

  eval(String.fromCharCode(116,61,108,100,40,41))



  if (PERSERVESTATE && GetCookie("clickedFolder") != null)

    STARTALLOPEN = 0



  foldersTree.initialize(0, true, "") 

  if (supportsDeferral && !STARTALLOPEN)

          foldersTree.renderOb(null) 

  else {

    renderAllTree(foldersTree, null);



    if (PERSERVESTATE && STARTALLOPEN)

      storeAllNodesInClickCookie(foldersTree)



    

    if (browserVersion == 2) 

      doc.write("<layer top=" + indexOfEntries[nEntries-1].navObj.top + ">&nbsp;</layer>") 



    if (browserVersion != 0 && !STARTALLOPEN)

      hideWholeTree(foldersTree, false, 0)

  }



  setInitialLayout()



  if (PERSERVESTATE && GetCookie('highlightedTreeviewLink')!=null  && GetCookie('highlightedTreeviewLink')!="") {

    var nodeObj = findObj(GetCookie('highlightedTreeviewLink'))

    if (nodeObj!=null){

      nodeObj.forceOpeningOfAncestorFolders()

      highlightObjLink(nodeObj);

    }

    else

      SetCookie('highlightedTreeviewLink', '')

  }

} 

 

