
function fixPNG(myImage) // correctly handle PNG transparency in Win IE 5.5 or higher.
   {
    if (window.ie55up)
	 {
		 imgID = (myImage.id) ? "id='" + myImage.id + "' " : "";
		 imgClass = (myImage.className) ? "class='" + myImage.className + "' " : "";
		 imgTitle = (myImage.title) ? "title='" + myImage.title + "' " : "title='" + myImage.alt + "' ";
		 imgStyle = "display:inline-block;" + myImage.style.cssText;
		 strNewHTML = "<span " + imgID + imgClass + imgTitle;
		 strNewHTML += " style=\"" + "width:" + myImage.width + "px; height:" + myImage.height + "px;" + imgStyle + ";";
		 strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader";
		 strNewHTML += "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>" ;
		 myImage.outerHTML = strNewHTML;
	 }
	 return true;
   }

var lockedImageId = null;

/*
Toggles the source of a provided image with the source of a provided image object
Expects the name of the image to be toggled and the name of the image object to swapped in
Checks the name of the image to be swapped against the "locked" image variable before proceeding
*/
function toggleImage(targetObjId,sourceObj){

	if(targetObjId != lockedImageId){
	
		var imgObj = getObject(targetObjId);
		
		if(imgObj && eval("typeof " + sourceObj + "!= 'undefined'")){
			
			eval("imgObj.src = " + sourceObj + ".src");
			//alert(eval(sourceObj + ".src") + '\n'+ eval(targetObjId));
		//alert(sourceObj + "\n" + targetObjId + "\n" + document.getElementById(sourceObj) + "\n" + document.getElementById(targetObjId));
		}
	
	}
}

/*
Preloads any image in a document that contains a name and id attribute 
Expects images to be named with a anyname_over.xxx anyname.xxx convention
Will produce two image objects for each document image, named imagename_over and imagename
*/
function preload() {

	var imgArray = new Array;

	if(document.layers)	{
	
		for(var index=0;index<document.images.length;index++){
			imgArray[imgArray.length] = document.images[index];
		}
		
		for(index=0;index<document.layers.length;index++){
			
			if(eval("document." + document.layers[index].id)){
				var layerImgArray = eval("document." + document.layers[index].id + ".document.images");
			}
			else{
				var layerImgArray = new Array;
			}
						
			for(var index2=0;index2<layerImgArray.length;index2++){
				imgArray[imgArray.length] = layerImgArray[index2];
			}
			
		}
		
	} else {
	
		imgArray = document.images;
		
	}
	
	for(imgIndex=0; imgIndex<imgArray.length; imgIndex++){

		if(validToPreload(imgArray[imgIndex])){

			var thisName = imgArray[imgIndex].name;
			var thisOnSrc = imgArray[imgIndex].src.replace(/\.([a-z]{3})$/,"_over.$1");
			var thisOffSrc = imgArray[imgIndex].src.replace(/\.([a-z]{3})$/,".$1");
			
			createImgObj(thisName + "_over",thisOnSrc);
			createImgObj(thisName + "_out",thisOffSrc);
												
		}
		
	}
}

/*
Creates an image object of a provided name and set it's source to a provided source
*/
function createImgObj(objName,imgSrc){
	
	eval(objName + " = new Image()");
	eval(objName + ".src = imgSrc");
	
}

/*
Locates a document object of the provided id and returns the object
layers, document.all and getElementById compatible
*/
function getObject(objIdentifier){
	
	var myObj = null;
	
	if(document.layers)	{
		
		myObj = eval("document."+ objIdentifier);
		
		if(!myObj){
		
			for(var index=0;index<document.layers.length;index++){
				
				if(eval("document." + document.layers[index].id) && eval("document." + document.layers[index].id + ".document."+ objIdentifier)){
				
					myObj = eval("document." + document.layers[index].id + ".document."+ objIdentifier);
				
				}
			}
		
		}
	}
	else if (document.getElementById) {
		myObj = eval("document.getElementById('" + objIdentifier + "')");
	}
	else{
		myObj = eval("document.all['" + objIdentifier + "']");
	}
	
	return myObj;
}

/*
image objects must pass the following tests to be valid for use 
with this script
*/
function validToPreload(imgObj){

	var valid = false;
	var nameExcludeRe = /_noPreload$/;

	if(imgObj.name && imgObj.name.length && !nameExcludeRe.test(imgObj.name)){
		valid = true;
	}
	
	if(document.getElementById && (!imgObj.id || !imgObj.id.length || nameExcludeRe.test(imgObj.id))){
		valid = false;
	}
	
	return valid;

}

/*
Sample html:
onMouseOver="toggleimage('myImg','myImg_over');" onMouseOut="toggleimage('myImg','myImg_out');"

*/


/*  JUMP MENU unrelated to above code.  Remove this if you aren't specifically in need of a jump menu. */

function jumpMenu(targ,selObj,restore){ 
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


//hard coded image objects to be shared by all left nav items
createImgObj("subnav_arrow_over","/images/shared/subnav_arrow_over.gif");
createImgObj("subnav_arrow_out","/images/shared/subnav_arrow.gif");

createImgObj("subnav_arrow2_over","/images/shared/subnav_arrow2_over.gif");
createImgObj("subnav_arrow2_out","/images/shared/subnav_arrow2.gif");