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

