var rolloverImageOff = new Array();
var rolloverImageOn = new Array();
var rolloverCurrent = '';

var rolloverImageForMap = new Array();

// Preload rollover images
function rolloverInit() {
	if (document.images) {
		
		// for each rollover, preload both states and put filename in an associative array
		for (var i = 0; i < rolloverImageOnFiles.length; i++) {
			rolloverCurrentName = rolloverImageTagNames[i];
			
			rolloverImageOff[rolloverCurrentName] = new Image();
			rolloverImageOn[rolloverCurrentName] = new Image();
			rolloverImageOff[rolloverCurrentName].src = rolloverImageOffFiles[i];
			rolloverImageOn[rolloverCurrentName].src = rolloverImageOnFiles[i];
		}
	}
}
function mapRolloverInit() {
	if (document.images) {
		// for each rollover, preload both states and put filename in an associative array
		for (var i = 0; i < rolloverImageForMapFiles.length; i++) {
			rolloverCurrentName = rolloverImageForMapName[i];

			rolloverImageForMap[rolloverCurrentName] = new Image();
			rolloverImageForMap[rolloverCurrentName].src = rolloverImageForMapFiles[i];
		}
	}
}


// Display the right map
function mapRolloverTo(img, imgNo, layer) {
//	if (document.images && rolloverImageForMapFiles[imgNo] && typeof rolloverImageForMapFiles == "object") {
	if (document.images && typeof rolloverImageForMapFiles == "object") {
		// rollovers in layers in NS4 require a different image reference


		if (layer != null && document.layers) {
			if (typeof(layer) == 'object') layer.document.images[img].src = rolloverImageForMap[imgNo].src;
			else if (typeof(layer) == 'string') eval('document.layers.' + layer + '.document.images[img].src = rolloverImageForMap[imgNo].src');
		}

		// non-layer rollovers in NS4 and all rollovers in other browsers
		else if (document.images[img]) document.images[img].src = rolloverImageForMap[imgNo].src;
	}
}



// On state activation
function rolloverOn(img, layer) {
	if (document.images && rolloverImageOn[img] && typeof rolloverImageOn == "object") {
		
		// rollovers in layers in NS4 require a different image reference
		if (layer != null && document.layers) {
			if (typeof(layer) == 'object') layer.document.images[img].src = rolloverImageOn[img].src;
			else if (typeof(layer) == 'string') eval('document.layers.' + layer + '.document.images[img].src = rolloverImageOn[img].src');
		}
		
		// non-layer rollovers in NS4 and all rollovers in other browsers
		else if (document.images[img]) document.images[img].src = rolloverImageOn[img].src;
	}
}

function rolloverOnSingleSrc(img, srcName, layer) {
	if (document.images && rolloverImageOn[srcName] && typeof rolloverImageOn == "object") {
		
		// rollovers in layers in NS4 require a different image reference
		if (layer != null && document.layers) {
			if (typeof(layer) == 'object') layer.document.images[img].src = rolloverImageOn[srcName].src;
			else if (typeof(layer) == 'string') eval('document.layers.' + layer + '.document.images[img].src = rolloverImageOn[srcName].src');
		}
		
		// non-layer rollovers in NS4 and all rollovers in other browsers
		else if (document.images[img]) document.images[img].src = rolloverImageOn[srcName].src;
	}
}



// Off state activation
function rolloverOff(img, layer) {
	if (document.images && rolloverImageOff[img] && typeof rolloverImageOff == "object") {

		// rollovers in layers in NS4 require a different image reference
		if (layer != null && document.layers) {
			if (typeof(layer) == 'object') layer.document.images[img].src = rolloverImageOff[img].src;
			else if (typeof(layer) == 'string') eval('document.layers.' + layer + '.document.images[img].src = rolloverImageOff[img].src');
		}
		
		// non-layer rollovers in NS4 and all rollovers in other browsers
		else if (document.images[img]) document.images[img].src = rolloverImageOff[img].src;
	}
}

function rolloverOffSingleSrc(img, srcName, layer) {
	if (document.images && rolloverImageOff[srcName] && typeof rolloverImageOff == "object") {

		// rollovers in layers in NS4 require a different image reference
		if (layer != null && document.layers) {
			if (typeof(layer) == 'object') layer.document.images[img].src = rolloverImageOff[srcName].src;
			else if (typeof(layer) == 'string') eval('document.layers.' + layer + '.document.images[img].src = rolloverImageOff[srcName].src');
		}
		
		// non-layer rollovers in NS4 and all rollovers in other browsers
		else if (document.images[img]) document.images[img].src = rolloverImageOff[srcName].src;
	}
}



// Rollover with state function (not used in standard rollovers; included for flexability)
function rolloverSetCurrent(img) {
	if (rolloverCurrent) rolloverOff(rolloverCurrent);
	rolloverCurrent = img;
	rolloverOn(rolloverCurrent);
}

//add images to the rollover arrays after the inital ones have been established
function preloadRollover(onFile, offFile, tagName) {
	var index = rolloverImageOffFiles.length;
	rolloverImageOnFiles[index] = onFile;
	rolloverImageOffFiles[index] = offFile;
	rolloverImageTagNames[index] = tagName;
}


function _Array_push() {
	var currentLength = this.length;
	for (var i = 0; i < arguments.length; i++) {
		this[currentLength + i] = arguments[i];
	}
	return arguments[arguments.length - 1];
}

var agent = navigator.userAgent.toLowerCase(); 

if (Array && !((agent.indexOf('mozilla')!=-1) && (agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1) && (agent.indexOf('opera')==-1) && (agent.indexOf('webtv')==-1) && parseInt(navigator.appVersion) > 4)) {
	Array.prototype.push    = _Array_push;
}
