var okay = false;
var imagesArray = new Array();
var hiStateArray = new Array();
var currentOn = "";
var hiState, loState;

function rollOn(img){
	if (!okay || !hiStateArray[img] || currentOn==img) return;
	imagesArray[img].src = (imagesArray[img].src+'').replace(loState, hiState)
}

function rollOff(img){
	if (!okay || !hiStateArray[img] || currentOn==img) return;
	imagesArray[img].src = (imagesArray[img].src+'').replace(hiState, loState)
}

function initRollovers(directory, lo, hi){
	if (document.layers){
		buildImagesArray(document.layers)
	} else {
		imagesArray = document.images
	}
	hiState = hi
	loState = lo
	for (key in imagesArray){
		if ((imagesArray[key].src+"").indexOf(directory)!=-1){
			hiStateArray[imagesArray[key].name] = new Image()
			hiStateArray[imagesArray[key].name].src = (imagesArray[key].src+'').replace(loState, hiState)
		}
	}
	if (hiStateArray.length==0){ // try again with an index for buggy Mac IE Javascript
		for (var i=0; i<imagesArray.length; i++){
			if ((imagesArray[i].src+"").indexOf(directory)!=-1){
				hiStateArray[imagesArray[i].name] = new Image()
				hiStateArray[imagesArray[i].name].src = (imagesArray[i].src+'').replace(loState, hiState)
			}
		}
	}
	okay = true
}

function buildImagesArray(lArray){

	if (lArray == document.layers){
		for (var l=0; l<document.images.length; l++){
			imagesArray[document.images[l].name] = document.images[l];
		}
	}
	
	for (var i=0;i < lArray.length; i++){
		for (var j=0;j < lArray[i].document.images.length; j++){
			imagesArray[lArray[i].document.images[j].name] = lArray[i].document.images[j];
		}
		if (lArray[i].document.layers.length > 0) buildImagesArray(lArray[i].document.layers);
	}
}

function switchOn(img){
	nowOn = currentOn;
	currentOn = "";
	rollOff(nowOn);
	rollOn(img);
	currentOn=img;
}

