var gNodeList = new Array;
var gCurrImageObj = null;
var gnTOP_POS = 16;
var gnTop = gnTOP_POS;
var gnHiddenTop = gnTOP_POS;
var gsName = "bookmark";
var gBrowser = 0;
var IE = 1;
var NN = 2;
var N6 = 3;
var nfonte;
var isPN;
isPN0="__1_2_3_4_5_6_19_20_23_24_25_31_32_"
isPN1="__7_9_11_13_15_17_21_22_26_27_28_29_30_"
isPN2="__8_10_12_14_16_18_"
isPN3="__"

var gsTarget = "_blank";

var gBlankImg = new Image;
var gVertLineImg = new Image;
var gNodeImg = new Image;
var gLastNodeImg = new Image;

var gCloseFileImg = new Array;
var gOpenFileImg = new Array;
var gFileImg = new Array;

var jchBR =new RegExp('<BR>');
var spc = ' ';

gCloseFileImg[0] = new Image;
gCloseFileImg[1] = new Image;
gOpenFileImg[0] = new Image;
gOpenFileImg[1] = new Image;
gFileImg[0] = new Image;
gFileImg[1] = new Image;


function list(sTitle, nDstPage, sURL, nID)
{
   this.sTitle = sTitle;
   this.nDstPage = nDstPage;
   this.bExpanded = false;
   this.bShow = false;
   this.parent = null;
   this.children = new Array;
   this.objectID = null;
   this.imageID = null;

   if(nID)
   {
      this.sURL = sURL;
      this.nID = nID;
   }
   else
   {
      // this is for older Magellan generated HTML.
      this.sURL = null;
      this.nID = sURL;
   }
}



function appendList(parentNode, childNode)
{
   childNode.parent = parentNode;
   parentNode.children[parentNode.children.length] = childNode;

   return childNode;
}


// this is a recursive function.

