// JavaScript Document
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{	// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 	// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
function showChildMenu(e)
{
	var li = $(e);
	while (li.nodeName.toLowerCase() != "li")
	{
		li = li.parentNode;
		if((li==null) || (li.nodeName=="body"))
		{
			return;
		}
	}
	
	Lib.Dom.Elm.Style.changeStyle(li, "showchild");
}

function hideChildMenu(e)
{
	var li = $(e);
	while (li.nodeName.toLowerCase() != "li")
	{
		li = li.parentNode;
		if((li==null) || (li.nodeName=="body"))
		{
			return;
		}
	}

	Lib.Dom.Elm.Style.changeStyle(li, "hidechild");
}
function hideChildMenuLanguage(e)
{
	var li = $(e);
	while (li.nodeName.toLowerCase() != "li")
	{
		li = li.parentNode;
		if((li==null) || (li.nodeName=="body"))
		{
			return;
		}
	}

	Lib.Dom.Elm.Style.changeStyle(li, "end");
}
function subMenuOver(e)
{
	var ul = $(e);
	
	while(ul.tagName.toLowerCase() != 'ul')
	{
		ul = ul.parentNode;
		
		if(ul.tagName.toLowerCase == 'body')
		{
			return;
		}
	}
	
	var a = ul.previousSibling;
	
	Lib.Dom.Elm.Style.changeStyle(a, "highlightMenu");
}
function subMenuLeave(e)
{
	var ul = $(e);
	while(ul.tagName.toLowerCase() != 'ul')
	{
		ul = ul.parentNode;
		
		if(ul.tagName.toLowerCase == 'body')
		{
			return;
		}
	}
	var a = ul.previousSibling;
	Lib.Dom.Elm.Style.changeStyle(a, "");
}

function setupMenus()
{
   setupMenu('nav');
}
function setupMenu(divId){

	if(document.all&&document.getElementById)
	{
		
		// get menu ul
		var menuTop = document.getElementById(divId);
		

		// get all ul elements inside this ul
		var menuArray = menuTop.getElementsByTagName('ul');	
		
		// for each ul
		for(i=0; i<menuArray.length; i++)
		{		
		
			// // find the parent li element (if there is one)
			var ulParent = menuArray[i].parentNode;
			// // check it is an li (just in case)
			if(ulParent.nodeName == "LI")
			{
				// attach rollover and rollout events the li
				Lib.Dom.addEvent(ulParent, "mouseover", showChildMenu);
				Lib.Dom.addEvent(ulParent, "mouseleave", hideChildMenu);
				
				Lib.Dom.addEvent(menuArray[i], "mouseover", subMenuOver);
				Lib.Dom.addEvent(menuArray[i], "mouseleave", subMenuLeave);
			}
		}
	}
	
}
 
callWhenDOMLoaded(setupMenus);