/***************************************
* images.js Common image utility methods
* This file requires UserAgent.js
* Author: Peter Gumeson
* July 5, 2000
***************************************/

// Image constants
var _OFF = 0;
var _ON = 1;

// Array to hold image refrences
var Images = new Array();

// Adds an Image
function addImage( docImage, images ) {
	if ( UserAgent.isVersion( 4 ) )	{
		if ( docImage && docImage.src && ( null == docImage.frames || typeof( docImage.frames ) == typeof( void( 0 ) ) ) ) {
			
			docImage.frame = _OFF;
			docImage.frames = new Array();
			docImage.frames[_OFF] = loadImage(docImage.src);
			
			if ( images ) {
				if ( typeof images == "string" )
					images = images.split(",");
			
				for ( i = 0; i < images.length; i++ ) {
					docImage.frames[i+1] = loadImage( images[i] );
				}
			}
			
			// Add methods
			docImage.load = Image_load;
			docImage.off = Image_off;
			docImage.on = Image_on;
			docImage.show = Image_show;
			docImage.next = Image_next;
			docImage.prev = Image_prev;
			
			// Add the image to JSlib.images array
			Images[ docImage.name ] = docImage;
		}
	}
}

// Members
function Image_load( image ) {
	if ( UserAgent.isVersion( 4 ) )	{
		var source;
		if ( image.src )
			source = image.src;
		else
			source = image;
		this.src = source;
	}
}
function Image_on() {
	if ( UserAgent.isVersion( 4 ) ) {
		this.frame = _ON;
		this.load( this.frames[_ON].src );
	}
}
function Image_off() {
	if ( UserAgent.isVersion( 4 ) )	{
		this.frame = _OFF;
		this.load( this.frames[_OFF].src );
	}
}
function Image_show( index ) {
	if ( UserAgent.isVersion( 4 ) )	{
		this.frame = index;
		this.load( this.frames[index].src );
	}
}
function Image_next() {
	if ( UserAgent.isVersion( 4 ) )	{
		if ( ++this.frame > this.frames.length-1 )
			this.frame = _OFF;
		this.load( this.frames[this.frame].src );
	}
}
function Image_prev() {
	if ( UserAgent.isVersion( 4 ) )	{
		if ( --this.frame < _OFF )
			this.frame = this.frames.length-1;
		this.load( this.frames[this.frame].src );
	}
}

/****************************************************
*  Image utility methods
****************************************************/

// Preloads an image
function loadImage( image ) {
	if ( UserAgent.isVersion( 4 ) )	{
		if ( image.src )
			return image;
		else
			imgObject = new Image()
		imgObject.src = image;
		return imgObject;
	}
	else
		return null;
}

// Preloads an array of images
function loadImages( imgArray ) {
	if ( UserAgent.isVersion( 4 ) ) {
		for ( i=0; i<imgArray.length; i++ )	{
			if ( typeof imgArray[i] == "string" )
				imgArray[i] = loadImage( imgArray[i] );
		}
		return imgArray;
	}
	else
		return null;
}

