/*
   Milonic Tree Menu - Tree Menu Version 2.1 - October 9 2007

   Copyright 2007 (c) Milonic Solutions Limited. All Rights Reserved.
   This is a commercial software product, please visit http://www.milonic.com/ for more information.
   
   SYNTAX: <script type="text/javascript" src="/treemenu.js"></script>
*/


function SetCookie(name, value) 
{  

	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	//var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	var path = "/"; //allows the tree to remain open across pages with diff names & paths

    // name = CookieBranding(name)
	//alert('    '+value);
	
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
	
	var temString = document.cookie;
	//alert (temString );
}

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();
}

function GetCookie(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));
}


_d=document

function _gO(o){
	return _d.getElementById(o)
}

function tI(i){
	return "<img src="+i+">";
}

function sA(a,b,c){
	a.setAttribute(b,c)
}


function gA(a,b){
	return a.getAttribute(b)
}

function gE(a,b)
{
	return a.getElementsByTagName(b)
}

function _aTree(o,cookieVal)
{
	var pNode,aa,nostart,begin,bb,i
	pNode=o.parentNode
	aa=gE(pNode,"UL")
	/* Need to tidy this bit up */
	
	nostart=pNode.nextSibling
	nostart=null
	if(window.createPopup){
		if(pNode.nextSibling)nostart=pNode.nextSibling;
	}
	else{
		if(pNode.nextSibling.nextSibling)nostart=pNode.nextSibling.nextSibling
	}
	/* ************************/
	
	begin=0
	if(!nostart&&!pNode.previousSibling)begin=1
	if(aa[0])
	{		
		SetCookie('parentClick_'+aa[0].id,aa[0].id) ;
		
			if(aa[0].style.display=="block")
			{
				aa[0].style.display="none";
				_src=endColImage;
				if(nostart)_src=branchColImage
				if(begin)_src=startImage;
			}
			else
			{
				if(!gA(aa[0],"drawn"))
				{
					bb = gE(aa[0],"LI");
					dep=gA(bb[0],'depth')
					
					var sandy = GetCookie('parentClick_'+aa[0].id);

					if(sandy == aa[0].id && sandy != '')
					{
						var test1 = aa[0].id;
						document.getElementById(test1).style.display = 'block';
					}
						
					for (i=0; i<bb.length; i++)
					{
						if(gA(bb[i],'depth')==dep)
						bb[i].innerHTML=gA(bb[i],'treeimages')+bb[i].innerHTML
					}
				}
				_src=endExpImage;
				if(nostart)_src=branchExpImage;
				if(begin)_src=startExpImage;
				aa[0].style.display="block";	
				sA(aa[0],"drawn",1)
			}
			o.src=_src
		
	}
	return false
}

function _nS(o)
{
	do o=o.nextSibling;
	while(o&&o.nodeType!=1);
	return o;
}

$lines=[];

function initTree(o,initCookieVal)
{
	SetCookie('createTree','On');
	var initCookieVal = GetCookie('createTree');
	var aa,i,b,$lastImage,$prefix,defIm,img,x,last
	_t=_gO(o)
	aa = gE(_t,"LI");
	for (i=0; i<aa.length; i++) 
	{	
		defIm=""
		img=branchImage
		if(!_nS(aa[i]))img=endImage //This is the last item for the UL
				
		if(gE(aa[i],"LI").length>0){
			defIm=""
			img=branchColImage
			
			//alert(aa[i].nextSibling +" - " + document.all+" - " + document.opera);
			/* Need to tidy this bit up */
			last=null
			if(window.createPopup){
				if(!aa[i].nextSibling)last=aa[i];
			}
			else{
				if(!aa[i].nextSibling.nextSibling)last=aa[i].nextSibling
			}
			
			if(last){				
				img=endColImage
				if(!aa[i].previousSibling)img=startColImage // This is the very first item in the tree
			}
			/* ************************/
			img+=" onclick=_aTree(this,'+initCookieVal+')";
			//SetCookie('sandy', this);
		}
		$prefix="";
		$lastImage=tI(img)

		for (b=0; b< $lines.length; b++){if($lines[b]==1)$prefix+=tI(truckImage); else $prefix+=tI(transparentImage)}
		if(i==0)
		{	$lastImage="";
			//alert(1);
			defIm = "";	
		}
		if(defIm == "")
		{
			defIm=defIm
		}
		else
		{
			defIm=tI(defIm)		
		}
		if(gE(aa[i],"IMG").length)defIm=""
		sA(aa[i],'treeimages',$prefix+$lastImage+defIm)
		sA(aa[i],'depth',$lines.length)		
		if(gE(aa[i],"LI").length>0) {
			if(!_nS(aa[i]))$lines[$lines.length]="0"; else $lines[$lines.length]="1"
		}
		else{
			if(!_nS(aa[i])){
				for(x=0;x<$lines.length;x++)if($lines[$lines.length-1]==0)$lines=$lines.slice(0,$lines.length-1)
				$lines=$lines.slice(0,$lines.length-1)
			}
		}
	}
	aa = gE(_t,"UL");

	if(initCookieVal == 'On')
	{
		_aTree(aa[0],'On');
	}
	else
	{
		_aTree(aa[0],'Off');
	}
}
