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