//
// ZEN NAV MENU 1.0
// Written by Blain Hosford
// Copyright 2010, ZenWebware
// www.zenwebware.com
//
// Note: Two tier nav only!!!
//

var nav_menus = [];

function nav_menu_add(id) {
	var nav_menu = [];
	nav_menu['id'] = id;
	nav_menu['timer'] = null;
	nav_menu['opacity'] = 0.01; // IE can't handle opacity of zero.
	nav_menus[nav_menus.length] = nav_menu;
}


function nav_menu_show(id) {
	for(var i = 0; i < nav_menus.length; i++) {
		if(nav_menus[i]['id'] != id) {
			nav_menu_hide(nav_menus[i]['id']);
		}
	}
	var index = nav_menu_fetch_index(id);
	if(index === false) return;
	if(nav_menus[index]['timer']) {
		clearTimeout(nav_menus[index]['timer']);
	}
	var element = document.getElementById(id);
	element.style.opacity = nav_menus[index]['opacity'];
	element.style.filter = "alpha(opacity=" + (nav_menus[index]['opacity'] * 100) + ")";
	element.style.display = "block";	
	nav_menus[index]['timer'] = setInterval("nav_menu_fade_in('" + id + "')", 10);
}


function nav_menu_hide(id) {
	//var element = document.getElementById(id);
	//element.style.display = "none";
	//return;

	var index = nav_menu_fetch_index(id);
	if(index === false) return;
	if(nav_menus[index]['timer']) {
		clearTimeout(nav_menus[index]['timer']);
	}
	nav_menus[index]['timer'] = setInterval("nav_menu_fade_out('" + id + "')", 40);
}


function nav_menu_hide_all() {
	for(var i = 0; i < nav_menus.length; i++) {
		nav_menu_hide(nav_menus[i]['id']);
	}
}


function nav_menu_fade_in(id) {
	var element = document.getElementById(id);
	var index = nav_menu_fetch_index(id);
	if(nav_menus[index]['opacity'] >= 1.0) {
		clearTimeout(nav_menus[index]['timer']);
		nav_menus[index]['opacity'] = 1.0;
	} else {
		nav_menus[index]['opacity'] = nav_menus[index]['opacity'] + 0.1;
	}
	element.style.opacity = nav_menus[index]['opacity'];
	element.style.filter = "alpha(opacity=" + (nav_menus[index]['opacity'] * 100) + ")";
}


function nav_menu_fade_out(id) {
	var element = document.getElementById(id);
	var index = nav_menu_fetch_index(id);
	if(nav_menus[index]['opacity'] <= 0) {
		clearTimeout(nav_menus[index]['timer']);
		element.style.display = "none";
		nav_menus[index]['opacity'] = 0.01; // IE can't handle opacity of zero.
	} else {
		nav_menus[index]['opacity'] = nav_menus[index]['opacity'] - 0.1;
	}
	element.style.opacity = nav_menus[index]['opacity'];
	element.style.filter = "alpha(opacity=" + (nav_menus[index]['opacity'] * 100) + ")";
}


function nav_menu_fetch_index(id) {
	for(var i = 0; i < nav_menus.length; i++) {
		if(nav_menus[i]['id'] == id) {
			return i;
		}
	}
	return false;
}


function is_child(parent, child) {
	if(child != null) {
		while(child.parentNode) {
			if((child = child.parentNode) == parent) {
				return true;
			}
		}
	}
	return false;
}


function is_mouseout(element, event) {
	var current_mouse_target = null;
	if(event.toElement) {
		current_mouse_target = event.toElement;
	} else if(event.relatedTarget) {
		current_mouse_target = event.relatedTarget;
	}
	if(!is_child(element, current_mouse_target) && element != current_mouse_target) {
		return true;
	} else {
		return false;
	}
}