function displayList(nodeList, nDepth)
{
   var i, j, k;
   var parentNode, grandParentNode;

   for(i = 0; i < nodeList.length; i++)
   {
      if(gBrowser == IE || gBrowser == N6 )
      {
         if(nodeList[i].children.length > 0)
            document.write('<span id="node' + nodeList[i].nID + '" style="display:');
         else
            document.write('<span id="child' + nodeList[i].nID + '" style="display:');

         if(nodeList[i].parent != null)
            document.write('none">\n');
         else
            document.write('block">\n');
      }
      else if(gBrowser == NN)
      {
         if(nodeList[i].parent == null)
         {
            nodeList[i].bShow = true;

            if(i == 0 && nodeList[i].parent != null)
               gnTop = gnTop + nodeList[i].parent.objectID.clip.height;
            else if(i > 0)
               gnTop = gnTop + nodeList[i - 1].objectID.clip.height;
         }
         else
            nodeList[i].bShow = false;

         if(i == 0 && nodeList[i].parent != null)
            gnHiddenTop = gnHiddenTop + nodeList[i].parent.objectID.clip.height;
         else if(i > 0)
            gnHiddenTop = gnHiddenTop + nodeList[i - 1].objectID.clip.height;

         if(nodeList[i].children.length > 0)
            document.write('<layer id="node');
         else
            document.write('<layer id="child');

         if(nodeList[i].parent != null)
            {document.write(nodeList[i].nID + '" top=' + gnHiddenTop + ' visibility="hide">\n');
nfonte=2;}
         else
            {document.write(nodeList[i].nID + '" top=' + gnTop + ' visibility="show">\n');
nfonte=2}
      }


      document.write('<table border=0 cellspacing=0 cellpadding=0>\n<tr>\n');
      document.write('<td valign="middle" nowrap>');

      for(j = nDepth - 1; j > 0; j--)
      {
         parentNode = nodeList[i];
         for(k = j; k > 0; k--)
            parentNode = parentNode.parent;

         grandParentNode = parentNode.parent;

         if(grandParentNode.children[grandParentNode.children.length - 1] == parentNode)
         {   document.write('<img src="' + gBlankImg.src + '" border=0>');
            }
         else
            {document.write('<img src="' + gVertLineImg.src + '" border=0>');
             }
      }

      if(nDepth > 0)
      {
         if((i + 1) == nodeList.length)
            document.write('<img src="' + gLastNodeImg.src + '" border=0>');
         else
            document.write('<img src="' + gNodeImg.src + '" border=0>');
      }

      if(nodeList[i].children.length > 0)
      {
         document.write('<a href="#" onClick="JavaScript:openNode(' + nodeList[i].nID + '); parent.main.focus();return false">');
         document.write('<img src="' + gCloseFileImg[0].src + '" border=0 name="image' + nodeList[i].nID + '" ID="image' + nodeList[i].nID +  '" alt="'+ nodeList[i].sTitle.replace(jchBR,spc) + '">');
		 document.write('</a>');
      }
      else
         document.write('<img src="' + gFileImg[0].src + '" border=0 name="image' + nodeList[i].nID + '" alt="'+ nodeList[i].sTitle.replace(jchBR,spc) + '">');

      document.write('</td><td valign="middle" nowrap>');

      if(nodeList[i].nDstPage > -2)
         document.write('<a title="'+ nodeList[i].sTitle.replace(jchBR,spc) + '" ' + 'href="#" onClick="JavaScript:openPage(' + nodeList[i].nDstPage + ', document.images.image' + nodeList[i].nID + ');parent.main.focus(); return false">');
             
else
        document.write('<a title="'+ nodeList[i].sTitle.replace(jchBR,spc) + '" ' + 'href="' + nodeList[i].sURL + '" target=' + gsTarget + '>');

      yest=0;
      yest0=isPN0.indexOf("_"+nodeList[i].nID+"_");
      yest1=isPN1.indexOf("_"+nodeList[i].nID+"_");
      yest2=isPN2.indexOf("_"+nodeList[i].nID+"_");
      yest3=isPN3.indexOf("_"+nodeList[i].nID+"_");

nfonte=4;

if (yest0>0) 
	nfonte=0;

if (yest1>0) 
	nfonte=1;

if (yest2>0) 
	nfonte=2;

if (yest3>0) 
	nfonte=3;


   
if (nfonte==0)
	document.write('<font size=1 color="black" face="Helvetica"><b>' + nodeList[i].sTitle + '</b></font>');
if (nfonte==1)
	document.write('<font size=1 color="#D41244" face="Helvetica">' + nodeList[i].sTitle + '</font>');
if (nfonte==2)
	document.write('<font size=1 color="black" face="Helvetica"><i>' + nodeList[i].sTitle + '</i></font>');
if (nfonte==3)
	document.write('<font size=1 color="#D41244" face="Helvetica">' + nodeList[i].sTitle + '</font>');
if (nfonte==4)
	document.write('<font size=1 color="black" face="Helvetica">' + nodeList[i].sTitle + '</font>');     



  document.write('</a>');
      document.write('</td>');
      document.write('</tr>\n</table>\n');

      if(gBrowser == IE)
      {
         document.write('</span>\n');

         if(nodeList[i].children.length > 0)
            nodeList[i].objectID = document.all["node" + nodeList[i].nID]; 
         else
            nodeList[i].objectID = document.all["child" + nodeList[i].nID]; 

         nodeList[i].imageID = document.all["image" + nodeList[i].nID]; 
      }
      else if(gBrowser == NN)
      {
         document.write('</layer>\n');

         if(nodeList[i].children.length > 0)
            nodeList[i].objectID = document.layers["node" + nodeList[i].nID]; 
         else
            nodeList[i].objectID = document.layers["child" + nodeList[i].nID]; 

         nodeList[i].imageID = nodeList[i].objectID.document.images[nodeList[i].objectID.document.images.length-1]; 
      }else if( gBrowser == N6)
	  {
	     document.write('</span>\n');

         if(nodeList[i].children.length > 0)
            nodeList[i].objectID = document.getElementById("node" + nodeList[i].nID); 
         else
            nodeList[i].objectID = document.getElementById("child" + nodeList[i].nID); 

         nodeList[i].imageID = document.getElementById("image" + nodeList[i].nID); 

	  }

      if(nodeList[i].children.length > 0)
         displayList(nodeList[i].children, nDepth + 1);
   }
}



