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.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			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"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// 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();

	var regExRight = new RegExp("Right");
	function getCoords(element)
	{
		var coords = { x: 0, y: 0, width: element.offsetWidth, height: element.offsetHeight };
		while(element){
			coords.x += element.offsetLeft;
			coords.y += element.offsetTop;
			element = element.offsetParent;
		}
		return coords;
	}

	function InitCascadeMenu()
	{
		var obj;
		var casMenBar = document.getElementById("cascadeMenuBar");
		if(casMenBar != null){

			var barObj = casMenBar.getElementsByTagName("*");		
			if(showLoginMenu == true){				obj = document.getElementById("Bar6");
				if(obj != null){					obj.setAttribute("cascadeMenu", "cascadeMenu6");				}
			}			obj = document.getElementById("Bar5");
			if(obj != null){				obj.setAttribute("cascadeMenu", "cascadeMenu5");			}
			obj = document.getElementById("Bar4");			if(obj != null){				obj.setAttribute("cascadeMenu", "cascadeMenu4");			}
			obj = document.getElementById("Bar2");			if(obj != null){				obj.setAttribute("cascadeMenu", "cascadeMenu2");			}
			for(var i=0 ; i < barObj.length ; i++){				obj = document.getElementById(barObj[i]);				var cascadeMenu = document.getElementById(barObj[i].getAttribute("cascadeMenu"));				if(cascadeMenu != null){
					cascadeMenu.style.visibility = "hidden";
					barObj[i].onmouseover = new Function("ShowCascadeMenu("+barObj[i].id+")");
					var Items = cascadeMenu.getElementsByTagName("*");
					for(var j=0; j<Items.length; j++){
						var cascadeMenuItem = eval(Items[j].id);
						if(cascadeMenuItem["cascadeMenu"] != null){ 
							cascadeMenuItem.innerHTML += "<Span Id="+cascadeMenuItem.id+"_Arrow class='Arrow'>4</Span>";
							FindSubCascadeMenu(cascadeMenuItem["cascadeMenu"]);						}
						if(cascadeMenuItem.cmd != null){
							cascadeMenuItem.onclick = new Function("Do("+cascadeMenuItem.id+")");						} 						cascadeMenuItem.onmouseover = new Function("highlight("+Items[j].id+")");
					}    
				}			}  
		}	}	
	function FindSubCascadeMenu(subCascadeMenu)
	{
		var cascadeMenu=eval(subCascadeMenu);
		var Items = cascadeMenu.getElementsByTagName("*");
		for(var j=0; j<Items.length; j++){
			cascadeMenu.style.visibility = "hidden";
			var cascadeMenuItem = eval(Items[j].id);
			if(cascadeMenuItem.cascadeMenu!= null){
				cascadeMenuItem.innerHTML += "<Span Id="+cascadeMenuItem.id+"_Arrow class='Arrow'>4</Span>";
				FindSubCascadeMenu(cascadeMenuItem.cascadeMenu);
			}
			if(cascadeMenuItem.cmd != null){
				cascadeMenuItem.onclick = new Function("Do("+cascadeMenuItem.id+")");			} 
			cascadeMenuItem.onmouseover = new Function("highlight("+Items[j].id+")");
		}  
	}	function ShowCascadeMenu(obj)
	{
		var debug = false;				HideCascadeMenu(document.getElementById('cascadeMenuBar'));		casMenCancelCloseTime();
		var cascadeMenu = document.getElementById(obj.getAttribute("cascadeMenu"));
		var bar = eval(obj.id);
		bar.className="barOver";
		cascadeMenu.style.visibility = "visible";
		if(BrowserDetect.browser == "Explorer" || (BrowserDetect.browser == "Firefox" && BrowserDetect.version >= 3)){
			cascadeMenu.style.top =  obj.getBoundingClientRect().top + obj.offsetHeight + Bdy.scrollTop;
			if(cascadeMenu.className.search(regExRight) == -1){
				cascadeMenu.style.left = obj.getBoundingClientRect().left + Bdy.scrollLeft;
			}			else{
				cascadeMenu.style.left = (obj.getBoundingClientRect().left + Bdy.scrollLeft) - (103 - (obj.getBoundingClientRect().right - obj.getBoundingClientRect().left));			}
		}		else{			var coords = getCoords(obj);
			cascadeMenu.style.top =  coords.y + obj.offsetHeight + Bdy.scrollTop;
			if(cascadeMenu.className.search(regExRight) == -1){
				cascadeMenu.style.left = coords.x + Bdy.scrollLeft;
			}			else{
				cascadeMenu.style.left = (coords.x + Bdy.scrollLeft) - (103 - (coords.width));			}
		}
	}
   
	function highlight(obj)
	{
		var PElement = eval(obj.parentNode.id);
		if(PElement.getElementsByTagName("*") != null){  
			var Elements = PElement.getElementsByTagName("*");
			for(var i=0;i<Elements.length;i++){
				TE = eval(Elements[i].id);
				if(TE.className.search(regExRight) == -1){
					TE.className = "cascadeMenuItem";
				}				else{					TE.className = "cascadeMenuItemRight";				}
			}
		}		if(obj.className.search(regExRight) == -1){
			obj.className="ItemMouseOver";		}		else{			obj.className="ItemMouseOverRight";		}
		window.defaultStatus = obj.title;
		ShowSubCascadeMenu(obj);
	}
   
	function Do(obj)
	{
		var cmd = eval(obj).cmd	;
		window.navigate(cmd);
	}
   
	function HideCascadeMenu(obj)
	{
		if(obj.getElementsByTagName("*") != null){  			var child = obj.getElementsByTagName("*");
			for(var j =0;j<child.length;j++){
				if(child[j].className=="barOver"){					var bar = eval(child[j].id);
					bar.className="Bar";				}
				if(document.getElementById(child[j].getAttribute("cascadeMenu")) != null){
					var childCascadeMenu = document.getElementById(child[j].getAttribute("cascadeMenu"));
					if(childCascadeMenu.getElementsByTagName("*") != null){  						HideCascadeMenu(childCascadeMenu);
					}
					childCascadeMenu.style.visibility = "hidden";
				}
			}
		}
	}
	function ShowSubCascadeMenu(obj)
	{
		PCascadeMenu = eval(obj.parentNode.id);		
		HideCascadeMenu(PCascadeMenu);
		casMenCancelCloseTime();
		if(obj.cascadeMenu != null){
			var cascadeMenu = eval(obj.cascadeMenu);
			cascadeMenu.style.visibility = "visible";

			if(BrowserDetect.browser == "Explorer" || (BrowserDetect.browser == "Firefox" && BrowserDetect.version >= 3)){
				cascadeMenu.style.pixelTop =  obj.getBoundingClientRect().top + Bdy.scrollTop;
				cascadeMenu.style.pixelLeft = obj.getBoundingClientRect().right + Bdy.scrollLeft;
				if(cascadeMenu.getBoundingClientRect().right > window.screen.availWidth ){
					cascadeMenu.style.pixelLeft = obj.getBoundingClientRect().left - cascadeMenu.offsetWidth;				}
			}			else{				var coords = getCoords(obj);
				cascadeMenu.style.pixelTop =  coords.y + Bdy.scrollTop;
				cascadeMenu.style.pixelLeft = coords.x + coords.width + Bdy.scrollLeft;
				if(coords.x + coords.width > window.screen.availWidth ){
					cascadeMenu.style.pixelLeft = coords.x - cascadeMenu.offsetWidth;				}
			}
		}
	} 


	var casMenTimeOut = 300;
	var casMenCloseTimer = null;

	function casMenCloseTime() {
		casMenCloseTimer = window.setTimeout("HideCascadeMenu(document.getElementById('cascadeMenuBar'))", casMenTimeOut);
	}
	function casMenCancelCloseTime() {
		if(casMenCloseTimer){
			window.clearTimeout(casMenCloseTimer);
			casMenCloseTimer = null;
		}
	}


 ///////////////////CascadedDropdown CascadeMenu/////////////////
 //Date : 08/09/2001               						//
 //Version : 1.0        								//
 //Author Mr.Arun N Kumar	                            //
 //EMail: n_arunk@hotmail.com							//		
 /////////////////////////////////////////////////////////
 // Modifications on this code is not recomended
 // Suggestions are welcome

