function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}
/*-----------------------------------
Determines browser
-----------------------------------*/
function Is() {
    var agent = navigator.userAgent.toLowerCase();
    this.major = parseInt(navigator.appVersion);
    this.NN  = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1)) && (agent.indexOf("firefox") == -1));
    this.IE   = (agent.indexOf("msie") != -1);
    this.WIN = (agent.indexOf("win") != -1);
    this.IE5 = (this.IE && (agent.indexOf('5') != -1));
    this.FF = (agent.indexOf("firefox") != -1);
		/*alert(agent.indexOf("firefox") + " NN = " + this.NN + " - FF=" + this.FF + " - " + agent);*/
}

/*-----------------------------------
global variable initialization
-----------------------------------*/
var is = new Is();

var swapArray = new Array();  //global that holds swap images info
var selectedImage = "";
var layerArray = new Array();

/*-----------------------------------
Called from the onLoad() inside the body tag 
Creates arrays for all images and references 
to the layers involved in the navigation     
-----------------------------------*/
function initialize() {
	parseLayers(document);
	selectedImage = top.selectedImage;
	onClickSwap(selectedImage);
}



/*---------------------------------------
Called from initialize()
Automatically parse every layer in document,
determining which have swappable images, 
and (NS only) create references to every 
layer in the document
---------------------------------------*/
function parseLayers(str) {
	for (var i=0; i < str.images.length; i++) {
		if (str.images[i].name != "") {
			createImageObjects(str.images[i]);
		}
	}
	if (is.NN) {
		for (var i=0; i < str.layers.length; i++) {
		  var layRef = str.layers[i].name;
			layerArray[layRef] = new Object();
			layerArray[layRef].layerRef = str.layers[layRef];
			parseLayers(str.layers[i].document);
		}
	}
}

//================================================                  
//= Determines layer ID depending on the browser
//================================================
function getLayerRef(layerID) {
	if (is.NN) {
		return document.layers[layerID];
	} else {
		return document.all[layerID];
	}
}

/*---------------------------------------
Called from parseLayers()
Preloads and creates object references for swappable images
including _on state, _off state, and DOM image object path
---------------------------------------*/
function createImageObjects(imgObj) {
	var ftypeExp = /\.[^\.]*$/;   // regular expression used to split the filename string
	var srcString = imgObj.src;
	var extString = srcString.match(ftypeExp)[0]; // grab the extension
	var imgRef = imgObj.name;	 
	var divChar = srcString.lastIndexOf('/') + 1;    //finds the last '/' and records it's location
	var filePath = srcString.substring(0, divChar);
	swapArray[imgRef] = new Object();
	swapArray[imgRef].on = new Image();
	swapArray[imgRef].on.src = filePath + imgRef + "_on" + extString;
	swapArray[imgRef].off = new Image();
	swapArray[imgRef].off.src = filePath + imgRef + "_off" + extString;
	swapArray[imgRef].layerRef = imgObj;
}

/*---------------------------------------
Called from the <a href> tag      
Swap image function for rollovers 
---------------------------------------*/
function swap(imgName, onoff) {
	if (swapArray[imgName] != null) {
		swapArray[imgName].layerRef.src = swapArray[imgName][onoff].src;
	}
}


function onClickSwap(imgName) {
	if(selectedImage != imgName) {
		swap(imgName, 'on');
		if(selectedImage != '') {
			swap(selectedImage, 'off');
		}
		selectedImage = imgName;
		return true;
	} else {
		swap(imgName, 'on');
		return false;
	}
}

// called from onMouseOver and onMouseOut
function mouseSwap(imgName, onoff) {
	if(selectedImage != imgName) {
		swap(imgName, onoff);
	}
}
