var imagesNormal = new Object();
var imagesHilite = new Object();
function SwapImage (name,normalSrc,hiliteSrc) {
   this.name = name;
   this.normalSrc = normalSrc;
   this.hiliteSrc = hiliteSrc;
}
function setupSwapImages(swapImages) {
    preloadSwapImages(swapImages);
    setupSwapEvent(swapImages);
}


function preloadSwapImages (a) {
    for (var i=0; i < a.length; i++){
        imagesNormal[a[i].name] = new Image();
        imagesNormal[a[i].name].src = a[i].normalSrc;
        imagesHilite[a[i].name] = new Image();
        imagesHilite[a[i].name].src = a[i].hiliteSrc;
    }
}
function setupSwapEvent (a) {
    for (var i=0; i<a.length; i++){
        var images = getElementsByClassName(a[i].name);
        for (var j=0; j<images.length; j++){
            var image = images[j];
            if (image.getAttribute("src")){
               image.onmouseover = function () {swapImage( this, "hilite" );}
               image.onmouseout  = function () {swapImage( this, "normal" );}
            }
        }
    }
}

function swapImage(image,type){
    if (type=="hilite") {
       image.src = imagesHilite[image.className].src;
    } else if (type=="normal") {
       image.src = imagesNormal[image.className].src;
    }
}

// copied from prototype.js v1.3.1
// http://prototype.conio.net/
function getElementsByClassName (className) {
  var children = document.getElementsByTagName('*') || document.all;
  var elements = new Array();
  for (var i = 0; i < children.length; i++) {
    var child = children[i];
    var classNames = child.className.split(' ');
    for (var j = 0; j < classNames.length; j++) {
      if (classNames[j] == className) {
        elements.push(child);
        break;
      }
    }
  }
  return elements;
}
