var IsIEPlus = true;

if (navigator.userAgent.indexOf("MSIE")    != -1 &&
    navigator.userAgent.indexOf("Windows") != -1 &&
    navigator.appVersion.substring(0,1) > 3)
{
   IsIEPlus = true;
}


   var NS4                 = (document.layers)   ? 1 : 0;
   var IE4                 = (document.all)      ? 1 : 0;

//--------------------------------------
//      Setup variables
//--------------------------------------
// var newLineChar         = String.fromCharCode(10);
   var char34              = String.fromCharCode(34);
   var quote               = "'";
   var nullStr             = "";
   var none                = "<none>";

   var htmlTemp;
   var htmlDisplay;
   var htmlNavPrefix       = "";
   var htmlNav             = "";
   var htmlNavSuffix       = "";

   var loop;
   var x;

   var fontFace            = "'verdana,arial,helvetica'";
   var fontSize01          = "<font face=" + fontFace + " size=1 ";
   var fontSize02          = "<font face=" + fontFace + " size=2 ";
   var fontSize03          = "<font face=" + fontFace + " size=3 ";
   var fontSize04          = "<font face=" + fontFace + " size=4 ";
   var fontSize05          = "<font face=" + fontFace + " size=5 ";


   var colorbg             = " BGCOLOR='#FFFFFF'";
   var color01             = " COLOR='#CCCCCC'";
   var color02             = " COLOR='#990000'";
   var boldOn              = "<B>";
   var boldOff             = "</B>";
   var newline             = "\n";

   var gifClosed           = "folder-close.gif";
   var gifOpen             = "folder-open.gif";
   var gifWebpage          = "webpage_white.gif";

// var imgSrc              = "http://" + location.host + "/images/clipart/";
   var imgSrc              = location.protocol + "//" + location.host + "/images/clipart/";
   var ImgSrcFoldClos      = "<IMG SRC=" + quote + imgSrc + gifClosed      + quote ;
   var ImgSrcFoldOpen      = "<IMG SRC=" + quote + imgSrc + gifOpen        + quote ;

   var navWidth            = " WIDTH=100%";
   var navTable            = "<TABLE" + navWidth  + " BORDER=0 CELLPADDING=0 CELLSPACING=0>" + newline;
   var navTableEnd         = "</TABLE>" + newline;
   var navIndent           = 10;
   var navSubIndent        = 10;

   var addSectionHere         = "<!--addSectionHere-";
   var addTreeHere            = "<!--addTreeHere-";
   var addSubTreeHere         = "<!--addSubTreeHere-";
   var addItemHere            = "<!--addItemHere-";
   var addLinkHere            = "<!--addLinkHere-";
   var addEnd                 = "-->";

   var insertName;
   var insertName1;
   var insertName2;
   var insertName3;
   var replaceTarget;
   var replaceSource;

   var treeList               = new Array();




//--------------------------------------
//      Subroutines
//--------------------------------------

//======================================
//      Build Display Page
//======================================
function showMenuTree(PageIDStr)
{
        buildNavigation(PageIDStr);
        htmlDisplay  = htmlNav;
        document.write(htmlDisplay);

}

//-------------------------------------------------------------------//
//      Add Section                                                  //
//-------------------------------------------------------------------//
function addSection(name, title)
{
   htmlNav  = "<DIV ID=" + "TREENAME_" + name + ">";
   htmlTemp = navTable;

   if (title != "*")
   {
      htmlTemp +=
            "   <TR>" +
            "      <TD WIDTH=100% ALIGN=LEFT VALIGN=TOP>" +
                      fontSize02 + ">" +
                      boldOn  + title   + boldOff +
                      "<BR>"  +
            "      </TD>"     +
            "   </TR>" ;
   }

   htmlTemp += addTreeHere + name + addEnd;
   htmlTemp += addLinkHere + name + addEnd;
   htmlTemp += "<BR>";
   htmlTemp += navTableEnd;

   htmlNav  += htmlTemp ;
   htmlNav  += "</DIV>" ;
}


