<!--Header javascript-->

/* 
This code is copyright (C) 2001 by
UW Department of Pathology

Usage of this code is covered under the 
legal section of this web site.  Specifically,
http://www.pathology.washington.edu/legal.html
*/

var current_layer = null;
var timerID = null;
var BrowserType = null;

var current_layer = null;
var timerID = null;

	function mIn (img, doA) {   	
		StopTimeout ();		
		HideMenu();		

		if (img)
		{	   
	   		showLayer(img); 
			if (BrowserType==2)
				runFunction(img, "captureEvents (Event.MOUSEOUT | Event.MOUSEOVER)");

			runFunction (img, "onmouseover=function (e) { StopTimeout(e) }");
			runFunction (img, "onmouseout=function (e) { StartTimeout(e) }");
			
			current_layer = img;
		}	
	}
	
	function mOut (img, doA) 
	{
		StartTimeout (null);
   	}

	function HideMenu () 
	{
		if(current_layer != null)
		{
			hideLayer (current_layer);
		}
		timerID = null;
   	}
	
	function StartTimeout (e)
	{	
		// Check to make sure the event was triggered by the actual 
		// layer and not a link contained within the layer.
		if (e != null && BrowserType!=3)		
		{
			
			if ((e.target).toString().indexOf("Layer") == -1)
				return;
		}
		if (timerID == null)
			timerID = setTimeout ('HideMenu()', 1000);		
	}

	function StopTimeout ()
	{
		if (timerID != null)
			clearTimeout (timerID);
		timerID = null;
	}

   	function setup ()
   	{
		layerinit();		// Initialize the layer module
   	}

	function Start ()
	{
		setup();
//		setposition();
		if (!document.all)
		    window.captureEvents(Event.RESIZE); 
	
    	window.onresize=setposition; 
	}


	function setposition()
	{

		if(document.all)			//ie5 check				
		{

		
			document.all["uofw_layer"].style.pixelLeft = 250;
			document.all["uofw"].style.pixelLeft = document.all["uofw_layer"].style.pixelLeft;

			document.all["academicmed_layer"].style.pixelLeft = document.all["uofw_layer"].style.pixelLeft  + document.all["uofw_layer"].clientWidth;
			document.all["academicmed"].style.pixelLeft = document.all["academicmed_layer"].style.pixelLeft;

			document.all["medicine_layer"].style.pixelLeft = document.all["academicmed_layer"].style.pixelLeft  + document.all["academicmed_layer"].clientWidth;
			document.all["medicine"].style.pixelLeft = document.all["medicine_layer"].style.pixelLeft;
	
			document.all["contactbar_layer"].style.pixelLeft = document.body.clientWidth - document.all["contactbar_layer"].clientWidth - 30;
			document.all["contactbar"].style.pixelLeft = document.all["contactbar_layer"].style.pixelLeft;	

			document.all["uofw_layer"].style.visibility = "visible";
			document.all["academicmed_layer"].style.visibility = "visible";
			document.all["medicine_layer"].style.visibility = "visible";
			document.all["contactbar_layer"].style.visibility = "visible";
		}
		
		
		else if (navigator.appVersion.substring(0,1) < 5)		// Netscape browser in use
		{

			document.layers["uofw_layer"].left = 250;
			document.layers["uofw"].left = document.layers["uofw_layer"].left;
	
			document.layers["academicmed_layer"].left = document.layers["uofw_layer"].left  + document.layers["uofw_layer"].clip.width;
			document.layers["academicmed"].left = document.layers["academicmed_layer"].left;

			document.layers["medicine_layer"].left = document.layers["academicmed_layer"].left  + document.layers["academicmed_layer"].clip.width;
			document.layers["medicine"].left = document.layers["medicine_layer"].left;

			document.layers["contactbar_layer"].left = document.width - document.layers["contactbar_layer"].clip.width-30;
			document.layers["contactbar"].left = document.layers["contactbar_layer"].left;	

			document.layers["uofw_layer"].visibility = "visible";
			document.layers["academicmed_layer"].visibility = "visible";
			document.layers["medicine_layer"].visibility = "visible";
			document.layers["contactbar_layer"].visibility = "visible";

		}
 
		else 
		{
			var what ="";

			document.getElementById("uofw_layer").style.pixelLeft = 250;
			document.getElementById("uofw").style.left = document.getElementById("uofw_layer").style.left;

			document.getElementById("academicmed_layer").style.left = parseInt(document.getElementById("uofw_layer").style.left)  + 60 + "px";
			document.getElementById("academicmed").style.left = document.getElementById("academicmed_layer").style.left;
			
			document.getElementById("medicine_layer").style.left = parseInt(document.getElementById("academicmed_layer").style.left)  + 175  + "px";
			document.getElementById("medicine").style.left = document.getElementById("medicine_layer").style.left;

			document.getElementById("contactbar_layer").style.left = parseInt(document.getElementById("medicine_layer").style.left)  + 400  + "px";

//old way of setting "contact us" menu on right edge of screen...isn't supported in Netscape in 6.1 and haven't \
//found equivalent object
//document.body.clientWidth - document.getElementById("contactbar_layer").clientWidth - 30 + "px";

			document.getElementById("contactbar").style.left = document.getElementById("contactbar_layer").style.left;	


			document.getElementById("uofw_layer").style.visibility = "visible";
			document.getElementById("academicmed_layer").style.visibility = "visible";
			document.getElementById("medicine_layer").style.visibility = "visible";
			document.getElementById("contactbar_layer").style.visibility = "visible";
		
		}
}

