/* 
	Prototype-based unobtrusive image rollovers, will handle anything with a .src, e.g. <input type="image">, <img>.
	Honors menus.js menu states.
	Author: Craig Waterman
*/

var g_Ext = "_o";	// Extension to the base filename for rollovers.

if (Element) {
	Element.observe(window, "load", function() {
	
		// Get appropriately classed objects
		var rImages = document.getElementsByClassName("rollover");
		
		for (var idx = 0; idx < rImages.length; idx++) {
			curImage = $(rImages[idx]);

			// Replace file.xyz with file{g_Ext}.xyz
			// Make sure to name your images accordingly.
			var srcNorm = curImage.getAttribute("src");
			var lastDot = srcNorm.lastIndexOf(".");
			var extCheck = srcNorm.substring(lastDot, lastDot - g_Ext.length);
			var srcOver = srcNorm;

			if (extCheck != g_Ext) {
				srcOver = srcNorm.substring(0,srcNorm.lastIndexOf(".")) +g_Ext + srcNorm.substring(srcNorm.lastIndexOf("."));
			} else {
			}
	
			// Preload the over state into a discarded Image object.
			var imgTemp = new Image();
			imgTemp.src = srcOver;

			// Set non-standard attributes via JS (page will still validate this script runs)
			curImage.setAttribute("srcNorm", srcNorm);
			curImage.setAttribute("srcOver", srcOver);
			curImage.setAttribute("menuOpen", "closed");
			
			// Setup mouse events.
			// Will honor menu over states.
			Element.observe(rImages[idx], "mouseover", function(e) { 
				var oe = $(Event.element(e));
				if (g_PE) {
					g_PE.stop();
				}
			
				if (g_activeMenu) {
					if (g_activeMenu.id != oe.id + '_items') {
						resetMenu();
					}
				}
				
				oe.src = oe.getAttribute("srcOver");
			});
			Element.observe(rImages[idx], "mouseout", function(e) {
				var oe = $(Event.element(e));
				if ( oe.getAttribute("menuOpen") == 'closed' ) {
					oe.src = oe.getAttribute("srcNorm");
				}
			});
		}
										   
	});
} else {
	alert("You must have prototype loaded before calling this script.");
}