function ImageSwap() { //ver.2.1

	this.imageSource = new Object();
	this.layerId = new Object();
	this.imageObject = new Object();
	this.loadCompleted = false;

// PUBLIC_METHODS ;
	this.setImageSource = setImageSource;
	this.setLayerId = setLayerId;
	this.setNewSource = setNewSource;
	this.setImageObjects = setImageObjects;

	function setImageSource() {
		if (arguments.length > 0) {
			this.imageSource[arguments[0]] = new Array();
			for (var i=1;i<arguments.length;i++) {
				this.imageSource[arguments[0]][i-1] = arguments[i];
			}
		}
	}
	function setLayerId() {
		if (!!arguments[0] && !!arguments[1]) {
			this.layerId[arguments[0]] = new String(arguments[1]);
		}
	}
	function setImageObjects() { //ver.1.1
		if (document.images) {
			for (var item in this.imageSource) {
				if (!!this.imageSource[item]) {
					this.imageObject[item] = new Array();
					for (var j=0;j<this.imageSource[item].length;j++) {
						this.imageObject[item][j] = new Image();
						this.imageObject[item][j].src = this.imageSource[item][j];
					}
				}
			}
			this.loadCompleted = true;
		}
	}
	function setNewSource(objet,status) { //ver.1.4.1
		var res = (!!this.imageObject[objet] && !!this.imageObject[objet][status])? this.imageObject[objet][status].src : false ;
		if (!!res && this.loadCompleted) {
			if (!!!document.layers) {
				if (!!document.images[objet]) document.images[objet].src = res;
			} else if (document.layers) {
				if (!!document.images[objet]) {
					document.images[objet].src = res;
				} else if (!!getLayerId(objet) && !!getLayerId(objet).document.images[objet]) {
					getLayerId(objet).document.images[objet].src = res;
				}
			}
		}
	}


// PRIVATE_METHOD ;
	function getLayerId(objet) { //ver.1.3
		return (document.layers && (typeof(this.layerId[objet]) != "undefined"))? eval(this.layerId[objet]) : false ;
	}


}