﻿// JScript File
//<!--
function fnShowChildren(iNode, strText)
{
	document.getElementById('unique' + iNode).style.display='block';
	document.getElementById('plusMinus' + iNode).innerHTML='<div onClick="fnHideChildren('+iNode+',\'' + strText + '\');">' + strText + '</div>';
	fnCookieAddOpenNode(iNode);
}

function fnHideChildren(iNode, strText)
{
	document.getElementById('unique' + iNode).style.display='none';
	document.getElementById('plusMinus' + iNode).innerHTML='<div onClick="fnShowChildren('+iNode+',\'' + strText + '\');">' + strText + '</div>';
	fnCookieRemoveOpenNode(iNode);
}

// JAVASCRIPT COOKIE HANDLING TO RECALL TREE STATE

var oTreeCookie = new CJL_CookieUtil('GreenBlacksTreeCookie', 43200, '/');	// 43200 minutes = 1 Month
var sOpenNodes = oTreeCookie.getSubValue('OpenNodes');

//This bit added by Pete so that the navigation will start fully open if javascript is disabled

var LeftNavigationUL = document.getElementById("LeftNavigation");
var aLeftNavChildren = LeftNavigationUL.getElementsByTagName('ul');

for (iLoopCount = 0; iLoopCount < aLeftNavChildren.length; iLoopCount++)
{
    var aClasses = aLeftNavChildren[iLoopCount].className.split(" ");
    for (iClassCount = 0; iClassCount < aClasses.length; iClassCount++)
    {
        if (aClasses[iClassCount] == 'hide')
        {
            aLeftNavChildren[iLoopCount].style.display = "none";
            break;
        }
    }
}

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);
	        }
	     }
      }
   }
}

//-->