/*
dhtml menubar written and copyright 2005 by ControlXS -- http://www.controlxs.com

This file is licenced for use by studio67 -- http://www.studio67.nl

Unlicensed use is prohibited.
*/
// Thanks http://www.quirksmode.org/js/findpos.html
function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;

	return curleft;
}
	
function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

var activeMenu = null;
var menuOpen = false;
var menu_is_mouseover = false;
var menubar_is_mouseover = false;
var timer;

function check_close_menu(el) {
	if(!menu_is_mouseover && !menubar_is_mouseover) {
		timer = window.setTimeout("menubar_close(document.getElementById('" + el.id + "'), true)", 500);
	}
}

function menu_mouseover(el) {
	menu_is_mouseover = true;
	window.clearTimeout(timer);
}

function menu_mouseout(el) {
	menu_is_mouseover = false;
	check_close_menu(el.menuImage);
}

function menubar_mouseover(el) {
	menubar_is_mouseover = true;
	window.clearTimeout(timer);
}

function menubar_mouseout(el) {
	menubar_is_mouseover = false;
	check_close_menu(el);
}


function menubar_open(el) {
	if(menuOpen) {
		menubar_close(activeMenu, false);
	}

	window.clearTimeout(timer);

	el.src = el.activeImage;
	
	el.pulldownMenu.style.left = findPosX(el);
	el.pulldownMenu.style.top = findPosY(el) + 32;
	el.pulldownMenu.onmouseover = function() { menu_mouseover(this); };
	el.pulldownMenu.onmouseout = function() { menu_mouseout(this); };
	el.pulldownMenu.menuImage = el;

	el.onmouseover = function() { menubar_mouseover(this); };
	el.onmouseout = function() { menubar_mouseout(this); };
	el.isOpen = true;

	activeMenu = el;

	el.pulldownMenu.style.display = 'block';

	return false;
}

function menubar_close(el, allClosed) {
	
	if(el.menuImage) el = el.menuImage;
	
	el.pulldownMenu.style.display = 'none';
	if(!el.isActive) {
		el.src = el.stdImage;
	}
	el.isOpen = false;

	if(allClosed) {
		menuOpen = false;
	}

	menu_activate_mouseover(el);

	return false;
}

var menunum = 1;

function menu_activate_mouseover(el) {
	if(!el.isActive) {
		el.src = el.stdImage;
	}

	el.onmouseover = function() {
		if(!this.isActive) {
			this.src = this.overImage;
		}
		if(clickToOpen) {
			if(menuOpen) {
				menubar_open(this);
			}
		} else {
			menubar_open(this);
			menuOpen = true;
		}
	}

	el.onmouseout = function() {
		if(!this.isActive) {
			this.src = this.stdImage;
		}
	}
}

function menu_activate_click(el) {
	el.onclick = function() {
		if(this.isOpen) {
			menubar_close(this, true);
		} else if(clickToOpen) {
			menubar_open(this);
			menuOpen = true;
		}
		return false;
	}
}

function menubar_addmenu(idMenubar, idMenu, active, text, stdImage, overImage, activeImage) {
	var elMenubar = document.getElementById(idMenubar);
	var elMenu = document.getElementById(idMenu);

	var elImg = document.createElement('img');
	elImg.id = 'menu' + menunum++;
	elImg.alt = text;
	elImg.pulldownMenu = elMenu;
	elImg.stdImage = stdImage;
	elImg.overImage = overImage;
	elImg.activeImage = activeImage;
	elImg.isOpen = false;
	elImg.isActive = active;
	elImg.className = 'preloadmenu';

	if(active) {
		elImg.src = activeImage;
	}

	menu_activate_mouseover(elImg);
	menu_activate_click(elImg);

	elMenubar.appendChild(elImg);
}

function button_activate_mouseover(el) {
	if(!el.isActive) {
		el.src = el.stdImage;
	}

	el.onmouseover = function() {
		if(!this.isActive) {
			this.src = this.overImage;
		}
	}

	el.onmouseout = function() {
		if(!this.isActive) {
			this.src = this.stdImage;
		}
	}
}

function button_activate_click(el) {
	el.onclick = function() {
		location.href = el.url;
	}
}

function menubar_addbutton(idMenubar, active, text, url, stdImage, overImage, activeImage) {
	var elMenubar = document.getElementById(idMenubar);

	var elImg = document.createElement('img');
	elImg.id = 'menu' + menunum++;
	elImg.alt = text;
	elImg.url = url;
	elImg.style.cursor = 'pointer';
	elImg.stdImage = stdImage;
	elImg.overImage = overImage;
	elImg.activeImage = activeImage;
	elImg.isActive = active;
	elImg.className = 'preloadmenu';

	if(active) {
		elImg.src = activeImage;
	}

	button_activate_mouseover(elImg);
	button_activate_click(elImg);

	elMenubar.appendChild(elImg);
}

