

function nav_DisableSelection() {
  document.onselectstart = new Function ('return false');
}

function nav_EnableSelection() {
  document.onselectstart = new Function ('return true');
}

/*
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  TOP NAV SCRIPTS
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*/

var _selectedRows = new Array("", "", "", "", "", "", "", "");
var _currentDepth = "0";

//Update global arrays with new data.
function tnav_SetData(id, depth) {
  if(_selectedRows)
    _selectedRows[depth] = id;
    
  if(_currentDepth)
    _currentDepth = depth;
}

//Performed when a menuitem has been clicked.
function tnav_DoClick(id, depth, url, target){
  if(url) {
    tnav_DoNavigate(url, target);
  }
  else {
    tnav_UpdateMenu(id, depth);
  }
}

//If there was no link on the menu item, update menu on client.
function tnav_UpdateMenu(id, depth) {
  if(_selectedRows[depth] == "" && _currentDepth <= depth) {
    tnav_DoActivate(id, depth);    
  }
  else {    
    if(_currentDepth >= depth)
      tnav_DoClearOldLevels(depth);
    
    tnav_DoActivate(id, depth);
  } 
  tnav_SetData(id, depth);
}

//Navigate to target url.
function tnav_DoNavigate(url, target) {
	if (url != '') {	  
	  if (!target || target == '') {	  
		  window.open(url, '_self');
		}
		else {		  
  	  window.open(url, target);
	  } 
	}
}

//Clears any previously selected items and hides any menu div that should not be shown.
function tnav_DoClearOldLevels(depth) {  
  var i = _currentDepth;  
  
  while(i >= depth) {
    
    if(_selectedRows[i] != "")
      tnav_DoDeActivate(_selectedRows[i], i);
    
    _selectedRows[i] = "";
      
    i--;
  }  
}

//Ativates a menuitem and submenu.
function tnav_DoActivate(id, depth) {
  var menudiv = tnav_GetMenuDiv(id);
  var table   = tnav_GetTable(id);
  
  if(table) {     
    table.className="m"+depth+"selected";
  }
  
  if(menudiv) {
    menudiv.style.display="";
  }
}

//Deactivates a menuitem and submenu.
function tnav_DoDeActivate(id, depth) {
  var menudiv = tnav_GetMenuDiv(id);
  var table   = tnav_GetTable(id);
  
  if(table) {     
    table.className="m"+depth;
  }
  
  if(menudiv) {
    menudiv.style.display="none";
  }
}

function tnav_GetMenuDiv(id){
  return document.getElementById("d"+id);
}

function tnav_GetTable(id) {
  return document.getElementById("t"+id);
}

/*
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  RIGHT NAV SCRIPTS
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*/
var _rnav_MaxDepth = 10;

function rnav_DoClick(menuid, id, depth, url, target) {

  if(url) {
    tnav_DoNavigate(url, target);
  }
  else {
    rnav_UpdateMenu(menuid, id, depth);
  }
}

//If there was no link on the menu item, update menu on client.
function rnav_UpdateMenu(menuid, id, depth) {
  if(rnav_GetSelected(menuid, depth) == "" && rnav_GetCurrentDepth(menuid) <= depth) {
    rnav_DoActivate(id, depth);    
    rnav_SetData(menuid, id, depth);
  }
  else {
    rnav_DoClearOldLevels(menuid, depth);
    
    if(rnav_GetSelected(menuid, depth) == id) {         
      rnav_DoDeActivate(id, depth);      
      rnav_SetSelected(menuid, depth, "");
      rnav_SetCurrentDepth(menuid, depth);                   
    }
    else {       
      rnav_DoDeActivate(rnav_GetSelected(menuid, depth), depth);      
      rnav_SetData(menuid, id, depth);
      rnav_DoActivate(id, depth); 
    }
  }   
}

//Clears any previously selected items and hides any menu div that should not be shown.
function rnav_DoClearOldLevels(menuid, depth) {  
  var i = _rnav_MaxDepth;
  
  while(i > depth) {    
    if(rnav_GetSelected(menuid, i) != "")
    {
      rnav_DoDeActivate(rnav_GetSelected(menuid, i), i);
      rnav_SetSelected(menuid, i, "");
    }       
    i--;
  }  
}

//Sets current listitem as selected and shows its submenuitems.
function rnav_DoActivate(id, depth) {
  var div = rnav_GetDiv(id);
  var li  = rnav_GetLi(id);
  
  var listr       = "li" + depth;
  var selectedstr = "selected" + depth;
   
  if(div)   
    div.style.display = ""; 
    
  if(li)  
    li.className.replace(listr, selectedstr);
}

//Deselects current listitem and hides its submenuitems.
function rnav_DoDeActivate(id, depth) {
  var div = rnav_GetDiv(id);
  var li  = rnav_GetLi(id);
  
  var listr       = "li" + depth;
  var selectedstr = "selected" + depth;
  
  if(div) 
    div.style.display = "none";
  
  if(li)
    li.className.replace(selectedstr, listr); 
}

//Update menurelated data.
function rnav_SetData(menuid, id, depth) {  
  rnav_SetSelected(menuid, depth, id);        
  rnav_SetCurrentDepth(menuid, depth);  
}

//Stores selected menuitems for specified depth.
function rnav_SetSelected(menuid, depth, id) {
  var menu = rnav_GetMenu(menuid);
  
  if(menu) {
    eval("menu.sel"+depth+" = id;"); 
  }  
}

//Gets selected menuitems for specified depth.
function rnav_GetSelected(menuid, depth) {
  var menu  = rnav_GetMenu(menuid);  
  var value = "";
  
  if(menu)
    eval("value = menu.sel"+depth+";");          
  
  if(typeof(value) == 'undefined')
    return "";
  
  return value;
}

//Sets current depth
function rnav_SetCurrentDepth(menuid, depth) {  
  var menu = rnav_GetMenu(menuid);
  
  if(menu)
    return menu.currentdepth = depth;  
}

//Gets current depth.
function rnav_GetCurrentDepth(menuid) {
  var menu = rnav_GetMenu(menuid);
  
  if(menu)
    return menu.currentdepth;  
}

//Wrappers for retriveing menuobjects.
function rnav_GetMenu(menuid) {
  return document.getElementById(menuid);
}

function rnav_GetDiv(id) {
  return document.getElementById(id);
}

function rnav_GetLi(id) {
  return document.getElementById(id+"li");
}