var delayhide;
var disappeardelay = 150;
var prevDivId = "";

function getposOffset(what, offsettype) {
  var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
  var parentEl=what.offsetParent;
  while (parentEl!=null) {
    totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
    parentEl=parentEl.offsetParent;
  }
  return totaloffset;
}

function showMenu(whichMenu, obj){
    var dropmenuobj=document.getElementById(whichMenu);
	if (this.prevDivId == whichMenu)
	  clearhidemenu();
	dropmenuobj.className = "show";
    dropmenuobj.x=getposOffset(obj, "left")
    dropmenuobj.y=getposOffset(obj, "top")
    dropmenuobj.style.left=dropmenuobj.x+"px"
    dropmenuobj.style.top=dropmenuobj.y+obj.offsetHeight+"px"
    
	this.prevDivId = whichMenu;
}

function loadMenu(id){
  if (document.all&&document.getElementById) {
    navRoot = document.getElementById(id);
	navRoot = navRoot.childNodes[0];
    liObj = navRoot.getElementsByTagName("LI");
	for (i = 0; i < liObj.length; i++){
      liObj[i].onmouseover=function() {
        this.className="over";
      }
      liObj[i].onmouseout=function() {
        this.className=this.className.replace("over", "");
      }
		    
	}
  }
}

function hideMenu(whichMenu) {
    var dropmenuobj = document.getElementById(whichMenu); 
    dropmenuobj.className="hide";
}

function delayhidemenu(whichMenu) {

   this.delayhide=setTimeout("hideMenu('"+whichMenu+"')",disappeardelay)
}

function clearhidemenu() {
  if (typeof this.delayhide!="undefined")
    clearTimeout(this.delayhide)
}

function fadeBackground(elementId, startColor, endColor, timeMs) {
    var startTime = new Date().getTime();
    
	function stepFade(elementId, startColor, endColor, startTime, endTime) {
		var now = new Date().getTime();

		var step = new Array(3);

		var progress = (now - startTime) / (endTime - startTime);

		step[0] = Math.round(startColor[0] + ((endColor[0] - startColor[0]) * progress));
		step[1] = Math.round(startColor[1] + ((endColor[1] - startColor[1]) * progress));
		step[2] = Math.round(startColor[2] + ((endColor[2] - startColor[2]) * progress));

		document.getElementById(elementId).style.backgroundColor
			= "rgb(" + step[0] + "," + step[1] + "," + step[2] + ")";

		if (now <= endTime) {
			setTimeout(function() {
				stepFade(elementId, startColor, endColor, startTime, endTime);
			}, 20);
		}
		else {
			document.getElementById(elementId).style.backgroundColor
				= "rgb(" + endColor[0] + "," + endColor[1] + "," + endColor[2] + ")";
		}
	}
	
	stepFade(elementId, startColor, endColor, startTime, startTime + timeMs);
}


