//<!--
function fnOpenAll()
{
    var oSiteMap = document.getElementById("SiteMapCollapse");
    var aLists = oSiteMap.getElementsByTagName("ul"); 
    for (var i = 0; i < aLists.length; i++)
    { 
        var ulID = aLists[i].id
        var intID = ulID.replace(/SiteMapUL/, "");
        fnShowChildren(intID);
    }
}

function fnCollapseAll()
{
    var oSiteMap = document.getElementById("SiteMapCollapse");
    var aLists = oSiteMap.getElementsByTagName("ul"); 
    for (var i = 0; i < aLists.length; i++)
    { 
        var ulID = aLists[i].id
        var intID = ulID.replace(/SiteMapUL/, "");
        fnHideChildren(intID);
    }
}

function fnShowChildren(ID)
{
	document.getElementById('SiteMapUL' + ID).style.display='block';
	var oPlusMinus = document.getElementById('PlusMinus' + ID);
	oPlusMinus.className = 'plusMinus minus';
	oPlusMinus.onclick = function() {fnHideChildren(ID);}
	fnCookieAddOpenNode(ID);
}

function fnHideChildren(ID)
{

	document.getElementById('SiteMapUL' + ID).style.display='none';
	var oPlusMinus = document.getElementById('PlusMinus' + ID);
	oPlusMinus.className = 'plusMinus plus';
	oPlusMinus.onclick = function() {fnShowChildren(ID);}
	fnCookieRemoveOpenNode(ID);
}

// JAVASCRIPT COOKIE HANDLING TO RECALL TREE STATE

var oTreeCookie = new CJL_CookieUtil('SiteMapCookie', 43200, '/');	// 43200 minutes = 1 Month
var sOpenNodes = oTreeCookie.getSubValue('OpenNodes');

function fnCookieAddOpenNode(sNode)
{
	sOpenNodes = '-' + sNode + '-' + sOpenNodes;
	oTreeCookie.setSubValue('OpenNodes', sOpenNodes);
}

function fnCookieRemoveOpenNode(sNode)
{
	sReg = new RegExp('-' + sNode + '-','g');
	sOpenNodes = sOpenNodes.replace(sReg,''); 
	oTreeCookie.setSubValue('OpenNodes', sOpenNodes);
}

// END JAVASCRIPT COOKIE HANDLING TO RECALL TREE STATE


/**
 * Copyright (C) 2002-2003, CodeHouse.com. All rights reserved.
 * CodeHouse(TM) is a registered trademark.
 *
 * THIS SOURCE CODE MAY BE USED FREELY PROVIDED THAT
 * IT IS NOT MODIFIED OR DISTRIBUTED, AND IT IS USED
 * ON A PUBLICLY ACCESSIBLE INTERNET WEB SITE.
 * 
 * CodeHouse.com JavaScript Library Module: Cookie Utility Class
 *
 * You can obtain this script at http://www.codehouse.com
 */
function CJL_CookieUtil(name, duration, path, domain, secure)
{
   this.affix = "";
   
   if( duration )
   {   	  
      var date = new Date();
	  var curTime = new Date().getTime();

	  date.setTime(curTime + (1000 * 60 * duration));
	  this.affix = "; expires=" + date.toGMTString();
   }
   
   if( path )
   {
      this.affix += "; path=" + path;
   }
   
   if( domain )
   {
      this.affix += "; domain=" + domain;
   }

   if( secure )
   {
      this.affix += "; secure=" + secure;
   }
   
      
   function getValue()
   {
      var m = document.cookie.match(new RegExp("(" + name + "=[^;]*)(;|$)"));

      return m ? m[1] : null;   
   }
   
   this.cookieExists = function()
   {
      return getValue() ? true : false;
   }
      
   this.expire = function()
   {
      var date = new Date();
	  date.setFullYear(date.getYear() - 1);
	  document.cookie=name + "=noop; expires=" + date.toGMTString(); 
   }
        
   this.setSubValue = function(key, value)
   {
      var ck = getValue();

      if( /[;, ]/.test(value) )
      {
         //Mac IE doesn't support encodeURI
		 value = window.encodeURI ? encodeURI(value) : escape(value);
      }

      
      if( value )
      {
         var attrPair = "@" + key + value;

         if( ck )
         {
             if( new RegExp("@" + key).test(ck) )
	         {
		        document.cookie =
				   ck.replace(new RegExp("@" + key + "[^@;]*"), attrPair) + this.affix;
	         }
	         else
	         {
		        document.cookie =
				   ck.replace(new RegExp("(" + name + "=[^;]*)(;|$)"), "$1" + attrPair) + this.affix;
	         }
         }
         else
         {
	        document.cookie = name + "=" + attrPair + this.affix;
         }
      }
      else
      {      
	     if( new RegExp("@" + key).test(ck) )
	     {
	        document.cookie = ck.replace(new RegExp("@" + key + "[^@;]*"), "") + this.affix;
	     }
      }
   }

      
   this.getSubValue = function(key)
   {
      var ck = getValue();

      if( ck )
      {
         var m = ck.match(new RegExp("@" + key + "([^@;]*)"));

	     if( m )
	     {
	        var value = m[1];

	        if( value )
	        { 
	           //Mac IE doesn't support decodeURI
			   return window.decodeURI ? decodeURI(value) : unescape(value);
	        }
	     }
      }
   }
}

window.onload = function()
{
	initSiteMap();
}

function initSiteMap()
{
    //Collapse Site Map
    var oSiteMap = document.getElementById("SiteMap");
    oSiteMap.id = 'SiteMapCollapse';
    
    //Add open all and close all links
    var oSiteMapHolder = document.getElementById("SiteMapHolder");
    var AllLinks = '\n\t' + '<div class="leftSide ocLinkHolder"><a href="javascript:fnOpenAll();" title="Open Site Map">Open Site Map</a></div>'
    + '\n\t' + '<div class="rightSide ocLinkHolder"><a href="javascript:fnCollapseAll();" title="Collapse Site Map">Collapse Site Map</a></div>'
    + '\n\t' + '<div class="clear">&nbsp;</div><br />';
    
    oSiteMapHolder.innerHTML = AllLinks +  oSiteMapHolder.innerHTML;
}

//-->