function openPage(nPageNum, imageObj,signet)
{
//alert(nPageNum)
//alert(signet)


   if(nPageNum > 0)
   {
      changeSelectedIcon(imageObj);
      parent.nav.openPage2(nPageNum);
parent.main.focus();
   }
   else
      alert("This link has no destination.\nUse +/- to show/hide sub-menus");
}



function openNode(nID)
{
   var node = searchNode(gNodeList, nID);
   if(node == null)
      return;

   if(node.bExpanded == false)
   {
      node.bExpanded = true;
      expandNode(node.children)
   }
   else
   {
      node.bExpanded = false;
      shrinkNode(node.children)
   }

   changeExpandIcon(node.imageID, node.bExpanded);

   if(gBrowser == NN)
   {
      gnTop = gnTOP_POS;
      adjustListPos(gNodeList);
   }
}



function expandNode(node)
{
   var i;

   for(i = 0; i < node.length; i++)
   {
      if(gBrowser == IE || gBrowser == N6 )
      {
         if(node[i].objectID.style.display == "none")
            if(node[i].parent == null || node[i].parent.bExpanded == true)
               node[i].objectID.style.display = "block";
      }
      else if(gBrowser == NN)
      {
         if(node[i].bShow == false)
            if(node[i].parent != null && node[i].parent.bExpanded == true)
               node[i].bShow = true;
      }

      if(node[i].children.length > 0 && node[i].bExpanded == true)
         expandNode(node[i].children);
   }
}



function shrinkNode(node)
{
   var i;

   for(i = 0; i < node.length; i++)
   {
      if(gBrowser == IE || gBrowser == N6 )
      {
         if(node[i].objectID.style.display == "block")
            node[i].objectID.style.display = "none";
      }
      else if(gBrowser == NN)
      {
         if(node[i].bShow == true)
            node[i].bShow = false;
      }

      if(node[i].children.length > 0)
         shrinkNode(node[i].children);
   }
}



function updateTree(nPageNum)
{

   var node = ProcessOpenedNode(gNodeList, nPageNum);

   if(gBrowser == NN)
   {
      gnTop = gnTOP_POS;
      adjustListPos(gNodeList);
   }
}


// this is a recursive function.

