
function imageholderclass()
{
	this.over=new Array();
	this.down=new Array();
	this.src=new Array();
	this.store=store;
	
	function store(src, down, over)
	{
		var AL=this.src.length;
		this.src[AL]=new Image(); this.src[AL].src=src;
		this.over[AL]=new Image(); this.over[AL].src=over;
		this.down[AL]=new Image(); this.down[AL].src=down;
	}
}

var ih = new imageholderclass();
var mouseisdown=0;

function preloader(t)
{
	for(i=0;i<t.length;i++)
	{
		if (t[i].getAttribute('srcover')||t[i].getAttribute('srcdown'))
		{
			storeimages(t[i]);
			var checker='';
			checker=(t[i].getAttribute('srcover'))?checker+'A':checker+'';
			checker=(t[i].getAttribute('srcdown'))?checker+'B':checker+'';
			
			switch(checker)
			{
				case 'A' : mouseover(t[i]);mouseout(t[i]); break;
				case 'B' : mousedown(t[i]); mouseup2(t[i]); break;
				case 'AB' : mouseover(t[i]);mouseout(t[i]); mousedown(t[i]); mouseup(t[i]); break;
				default : return;			
			}
			
			if (t[i].src)
			{
				t[i].setAttribute("oldsrc",t[i].src);
			}
		}
	}
}

function mouseup(t)
{
	var newmouseup;
	if (t.onmouseup)
	{
		t.oldmouseup=t.onmouseup;
		newmouseup=function()
		{
			mouseisdown=0;
			this.src=this.getAttribute("srcover");
			this.oldmouseup();
		}

	} else
	{
		newmouseup=function()
		{
			mouseisdown=0;
			this.src=this.getAttribute("srcover");
		}
	}
	t.onmouseup=newmouseup;
}

function mouseup2(t)
{
	var newmouseup;
	if (t.onmouseup)
	{
		t.oldmouseup=t.onmouseup;
		newmouseup=function()
		{
			mouseisdown=0;
			this.src=this.getAttribute("oldsrc");
			this.oldmouseup();
		}
	} else
	{
		newmouseup=function()
		{
			mouseisdown=0;
			this.src=this.getAttribute("oldsrc");
		}
	}
	t.onmouseup = newmouseup;
}

function mousedown(t)
{
	var newmousedown;
	if (t.onmousedown)
	{
		t.oldmousedown=t.onmousedown;
		newmousedown=function()
		{
			if (mouseisdown==0)
			{
				this.src=this.getAttribute("srcdown");
				this.oldmousedown();
			}
		}
	}	else
	{
		newmousedown=function()
		{
			if (mouseisdown==0)
			{
				this.src=this.getAttribute("srcdown");
			}
		}
	}
	t.onmousedown=newmousedown;
}

function mouseover(t)
{
	var newmouseover;
	if (t.onmouseover)
	{
		t.oldmouseover=t.onmouseover;
		newmouseover=function()
		{
			this.src=this.getAttribute("srcover");
			this.oldmouseover();
		}
	}	else
	{
		newmouseover=function()
		{
			this.src=this.getAttribute("srcover");
		}
	}
	t.onmouseover=newmouseover;
}

function mouseout(t)
{
	var newmouseout;
	if (t.onmouseout)
	{
		t.oldmouseout=t.onmouseout;
		newmouseout=function()
		{
			this.src=this.getAttribute("oldsrc");
			this.oldmouseout();
		}
	}	else
	{
		newmouseout=function()
		{
			this.src=this.getAttribute("oldsrc");
		}
	}
	t.onmouseout=newmouseout;
}

function storeimages(t)
{
	var s=(t.getAttribute('src'))?t.getAttribute('src'):'';
	var d=(t.getAttribute('srcdown'))?t.getAttribute('srcdown'):'';
	var o=(t.getAttribute('srcover'))?t.getAttribute('srcover'):'';
	ih.store(s,d,o);
}

function preloadImgSrc()
{
	if (!document.getElementById) return;
	
	var it=document.getElementsByTagName('IMG');
	var it2=document.getElementsByTagName('INPUT');
	preloader(it);
	preloader(it2);
}

function callMouseOver(t)
{
	if (!document.getElementById) return;
	if (!document.getElementById(t)) return;
	
	if (document.getElementById(t).onmouseover)
		document.getElementById(t).onmouseover();
}

function callMouseOut(t)
{
	if (!document.getElementById) return;
	if (!document.getElementById(t)) return;

	if (document.getElementById(t).onmouseout)
		document.getElementById(t).onmouseout();	
}
