document.getElementsByClassName = function(className, tagName)
{
 var elementsByClassName = [];
 
 if (this.getElementsByTagName)
 {
  var elements = (tagName) ? this.getElementsByTagName(tagName) : this.all || this.getElementsByTagName('*');
  var nrOfElements = elements.length;
  
  for (var i = 0; i < nrOfElements; i++)
  {
   var element = elements[i];
   
   if (className == element.className)
   {
    elementsByClassName[elementsByClassName.length] = element;
   }
  }
 }
 
 return elementsByClassName;
};
window.onload = function()
{
 if (document.getElementById && document.getElementsByTagName)
 {
  var controllers = document.getElementsByClassName('controller');
  var i = controllers.length;
  
  while (i--)
  {
   var controller = new Controller(controllers[i]);
  }
 }
};
var Controller = function(container)
{
 this.container = container;
 this.container.getElementsByClassName = document.getElementsByClassName;
 
 this.original = this.container.getElementsByClassName('original')[0];
 var original = (this.original.document) ? this.original.document : this.original;
 this.originalSrc = original.getElementsByTagName('img')[0].src;
 
 this.replace = document.createElement('div');
 this.replace.className = 'replace';
 this.container.getElementsByClassName('display')[0].appendChild(this.replace);
 
 this.items = [];
 
 var lis = this.container.getElementsByTagName('li');
 var i = lis.length;
 
 while (i--)
 {
  this.items[this.items.length] = new Item(this, lis[i]);
 }
};
var Item = function(controller, container)
{
 this.controller = controller;
 this.container = container;
 this.link = this.container.getElementsByTagName('a')[0];
 
 if (!this.link) return;
 
 this.link.item = this;
 this.link.original = this.controller.original;
 this.link.replace = this.controller.replace;
 
 this.overImg = new Image();
 this.overImg.src = this.controller.originalSrc.replace(/(\/)\w+(\.(jpg|gif))/, '$1' + this.link.id.toLowerCase() + '$2');
 
 this.link.onmouseover = this._hilite;
 this.link.onmouseout = this._clear;
};
Item.prototype._hilite = function()
{
 this.replace.style.backgroundImage = 'url(' + this.item.overImg.src + ')';
 this.replace.style.display = 'block';
 this.original.style.display = 'none';
};
Item.prototype._clear = function()
{
 this.original.style.display = 'block';
 this.replace.style.display = 'none';
};