/*	
	nav-hovers.js
	===============================================================
	NSU - Nav rollovers function
	
	Created 24.03.2009 by DS	
	Last Updated: See SVN		
	
	@ primary_nav_hover
	@ add_primary_nav_hovers	
	_______________________________________________________________
*/

	function primary_nav_hover(e)
	{
		// identify 'this'
		
		if (!e) 
		{
			var e = window.event; // http://www.quirksmode.org/js/events_properties.html
		}
		
		// 
		
		if (e.target) 
		{
			targ = e.target;
		}
		else if (e.srcElement) 
		{
			targ = e.srcElement;
		}
		if (targ.nodeType == 3) 
		{	
			// defeat Safari bug
			targ = targ.parentNode;
		}
		
		// IE
		var _this;
		
		if (whichbrowser.isIE6up)	
		{
			_this = targ;
		}
		else
		{
			_this = this;	
		}	
		
		// some more ie checking (while loop update)
		
		while (_this.tagName.toLowerCase() != 'a')
		{
			_this = _this.parentNode;	
		}
	
		// interaction behaviours
		
		var img_src = _this.getElementsByTagName('img')[0].src;		

		if ((e.type == 'mouseover') || (e.type == 'focus'))
		{			
			_this.getElementsByTagName('img')[0].src = img_src.replace('_off.gif', '_over.gif');					
		}
		else if ((e.type == 'mouseout') || (e.type == 'blur'))
		{
			_this.getElementsByTagName('img')[0].src = img_src.replace('_over.gif', '_off.gif');	
		}		
	}	
	
	function add_primary_nav_hovers()
	{	
		// check that the container exists
		if (document.getElementById('headerBlock'))
		{
			// there are two nav blocks in the header, but only one contains images
			var images = document.getElementById('headerBlock').getElementsByTagName('img');
		}				
		
		if (images)
		{				
			for (var i=0; i<images.length; i++)
			{
				var img_src = images[i].src;
				
				if (img_src.match('_off.gif'))
				{				
					// preload inline overstates
					window['linkImgHover_' + i] = new Image();					
					window['linkImgHover_' + i].src = img_src.replace('_off.gif', '_over.gif');

					// 	Mouse-dependent handlers
					// parentNode.parentNode.parentNode = img > A
					add_event(images[i].parentNode, 'mouseover', primary_nav_hover, false);
					add_event(images[i].parentNode, 'mouseout', primary_nav_hover, false);
	
					// 	Device independent handlers
					add_event(images[i].parentNode, 'focus', primary_nav_hover, false);
					add_event(images[i].parentNode, 'blur', primary_nav_hover, false);							
				}
			}
		}
	}	
	
	add_load_event(add_primary_nav_hovers);
	