// Copyright 2006-2007 javascript-array.com

var timeout	= 100;
var closetimer	= 0;
var ddmenuitem	= 0;

var is_ie = false;
detectBrowser();
function detectBrowser() {
	var browser=navigator.appName;
	//alert(browser);
	var b_version=navigator.appVersion;
	var version=parseFloat(b_version);
	if (browser=="Microsoft Internet Explorer"){
		is_ie=true;
	}
	else {
		is_ie=false;
	}
}

// open hidden layer
function mopen(id, anchorId)
{	
	// cancel close timer
	mcancelclosetime();
	
	if (ddmenuitem!=0 && ddmenuitem==document.getElementById(id))
		return;
	
	// close old layer
	if(ddmenuitem) 
		//ddmenuitem.style.visibility = 'hidden';
		$(ddmenuitem).fadeOut(600); 

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';
	
	anchor = document.getElementById(anchorId); 

	if (is_ie==true)
		ddmenuitem.style.top = findPosY(anchor) + 28 + "px";
	else
		ddmenuitem.style.top = findPosY(anchor) + 13 + "px";
	ddmenuitem.style.left = findPosX(anchor) + "px"; 
	
	$(ddmenuitem).slideDown(600);  
}

// close showed layer
function mclose()
{
	if(ddmenuitem) 
		//ddmenuitem.style.visibility = 'hidden';
		$(ddmenuitem).fadeOut(600);
	ddmenuitem=0;
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer){
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose; 

function findPosX(obj) {
  var curleft = 0;
  if(obj.offsetParent)
      while(1) 
      {
        curleft += obj.offsetLeft;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.x)
      curleft += obj.x;
  return curleft;
}

function findPosY(obj) {
  var curtop = 0;
  if(obj.offsetParent)
      while(1)
      {
        curtop += obj.offsetTop;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.y)
      curtop += obj.y;
  return curtop;
}

