var NavArray = new Array();
var NavArrayID = new Array();
var x;
var NavTables = new Array();    
var NavImages = new Array();
var table_login;
var NavBarTables = new Array();
    
window.onload=function()
{
    if (window.ActiveXObject)
    {// code for IE
       // alert("ie");
    }
    else if (document.implementation.createDocument)
    {// code for Mozilla, Firefox, Opera, etc.
        //alert("non ie");
        //document.write("non ie");
    }
    else
    {
    alert('Your browser cannot handle this script');
    }
    //Register all the mouse events
    registerMouseEvents();
    
    //create the navigation dropdown
    createNavDD();
    
    //Create the top nav dropdown
//    createLoginData();
   
    //highlight();
    
    //Highlight the current page in the nav buttons
    CurrentPath();
   
	
}
function CurrentPath()
{
    var path, mainNav, nav;
    //alert(location.pathname);
    path = location.pathname;
    
    for (x in NavArray)
    {
        nav = NavArrayID[x].substring(4,NavArrayID[x].length);
        var patt1=new RegExp(nav);
        if(patt1.test(path))
        {
            //alert(NavArray[x].substring(0, NavArray[x].length - 4) + "_ac.gif");
            document.getElementById(NavArrayID[x]).src = NavArray[x].substring(0, NavArray[x].length - 4) + "_ac.jpg"; 		
        } 
        
    }
    
    //document.getElementById(NavArrayID[x]).src = NavArray[x].substring(0, NavArray[x].length - 4) + newSrc; 		
}

function highlight(event) {
			if (!event) var event = window.event;
alert(event.type);

    var tg = (window.event) ? event.srcElement : event.target;
    var reltg = (event.relatedTarget) ? event.relatedTarget : event.toElement;
//    alert("source: " + tg.id);
//      alert("out: " + reltg.id);
//				if (!event) return;
//				
//				var img = event.getElementsByTagName('img')[0];
//				var src = img.src;
//				alert(src);
}
function registerMouseEvents()
{

    var imgs,i, tds;
    
    //Create mouse events for nav blocks
    imgs=document.getElementsByTagName('img');
    for(i=0;i<imgs.length;i++)
    {
        if(imgs[i].className == 'gs_nav_hdr_img')
        {
	        NavArray[i] = imgs[i].src;
	        NavArrayID[i] = imgs[i].id;	 
	        imgs[i].parentNode.onmouseover=function(){highlightNav(this);};
	        imgs[i].parentNode.onmouseout=function(event){revertNav(event)};
	        //imgs[i].parentNode.onblur=function(){CurrentPath();};
        }
    }
    document.getElementById('nav_hdr').onmouseout=function(event){revertNav(event);};
    //document.getElementById('nav_item1_DD').onmouseout=function(){removeNavDD(event);};

    tds=document.getElementsByTagName('td');
    
    for(i=0;i<tds.length;i++)
    {
        if(tds[i].className == 'main_table_row')
        {
            //alert(tds[i].id);
            tds[i].onmouseover=function(){highlightTd(this);};
            tds[i].onmouseout=function(){revertTd(this);};
        }
    }
    
//    var divs=document.getElementsByTagName('div');
//    
//    for(i=0;i<divs.length;i++)
//    {
//        if(divs[i].className == 'nav_item_title')
//        {
//        //alert(tds[i].id);
//            divs[i].onmouseover=function(){showLogin(this);};
//            divs[i].onmouseout=function(event){removeLogin(event);};
//        }
//    }
//        
//    document.getElementById('nav_login_dd').onmouseout=function(event){removeLogin(event);};
//    document.getElementById('nav_ww_dd').onmouseout=function(event){removeLogin(event);};
}



