function ImageSwap() {
	var arrImages = Array();
	var arrNames = Array();
	this.TargetImageId = "";
	this.DefaultImageSrc = "";
	this.AddImageSet = function(Name) {
		var objImg = new ImageContainer();
		if(arguments.length > 0) {
			objImg.AddImages(arguments);
		}
		var intX = arrImages.length;
		arrImages[intX] = objImg;
		arrNames[intX] = Name;
	}
	this.DoSwap = function(TnId, ImageSetName, ImageIndex, Mode) {
		var objTarget = null;
		var objThumb = document.getElementById(TnId);
		
		if(this.TargetImageId && this.TargetImageId != "") {
			objTarget = document.getElementById(this.TargetImageId)
			if (objTarget.src && Mode == "over") {
				objTarget.src = this.GetImageSrc(ImageSetName, 1);
			} else if (objTarget.src) {
				objTarget.src = this.DefaultImageSrc;
			}
		}
		if (objThumb.src) {
			objThumb.src = this.GetImageSrc(ImageSetName, ImageIndex);
		} else {
			if(!objThumb) {
				alert("Thumbnail Target is not set or invalid.");
			} else {
				alert("Thumbnail Target Src not set.");
			}
		}
	}
	this.GetImageSrc = function(ImageSetName, ImageIndex) {
		for(intX = 0; intX != arrImages.length; intX++) {
			if(arrNames[intX] == ImageSetName) {
				return arrImages[intX].Images[ImageIndex].src;
			}
		}
	}
	this.MouseOver = function(ImageSetName, TnId) {
		this.DoSwap(TnId, ImageSetName, 2, "over");
	}
	this.MouseOut = function(ImageSetName, TnId) {
		this.DoSwap(TnId, ImageSetName, 3, "out")
	}
}

function ImageContainer() {
	this.Images = Array();
	this.Name = "";
	this.AddImages = function(UrlArray) {
		for (var intX = 1; intX != UrlArray.length; intX++) {
			this.Images[intX] = new Image();
			this.Images[intX].src = UrlArray[intX];
		}
	}
}