/* *****************************************************
*
*	© 2001 Etensity, Inc.
*	Image Rollover code (in JavaScript)
*
*	Updated:	May 3, 2001
*	By:		Etensity Interation Design Group
*	Contact:	Noah Lazar <nlazar@etensity.com>
*
******************************************************** */

function PreloadImages() {
	// Preload images and create objects based on argument list of:
	// 	object name, over image filename, out/original image filename

	if (!document.images) return;

	var args = PreloadImages.arguments;
	var i = 0;

	while (i < args.length) {
		eval(args[i] + '_over = new Image()');
		eval(args[i] + '_over.src = "' + args[i + 1] + '"');
		eval(args[i] + '_out = new Image()');
		eval(args[i] + '_out.src = "' + args[i + 2] + '"');
		i = i + 3;
	}
}


function SwapImage() {
	// Changes given image objects with given sources:
	//		filename -> loads that file
	//		over, out, up, down -> uses preloaded image object
	//		nothing -> uses image object of opposite state

	if (!document.images) return;

	var imgName, imageObj, swapName, dotSpot;
	var args = SwapImage.arguments;
	var i = 0;

	while (i < args.length) {
		imgName = args[i];
		swapName = args[i + 1];
		imageObj = getImageObject(imgName);

		if (!swapName) {

			// If no swapName used, switch between over and out
			if (eval(imgName + '_over.src') == imageObj.src)
				imageObj.src = eval(imgName + '_out.src');
			else
				imageObj.src = eval(imgName + '_over.src');

		} else if ((dotSpot = swapName.lastIndexOf('.')) > 0) {

			// Filename given (with 3 or 4 character file type)
			if ((swapName.length - dotSpot >= 4) && (swapName.length - dotSpot <= 5))
				imageObj.src = swapName;		// File name

		} else

			// Uses preloaded image object
			imageObj.src = eval(imgName + '_' + swapName.toLowerCase() + '.src');

		i = i + 2;
	}
}


function getImageObject(imgName) {
	// Find image object
	if (document.all) return eval('document.all.' + imgName);			// IE4+
	if (document.images[imgName]) return document.images[imgName];		// W3C, NS
	if (document.layers) return findImage(imgName, document);			// NS4 w/layers

	return null;
}


function findImage(name, doc) {
	// Recurse through layers in NS4 to find image
	if (doc.images[name]) return doc.images[name];

	var i, img;
	for (i = 0; i < doc.layers.length; i++)
		if ((img = findImage(name, doc.layers[i].document)) != null) {
			img.container = doc.layers[i];
			return img;
		}
	return null;
}