function showLogin(element)
{   
    var i, nownode, imgSrc, newSrc, dd;
    nownode=element;
   // alert(nownode.innerText);
    document.getElementById('darkenback').style.zIndex = 450;
    document.getElementById('nav_hdr').style.zIndex = 400;
    //alert("ober");
    
    var divs=document.getElementsByTagName('div');
    
    for(i=0;i<divs.length;i++)
    {
        if(divs[i].className == 'nav_item_DD')
        {
        //alert(tds[i].id);
            divs[i].style.visibility = 'hidden';
            
        }
    }
    
    for (x in NavBarTables)
    {   
        
        dd= nownode.id + "_dd";
        
       /// alert(dd);
        if (NavBarTables[x].id == (nownode.innerText))
        {
            
            
            document.getElementById(dd).appendChild(NavBarTables[x]);
            
            document.getElementById(dd).style.visibility = 'visible';
                
        }
        
        
            
   }
    //document.getElementById('nav_login').appendChild(NavBarTables[0]);
    //document.getElementById('darkenback').style.zIndex = 520;
    //document.getElementById('nav_login').style.visibility = 'visible';
}

function removeLogin(event)
{   
    //alert("sss");
    
     if (!event) var event = window.event;

    try{
    var tg = (window.event) ? event.srcElement : event.target;
    var reltg = (event.relatedTarget) ? event.relatedTarget : event.toElement;
    //alert("source: " + tg.id);
    //  alert("out: " + reltg.id);
    //if (reltg.id == 'head' )
    if (reltg.id == 'darkenback'  )
    {
        //for (x in NavBarTables)
        //{   
            
          //  var dd= NavBarTables[x].id + "_dd";
           // alert(dd);
            document.getElementById('nav_ww_dd').style.visibility = 'hidden';
            document.getElementById('nav_login_dd').style.visibility = 'hidden';
            
       //}
       document.getElementById('darkenback').style.zIndex = -400;
       document.getElementById('nav_hdr').style.zIndex = 500;
    }
    }
    catch(err)
    {
    }
}

//Show Navigation dropdown
function highlightNav(element)
{
    //alert("h" + event.type);
    var i, nownode, imgSrc, newSrc, dd;
    
    nownode=element.childNodes[0];
    imgSrc = document.getElementById(nownode.id).src;
    //alert(imgSrc);
    //Darken the page
//    document.getElementById('nav_bar').style.zIndex = 400;
	document.getElementById('darkenback').style.zIndex = 450;
	
	//Set the mouse over images
    for (x in NavArray)
    {
        newSrc = (nownode.id == NavArrayID[x])?"_ov.jpg":"_in.jpg";
        document.getElementById(NavArrayID[x]).src = NavArray[x].substring(0, NavArray[x].length - 4) + newSrc; 		
    }
    
    dd = document.getElementById('nav_item1_DD');
   
    //Remove any previous data in the dropdown
    while (dd.childNodes[0])  {    dd.removeChild(dd.childNodes[0]);  }
    //alert (NavTables.length );
    //Add the table 
    for (x in NavTables)
    {
        //alert(NavTables[x].id);
        if (NavTables[x].id == ("tab_" + nownode.id))
        {
            
            document.getElementById('nav_item1_DD').appendChild(NavTables[x]);
        }
   }
   
   //Add the images
   //alert(NavImages.length);
   for (x in NavImages)
    {
       // alert (NavTables[x])
        if (NavImages[x].id == ("tab_" + nownode.id))
        {
            document.getElementById('nav_item1_DD').appendChild(NavImages[x]);
                
        }
   }
   document.getElementById('nav_item1_DD').style.width = 302;
   //Show the dropdown
   var tds;
   tds = document.getElementById('nav_item1_DD').getElementsByTagName("td").length;
   //alert(tds);
   if (tds > 0)
   {
       dd.style.visibility = 'visible';
   }
   else
   {
       dd.style.visibility = 'hidden';
   }
    
    
  
}


function revertNav(e)
{
    
    
//    if (window.ActiveXObject)
//    {// code for IE
//        alert("ie");
//        alert("r " +  event.type);        
//    }
//    else if (document.implementation.createDocument)
//    {// code for Mozilla, Firefox, Opera, etc.
//        alert("non ie");
//        alert("r " +  a.type);        
//        //document.write("non ie");
//    }
//    else
//    {
//    alert('Your browser cannot handle this script');
//    }
            
    
                
    //alert("r" +  window.event.type);
    var dd;
    //e = (e) ? e : ((window.event) ? window.event : "")

    if (!e) var e = window.event;
    
    try
    {    
    var tg = (window.event) ? e.srcElement : e.target;
    var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
    //alert("source: " + tg.id);
    //  alert("out: " + reltg.id);
    //if (reltg.id == 'head' )
    if (reltg.id == 'darkenback'  )
    {
        //if ( reltg.id != 'nav_item1_DD' || tg.id == 'nav_hdr'  )
        {
            document.getElementById('darkenback').style.zIndex = -400;
//            document.getElementById('nav_bar').style.zIndex = 500;
            for (x in NavArray)
            {
	            document.getElementById(NavArrayID[x]).src = NavArray[x];
            }
            CurrentPath();
            dd = document.getElementById('nav_item1_DD');
            dd.style.visibility = 'hidden';
            //while (dd.childNodes[0])  {    dd.removeChild(dd.childNodes[0]);  }
        }
    }
    }
    catch(err)
    {   
       // alert(err.description );
    }
}



