roll = new rollObj("_on","_off");

// primary object
function rollObj(overSuffix, outSuffix){
	this.overSuffix = overSuffix;
	this.outSuffix= outSuffix;
	this.images = new Object()
	this.initialized = false;
}

// out and over methods
function rollObjOver(imgName){
	if(this.initialized){
		this.images[imgName].over();
	}
}

function rollObjOut(imgName){
	if(this.initialized){
		this.images[imgName].out();
	}
}		

// initialize roll object by mapping named images
function rollObjInit(){
	if(document.layers){
		for(var i = 0; i < document.images.length; i++){
			this.mapImage(document.images[i]);
		}
		for(var i = 0; i < document.layers.length; i++){
			this.map(document.layers[i]);
		}
	}
	else if(document.getElementById){
		var imgs = document.getElementsByTagName("img");
		for(var i = 0; i < imgs.length; i++){
			this.mapImage(imgs[i]);
		}			
	}
	else if(document.all && !document.getElementById){
		for(var i = 0; i < document.images.length; i++){
			this.mapImage(document.images[i]);
		}				
	}			
	this.initialized = true;
}

// map images
function rollObjMapImage(img){
	if(img.name.indexOf("_ROLL") != -1){
		this.images[img.name.substr(0,img.name.lastIndexOf("_"))] = new rollObjImage(img, this.overSuffix, this.outSuffix);
	}		
}

function rollObjMap(div){
	if(document.layers){
		for (var i =0; i < div.document.images.length; i++){
			this.mapImage(div.document.images[i])
		}
		for (var i =0; i < div.document.layers.length; i++){
			this.map(div.document.layers[i])
		}
	}
}		

function rollObjImage(img,overSuffix, outSuffix){
	this.img = img;
	var lastDotPos = this.img.src.lastIndexOf(".");
	this.baseSuffix = this.img.src.substr(lastDotPos);
	var baseSrc = this.img.src.substr(0,this.img.src.lastIndexOf("_"));
	this.overSrc = baseSrc  + overSuffix + this.baseSuffix;
	this.outSrc = baseSrc  + outSuffix + this.baseSuffix;
	// alert(this.overSrc + " : over \r" + this.outSrc + " : out"); // : nice debug tool 
	var preload = new Image(); 
	preload.src = this.overSrc; 
	preload.src = this.outSrc;
}

function rollObjImageOver(){
	this.img.src = this.overSrc;
}

function rollObjImageOut(){
	this.img.src = this.outSrc;
}

rollObj.prototype.init = rollObjInit;
rollObj.prototype.map = rollObjMap;
rollObj.prototype.mapImage = rollObjMapImage;
rollObj.prototype.over = rollObjOver;
rollObj.prototype.out = rollObjOut;
rollObjImage.prototype.over = rollObjImageOver;
rollObjImage.prototype.out = rollObjImageOut;



