/**
 * Dynamic Image Rollover Script With Built In PreLoader
 * Create By Alex Barker 8/16/2004
 *
 * The purpose of the script was to be able to add and remove 
 * images involving mouse over events quickly and easely with 
 * out worring about braking the preloader or having to add 
 * javascript mouse events to each image.
 */

//If you are not going to use the activ feature of this script please 
//set the imgActv Postfixes to the imgOver Postfixes.

//Setup Postfixes For Images
var imgNorm = "_norm";
var imgActv = "_over";
var imgOver = "_over";

//Other setup variables you dont need to play with
var aImg, aImgPreload, i;
var sBrowserName = navigator.appName;

/**
 * Note: Because Internet Explorer thinks its special the onload catch on
 * line 17 & 18 will override or be over ridden by any other onload events.
 */
//this.onload = catchLoad;
//function catchLoad(e) {
function initRollOvers() {
	//Get All Images on The Page
	aImg = document.getElementsByTagName('img');
	aImgPreload = new Array(aImg.length);
	
	//Dont think this is needed anymore
	//if ((navigator.userAgent.indexOf('Mac') != -1) || document.all || document.layers)
	//{
		//Browser May Brake
		//document.captureEvents(event.MOUSEDOWN | event.MOUSEOUT | event.MOUSEOVER);
	//}
	
	for (i = 0; i < aImg.length; i++) {
		aImgPreload[i] = new Array(3);
		var sImgSrc = new String(aImg[i].src);
		
		if (sImgSrc.lastIndexOf(imgNorm) > -1 && sImgSrc.lastIndexOf('/') < sImgSrc.lastIndexOf('_')) {
			//Grab Everything before the '_' for the image source
			var sImgSrc = sImgSrc.substring(0, sImgSrc.lastIndexOf('_'));
			//Grab Everything after the '.' for the image extention
			var imgType = sImgSrc.substring(sImgSrc.lastIndexOf('.'));
			
			//Catch Mouse Down Event
			//aImg[i].onclick = catchClick;
			aImg[i].onmouseover = catchOver;
			aImg[i].onmouseout = catchOff;
			aImg[i].onmousedown = catchDown;
			
			//Setup Preloader
			aImgPreload[i][0] = new Image();
			aImgPreload[i][0].src = sImgSrc + imgNorm + imgType;
			
			aImgPreload[i][1] = new Image();
			aImgPreload[i][1].src = sImgSrc + imgOver + imgType;
			
			aImgPreload[i][2] = new Image();
			aImgPreload[i][2].src = sImgSrc + imgActv + imgType;
		}
	}
	
	return true;
}

function catchClick(e) {
	var objEvent = getCorrectEvent(e);
	
	//Should Probably Run a Custom Function Here
	alert("You Clicked: " + objEvent.alt);
	
	return true;
}

function catchOver(e) {
	var objEvent = getCorrectEvent(e);
	
	objEvent.src = objEvent.src.substring(0, objEvent.src.lastIndexOf('_')) + imgOver + objEvent.src.substring(objEvent.src.lastIndexOf('.'));
	
	return true;
}

function catchOff(e) {
	var objEvent = getCorrectEvent(e);
	
	objEvent.src = objEvent.src.substring(0, objEvent.src.lastIndexOf('_')) + imgNorm + objEvent.src.substring(objEvent.src.lastIndexOf('.'));
	
	return true;
}

function catchDown(e) {
	var objEvent = getCorrectEvent(e);
	
	objEvent.src = objEvent.src.substring(0, objEvent.src.lastIndexOf('_')) + imgActv + objEvent.src.substring(objEvent.src.lastIndexOf('.'));
	
	return true;
}

function getCorrectEvent(e) {
	var objReturn;
	
	//Get the event object, we need this because Internet Explorer thinks its better than everyone else.
	if (sBrowserName == "Microsoft Internet Explorer") {
		objReturn = event.srcElement;
	}
	else {
		objReturn = e.target;
	}
	
	return objReturn;
}
