/* /library/javascript/imageFunctions.js -	

   DATE           AUTHOR    CHANGE
   28.07.2005  AgMcC       Copied out of global.js so can have rollover image without having to load all of global.js

*/


// IMAGE FUNCTIONS ------------------------------------------------------------------

function subPreloadImage(strImageVar, strImageSrc) {
/*Purpose	:	Used to an preload image.
	Effects	:	None
	Inputs	:	strImageVar - String - id of the image tag
				strImageSrc - String - URL of the image
	Returns	:	None
*/
	if (document.images) {
		eval(strImageVar + ' = new Image()');
		eval(strImageVar + '.src = "' + strImageSrc + '"');
	}
}

function subInitImgRollovers()
{
/*
	Purpose	:	Finds all image or "input type=image" tags with an "oversrc" attribute, preloads this image and 
				wires-up the onmouseover, onmouseout events.
	Effects	:	None.
	Inputs	:	None.
	Returns	:	None.
*/
	var objImages = document.images;
	var objInputTags = document.getElementsByTagName("INPUT");
	var objImage;
	var strOverSrc, strSrc, strOversrcVar, strSrcVar;
	var intCounter = 0;
	
	// loop through IMG tag collection
	for(i=0; i<objImages.length; i++) {
		objImage = objImages[i];
		strOverSrc = objImage.getAttribute("oversrc");
		if(strOverSrc != null) {
			if(strOverSrc != "undefined" && strOverSrc != "") {
				strSrc = objImage.src;
				// create new src and oversrc variable names
				strSrcVar = "src_" + intCounter;
				strOversrcVar = "oversrc_" + intCounter;
				intCounter++;
				subCreateRollover(objImage, strSrcVar, strSrc, strOversrcVar, strOverSrc);
			}
		}
	}
	
	// loop through INPUT TYPE=IMAGE collection
	for(i=0; i<objInputTags.length; i++) {
		objImage = objInputTags[i];
		if(objImage.type == "image") {
			strOverSrc = objImage.oversrc;
			if(strOverSrc != null) {
				if(strOverSrc != "undefined") {
					strSrc = objImage.src;
					// create new src and oversrc variable names
					strSrcVar = "src_" + intCounter;
					strOversrcVar = "oversrc_" + intCounter;
					intCounter++;
					subCreateRollover(objImage, strSrcVar, strSrc, strOversrcVar, strOverSrc);
				}
			}
		}
	}
}

function subCreateRollover(objImage, strSrcVar, strSrc, strOversrcVar, strOverSrc)
{
/*
	Purpose	:	Sets up the rollover on the specified tag.
	Effects	:	Creates new attributes on the specified tag.  Wires up the omouseover and onmouseout events.
	Inputs	:	objImage - Object - the IMG or INPUT TYPE=image tag.
				strSrcVar - String - the name of the variable to hold the preloaded original src image.
				strSrc - String - the URL of the original image.
				strOversrcVar - String - the name of the variable to hold the preloaded over src image.
				strOverSrc - String - the URL of the over image.
	Returns	:	None.
*/
	// store src and oversrc variable in an attribute on the image
	objImage.src_var = strSrcVar;
	objImage.oversrc_var = strOversrcVar;
	// preload images
	subPreloadImage(strSrcVar, strSrc);
	subPreloadImage(strOversrcVar, strOverSrc);
	// wire up onmouseover and onmouseout events
	objImage.onmouseover = subRollOver;
	objImage.onmouseout = subRollOut;
}

function subRollOver()
{
/*
	Purpose	:	onmouseover event handler for image rollovers.
	Effects	:	Changes the src attribute of the tag that fired the event.
	Inputs	:	None.
	Returns	:	None.
*/
//	var objImageTag = window.event.srcElement;
              var objImageTag = this;
	var strNewImageVar = objImageTag.oversrc_var;
	var objNewImage = eval(strNewImageVar);
	objImageTag.src = objNewImage.src;
}

function subRollOut()
{
/*
	Purpose	:	onmouseout event handler for image rollovers.
	Effects	:	Changes the src attribute of the tag that fired the event.
	Inputs	:	None.
	Returns	:	None.
*/
//	var objImageTag = window.event.srcElement;
              var objImageTag = this;
	var strNewImageVar = objImageTag.src_var;
	var objNewImage = eval(strNewImageVar);
	objImageTag.src = objNewImage.src;
}


// bind event handlers
window.onload = subInitImgRollovers;