var agt = navigator.userAgent.toLowerCase();
var isNN6 = agt.indexOf('netscape6') != -1;
var isIE = agt.indexOf('msie') != -1;

var menuStyle = '';
var menuPullDownDirection = 'topbottom';
var menuCurrentTopBgColor = 'white';
var menuCurrentTopColor = 'black';
var menuClearTopBgColor = 'black';
var menuClearTopColor = 'white';
var menuTopFix = 0;
var menuSubTopFix = 0;
var menuLeftFix = 0;
var menuSubTopFix = -2;
var menuSubLeftFix = -151;

var prefix = '';
var menuTimer;
var fullexit = false;
var currentTopItem = null;
var currentItem = null;

function UpdateCurrent(elem) {
	if (currentItem) {
		if (menuStyle) {
			//currentItem.style.backgroundImage = "url(css/"+menuStyle+"/gfx/menu-arrow.gif)";
		}
		currentItem = null;
	}
	if (elem) {
		if (menuStyle) {
			//elem.style.backgroundImage = "url(css/"+menuStyle+"/gfx/menu-arrow-hover.gif)";
		}
		currentItem = elem;
	}
}

function SetCurrentTop(elem) {
	if (elem && elem.parentNode.parentNode.id == 't000000') {
		ClearCurrentTop();
		//elem.style.backgroundColor = menuCurrentTopBgColor;
		//elem.style.color = menuCurrentTopColor;
		if (menuStyle) {
			//elem.style.backgroundImage = "url(css/"+menuStyle+"/gfx/menu-arrow-hover.gif)";
		}
		currentTopItem = elem;
	}
}

function ClearCurrentTop() {
	if (currentTopItem) {
		if (!/current/.test(currentTopItem.className)) {
		    //currentTopItem.style.backgroundColor = menuClearTopBgColor;
		    //currentTopItem.style.color = menuClearTopColor;
			if (menuStyle) {
				//currentTopItem.style.backgroundImage = "url(css/"+menuStyle+"/gfx/menu-arrow.gif)";
			}
		}
		currentTopItem = null;
	}
}

function PointsToSub(elem) {
	if (!elem.tagName) elem = elem.parentNode; /* NN fix */
	return elem.href && elem.id && elem.id.indexOf("pm") == 0;
}

function GetSubMenu(elem) {
	var m = document.getElementById(elem.id.substr(1));
	if (m && m.firstChild) {
	    return m;
	} else {
		MenuClearAll();
	    return;
	}
}

function InitMenu() {
	var menu = document.getElementById("menu");
    var ul = menu.getElementsByTagName("UL");
    for (var i = 0; i < ul.length; i++) {
		if (ul[i].id == "t000000") {
    		InitTopMenus(ul[i]);
    	} else {
    		InitSubMenus(ul[i]);
			//ul[i].onmouseover = StopTimer;
    	}
    }
}

function InitTopMenus(topmenu) {
    var a = topmenu.getElementsByTagName("A");
    for (var i = 0; i < a.length; i++) {
		a[i].onmouseover = MenuShow;
		a[i].onmouseout = MenuHide;
		//a[i].firstChild.innerHTML = a[i].firstChild.innerHTML.replace(/ /g, "&nbsp;");
		// span
		//a[i].firstChild.onmouseover = MenuShow;
		//a[i].firstChild.onmouseout = MenuHide;
	}
}

function InitSubMenus(menu) {
    var a = menu.getElementsByTagName("A");
    for (var i = 0; i < a.length; i++) {
			if (PointsToSub(a[i])) {
				// a
				a[i].onmouseover = MenuShow;
				a[i].onmouseout = MenuHide;
				//if (menuStyle) a[i].style.backgroundImage = "url(css/"+menuStyle+"/gfx/menu-arrow.gif)";
				GetSubMenu(a[i]).isSub = true;
				// span
				//a[i].firstChild.onmouseover = MenuShow;
				//a[i].firstChild.onmouseout = MenuHide;
			} else {
				// a
				a[i].onmouseover = StopTimer;
				a[i].onmouseout = StartTimer;
				//if (menuStyle) a[i].style.backgroundImage = "url(gfx/trans.gif)";
				// span
				//a[i].firstChild.onmouseover = StopTimer;
				//a[i].firstChild.onmouseout = StartTimer;
			}
  		//a[i].firstChild.innerHTML = a[i].firstChild.innerHTML.replace(/ /g, "&nbsp;");
    }
    SetWidth(menu);
}

function SetWidth(menu, w) {
	if (isIE) {
	    //menu.style.width = (menu.offsetWidth < w ? w : menu.offsetWidth)+"px";
	}
}

