var isDHTML = 0;
var isLayers = 0;
var isAll = 0;
var isID = 0;
var isBrowser=GetBrowser();

if (document.getElementById){isID=1;isDHTML=1;}
else{if(document.all){isAll=1;isDHTML=1;}
else{browserVersion=parseInt(navigator.appVersion);
if((navigator.appName.indexOf('Netscape')!=-1)&&(browserVersion==4)){
isLayers=1;isDHTML=1;}}}

function GetBrowser(){
  var b=navigator.appName;
  if(b.indexOf("Microsoft")>=0){return("IE")}
  if(b.indexOf("Netscape")>=0){return("NN")}
  return("UNKNOWN");
}
function findID(objectID){
  if(isID){return(document.getElementById(objectID));}
  if(isAll){return(document.all[objectID]);}
  if(isLayers){return(document.layers[objectID]);}
  return(null);
}
function findStyle(objectID){
  if(isID){return(findID(objectID).style);}
  if(isAll){return(findID(objectID).style);}
  if(isLayers){return(document.layers[objectID])}
  return(null);
}
function getStyle(obj){
  if(isID){return(obj.style);}
  if(isAll){return(obj.style);}
  if(isLayers){return(document.layers[obj.id])}
  return(null);
}
function getLeft(elm){
  var left=elm.offsetLeft;
	while((elm=elm.offsetParent)!=null){
	  left+=elm.offsetLeft;
	}
	return left;
}
function getTop(elm){
  var top=elm.offsetTop;
	while((elm=elm.offsetParent)!=null){
	  top+=elm.offsetTop;
	}
	return top;
}
var gMenus=new Array();
var gMenuIndex=-1;
var gMenuTimerID=-1;
function startTimer(menuIndex){
  gMenuIndex=menuIndex;
  menuActivity(menuIndex);
  gMenuTimerID=setInterval("checkMenu()", 100);
}
function stopTimer(){
  if(gMenuTimerID!=-1){
    clearInterval(gMenuTimerID);
	  gMenuTimerID=-1;
  }
}
function menuActivity(menuIndex){
  var d=new Date();
	gMenus[menuIndex][1]=d.getTime();
}
function showMenu(triggerElement, menuName){
  var x=getLeft(triggerElement);
	var y=getTop(triggerElement);
	var w=triggerElement.offsetWidth;
	var s=findStyle(menuName);
  stopTimer();
	var i;
	for(i=0;i<gMenus.length;i++){
	  if(gMenus[i][0]==menuName){
	    closeLevelMenu(i);
			s.left=x+w+5;
			s.top=y;
			startTimer(i);
			break;
		}
	}
}
function hideMenu(menuIndex){
  var menuName=gMenus[menuIndex][0];
	var m=findStyle(menuName);
  m.left=-1000;
	m.top=-1000;
}
function checkMenu(){
  var d=new Date();
  if((d.getTime()-gMenus[gMenuIndex][1])>3000){
	  stopTimer();
    hideMenu(gMenuIndex);
		// start timer on parent menu
		if(gMenus[gMenuIndex][2]!=-1){
		  startTimer(gMenus[gMenuIndex][2]);
		}
  }
}
function closeLevelMenu(menuIndex){
  var i;
	for(i=0; i<gMenus.length; i++){
	  if(gMenus[i][3]>=gMenus[menuIndex][3]){
		  hideMenu(i);
		}
	}
}
function closeSubMenu(menuIndex){
  var i;
	for(i=0; i<gMenus.length; i++){
	  if(gMenus[i][3]>gMenus[menuIndex][3]){
		  hideMenu(i);
		}
	}
}