function ProcessOpenedNode(nodeList, nPageNum)
{
   var i, k;
   var node;

   for(i = 0; i < nodeList.length; i++)
   {
bsignet="";
bpageNum=nodeList[i].nDstPage;
if (bpageNum>1000) 
	{bpageNum=bpageNum-1000;
	bsignet="1"}
if (bpageNum>1000) 
	{bpageNum=bpageNum-1000;
   	bsignet="2"}
if (bpageNum>1000) 
	{bpageNum=bpageNum-1000;
   	bsignet="3"}
if (bpageNum>1000) 
	{bpageNum=bpageNum-1000;
   	bsignet="4"}
if (bpageNum>1000) 
	{bpageNum=bpageNum-1000;
   	bsignet="5"}
if (bpageNum>1000) 
	{bpageNum=bpageNum-1000;
   	bsignet="6"}
if (bpageNum>1000) 
	{bpageNum=bpageNum-1000;
   	bsignet="7"}
if (bpageNum>1000) 
	{bpageNum=bpageNum-1000;
   	bsignet="8"}
if (bpageNum>1000) 
	{bpageNum=bpageNum-1000;
   	bsignet="9"}

      if(nodeList[i].nDstPage == nPageNum+(1000*bsignet))
      {
         if(nodeList[i].children.length > 0)
         {
            node = ProcessOpenedNode(nodeList[i].children, nPageNum);

            if(node != null)
            {
               nodeList[i].bExpanded = true; // expand parent.
               changeExpandIcon(nodeList[i].imageID, nodeList[i].bExpanded);

               for(k = 0; k < nodeList.length; k++)
               {
                  if(gBrowser == IE || gBrowser == N6)
                  {
                     if(nodeList[k].objectID.style.display == "none")
                        nodeList[k].objectID.style.display = "block";
                  }
                  else if(gBrowser == NN)
                  {
                     if(nodeList[k].bShow == false)
                        nodeList[k].bShow = true;
                  }
               }
               changeSelectedIcon(node.imageID);

               return node;
            }
         }

         for(k = 0; k < nodeList.length; k++)
         {
            if(gBrowser == IE || gBrowser == N6)
            {
               if(nodeList[k].objectID.style.display == "none")
                  nodeList[k].objectID.style.display = "block";
            }
            else if(gBrowser == NN)
            {
               if(nodeList[k].bShow == false)
                  nodeList[k].bShow = true;
            }
         }
         changeSelectedIcon(nodeList[i].imageID);

         return nodeList[i];
      }
      else if(nodeList[i].children.length > 0)
      {
         node = ProcessOpenedNode(nodeList[i].children, nPageNum);

         if(node != null)
         {
            nodeList[i].bExpanded = true; // expand parent.
            changeExpandIcon(nodeList[i].imageID, nodeList[i].bExpanded);

            for(k = 0; k < nodeList.length; k++)
            {
               if(gBrowser == IE || gBrowser == N6)
               {
                  if(nodeList[k].objectID.style.display == "none")
                     nodeList[k].objectID.style.display = "block";
               }
               else if(gBrowser == NN)
               {
                  if(nodeList[k].bShow == false)
                     nodeList[k].bShow = true;
               }
            }
            changeSelectedIcon(node.imageID);

            return node;
         }
      }
   }

   return null;
}

function adjustListPos(nodeList)
{
   var i;
 
   for(i = 0; i < nodeList.length; i++)
   {
      if(nodeList[i].bShow == true)
      {
         if(i == 0 && nodeList[i].parent != null)
            gnTop = gnTop + nodeList[i].parent.objectID.clip.height;
         else if(i > 0)
            gnTop = gnTop + nodeList[i - 1].objectID.clip.height;

         nodeList[i].objectID.moveTo(nodeList[i].objectID.left, gnTop)
         nodeList[i].objectID.visibility = "show";
      }
      else
         nodeList[i].objectID.visibility = "hide";

      if(nodeList[i].children.length > 0)
         adjustListPos(nodeList[i].children);
   }
}


function changeExpandIcon(imageObj, bExpand)
{
   if(imageObj == null)
      return;

   if(bExpand == true)
   {
      if(imageObj.src == gCloseFileImg[1].src)
         imageObj.src = gOpenFileImg[1].src;
      else
         imageObj.src = gOpenFileImg[0].src;
   }
   else
   {
      if(imageObj.src == gOpenFileImg[1].src)
         imageObj.src = gCloseFileImg[1].src;
      else
         imageObj.src = gCloseFileImg[0].src;
   }
}


