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