<!--End header javascript-->


<!--Layers Javascript-->

var layerRefStart=""; 
var layerRefEnd=""; 
var BrowserType=0;

//Checks to verify version of Browser and modifies code via 
//Javascript so that the "layer" function is setup for Netscape
//and the "all" or "getElementById" is used for IE

function layerinit()
{
	if (document.all)
	{
		BrowserType = 1;
		layerRefStart='document.all["'
		layerRefEnd='"].style';
	}
	else
	{
		if (navigator.appVersion.substring(0,1) < 5)
		{
			BrowserType = 2;
			layerRefStart='document.layers["';
			layerRefEnd='"]';
		}
		else
		{
			BrowserType = 3;
			layerRefStart='document.getElementById("';
			layerRefEnd='").style';
		}
	}
} 

function showLayer(layerName)
{
	eval(layerRefStart+layerName+layerRefEnd+'.visibility="visible"');
}

function hideLayer(layerName)
{

   	eval(layerRefStart+layerName+layerRefEnd+'.visibility="hidden"');
}

function ishidden (layerName)
{
	a = eval(layerRefStart+layerName+layerRefEnd+'.visibility');
	if (a == 'hidden')
		return true;
	return false;
}

function moveLayerTo(layerName,left,top)
{
	switch (BrowserType)
	{
		case 1:
			eval(layerRefStart+layerName+layerRefEnd+'.pixelLeft='+left);
			eval(layerRefStart+layerName+layerRefEnd+'.pixelTop='+top);	
		break;
		case 2:
			eval('document.layers["'+layerName+'"].moveTo('+left+','+top+')');
			
		break;
		case 3:
			eval(layerRefStart+layerName+layerRefEnd+'.top="'+top+'px"');
    		eval(layerRefStart+layerName+layerRefEnd+'.left="'+left+'px"');
		break;
	}
} 

function moveLayerToRel(layerName,left,top)
{
	switch (BrowserType)
	{
		case 1:
			eval(layerRefStart+layerName+layerRefEnd+'.pixelLeft='+layerRefStart+layerName+layerRefEnd+'.pixelLeft+'+left);
			eval(layerRefStart+layerName+layerRefEnd+'.pixelTop='+layerRefStart+layerName+layerRefEnd+'.pixelLeft+'+top);	
		break;
		case 2:
			eval('document.layers["'+layerName+'"].moveTo(document.layers["'+layerName+'"].left+'+left+',document.layers["'+layerName+'"].top+'+top+')')
		break;
		case 3:
			var myElement = document.getElementById(layerName);
			var x = parseInt(myElement.style.left);
			var y = parseInt(myElement.style.top);
	        x = x + 10;
            y = y + 10;
    		myElement.style.left = x + "px";
            myElement.style.top = y + "px";			
		break;
	}
} 

function changeProp (layerName, property, value)
{
	eval(layerRefStart+layerName+layerRefEnd+'.'+property+'="'+value+'"');	
}

function runFunction (layerName, functionName)
{
	switch (BrowserType)
	{
		case 1:
			eval('document.all["'+layerName+'"].'+functionName+';');
		break;
		case 2:
			eval('document.layers["'+layerName+'"].'+functionName+';');
		break;
		case 3:
			eval('document.getElementById("'+layerName+'").'+functionName+';');
		break;
	}
}

// FIX THIS FUNCTION!
function readProp (layerName, property)
{
	return eval(layerRefStart+layerName+LayerRefEnd+'.'+property);
}

function readStyle(layerName,property)
{
	return eval(layerRefStart+layerName+layerRefEnd+"."+property);
}

// Removes leading and trailing spaces from the passed string. Also removes
// consecutive spaces and replaces it with one space. If something besides
// a string is passed in (null, custom object, etc.) then return the input.
function trim(inputString) {
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function    

// isEmail() - Validates an E-Mail address
function isEmail(who) 
{
    var email= /^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
    return(email.test(who));
}