//......................................
//      Add Link
//......................................
function addLink(name, linkStr, linkUrl)
{
   replaceTarget = addLinkHere + name + addEnd;
   htmlTemp =
            "<TR>" +
               "<TD WIDTH=100% VALIGN=TOP style='margin-left:" + navIndent + "' >" +
                  fontSize01 + ">" +
                  aObjBuild("", "", "", linkStr, "*", linkUrl) +
                  "<BR>" +
               "</TD>" +
            "</TR>" +
            replaceTarget;

   if (htmlNav.indexOf(replaceTarget) >= 0)
   {
      htmlNav = htmlNav.replace(replaceTarget, htmlTemp);
   }
}


//......................................
//      Add Tree
//......................................
function addTree(name, treeID, treeStr, treeShow)
{
   nameTree      = name + treeID;
   replaceTarget = addTreeHere + name + addEnd;

   sImg          = treeShow ? gifOpen      : gifClosed;
   sAlt          = treeShow ? "Close"      : "Open";
   sStyle        = treeShow ? "black"      : "none";
   gifImg        = imgSrc + sImg;

      htmlTemp =
      addObjFolder(nameTree, gifImg, sAlt, treeStr) +
      addObjFolderContent(nameTree, sStyle, navIndent) +
      replaceTarget;

   htmlNav = htmlNav.replace(replaceTarget, htmlTemp);
}



//......................................
//      Add Sub Tree
//......................................
function addSubTree(section, parent, treeID, treeStr, treeShow)
{
   parentTree    = section + parent;
   nameTree      = section + treeID;
   replaceTarget = addSubTreeHere + parentTree + addEnd;

   sImg          = treeShow ? gifOpen      : gifClosed;
   sAlt          = treeShow ? "Close"      : "Open";
   sStyle        = treeShow ? "black"      : "none";
   gifImg        = imgSrc + sImg;

   htmlTemp =
              navTable +
              addObjFolder(nameTree, gifImg, sAlt, treeStr)       +
              addObjFolderContent(nameTree, sStyle, navSubIndent) +
              navTableEnd +
              replaceTarget;

   htmlNav = htmlNav.replace(replaceTarget, htmlTemp);
}





//......................................
//      Add Tree Item
//......................................
function addTreeItem(name, treeID, treeStr, linkUrl)
{
   nameTree      = name + treeID;
   replaceTarget = addItemHere + nameTree + addEnd;

   sImg   = gifWebpage;
   sAlt   = "Webpage";
   gifImg = imgSrc + sImg;

   if (htmlNav.indexOf(replaceTarget) >= 0)
   {
      htmlTemp =
               aObjBuild(gifImg, sAlt, "", treeStr, "*", linkUrl) +
               "<BR>" +
               replaceTarget;
      htmlNav = htmlNav.replace(replaceTarget, htmlTemp);
   }
}


//......................................
//
//......................................
function addObjFolder(i_nameTree, i_gifImg, i_sAlt, i_treeStr)
{
   strObject =
             "<TR>"    +
               "<TD>" +
               "  <A CLASS=treeFolder HREF=javascript:clickTree('" + i_nameTree + "')  >" +
               "  <IMG ID=TREEI_" + i_nameTree +
               "     NAME=TREEI_" + i_nameTree +
               "     SRC='" + i_gifImg + "' ALT='" + i_sAlt + "'" +
               "     ALIGN=CENTER BORDER=0" +
               "   >" +
               "   &nbsp;" +
                   i_treeStr +
               "</A>"        +
               "</TD>"       +
             "</TR>" ;

   return strObject;
}