function getPosition(element) {
	var valueT = 0, valueL = 0;
	do {
		valueT += element.offsetTop  || 0;
		valueL += element.offsetLeft || 0;
		element = element.offsetParent;
	} while (element);
	return [valueL, valueT];
}

var viewportwidth;
 var viewportheight;
 
 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
function getviewport() { 
 if (typeof window.innerWidth != 'undefined')
 {
      viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
 }
 
// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

 else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0)
 {
       viewportwidth = document.documentElement.clientWidth,
       viewportheight = document.documentElement.clientHeight
 }
 
 // older versions of IE
 
 else
 {
       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
 }
}
getviewport();
AddToResizeArray(getviewport);

function MenuShow(evt) {
	evt = (evt) ? evt : ((event) ? event : null);
	if (evt) {
		var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
		if (elem) {
			ClearTimer();
			if (!elem.tagName) elem = elem.parentNode; /* NN fix */
			if (elem.tagName == "SPAN") elem = elem.parentNode;
			SetCurrentTop(elem);
			var m = GetSubMenu(elem);
			if (m) {
				if (m.isSub) {
					MenuClearAll(true);
					UpdateCurrent(elem);
					m.style.left = elem.parentNode.parentNode.offsetLeft+elem.offsetWidth+menuSubLeftFix+"px";
			    	m.style.top = elem.parentNode.parentNode.offsetTop+elem.parentNode.offsetTop+menuSubTopFix+1+"px";
			    	m.style.top = elem.parentNode.offsetTop+menuSubTopFix+1+"px";
//alert(elem.parentNode.parentNode.offsetTop+"+"+elem.parentNode.offsetTop+"+"+ menuSubTopFix)
					//if (elem.tagName == "A") elem.parentNode.style.backgroundImage = "url("+prefix+"gfx/li.gif)";
				} else {
					MenuClearAll();
					if (menuPulldownDirection == 'topbottom') {
					    m.style.left = elem.parentNode.offsetLeft+menuLeftFix+"px";
					    m.style.top = elem.offsetTop+elem.offsetHeight+menuTopFix+"px";
					} else {
					    m.style.left = elem.offsetLeft+elem.offsetWidth+menuLeftFix+"px";
					    var p = getPosition(elem);
					    var pm = getPosition(document.getElementById("menu"));
					    m.style.top = p[1]-pm[1]+menuTopFix+"px";
					}
				}
		    	m.style.display = "block";
			    var p = getPosition(m.lastChild);
			    //alert(p[1]+" > "+viewportheight);
				if ((p[1]+40) > viewportheight) {
					var ny = (p[1]+40)-viewportheight;
			       	//if (ny < 0) ny = 0;
					m.style.top = parseInt(m.style.top)-ny+"px";
				}
				SetWidth(m, elem.offsetWidth);
			}
		}
	}
}

function MenuHide(evt) {
	evt = (evt) ? evt : ((event) ? event : null);
	if (evt) {
		var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
		if (elem) {
  			StartTimer(evt);
		}
	}
}

function MenuClearAll(subsonly) {
	var menu = document.getElementById("t000000").getElementsByTagName("UL");
    for (var i = 0; i < menu.length; i++) {
    	var child = menu[i];
    	//alert(child.isSub+"-"+subsonly+"-"+child.tagName+"-"+child.id);
    	if (!child.isSub && subsonly) continue;
    	if (child.tagName == "UL" && child.id != "t000000") {
			child.style.display = "none";
    	}
    }
    UpdateCurrent();
    if (fullexit) ClearCurrentTop();
}

function StopTimer(evt) {
	ClearTimer();
	evt = (evt) ? evt : ((event) ? event : null);
	if (evt) {
		var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
		if (elem) {
			if (!elem.tagName) elem = elem.parentNode; /* NN fix */
	    if (elem.tagName == "SPAN") elem = elem.parentNode;
			if (elem.tagName == "A" && !PointsToSub(elem) && !elem.parentNode.parentNode.isSub) {
				MenuClearAll(true);
			}
			//if (elem.tagName == "A") elem.parentNode.style.backgroundImage = "url("+prefix+"gfx/li.gif)";
			//parent.xcmsGetObject("tekst").innerHTML = parent.xcmsGetObject("tekst").innerHTML + elem.tagName + "<br>";
		}
	}
}

function StartTimer(evt) {
	evt = (evt) ? evt : ((event) ? event : null);
	if (evt) {
		var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
    if (elem.tagName == "SPAN") {
    	elem = elem.parentNode;
    }
		if (elem && elem.tagName == "A") {
			elem.parentNode.style.backgroundImage = "url(gfx/trans.gif)";
		}
	}
	menuTimer = setTimeout("MenuClearAll()", 500);
	fullexit = true;
}

function ClearTimer() {
	clearTimeout(menuTimer);
	fullexit = false;
}

AddToInitArray(InitMenu);
