/*
**  RolladMenu V0.9
**
**  Author: Dany Ellement(c)2008
**
*************************************************************/

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 menutimeout;
function SetMenuTimeOut()
{
    menutimeout = setTimeout("HideMenu()", 1000);
}
function ClearMenuTimeOut()
{
    clearTimeout(menutimeout);
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
	do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;

		} while (obj = obj.offsetParent);

	return [curleft,curtop];
}
}

function LoadMenu()
{
    var menuContainer = document.getElementById("MenuContainer");
    var table = document.createElement("table");
    table.onmouseout = function() { SetMenuTimeOut() };
    table.onmouseover = function() { ClearMenuTimeOut() };
    table.style.padding = '0px';
    table.style.borderSpacing = '0px';
    table.style.width = '100%';
    table.style.height = '20px';
    
    var tbody = document.createElement("tbody");
    
    var tr = document.createElement("tr");
	tr.setAttribute("valign","middle");

    var width = Math.round(100/menu.length);
    for(var i =0 ; i < menu.length; i++)
    {
        var td = document.createElement("td");
        td.id = 'td'+menu[i].id;
        td.style.width = width+"%";
        td.onmouseover = function() { ShowMenu(this.id.replace('td','')); };
	    td.style.borderRight = "dotted 1px #CCCCCC";
	    td.style.textAlign = "center";
        var aLink = document.createElement("a");
        aLink.id = 'a'+menu[i].id;
        aLink.href = menu[i].href;
        aLink.className = "MenuTitle";
        aLink.onmouseover = function() { ShowMenu(this.id.replace('a','')); };
        aLink.innerHTML = menu[i].label;
        
        td.appendChild(aLink);
        tr.appendChild(td);
    }
    tbody.appendChild(tr);
    table.appendChild(tbody);
    menuContainer.appendChild(table);
    menuContainer.style.height = table.style.height;
    
    //alert(menuContainer.innerHTML);
}
function ShowMenu(menuID)
{
    var linkParent = document.getElementById('a'+menuID).parentNode;
    
    var menuLayer = document.getElementById('menuDiv');
    menuLayer.innerHTML = '';

    var left = findPos(linkParent)[0]-1;
    var top = findPos(linkParent)[1]+linkParent.offsetHeight+1;
	top -= (BrowserDetect.browser == 'Safari' ? 4 : 0);
	top += (BrowserDetect.browser == 'Explorer' ? 2 : 0);
    
    menuLayer.style.top = top+'px';
    menuLayer.style.left = left+'px';
    
    var links = new function()
    {
        for(var i = 0 ; i < menu.length; i++)
            if(menu[i].id == menuID)
                return menu[i].links;
    }
    
    if(links.length == 0) return;
    
    var table = document.createElement("table");
    table.onmouseout = function(){ SetMenuTimeOut(); };
    table.onmouseover = function(){ ClearMenuTimeOut(); };
    table.style.borderSpacing = '2px';
    table.style.width = (linkParent.offsetWidth+1 )+ 'px';
    table.style.backgroundImage = "url(images/ui/menu_back90.png)";
    
    var tbody = document.createElement("tbody");
    
    for(var i = 0 ; i < links.length; i++)
    {
        var tr = document.createElement("tr");
    
        var td = document.createElement("td");
        td.style.paddingLeft = '10px';
        td.onmouseover = function(){ this.style.backgroundColor='#254a76'; };
        td.onmouseout = function(){ this.style.backgroundColor='transparent'; };
        var aLink = document.createElement("a");
        aLink.href = links[i].href;
        aLink.className = "Menu";
        aLink.innerHTML = links[i].label;
        
        td.appendChild(aLink);
        tr.appendChild(td);
        tbody.appendChild(tr);
    }
    
    table.appendChild(tbody);
    menuLayer.appendChild(table);
    
    menuLayer.style.display = 'block';
}

function HideMenu()
{
    menutimeout = null;
    var menuLayer = document.getElementById('menuDiv');
    menuLayer.style.display = 'none';
}