//......................................
//
//......................................
function addObjFolderContent(i_nameTree, i_sStyle, i_Indent)
{
   addTreeList("TREET_" + i_nameTree, treeList);

   strObject =
             "<TR>"                                   +
             " <TD>"                                  +
             "  <DIV ID=&div_id NAME=&div_name"       +
             "   STYLE='display:&div_style_display;"  +
             "         margin-left:&div_style_ml;'"   +
             "         onClick=" + char34 + "window.event.cancelBubble=true;" + char34 +
             "  >" +
                 fontSize01 + ">"     +
                 addSubTreeHere + i_nameTree + addEnd +
                 addItemHere    + i_nameTree + addEnd +
                 "<BR>"         +
             "  </DIV>"         +
             " </TD>"           +
             "</TR>";

      strObject = strObject.replace("&div_id"            , "TREET_" + i_nameTree);
      strObject = strObject.replace("&div_name"          , "TREET_" + i_nameTree);
      strObject = strObject.replace("&div_style_display" , i_sStyle);
      strObject = strObject.replace("&div_style_ml"      , i_Indent);


   return strObject;
}


//......................................
//      Build <A Object
//......................................
function aObjBuild(gif, gifAlt, gifOther, textStr, linkStr, linkUrl)
{
   strObject = "";
   txtObject = "";
   gifObject = "";

   // build gif image, if any
   if (gif != "")
   {
      if (linkUrl != "")
      {
         gifObject += "<A HREF='" + linkUrl +"'>";
      }
      gifObject += imgObjBuild(gif, gifAlt, gifOther);
      if (linkUrl != "")
      {
         gifObject += "</A>";
      }
      if (textStr != "")
      {
         gifObject += "    ";
      }
   }

   // build text string link, if any
   if (textStr != "")
   {
      if (linkStr == "*")
      {
         linkStr = textStr;
      }
      txtObject = textStr;
      if (linkStr !="")
      {
         x = textStr.indexOf(linkStr);
         if (x >= 0)
         {
            txtObject = textStr.substring(0, x);
            txtObject += "<A HREF='" + linkUrl + "'>" + linkStr;
            txtObject += "</A>";
            x += linkStr.length;
            txtObject += textStr.substring(x);
         }
      }
   }

   strObject = gifObject + txtObject;
   return strObject;
}



//......................................
//
//......................................
function imgObjBuild(gif, gifAlt, gifOther)
{
        strObject = "";
        strObject += "<IMG SRC='" + gif + "' ALT='" + gifAlt + "' BORDER=0 " + gifOther + ">";
        return strObject;
}


//......................................
//      OnClick - clickTree
//......................................
function clickTree(nameTree)
{
        var imgObj = (NS4) ? document.images["TREEI_"   + nameTree] : document.all("TREEI_" + nameTree);
        var txtObj = (NS4) ? document.ids["TREET_"      + nameTree] : document.all("TREET_" + nameTree).style;
        var layObj = (NS4) ? document.layer["TREENAME_" + "tree"]   : document.all("TREENAME_" + "tree").style;

//alert("clickTree12 " + nameTree);
//alert("imgObj " + imgObj.src);
//alert("txtObj " + txtObj.visibility + "\n" + "txtObj " + txtObj.display + "\n" );
//alert("layer " + layObj.visibility);
        if (txtObj.display == 'none')
        {
           imgObj.src        = imgSrc + gifOpen  ;
           imgObj.alt        = 'Close Folder'    ;
           txtObj.visibility = 'visible'         ;
           txtObj.display    = ''                ;
        }
        else
        {
           imgObj.src        = imgSrc + gifClosed ;
           imgObj.alt        = 'Open Folder'      ;
           txtObj.visibility = 'hidden'           ;
           txtObj.display    = 'none'             ;
        }

        if (NS4)
        {
        if (txtObj.display == 'none')
        {
           layObj.visibility = 'hidden'           ;
           layObj.display    = 'none'            ;
           layObj.visibility = 'visible'         ;
           layObj.display    = ''                ;
        }
        }

}


//----------------------------------------------------------------------
//
//----------------------------------------------------------------------
function addTreeList(iValue,iArray)
{
 n = iArray.length;
 iArray[n] = iValue;
}


//----------------------------------------------------------------------
//   setupLayers()
//----------------------------------------------------------------------
function setupLayers()
{
   for (i = 0; i < treeList.length; i++)
   {
      whichEl = treeList[i];
//      var whichEl         = (NS4) ? document.layers[whichEl] : document.all[whichEl].style;
//alert("list " + whichEl);
   }
}


