/*! NV Menu v2.0.1 <http://nvinteractive.co.nz>
	Copyright (c) NV Interactive
	
	References:
		utilities.2.0.js
		swfobject.js
		
	Release Notes:
		-- Added first and last class names on menu LIs.
*/

var nv_menuManualSelection = true;
var nv_menuAddFirstLast = true;

initMenus = function(){
	nv_menu.setupMenu("sub_menu");
	nv_menu.setupMenu("menu");
}

nv_menu = function(){
	var setupMenu = function(menu_id, checksubs){
				
		//Debug.addLine("menu.js", "setupMenu", menu_id);
		checksubs = checksubs == undefined ? true : checksubs;
		
		if(getElementsBySelector == undefined || document.getElementById(menu_id) == undefined ){
			return;
		}
		
		if(nv_menuAddFirstLast){
			var m = document.getElementById(menu_id);
			addFirst(m);
			addLast(m);
		}
		
		var nodes = getElementsBySelector("#" + menu_id + " li");
		
		for (i=0; i<nodes.length; i++) {
			node = nodes[i];
			if (node.nodeName=="LI") {			
				if(node.getElementsByTagName("UL").length > 0 && checksubs){
					node.className += " has_sub";
					node.hasSub = true;
					node_subMenus = node.getElementsByTagName("UL");
					
				if(nv_menuAddFirstLast){
					  for(var j = 0; j<node_subMenus.length; j++){
				  addFirst(node_subMenus[j]);
				  addLast(node_subMenus[j]);
					  }
				}
				}
				
				node.onmouseover = node_mouseover;
				node.onmouseout = node_mouseout;
				
				if(nv_menuManualSelection){
					setSelection(node);
				}
				

				
			}
		}
	}
	
	var node_mouseover = function(){
		if(this.hasSub){
			this.className+=" has_sub_over";
		}
		else {
			this.className+=" over";
		}
			
		var flashMovie = this.getElementsByTagName("object")[0];
		if(flashMovie){
			flashMovie.mouseover();
		}
	}
	
	var node_mouseout=function() {
		this.className=this.className.replace("has_sub_over", "");					
		this.className=this.className.replace("over", "");	
		this.className=this.className.replace("  ", "");		
		var flashMovie = this.getElementsByTagName("object")[0];

		if(flashMovie && flashMovie.mouseout){
			flashMovie.mouseout();
		}
	}
	
	var setSelection = function(node){
		
		var a = node.getElementsByTagName("a")[0];
		
		if(a.href == window.location){
			node.className += " selected";
			var el = node;
			while(el.tagName != "BODY"){
				if(el.tagName == "LI"){
					el.className += " selected";
				}
				el = el.parentNode;
			}
		}
			
	}
	
	
	function addLast(el){
      var lc = el.lastChild;
	  if(lc == undefined)
	  	return;
      while(lc.tagName != "LI")
        lc = lc.previousSibling;

      lc.className += " last";					
	}
	
	function addFirst(el){
	  var fc = el.firstChild;
	  if(fc == undefined)
	  	return;
	  while(fc.tagName != "LI")
	  	fc = fc.nextSibling;
		
	  fc.className += " first";
	}
	
	return {
	/* Public API
	*/
	setupMenu: setupMenu
	}
		
}();



swfobject.addDomLoadEvent(initMenus);

