var is_opera = navigator.userAgent.toLowerCase().indexOf("opera") != -1;
		
var defaultSubMenu = null;
var activeSubMenu = null;
var subMenuTimeout = null;
var SUBMENU_TIMEOUT = 500; //milliseconds

function showMenu(id, evt)
{
	if(!document.getElementById) return;
	
	if (subMenuTimeout != null) clearInterval(subMenuTimeout);
	
	var elm = document.getElementById("subnav" + id);
	if(!elm || (evt && contains(elm, evt, "from"))) return;
	
	if(activeSubMenu == id) return;
	if (activeSubMenu != null && activeSubMenu.length > 0)
	{
		doHideMenu(activeSubMenu);
	}
	activeSubMenu = id;
	elm.style.display = "block";
	var vis = (activeSubMenu == defaultSubMenu)? "visible" : "hidden";
	var elmLevel3 = document.getElementById("subLevel3");
	if(elmLevel3) elmLevel3.style.visibility = vis;
	//var elmLevel4 = document.getElementById("subLevel4");
	//if(elmLevel4) elmLevel4.style.visibility = vis;
}

function hideMenu(id, evt)
{
	if(!document.getElementById) return;
	
	var elm = document.getElementById("subnav" + id);
	if(!elm || contains(elm, evt, "to")) return;
	subMenuTimeout = setInterval("hideAfterTimeout('" + id + "')", SUBMENU_TIMEOUT);
}

function hideAfterTimeout(id)
{
	if (defaultSubMenu == null)
	{
		activeSubMenu = null;
		doHideMenu(id);
	}
	else if (defaultSubMenu != id)
	{
		activeSubMenu = null;
		doHideMenu(id);
		showMenu(defaultSubMenu);
	}
	clearInterval(subMenuTimeout);
	subMenuTimeout = null;
}

function doHideMenu(id)
{
	if(!document.getElementById) return;
	
	var elm = document.getElementById("subnav" + id);
	if(elm) elm.style.display = "none";
}

//returns true if the event originated from a child to the el.
function contains(el, evt, dir)
{
	//safari emulates IE's contains() method but does it badly
	//therefore we use a special method for safari users
	if(navigator.userAgent.indexOf("Safari") > -1) 
	{
		return safariContains(el, (dir=="to")? evt.toElement : evt.fromElement)
	}	
	
	if(el.contains) 
	{
		if(dir == "to") return (el.contains(evt.toElement));
		if(dir == "from") return (el.contains(evt.fromElement));
	}
	else
	{
		var contains = false;
		var target = evt.relatedTarget;
		do{
			if ((contains = el == target))
			break;
			target = target.parentNode;
		}
		while (target != null);
		return contains;
	}
	return false;
}

function safariContains(el, target) 
{ 
	if (target == el) return true; 
	if (target == null) return false; 
	return safariContains(el, target.parentNode); 
}

jQuery.fn.toggleThirdLevel = function(){
	if(this.size() > 0){
		$(this).mouseover(function(){
			$(this).find("ul.third-level").show();
		});
		$(this).mouseout(function(){
			$(this).find("ul.third-level").hide();
		});
	}
	return this;
};

$(document).ready(function(){
	//$("ul.third-level").hide();   
	$("ul.second-level li").toggleThirdLevel();
});
