var subActive = false;	

	function dropMenu(id,e){
		//hide all other menus
		var smRa = document.getElementById("menu-container").childNodes;
			
		for(i = 0;i<smRa.length;i++){
		
			if (smRa[i].nodeName == "UL") {
				if (smRa[i].id != "menu_" + id) {
					smRa[i].style.display = "none";
				}
			}
		}
		var element = document.getElementById(id);
		var left = element.offsetLeft;
		var top = element.offsetTop;
		var menu = document.getElementById("menu_"+id);
		var browserName=navigator.appName; 
		var browserVer=parseInt(navigator.appVersion); 
		if (browserName=="Microsoft Internet Explorer") {
			menu.style.top = (eval(top+ 8))+"px" ;
		} else{
			menu.style.top = (eval(top + 15))+"px" ;
		}


		if (browserName == "Microsoft Internet Explorer" && browserVer < 7) {
			menu.style.left = (left - 30) + "px";
		} else {
			menu.style.left = left + "px";
		}
		
		menu.style.display ="block";
		
	}
	
	function dropSubMenu(smid,mid,e){
		//hide all other menus
		subActive = true;
		/*var smRa = document.getElementById("menu-container").childNodes;
			
		for(i = 0;i<smRa.length;i++){
		
			if (smRa[i].nodeName == "UL") {
				if (smRa[i].id != "menu_" + id) {
					smRa[i].style.display = "none";
				}
			}
		}
		*/
		var mm = document.getElementById("menu_"+mid);
		mm.style.display="block";
		var left = mm.offsetWidth;
		var element = document.getElementById(smid+"_"+mid);
		var x = findPosX(mm);
		var y = findPosY(mm);
		
		var top = element.offsetTop;
		var width=  element.offsetWidth;
		
		var menu = document.getElementById("submenu_"+smid +"_"+mid);
		
		menu.style.left = width+"px";
		menu.style.top = (eval(top + 7))+"px" ;
		menu.style.display ="block";
		
	}
	
	function hide(){
			var smRa = document.getElementById("menu-container").childNodes;
			
		for(i = 0;i<smRa.length;i++){
		
			if (smRa[i].nodeName == "UL") {
			
					smRa[i].style.display = "none";
				
			}
		}
	}
	
	

	
	function clearMenu(e,id) {
		
		elem  = document.getElementById("menu_"+ id);
		if(mouseOut(elem,e)){
			if (subActive != true) {
				
				hide();
				
			}
		}
	
}
function clearSubMenu(e,smid,mid) {
	subActive = true;
		elem  = document.getElementById("submenu_"+smid+"_"+mid);
		if(mouseOut(elem,e)){
			elem.style.display="none";
			subActive = false;
		}
	
}


	


function mouseOut(elem,evt) {
if(!evt || typeof(evt) == 'undefined') evt = window.event;
if(checkMouseOut(elem,evt)) {
	
return true

}
}




// Check whether the mouse has really left the element
function checkMouseOut(elem,evt) {
var boundaries = getBoundaries(elem);
if(evt.clientX <= boundaries.left || evt.clientX >= boundaries.right || evt.clientY <= boundaries.top || evt.clientY >= boundaries.bottom) return true;
else return false;
}

// Returns an object containing four properties - top, right, bottom, left - containing the co-ordinates of the four corners of the element
function getBoundaries(elem) {
var boundaries = getRealOffsets(elem);

boundaries.right = boundaries.left + elem.clientWidth;
boundaries.bottom = boundaries.top + elem.clientHeight;
return boundaries;
}

// Gets the absolute offsets of an element
function getRealOffsets(elem) {
var offsets = new Object();
offsets.left = elem.offsetLeft;
offsets.top = elem.offsetTop;
var parent = elem.offsetParent;

while(parent != document.html) {
offsets.left += parent.offsetLeft;
offsets.top += parent.offsetTop;
parent = parent.offsetParent;

}

return offsets;
}

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;
  }