function changeSelectedIcon(imageObj)
{
	// for Netscape 6 : 
	// initial variables: 
	if(gBrowser == N6) // netscape 6 do not use relative path for image.src
   	{  var strCloseFile0Src = gCloseFileImg[0].src;
  	   strCloseFile0Src = strCloseFile0Src.substring(2, strCloseFile0Src.length);	// strip off leading dots: ../img/
	   var strCloseFile1Src = gCloseFileImg[1].src;
  	   strCloseFile1Src = strCloseFile1Src.substring(2, strCloseFile1Src.length);

   	   var strOpenFile0Src = gOpenFileImg[0].src;
   	   strOpenFile0Src = strOpenFile0Src.substring(2, strOpenFile0Src.length);
   	   var strOpenFile1Src = gOpenFileImg[1].src;
   	   strOpenFile1Src = strOpenFile1Src.substring(2, strOpenFile1Src.length);

   	   var strFile0Src = gFileImg[0].src;
	    strFile0Src = strFile0Src.substring(2, strFile0Src.length);
   	   var strFile1Src = gFileImg[1].src;
	   strFile1Src = strFile1Src.substring(2, strFile1Src.length);
	}


   if(imageObj != null)
   {
		if(gBrowser == N6) // netscape 6 do not use relative path for image.src
		{    	// comparing: 
			if(imageObj.src.indexOf(strCloseFile0Src) != -1)
				imageObj.src = gCloseFileImg[1].src;
			else if( imageObj.src.indexOf(strOpenFile0Src) != -1 )
				imageObj.src = gOpenFileImg[1].src;
			else if( imageObj.src.indexOf(strFile0Src) != -1)
			   imageObj.src = gFileImg[1].src;    
		}
		else // IE & NN
		{
		  if(imageObj.src == gCloseFileImg[0].src)
			 imageObj.src = gCloseFileImg[1].src;
		  else if(imageObj.src == gOpenFileImg[0].src)
			 imageObj.src = gOpenFileImg[1].src;
		  else if(imageObj.src == gFileImg[0].src)
			 imageObj.src = gFileImg[1].src;
		}
   }

   if(gCurrImageObj != null && gCurrImageObj != imageObj)
   {
	   if(gBrowser == N6) 
  		{
			if(gCurrImageObj.src.indexOf(strCloseFile1Src) != -1)
          		gCurrImageObj.src = gCloseFileImg[0].src;
			else if( gCurrImageObj.src.indexOf(strOpenFile1Src) != -1 )
				gCurrImageObj.src = gOpenFileImg[0].src;
			else if( gCurrImageObj.src.indexOf(strFile1Src) != -1)
      		    gCurrImageObj.src = gFileImg[0].src;
      	}else 
		{
			if(gCurrImageObj.src == gCloseFileImg[1].src)
				gCurrImageObj.src = gCloseFileImg[0].src;
			else if(gCurrImageObj.src == gOpenFileImg[1].src)
				gCurrImageObj.src = gOpenFileImg[0].src;
			else if(gCurrImageObj.src == gFileImg[1].src)
				gCurrImageObj.src = gFileImg[0].src;
		}
   }

   gCurrImageObj = imageObj;
}

// this is a recursive function.

function searchNode(nodeList, nID)
{
   var node;
   var i;
 
   for(i = 0; i < nodeList.length; i++)
   {
      if(nodeList[i].nID == nID)
         return nodeList[i];
      else if(nodeList[i].children.length > 0)
      {
         node = searchNode(nodeList[i].children, nID);
         if(node != null)
            return node;
      }
   }

   return null;
}


function initialize()
{

	if (navigator.appName == "Microsoft Internet Explorer")
		  gBrowser = IE;
	else if (document.getElementById&&!document.all)	// netscape 6.0
		  gBrowser = N6; 
	else if (navigator.appName == "Netscape")
		  gBrowser = NN;
	else 
		  return;

   // display list.
   displayList(gNodeList, 0, 0);
   // create dummy layer on the bottom so NN will have correct scrolling height.
   if(gBrowser == NN)
      document.write('<layer id="dummy" top=' + gnHiddenTop  + ' visibility="hide">\n');
   // select first item on the list.
   if(gNodeList.length > 0)
      parent.nav.updateContents(parent.nav.gCurrPage);
	
	parent.main.focus();
}