function removeNavDD(event)
{	
revertNav(event)
//        
//	        var dd;
//	        var tg = (window.event) ? event.srcElement : event.target;
//	        var reltg = (event.relatedTarget) ? event.relatedTarget : event.toElement;
//	        //if (tg.nodeName != 'DIV') return;
//	        alert( tg.id );
//	        if (reltg.parentNode.id != 'nav_item1_DD' )
//	        {
//		        //dd = document.getElementById('nav_item1_DD');
//		        //dd.style.visibility = 'hidden';
//                revertNav(event)
//	        }
}

//Create the navigation dropdowns
function createNavDD()
{
    var xmlDoc=null, j, k, a;
    if (window.ActiveXObject)
    {// code for IE
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    }
    else if (document.implementation.createDocument)
    {// code for Mozilla, Firefox, Opera, etc.
        xmlDoc=document.implementation.createDocument("","",null);
    }
    else
    {
        alert('Your browser cannot handle this script');
    }
    if (xmlDoc!=null)
    {
        xmlDoc.async=false;
        xmlDoc.load("css.xml");
        
        var items=xmlDoc.getElementsByTagName("nav");        
        var elements, data, columns, rows, maxRows;
        var dataArray = new Array();
        var linkArray = new Array();
        var columnArray = new Array();
        var imageSrcArray = new Array();
        var imageLinkArray = new Array();
        var cellwidth =0;
        //alert(items.length);
        var images;
       
        for (i=0;i<items.length;i++)
        {
            
            if (items[i].getElementsByTagName("table").length > 0 )
            {
            
            
                a=0;
                var table1=document.createElement("table");
                table1.id="tab_" + items[i].getElementsByTagName("id")[0].childNodes[0].nodeValue ;
                maxRows = 0; 
              
                //Get the number of columns
                columns = items[i].getElementsByTagName("elements");
                cellwidth = (100 / columns.length);
                   
                //For each column get the number of rows
                for (j =0; j < columns.length; j++)
                {   
                    
                    //number of rows
                    rows = columns[j].getElementsByTagName("items");
                    columnArray[j]=rows.length;
                    
                    if (maxRows < rows.length)
                    maxRows = rows.length;
                    
                    //alert("rows" + rows.length);
                    for (k = 0; k< rows.length; k++)
                    {
                        dataArray[a] = rows[k].getElementsByTagName("data")[0].childNodes[0].nodeValue;
                        linkArray[a] = rows[k].getElementsByTagName("link")[0].childNodes[0].nodeValue;
                        //alert(rows[k].getElementsByTagName("link")[0].childNodes[0].nodeValue);     
                        a++;
                    }//for (k = 0; k< rows.length; k++)
                    
                    //alert("R" + rows.length); 
                }//for (j =0; j < columns.length; j++)
                
                var subArray = new Array();
                subArray[0]=0;
                for (k =1; k < columnArray.length; k++)
                {
                    //alert(maxRows + " " + columnArray[k])
                    subArray[k] =   maxRows - columnArray[k -1 ] + subArray[k -1];
                }//for (k =1; k < columnArray.length; k++)
                
                a=0;
                //create the rows and cells
              for (k =0; k < maxRows; k++)
              {
                //alert("into create rows");
                  var tmpRow = null;
                  var tmpCell = null;
                  var tmpLink = null;
                  var count =0;    
                    
                  //Create the row
                  tmpRow=table1.insertRow(k);
                  for (j =0; j < columns.length; j++)
                  {
                      //Add the cell for each column
                      tmpCell=tmpRow.insertCell(j);
                      tmpCell.id = "td_" + k + j;
                      tmpCell.width =cellwidth + "%"; //assign the width of the cell
                         

                      count = ((j * maxRows) + k) - subArray[j];
                      //Add data into the cell
                      if (columnArray[j] > 0)
                      { 
                          tmpCell.innerHTML = "<div class='dd_ul'><a href='" + linkArray[count] + "'>" +  dataArray[count] + "</a></div>";
                          columnArray[j]--;
                      }//if s(columnArray[j] > 0)
                      else
                          tmpCell.innerHTML = "";
                     
                  }//for (j =0; j < columns.length; j++)       
                }//for (k =0; k < maxRows; k++)
                //Add the new table to the array
                NavTables[i] = table1;

            }
            else
                NavTables[i] = "";
            
            if (items[i].getElementsByTagName("image").length > 0)
            {
            
            
                var tmpRow = null;
                var tmpCell = null;
                images = items[i].getElementsByTagName("images");
                var table1=document.createElement("table");
                table1.id="tab_" + items[i].getElementsByTagName("id")[0].childNodes[0].nodeValue ;
                tmpRow=table1.insertRow(0);
                
                
                for (k = 0; k< images.length; k++)
                {
                    tmpCell=tmpRow.insertCell(k); 
                    tmpCell.innerHTML = "<a href='" + images[k].getElementsByTagName("link")[0].childNodes[0].nodeValue + "'><img src='" +   images[k].getElementsByTagName("data")[0].childNodes[0].nodeValue + "'></a>";
                    imageSrcArray[k] = images[k].getElementsByTagName("data")[0].childNodes[0].nodeValue;
                    imageLinkArray[k] = images[k].getElementsByTagName("link")[0].childNodes[0].nodeValue;
                    //alert(rows[k].getElementsByTagName("link")[0].childNodes[0].nodeValue);     
                   // alert(imageSrcArray[k]);
                }
                NavImages[i] =    table1;
                
            }//if (items[i].getElementsByTagName("image").length > 0)
            else   
                NavImages[i] =  "";
         }
        
     }

}//function createNavDD()


