//***********************************************************************
// Module: Image Spot
//-----------------------------------------------------------------------
// Filename: imgspot.js
//-----------------------------------------------------------------------
// Purpose:
//   Provides functions for image state changes (off/on/over).
//-----------------------------------------------------------------------
// Assumptions:
//   None.
//-----------------------------------------------------------------------
// Effects:
//   None.
//-----------------------------------------------------------------------
// Inputs:
//   None.
//-----------------------------------------------------------------------
// Returns:
//   None.
//-----------------------------------------------------------------------
// Author:
//   Ezequiel Espíndola
//   eespindola@bcompass.com.ar
//-----------------------------------------------------------------------
// Modifications:
//		1999, Ezequiel Espíndola (eespindola@bcompass.com.ar)
//		Code creation.
//		2001-11-15, Ezequiel Espíndola (eespindola@bcompass.com.ar)
//		Modify code to use dynamic properties and methods linked directly
//		to the image objects on the page.
//		2001-11-27, Ezequiel Espíndola (eespindola@bcompass.com.ar)
//		Add error handling in case an inexistent image object is given.
//***********************************************************************

// Method to set the image off.
function setImgOff () {
	if ((typeof(this.imgOff) != 'undefined') && 
			(this.isSelected == false)) {
		  this.src = this.imgOff.src
  }
}

// Method to set the image on.
function setImgOn () {
	if ((typeof(this.imgOn) != 'undefined') &&
			(this.isSelected == false)) {
		if (objImgSelected != null) {
		  objImgSelected.src = objImgSelected.imgOff.src;
			objImgSelected.isSelected = false;
	  }
		this.src = this.imgOn.src;
		this.isSelected = true;
	  objImgSelected = this;
	}
}

// Method to set the image over.
function setImgOver() {
	if ((typeof(this.imgOver) != 'undefined') && 
			(this.isSelected == false)) {
		  this.src = this.imgOver.src;
  }
}

// Method to initialize image states.
function setImgStates(objImage, strSrcOff, strSrcOn, strSrcOver) {
	// If the image object exists.
	if (typeof(objImage) != 'undefined') {
		// Set image off property.
		if (strSrcOff != '') {
			objImage.imgOff      = new Image();
			objImage.imgOff.src  = strSrcOff;
		}
  
		// Set image on property.
		if (strSrcOn != '') {
			objImage.imgOn       = new Image();
			objImage.imgOn.src   = strSrcOn;
		}

		// Set image over property.
		if (strSrcOver != '') {	
			objImage.imgOver     = new Image();
			objImage.imgOver.src = strSrcOver;
		}

		objImage.setImgOff   = setImgOff;
		objImage.setImgOn    = setImgOn;
		objImage.setImgOver  = setImgOver;
		objImage.isSelected  = false;
	}
}

// Set first image selected to none.
objImgSelected = null;


//// imgOver Object

// Method to set the image off.
function setImgOff2(objImg)
{
	objImg.src = this.imgOff.src;
}

// Method to set the image over.
function setImgOver2(objImg) {
	objImg.src = this.imgOver.src;
}

function imgOver(strSrcOff, strSrcOver)
{
	// Set image off property.
	this.imgOff      = new Image();
	this.imgOff.src  = strSrcOff;
  
	// Set image over property.
	this.imgOver     = new Image();
	this.imgOver.src = strSrcOver;

	this.setImgOff   = setImgOff2;
	this.setImgOver  = setImgOver2;
}

// Method to initialize image states. (return object)

function imgStates(strSrcOff, strSrcOn, strSrcOver) {
	// Set image off property.
	if (strSrcOff != '') {
		this.imgOff      = new Image();
		this.imgOff.src  = strSrcOff;
	}
  
	// Set image on property.
	if (strSrcOn != '') {
		this.imgOn       = new Image();
		this.imgOn.src   = strSrcOn;
	}

	// Set image over property.
	if (strSrcOver != '') {	
		this.imgOver     = new Image();
		this.imgOver.src = strSrcOver;
	}

	this.setImgOff   = setImgOff3;
	this.setImgOn    = setImgOn3;
	this.setOn			 = setOn;
	this.setImgOver  = setImgOver3;
	this.isSelected  = false;
}

// Method to set the image off.
function setImgOff3 (objImage) {
	if ((typeof(this.imgOff) != 'undefined') && 
			(this.isSelected == false)) {
		  objImage.src = this.imgOff.src
  }
}

// Method to set the image on.
function setImgOn3 (objImage) {
	if ((typeof(this.imgOn) != 'undefined') &&
			(this.isSelected == false)) {
		if (objImgSelected != null) {
		  objImgSelected.src = objImgSelected.imgOff.src;
			objImgSelected.isSelected = false;
	  }
		objImage.src = this.imgOn.src;
		this.isSelected = true;
	  objImgSelected = this;
	}
}

// Method to set the image over.
function setImgOver3(objImage) {
	if ((typeof(this.imgOver) != 'undefined') && 
			(this.isSelected == false)) {
		  objImage.src = this.imgOver.src;
  }
}

function setOn(objImage) {
	if (typeof(this.imgOn) != 'undefined') {
		  objImage.src = this.imgOn.src;
		  this.isSelected = true;
  }
}
