function findByName (name, doc){
	if (!doc) doc=document;
	res=doc.getElementById(name);
	if(!res) res=doc[name];
	if(!res && doc.all) res=doc.all[name];
	if(!res && doc.images) res=doc.images[name];
	if(!res && doc.layers) res=doc.layers[name];
	if(!res && doc.layers)
		for (var i=0;!res&&doc.layers&&i<doc.layers.length;i++) res=findByName(name,doc.layers[i].document);
	return res;	
}


// RollImg class-------------------------------------
function Roll(imgName, overSrc){
  this.imgs = new Array;
  this.states = new Array;
	if(imgName) this.addOrig(imgName);
	if(overSrc) this.addState(imgName,"over",overSrc);
}

Roll.prototype.addOrig= function (imgName){
	this.imgs[imgName] = findByName(imgName);
	if(!this.states.orig) this.states.orig = new Array();
	this.states.orig[imgName]= new Image();
	this.states.orig[imgName].src = this.imgs[imgName].src;
}

Roll.prototype.addState = function(imgName,state,src){
  if(!this.states[state]) this.states[state] = new Array;
	this.states[state][imgName]=new Image;
	this.states[state][imgName].src = src;
}

Roll.prototype.setState = function(state){
  for (imgName in this.imgs){
    this.imgs[imgName].src = this.states[state][imgName].src;
  }
}
Roll.prototype.over=function(){
	this.setState("over");
}
Roll.prototype.restore=function(){
	this.setState("orig");
}

//end RollImg Class------------------------------------

//Hider class
function Hider(lName,rollName){
	this.lName=lName;
	this.rollName=rollName;
	this.time=300;
}
Hider.prototype.hide=function(){
	this.toId=setTimeout( 'doHide("'+this.lName+'"); '+this.rollName+".restore()" ,this.time);
}
Hider.prototype.show=function(){
	clearTimeout(this.toId);
	layer=findByName(this.lName);
	roll=window[this.rollName];
	if(roll) roll.over();
	if(layer.style) layer.style.visibility="visible";
	if(layer.visibility) layer.visibility="visible";
}

function doHide(lName){ //does not actually belong to class
	layer=findByName(lName);
	if(layer.style) layer.style.visibility="hidden";
	if(layer.visibility) layer.visibility="hidden";
}

//end Hider class