/*

	Header Information------------------------------------[Do Not Remove This Header]--

	Title: OO Dom Image Rollover

	Description: This script makes it easy to add rollover/ mousedown 

  	effects to any image on the page, including image submit buttons. Automatically 

  	preloads images as well. Script works in all DOM capable browsers- IE5+, NS6+, 

  	Opera7+.

	

	Legal: Copyright 2005 Adam Smith

	Author Email Address: ibulwark@hotmail.com

	Date Created: June 6, 2005

	Website: Codevendor.com | eBadgeman.com

	Script featured on Dynamic Drive: http://www.dynamicdrive.com

	-----------------------------------------------------------------------------------

*/



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);

}



if(window.addEventListener){window.addEventListener("load", preloadimgsrc, false);} 

else{

	if(window.attachEvent){window.attachEvent("onload", preloadimgsrc);}

	else{if(document.getElementById){window.onload=preloadimgsrc;}}

}
