/*
	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;}}
}
