
function Cache()
{
	this.arrButton = new Array();
	this.arrImages = new Array();

	this.add = function(imageNormal, imageOver)
	{
		this.addImage(imageNormal);
		this.addImage(imageOver);
		this.arrButton.push({imageNormal:imageNormal,imageOver:imageOver})
	}

	this.addImage = function(imageSrc)
	{
		var image = new Image();
		image.src = imageSrc;
		this.arrImages.push(image);
	}

	this.searchImage = function(imageSrc)
	{
		var index=-1;
		var i=0;
		while(-1==index && i<this.arrImages.length)
		{
			if(this.arrImages[i].src==imageSrc)
			{
				index=i;
			}
			i++
		}
		return index;
	}

	this.search = function(imageNormal, imageOver)
	{
		imageNormal = 'undefined'==typeof imageNormal ? null : imageNormal;
		imageOver   = 'undefined'==typeof imageOver   ? null : imageOver;
		var index = -1;
		var i = 0;
		while(-1==index && i<this.arrButton.length)
		{
			if((imageNormal!=null && -1!=imageNormal.lastIndexOf(this.arrButton[i].imageNormal.replace(/..\/?/,'')))
			|| (imageOver  !=null && -1!=imageOver.lastIndexOf(this.arrButton[i].imageOver.replace(/..\/?/,''))))
			{
				index = i;
			}
			i++;
		}
		return index;
	}

	this.over = function(o)
	{
		var index = this.search(o.src, null);
		if(-1!=index)
		{
			o.src = this.arrButton[index].imageOver;
		}
	}

	this.out = function(o)
	{
		var index = this.search(null, o.src);
		if(-1!=index)
		{
			o.src = this.arrButton[index].imageNormal;
		}
	}

	this.getImages = function()
	{
		return this.arrImages;
	}
}