/***************************
Author: Sherwin Sena Aborot
Date: 9/2/2008
Purpose:
	Goal is to merged the scripts use for page navigation under 1 file.
***************************/

/************************************************************************************************************
	ALLOW DROPDOWN MENU FUNCTIONALITY FOR IE6 AND BELOW WHICH DOESN'T SUPPORT SOME CSS RULES 
*************************************************************************************************************/
var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=parseFloat(b_version);
if ( browser=="Microsoft Internet Explorer" && version <= 6) {
	sfHover = function() {
		try {
			var sfEls = document.getElementById("nav").getElementsByTagName("LI");
			for (var i=0; i<sfEls.length; i++) {
				sfEls[i].onmouseover=function() {
					this.className+=" sfhover";	
					var anchors = document.getElementsByTagName("select");
					for (var i=0; i<anchors.length; i++) {
					var anchor = anchors[i];
					anchor.style.visibility = "hidden";
					}
				}
				sfEls[i].onmouseout=function() {
					this.className=this.className.replace(new RegExp(" sfhover\\b"), "");		
					var anchors = document.getElementsByTagName("select");
					for (var i=0; i<anchors.length; i++) {
					var anchor = anchors[i];
					anchor.style.visibility = "visible";
					}
				}
			}
		} catch(err) {}
	}
	if (window.attachEvent) window.attachEvent("onload", sfHover);
}

/***********************************************************************************************************************************************************************
	ALLOWS MENU ITEM TO HIGHLIGHT IF THE URL IT IS LINKED TO IS LOADED. CSS STYLES ARE NEEDED TO HIGHLIGHT THE MENU ITEM , USE 'litUpItem' AS CLASS SELECTOR
************************************************************************************************************************************************************************/
function litMeUp(nav) {
	// get page id
	pageID = document.getElementsByTagName('BODY')[0].id;
	pageClass = document.getElementsByTagName('BODY')[0].className + 'MenuItem';
	
	// set active menu classname
	targetNav = document.getElementById(nav);
	items = getElementsByClassName(targetNav,'li',pageClass);
	
	// get all items that points to the page currently displayed and add a class into to so we can highlight it and its parents (if possible)
	for ( var i in items ) {
		items[i].getElementsByTagName('A')[0].className += " litUpItem";
		
		// get parents only if item is in a submenu else exit function
		if ( items[i].getElementsByTagName('DIV')[0].className != "topMItem" ) {
			itemParent = items[i].getElementsByTagName('A')[0].parentNode.parentNode;
		} else {
			return true;
		}
		
		// hightlight all parents
		while ( itemParent.id != nav ) {
			if ( itemParent.nodeName == "LI" ) {
				itemParent.getElementsByTagName('A')[0].className += " litUpItem";
			}
			itemParent = itemParent.parentNode;
		}
	}
}

/****************************************************************
	ADDS A CLASS ON THE ITEMS OF THE MAIN NAVIGATION
****************************************************************/

function addActiveMenuItemClass(nav) {
	var activeItem = document.getElementById("active-menu-item");
	if ( activeItem != null ) {
		var parentItem = activeItem.parentNode;
		var activeItemParentPass = false;
		while ( parentItem.id != "nav" ) {
			var itemHolder = parentItem.getElementsByTagName("DIV");
			if ( itemHolder.length > 0 ) {
				if ( parentItem.nodeName == "LI" && activeItemParentPass ) {
					itemHolder[0].className += " active-parent-item";
				}
				activeItemParentPass = true;			
			}
			parentItem = parentItem.parentNode;
		}
	}
}

function addLastMenuItemClass(nav) {
	targetNav = document.getElementById(nav);
	items = getElementsByClassName(targetNav,'div','topMItem');

	items[items.length-1].className += " lastMItem";
	items[items.length-1].parentNode.className += " lastLItem";
	
	addActiveMenuItemClass(nav);
}

/********************************************************
	RETURNS ALL ELEMENTS BY ITS CLAS NAME
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
********************************************************/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
