function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i>a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

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_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// THIS CODE was modified by Tim Fadden, from the mutated, modified, and re-done code of the K10kª semi-bald posse (which was done in 1997-2002).  You guys are AWESOME!
//
// ----------------------------------------------------------------------

// CHECK CLIENT BROWSER & PLATFORM
// original code from http://developer.apple.com/internet/_javascript/
//
// USAGE:	browserNaming();
// NOTES:	call it from within an external JS document
// RESULT:	browserNew = true/false
//			browserName = IE/NS/Opera
//			browserNameLong = IE5/etc
//			Macintosh = true/false
// WORKS:	everything

	var its;
	var browserName;
	var browserNameLong;
	var browserNew;
	var preloadFlag = false;
	var Macintosh = navigator.userAgent.indexOf('Mac')>0;

	function its() {
		var n = navigator;
		var ua = ' ' + n.userAgent.toLowerCase();
		var pl = n.platform.toLowerCase();
		var an = n.appName.toLowerCase();

		// browser version
		this.version = n.appVersion;
		this.nn = ua.indexOf('mozilla') > 0;

		// 'compatible' versions of mozilla aren't navigator
		if(ua.indexOf('compatible') > 0) {
			this.nn = false;
		}
		
		this.opera = ua.indexOf('opera') > 0;
		this.ie = ua.indexOf('msie') > 0;
		this.major = parseInt( this.version );
		this.minor = parseFloat( this.version );

		// platform
		this.mac = ua.indexOf('mac') > 0;
		this.win = ua.indexOf('win') > 0;

		// workaround for IE5 which reports itself as version 4.0
		if(this.ie) {
			if(ua.indexOf("msie 5") > 1) {
			var msieIndex = navigator.appVersion.indexOf("MSIE") + 5;
			this.major = parseFloat(navigator.appVersion.substr(msieIndex,3));
			}
		}

		return this;
	}

	function browserNaming() {
		its = new its();
		
		// is it a DOM-enabled browser?
		if (!document.getElementById) {
			browserNew = false;
		}
		else {
			browserNew = true;
		}

		// need the name, too
		if (its.opera) {
			browserName = "Opera";
		}
		else if (its.ie) {
			browserName = "IE";
		}
		else {
			browserName = "NS";
		}

		// and the number
		browserNameLong = browserName + its.major;
	
	}


// DOM / SET PROPERTY
// original code from http://www.alistapart.com/
//
// NOTES:	given an id and a property (as strings), set the given property of that id to the value provided.
// WORKS:	ie5+, ns6+, opera5+

	function setIdProperty(id,property,value) {
		var styleObject = document.getElementById( id );
		if (styleObject != null) {
			styleObject = styleObject.style;
			styleObject[ property ] = value;
		}
	}

	
// MOVE LAYERS TO POSITION BASED ON INNER WIDTH OF BROWSER WINDOW, MINUS CONSTANT (valpx)
// original code by Tim Fadden
// USAGE:	move('layer number'); valpx=new Array('value','value');
// WORKS:	ie4+, ns4+, opera

	function move(id) {
		var	valpx=0;
		if(browserName == "IE") {
			var moveval=document.body.clientWidth/2;}
		else {
			var moveval=window.innerWidth/2;}
		if(browserNew && browserName == "NS" && window.innerWidth<1000) moveval=(window.innerWidth/2)-7;
		if(id==1)valpx=154;
		else valpx=-239;
		var movepx=(moveval-valpx)+"px";
		if (browserNew) {
			setIdProperty(id,"left",movepx);}
		else {
			if (browserName == "NS") { document.layers[id].left = ((window.innerWidth/2)-valpx)*.986;}
			else { document.all[id].style.pixelLeft = (document.body.clientWidth/2)-valpx;}
		}
	}

	
// HIDE OPEN LAYERS
// USAGE:	show('layer number');
// WORKS:	ie4+, ns4+, opera	

	function hideOpenLayers(lid,totL) {
	for (var i=1; i<=totL; i++ ){
			if (lid!=i){
				hide(i);
			}
		}
	}


// HIDE LAYERS
// USAGE:	hide('layer number');
// WORKS:	ie4+, ns4+, opera

	function hide(id) {
		if (browserNew) {
			setIdProperty(id,"visibility","hidden");
		}
		else {
			if (browserName == "NS") { document.layers[id].visibility = "hide";}
			else { document.all[id].style.visibility = "hidden";}
		}
	}
	
	
// SHOW LAYERS
// USAGE:	show('layer number');
// WORKS:	ie4+, ns4+, opera

	function show(id) {
		move(id);
		if (browserNew) {
			setIdProperty(id,"visibility","visible");
		}
		else {
			if (browserName == "NS") { document.layers[id].visibility = "show"; }
			else { document.all[id].style.visibility = "visible"; }
		}
	}
	
	
// HIDE LAYERS TIMER, ENABLES clearTimeout()
// USAGE:	hideTimer('layer number');
// WORKS:	ie4+, ns4+, opera

var myTimeout=0;

	function hideTimer(id){myTimeout=setTimeout('hide("'+id+'")',100);}
		
	browserNaming();
	
function inCell(cell, newcolor) {
		if (!cell.contains(event.fromElement)) {
			cell.bgColor = newcolor;
		}
	}
	

function outCell(cell, newcolor) {
		if (!cell.contains(event.toElement)) {
			cell.bgColor = newcolor;
		}
	}
