// MouseOver.js
//
//First check the name space...

var com;
if (!com || !com.jchristy) { throw new Error("com.jchristy: Required object 'com.jchristy.Support' does not exist."); }
if (!com.jchristy.Handler) { throw new Error("com.jchristy: Required object 'com.jchristy.Handler' does not exist."); }

//Name space is ready.
com.jchristy.MouseOver = { 
							highlight: null,
						    init_highlight: null
						 };
						 
com.jchristy.MouseOver.addMouseOvers = function() {
	if (!com.jchristy.Support.features.HTML1) { return; }
	
	var imgs = document.getElementsByTagName("img");
	
	for (var i = 0; i < imgs.length; i++) {
		var img = imgs[i];
		var id  = img.getAttribute("id")
		var isOver = (id) ? id.indexOf("_over") : -1;
		var isHigh = (id) ? id.indexOf("_high") : -1;
		var isHighOver = (id) ? id.indexOf("_hover") : -1;
		
		if (isHighOver != -1) 
		{
				isOver = 1;
				isHigh = 1;
		}
		
		if (isOver != -1 || isHigh != -1) 
		{ 
			var oversrc = img.src.substr(0, img.src.lastIndexOf(".")) + "_over" + img.src.substr(img.src.lastIndexOf("."));
			var newImage = new Image();
				newImage.src = oversrc;
			
			var highsrc = null;
			
			if (isHigh != -1)
			{
				if (isHighOver == -1)
				{
					highsrc = img.src.substr(0, img.src.lastIndexOf(".")) + "_high" + img.src.substr(img.src.lastIndexOf("."));
					var newImage = new Image();
						newImage.src = highsrc;
					
				} else {
					highsrc = img.src.substr(0, img.src.lastIndexOf(".")) + "_over" + img.src.substr(img.src.lastIndexOf("."));	
				}
			}
			
			img._mo = 
			{
				enabled: true,
				outsrc: img.src,
				oversrc: oversrc,
				highsrc: highsrc
			};
			com.jchristy.Handler.add(img, "mouseover", function() { com.jchristy.MouseOver.btn_over(this);  } );
			com.jchristy.Handler.add(img, "mouseout", function() { com.jchristy.MouseOver.btn_out(this);  } );
			
			if (isHigh != -1)
			{
				com.jchristy.Handler.add(img, "click", function() { com.jchristy.MouseOver.btn_high(this); } );
			}
			
			if (com.jchristy.MouseOver.init_highlight == id) 
			{
				com.jchristy.MouseOver.btn_high(img);	
			}
		}	
	}
}
com.jchristy.MouseOver.btn_over = function(btn)
{
	if (btn._mo.enabled) { btn.src = btn._mo.oversrc; }
}
com.jchristy.MouseOver.btn_out = function(btn)
{
	if (btn._mo.enabled) { btn.src = btn._mo.outsrc; }	
}
com.jchristy.MouseOver.btn_high = function(btn) 
{
	if (com.jchristy.MouseOver.highlight)
	{
		com.jchristy.MouseOver.btn_reset(com.jchristy.MouseOver.highlight);	
	}
	
	if (btn._mo.enabled)
	{
		btn.src = btn._mo.highsrc;
		btn._mo.enabled = false;
	} 
	else 
	{
		com.jchristy.MouseOver.btn_reset(btn);
	}
	
	com.jchristy.MouseOver.highlight = btn;
}
com.jchristy.MouseOver.btn_reset = function(btn)
{
	btn.src = btn._mo.outsrc;
	btn._mo.enabled = true;	
}
com.jchristy.Handler.add(window, "load", com.jchristy.MouseOver.addMouseOvers);