
/****************************************************************************************
*
*  Rollover Image functions
*
*  This is a set of functions for dealing with javascript image rollovers
*  John J. Lehmann, johnl@axis.com.au
*  6 July, 2000
*
****************************************************************************************/

/****************************************************************************************
*
*  Usage instructions
*
*  To set up an image for a rollover, call the function addRolloverImage,
*
*	addRolloverImage(name, losrc, hisrc)
*
*  This function takes a name, url to an "off" image and a url to an "on" image
*  eg.
*
*	addRolloverImage("button1", "button-off.gif", "button-on.gif")
*
*  Then you can set up the image as follows:
*
*	<a href="#" onMouseOver="return rollIn('button1')" onMouseOut="return rollOut('button1')">
*	<img name="button1" src="button-off.gif" width="103" height="103" border="0">
*	</a>
*
****************************************************************************************/

var g_rollover_images = new Array()

function RolloverImage_rollIn() {
	if ( document.images && this.documentImage != null && this.loaded ) {
		this.documentImage.src = this.hisrc;
	}
}

function RolloverImage_rollOut() {
	if ( document.images && this.documentImage != null && this.loaded ) {
		this.documentImage.src = this.losrc;
	}
}

function RolloverImage_set(docImg) {
	if ( document.images ) {
		this.documentImage = document.images[docImg];
	}
}

function RolloverImage_load() {
	this.lo = new Image(); this.lo.src = this.losrc;
	this.hi = new Image(); this.hi.src = this.hisrc;
	this.loaded = true;
}

function RolloverImage(lo, hi) {
	// RolloverImage class methods
	
	this.load = RolloverImage_load;
	this.set = RolloverImage_set;
	this.rollIn = RolloverImage_rollIn;
	this.rollOut = RolloverImage_rollOut;

	// RolloverImage member variables

	this.losrc = lo;
	this.hisrc = hi;
	this.loaded = false;
	
	this.load();
	return this;
}

function loadRolloverImages(arr) {
	if ( document.images ) {
		for ( i = 0 ; i < arr.length ; i++ ) {
			arr[i].load();
		}
	}
}

function rollIn(tgt) {
	if ( document.images ) {
		g_rollover_images[tgt].set(tgt);
		g_rollover_images[tgt].rollIn();
	}
	return true;
}

function rollOut(tgt) {
	if ( document.images ) {
		if ( "" + g_rollover_images[tgt] == "undefined" ) {
			alert("imageLib.js:96: g_rollover_images[tgt] has no properties, tgt = " + tgt);
		}
		g_rollover_images[tgt].set(tgt);
		g_rollover_images[tgt].rollOut();	
	}
	return true;
}

function addRolloverImage(name, losrc, hisrc) {
	g_rollover_images[name] = new RolloverImage(losrc, hisrc)
}