function highlightTd(element)
{
var child;
    //alert("over: " +  element.id);
    document.getElementById(element.id).style.background = "#282A65";
    document.getElementById(element.id).style.color = "#fff";
    //document.getElementById(element.id)[0].childNodes[0].childNodes[0].style.color = "#fff";
    child = document.getElementById(element.id).childNodes[0].childNodes[0];
    //alert(child.id);
    document.getElementById(child.id).style.color = "#fff";
    
}

function revertTd(element)
{
    var child;
    document.getElementById(element.id).style.background = "none";
    child = document.getElementById(element.id).childNodes[0].childNodes[0];
    //alert(child.id);
    document.getElementById(child.id).style.color = "#282A65";
}

function createLoginData()
{

     var xmlDoc=null, j, k;
    if (window.ActiveXObject)
    {// code for IE
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    }
    else if (document.implementation.createDocument)
    {// code for Mozilla, Firefox, Opera, etc.
        xmlDoc=document.implementation.createDocument("","",null);
    }
    else
    {
    alert('Your browser cannot handle this script');
    }
    if (xmlDoc!=null)
    {
        xmlDoc.async=false;
        xmlDoc.load("nav.xml");
        
        var items=xmlDoc.getElementsByTagName("nav");        
        var elements, data;
        
        for (i=0;i<items.length;i++)
        {
            var table1=document.createElement("table");
            table1.id= items[i].getElementsByTagName("id")[0].childNodes[0].nodeValue ;
            elements = items[i].getElementsByTagName("element");
//                    alert(elements.length);
            for (j =0; j < elements.length; j++)
            {
                var tmpRow = null;
                var tmpCell = null;
                var tmpLink = null;    
                tmpRow=table1.insertRow(j);
                tmpCell=tmpRow.insertCell(0);
                tmpCell.innerHTML = "<a href='" + elements[j].getElementsByTagName("link")[0].childNodes[0].nodeValue + "'>" +
                elements[j].getElementsByTagName("link")[0].childNodes[0].nodeValue + "</a>";
                                    }
            NavBarTables[i] = table1;
            
        }

     }

}
