var mainNavHolder="mainNav";
var hiddenFormFieldId="ctl00_hdnNavOpenItems";

// Configuration 
var nm_config = { 
    persistance    : true,      // Toogle cookie-based persistence 
    images        : true,       // Toggle list-style-image support 
    is            : new nm_bs(),// Browser sniffer object 
    count        : 0,           // Placeholder for counting 
    parseType    : null,        // Placeholder for open/save parsing type 
    operation    : null         // Placeholder for operation type 
}

function isDefined(variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function linkclick(e)
{
    var unicode;
    if(isDefined("e.keyCode")) {
        unicode = e.keyCode;
    } else if(isDefined("e.charCode")) {
        unicode = e.charCode;
    } else {
        unicode = 0;
    }

  if((unicode==13)||(unicode==null)||(unicode==0)){
     var eSrcLink;
     var eSrcLinkId;
     
     //mask events for multi browser compatibility.  
     if (window.event) e = window.event;  eSrcLink = e.srcElement? e.srcElement : e.target; 
     
     // remove hierarchichal _ joined asp.net control hierarchichal parts
     eSrcLinkParts=eSrcLink.id.split("_");
     eSrcLinkId=eSrcLinkParts[eSrcLinkParts.length-1];
      
     if (eSrcLinkId != "")
     {
     //alert("source id not blank");
      var eSrc = document.getElementById(eSrcLinkId + "node");
      var hiddenElement=document.getElementById(hiddenFormFieldId);
      var strElement = hiddenElement.value;

      var arrElements = strElement.split(",");	
      if (eSrc != null)
      {
	    if (eSrc.className == "treeviewNavItemClosed")
	    {
		    arrElements[arrElements.length]=eSrcLinkId;
		    var strFinishedElements=arrElements.join(",");
		    document.getElementById(hiddenFormFieldId).value=strFinishedElements;
		    // set the parent li class to open
		    eSrc.className="treeviewNavItemOpen";
		    node=document.getElementById('mainNav');
		    // reload the main navigation div element to clear Firefox display bugs
		    //node.style.display="none";
    	    //node.style.display="block";
	    }
	    else if(eSrc.className == "treeviewNavItemOpen")
	    {	  
		    for (i=0; i < arrElements.length; i++) 
		    {
			    if (eSrcLinkId == arrElements[i])
			    {
				    removed=arrElements.splice(i,1);
				    var strFinishedElements=arrElements.join(",");
				    document.getElementById(hiddenFormFieldId).value=strFinishedElements;
			    }
		    }
		    // set the parent li class to closed
		    eSrc.className="treeviewNavItemClosed";
		    node=document.getElementById('mainNav');
		    
		    // reload the main navigation div element to clear Firefox display bugs
		    //node.style.display="none";
    	    //node.style.display="block";
	    }
      }
     }
   }
   if (unicode==9){
    return unicode;
   }
   else {
    return false;
   }
}
function onLoadMethod()
{
	initialiseMenu('treeNav0List0');
	//attachHover(document.getElementById("resultstable"));
	//attachClick(document.getElementById("attachments"), null, null);
}

// InitialiseMenu
initialiseMenu = function ( id ) 
{ 
	node=document.getElementById(id);
	// reload the main navigation div element to clear Firefox display bugs
    if ( !nm_config.is.dom || nm_config.is.mac ) return; 
    var menu = document.getElementById( id ); 
    if ( menu == null ) return; 
        
    if ( nm_config.is.norm ) menu.normalize(); 
    
    // recursive menu build
    closeItems( menu, "UL" );

	var arrElementsClosedNav=document.getElementsByClassName("treeviewNavItemClosed");
    var arrElementsOpenNav=document.getElementsByClassName("treeviewNavItemOpen");

    var hiddenElement=document.getElementById(hiddenFormFieldId);
    var strElement = hiddenElement.value;
	var arrElements = strElement.split(",");
	
	//attach key click events   
    for (i=0; i < arrElementsClosedNav.length; i++) 
	{
	    //arrElementsClosedNav[i].onclick=function(e){linkclick(e);};    
	    arrElementsClosedNav[i].onkeypress=function(e){linkclick(e);};    

	}                                                                                                                       
    for (i=0; i < arrElementsOpenNav.length; i++) 
	{	
        arrElementsOpenNav[i].onclick=function(e){linkclick(e);};        
        arrElementsOpenNav[i].onkeypress=function(e){linkclick(e);}; 
    }
    for (i=0; i < arrElements.length; i++) 
	{	
		if (arrElements[i].length > 0){
			node=document.getElementById(arrElements[i] + "node");
			node.className="treeviewNavItemOpen";
		}
	}     
}


function init() {
    initialiseMenu('nav0List0');
}
function initMaps() {
    load();
    initialiseMenu('nav0List0');

}
window.onload=init;

// Closed all nodes and hides child ul lists
function closeItems( oNode, type ) 
{
    var i = 0;
    while( i < oNode.childNodes.length ) 
    { 

        var currNode = oNode.childNodes[i]; 
        if ( currNode.childNodes.length > 0 ) 
            closeItems( currNode, type ); 
        if ( currNode.nodeName == type ) 
        { 
			// hide item
			//currNode.style.display="none";
			// set the className of the ul's parent li to closed
			oNode.className="treeviewNavItemClosed";
        }
        i++; 
    }
	navNode=document.getElementById('mainNav');
	// reload the main navigation div element to clear Firefox display bugs
	//navNode.style.display="none";
	//navNode.style.display="block";
} 

// Closed all nodes and hides child ul lists
function closeItemChildren( oNode, type ) 
{
    var i = 0;
    if(oNode!=null)
    {
		while( i < oNode.childNodes.length ) 
		{ 
			var currNode = oNode.childNodes[i]; 
			if ( currNode.childNodes.length > 0 )
				closeItemChildren( currNode, type ); 
			if ( currNode.nodeName == type ) 
			{
				// hide item
				currNode.style.display="none";
			}
			i++; 
		}
    }
} 

// Closed all nodes and hides child ul lists
function toggleItemVisibility( oNode, type ) 
{
    var i = 0;
    while( i < oNode.childNodes.length ) 
    { 
        var currNode = oNode.childNodes[i]; 
        if ( currNode.childNodes.length > 0 )
        {
            toggleItemVisibility( currNode, type); 
			if ( (currNode.nodeName == type) && (currNode.style.display=="block"))
			{ 
				currNode.style.display="none";
			} 
			else if ((currNode.nodeName == type) && (currNode.style.display=="none"))
			{ 
				currNode.style.display="block";
			}  
		}
		i++;
    }
}
function attachHover(tableparent) 
{
	// Find the Results table
	if(tableparent!=null)
	{
		//tableparent has only one child, which is the TBody tag
		var table = tableparent.firstChild;
		//start at 1 to ignore the header row
		for(i = 1; i < table.childNodes.length; i++)
		{
			table.childNodes[i].onmouseover=function(){this.className+=" over";}
			table.childNodes[i].onmouseout=function() {this.className=this.className.replace(" over", "");}
		}
	}
}
function attachClick(oNode, parentType, childType) {
    if(oNode != null)
    {
		var i = 0;
		while( i < oNode.childNodes.length ) 
		{	
			node = oNode.childNodes[i];
			if ( node.childNodes.length > 0 )
			{
				if (node.nodeName == "UL")
				{
					node.onclick=function() {
						toggleItemVisibility(this,"LI");
					}
					node.onrightclick=function() {
						toggleItemVisibility(this,"LI");
					}
				}
				attachClick( node, parentType, childType ); 
			}
			i++;
		}
	}
} 
// Browser sniffer constructor 
function nm_bs() 
{ 
    this.dom     = Boolean( document.getElementById ); 
    this.ie     = Boolean( document.all ); 
    this.gecko     = Boolean( ( navigator.product ) && ( navigator.product.toLowerCase()=="gecko" ) ); 
    this.norm     = Boolean( document.normalize ); 
    this.mac     = Boolean( navigator.userAgent.indexOf("Mac") > -1 ); 
} 
function toggleNavDisplay() 
{
	node=getElementById('htgBody');
	if (node.className=="mainView"){
		node.className="toggledView";
	}
	else {
		node.className="mainView";
	}
	return false;
}

function GetChildElem(eSrc,sTagName)
{
 var cKids = eSrc.childNodes;
 
  for (var i=0; i<cKids.length;i++)
  {
   if (sTagName == cKids[i].tagName) return cKids[i];
  }
  return false;
}


function CJL_getCurrentStyle(elem, prop)
{
   if( elem.currentStyle )
   {  
      var ar = prop.match(/\w[^-]*/g);
      var s = ar[0];
      
      for(var i = 1; i < ar.length; ++i)		   
      {
         s += ar[i].replace(/\w/, ar[i].charAt(0).toUpperCase());
      }
           
      return elem.currentStyle[s]
   }
   else if( document.defaultView.getComputedStyle )
   {
      return document.defaultView.getComputedStyle(elem, null).getPropertyValue(prop);
   }
}
