function ImagePool() {
	var o = new Object();
	
	o.target = document.images[ImagePool.sName];
	o.swap = ImagePool_swap;
	
	return o;
	
	function ImagePool_swap(nID) {
		var tmpImage = new Image();
		tmpImage.src = ImagePool.images[nID];
		document.images['swap'].src = tmpImage.src;
	}
}
ImagePool.sName = "swap";
ImagePool.images = new Array();

function ImageRoll(sImageRoot, sPath, sCount) {
	var o = new Object();
	this.root = sImageRoot;
	o.oversrc 		= sPath + sImageRoot + "_on.jpg";
	o.outsrc			= sPath + sImageRoot + "_tn.jpg";
	o.clicksrc		= sPath + sImageRoot + "_on.jpg";
	o.imgNumber		= sCount;
	var tmpImage = new Image();
	tmpImage.src = o.oversrc;
	var tmpImage = new Image();
	tmpImage.src = o.clicksrc;
	o.over 				= ImageRoll_over;
	o.out	 				= ImageRoll_out;
	o.click				= ImageRoll_click;
	o.m_bClicked 	= false;
	o.m_bForce		= false;
	if (document.images['img_' + sCount]) {
		document.images['img_' + sCount].ImageRoll = o;
	}
	return o;
	
	function ImageRoll_over(sImg) {
		if (!this.m_bClicked) {
			document.images['img_' + this.imgNumber].src = this.oversrc;
		}
	}
	
	function ImageRoll_out() { 
		if ( (!this.m_bClicked) || (this.m_bForce) ) {
			document.images['img_' + this.imgNumber].src = this.outsrc;
			this.m_bForce = false;
		}
	}
	
	function ImageRoll_click() {
		for (var sItem in ImageRoll.all) {
			ImageRoll.all[sItem].m_bForce = true;
			ImageRoll.all[sItem].out();
		}
		this.src = this.clicksrc;
		this.clicked = true;
	}
}
ImageRoll.all = new Array();
ImageRoll.destroy = ImageRoll_destroy;
function ImageRoll_destroy() {
	for (var sItem in ImageRoll.all) {
		delete ImageRoll.all[sItem];
	}
	ImageRoll.all = null;
}
