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