//set flags for IE version checking
var appName= navigator.appName;
var appVer = navigator.appVersion.toLowerCase();
var iePos  = appVer.indexOf('msie');
if(iePos !=-1) { appVer = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos))) }
else { appVer = parseFloat(appVer); }
var isIE4up = ((appName == "Microsoft Internet Explorer") && (appVer >= 4)); 
var isIE55up = ((appName == "Microsoft Internet Explorer") && (appVer >= 5.5)); 

//init global vars
var activeMenu = "";         //which menu currently being displayed 
var fadeTimeoutId = new Array();      //timeout id for fading
var divTimeoutId = new Array();       //timeout id for mouseover menu hold
var defaultMenu = new Array();	 // default menu to return to
var menuObj = new Array(); // top level menu objects broken out by their ids
var subMenuObj = new Array(); // sub menu objects broken by top level ids
var menuItem = new Array(); // menu contents broken out by object ids
var activeMenu = new Array(); // menu to fade to
var currentOn = new Array(); // menu which is currently displayed

function chgContent(objID) {
  if(currentOn[objID] != activeMenu[objID] && isIE4up) {
	currentOn[objID] = activeMenu[objID];
    fadeIn(objID);
  }
}

function fadeIn(objID) {
  if(isIE55up) {  
	var obj = subMenuObj[objID];
	if(obj.filters[0].status != 2) {
      obj.filters[0].Apply();
	  obj.innerHTML = menuItem[objID][currentOn[objID]];
	  obj.style.visibility = "visible";
      obj.filters[0].Play();
    }
    else {
      obj.filters[0].Stop();
      fadeIn(obj); 
    }
  } else if(isIE4up) {
	var obj = subMenuObj[objID];
  	obj.innerHTML = menuItem[objID][currentOn[objID]];
  }
}

function stopFadeTimer(obj) {
  if(fadeTimeoutId[obj.id] != null) window.clearTimeout(fadeTimeoutId[obj.id]);
}

function startFadeTimer(obj, menuID) {
  if(fadeTimeoutId[obj.id] != null) window.clearTimeout(fadeTimeoutId[obj.id]);
  activeMenu[obj.id] = menuID;
  tmp = 'chgContent(\'' + obj.id + '\')';
  fadeTimeoutId[obj.id] = window.setTimeout(tmp,500);
}

function setTimer(obj) {
  if(document.all) {	
	  if(!obj.contains(event.toElement)) {
	    if(divTimeoutId[obj.id] != null) { window.clearTimeout(divTimeoutId[obj.id]); }
		tmp = 'resetMenu(\'' + obj.id + '\')';
	    divTimeoutId[obj.id] = window.setTimeout(tmp,1000);
	  }
  }
}

function stopTimer(obj) {
  if(document.all) {	
	  if(!obj.contains(event.fromElement)) {
	    if(divTimeoutId[obj.id] != null) { window.clearTimeout(divTimeoutId[obj.id]); }
	  }
  }
}

function resetMenu(objID) {
  if(menuItem[objID][currentOn[objID]] && (menuItem[objID][defaultMenu[objID]] != menuItem[objID][currentOn[objID]])) {
    activeMenu[objID] = defaultMenu[objID];
    chgContent(objID);
  }
}
