﻿window.onload=navbar_sethandlers;

var g_currentMenu;
var g_curColorEffect = null;
var g_insideMenu = false;
var g_transition = 0.0;
var g_menuDelay = 100;

function navbar_sethandlers() {
	var selectedDT = null;
	$$('#menu dd a')._each(function(a) {
		a.addClassName('hover');
	});
	
	$$('#menu dt')._each(function(dt){
		Event.observe(dt, 'mouseover', dt_mouseover);
		Event.observe(dt, 'mouseout', dt_mouseout);
		if(dt.hasAttribute("selected")) {
			selectedDT = dt;
			selectSubmenuItem(dt.next('dd'));
		}
	});
	
	$$('img[over]')._each(function(img) {
		var preload = new Image();
		preload.src = img.getAttribute('over');
		Event.observe(img, 'mouseover', img_mouseover);
		Event.observe(img, 'mouseout', img_mouseout);
	});
	
	var div = $('submenuContainer');
	div.innerHTML = div.innerHTML;// bug fix for IE (wasn't displaying initially)
	
	initSubmenus();

	if(selectedDT) {
		updateDT(selectedDT);
		var img = selectedDT.down('img');
		if(img) {
			var over = img.getAttribute('over');
			var a = selectedDT.down('a');
			a.setStyle({
				cursor: 'default'
			});
			img.src = over;
			img.out = over;
		}
	}
}

function img_mouseover(e) {
	var img = Event.findElement(e,'img');
	if(!img.out) {
		img.out = img.src;
	}
	img.src = img.getAttribute('over');
}

function img_mouseout(e) {
	var img = Event.findElement(e,'img');
	img.src = img.out;
}

function selectSubmenuItem(dd) {
	if(!dd) return;
	var list = $A(dd.getElementsByTagName('li'));
	list._each(function(li) {
		initLI(li);
	});
}

function initLI(li) {
	li = $(li);
	if(li.hasAttribute("selected")) {
		var a = li.down('a');
		a.href = '#page';
		a.addClassName('selected');
		a.removeClassName('hover');
	}
}

function initSubmenus() {
	$$('#menu dd').each(function(dd) {
		dd.hide();
	});
}

function updateSubmenuColor(menuItem) {
	var div = $('submenuContainer');
	div.innerHTML = '';

	var toColor = (menuItem && menuItem.getAttribute) ? menuItem.getAttribute('color') : null;
	if(toColor == null) {
		toColor = '#ffffff';
	}
	
	div.setStyle({
		backgroundColor: toColor
	});
}

function hideSubmenu() {
	if(g_currentMenu) switchSubmenu(g_currentMenu, null);
}

var g_overTimeout = 0;
var g_currentDT = null;

function dt_mouseover(e) {
	var dt = Event.findElement(e, 'dt');
	g_currentDT = dt;
	g_overTimeout = window.setTimeout(updateCurrentDT, g_menuDelay);
	//updateDT(dt);
}

function dt_mouseout(e) {
	var dt = Event.findElement(e, 'dt');
	window.clearTimeout(g_overTimeout);
}

function updateCurrentDT() {
	updateDT(g_currentDT);
}

function updateDT(dt) {
	var submenu = dt.next('dd');
	if(!submenu) return;
	updateSubmenuColor(dt);
	if(submenu === g_currentMenu) return;
	if(submenu) {
		switchSubmenu(g_currentMenu, submenu);
	}
}

function switchSubmenu(toHide, toShow) {
	if(toHide) toHide.hide();
	showSubmenu(toShow);
}

function showSubmenu(menu) {
	initSubmenus();
	g_currentMenu = menu;
	if(!menu) return;
	menu.show();
}