// convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase();

    // *** BROWSER VERSION ***
    // Note: On IE5, these return 4, so use is_ie5up to detect IE5.
    var is_major = parseInt(navigator.appVersion);
    var is_minor = parseFloat(navigator.appVersion);

/*-----------------------------------
Determines browser
-----------------------------------*/
 // If you want to allow spoofing, take out the tests for opera and webtv.
    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1));
                //&& (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
   
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && (is_major >= 4));
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );
    var is_nav6 = (is_nav && (is_major == 5));
    var is_nav6up = (is_nav && (is_major >= 5));
  
    var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    var is_ie3    = (is_ie && (is_major < 4));
	var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
    var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
    var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
    var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
    var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
    var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
    var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);

    var is_opera = (agt.indexOf("opera") != -1);
    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
	var is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1);
	var is_opera7up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5 && !is_opera6);
   
    
    // *** PLATFORM ***
    var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
    // NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
    //        Win32, so you can't distinguish between Win95 and WinNT.
    var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));
   
    var is_mac    = (agt.indexOf("mac")!=-1);
    
/*-----------------------------------
global variable initialization
-----------------------------------*/
var swapArray = new Array();  //global that holds swap images info
var whichSub = '';
var whichFlash = '';
//= Determines layer ID depending on the browser

function getLayerRef(layerID) {
	if (is_nav && is_nav6up) {
		return document.getElementById(layerID);
	} else if (is_nav) {
		return document.layers[layerID];
	} else {
		return document.all[layerID];
	}
}
/*-----------------------------------
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);
	if (whichMain != '') {
		swap(whichMain, 'click', whichMain);
	}
	
	if (whichSub != '') {
		swap(whichSub, 'click', whichSub);
	}
		if (whichSubSub != '') {
		swap(whichSubSub, 'click', whichSubSub);
	}
	
	if (whichFlash != '') {
		swap(whichFlash, 'down', whichFlash, true);
	}
}

/*---------------------------------------
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_nav && !is_nav6up) {
		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);
		}
	}
	
}


/*---------------------------------------
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 fnameExp = /(\.|_off\.|_over\.|_down\.)[^\.]*$/;
	var ftypeExp = /\.[^\.]*$/;   // regular expression used to split the filename string
	var srcString = imgObj.src;
	var extString = srcString.match(ftypeExp); // grab the extension
	var fnameString = srcString.split(fnameExp, 1);
	var imgRef = imgObj.name;	 
	swapArray[imgRef] = new Object();
  swapArray[imgRef].off = new Image();
	swapArray[imgRef].off.src = fnameString +  extString;
	swapArray[imgRef].over = new Image();
	swapArray[imgRef].over.src = fnameString + "_over" + extString;
  swapArray[imgRef].down = new Image();
	swapArray[imgRef].down.src = fnameString + "_down" + extString;
	swapArray[imgRef].click = new Image();
	swapArray[imgRef].click.src = fnameString + "_click" + extString;

	swapArray[imgRef].layerRef = imgObj;
}

/*---------------------------------------
Called from the <a href> tag      
Swap image function for rollovers 
---------------------------------------*/
function swap(imgName, onoff, whichButton, hasNoClickState) {
	if ((whichButton == imgName) && (swapArray[imgName] != null)) {
		if (hasNoClickState == true) {
			swapArray[imgName].layerRef.src = swapArray[imgName]['down'].src;
		} else {
			swapArray[imgName].layerRef.src = swapArray[imgName]['click'].src;
		}
	} else if (swapArray[imgName] != null) {
		swapArray[imgName].layerRef.src = swapArray[imgName][onoff].src;
	}
}

function swapGroup(imgName, group) {
	for (prop in swapArray) {
		if (prop.indexOf(group) != -1) {
      swap(prop, 'off');
		}
	}
  swap(imgName, 'down');
}

var bWindow;
function launchWindow(URL, name, w, h) {
	if (bWindow != null) {
		bWindow.close();
	}
	bWindow = window.open(URL, name,"status=0,menubar=0,resizable=1,width=" + w + ",height=" + h + ",left=5,top=5");
}