/*
 
Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.

Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->


2008.08.21	L. Price	Added function GetImageSrc(obj)

*/
function correctPNGDelay(){
	//alert("fixing Png");
	setTimeout('correctPNG()',900);
}

function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])

	if ((version >= 5.5) && (document.body.filters)) {
		var i = document.images.length;
		while(i--){
			PngImgToSpan(document.images[i]);
		}

		/**************************************************************************
		***	2007.11.16	L. Price - 	Fix for Div Style.BackGround = ???.png		***
		**************************************************************************/
		var oDivArray = document.getElementsByTagName("div");
		FixArrayPNGs(oDivArray);

		/**************************************************************************
		***	2008.04.24	L. Price - 	Fix for Td Style.BackGround = ???.png		***
		**************************************************************************/
		var oDivArray = document.getElementsByTagName("td");
		FixArrayPNGs(oDivArray);

		/**************************************************************************
		***	2008.08.28	L. Price - 	Fix for Table Style.BackGround = ???.png	***
		**************************************************************************/
		var oDivArray = document.getElementsByTagName("table");
		FixArrayPNGs(oDivArray);

		/**************************************************************************
		***	2008.08.28	L. Price - 	Fix for Span Style.BackGround = ???.png	***
		**************************************************************************/
		var oDivArray = document.getElementsByTagName("span");
		FixArrayPNGs(oDivArray);

	}
	//closeAllPages();
}

function FixArrayPNGs(oDivArray){
	var i=oDivArray.length;
	while(i--){								//Check all Menu Items For Current Menu Name
		if(oDivArray[i].style.backgroundImage){
			var bg = oDivArray[i].style.backgroundImage.toLowerCase();
			var bgSplit = bg.split(".");
			if(bgSplit[bgSplit.length-1].substring(3,0) == "png"){
				var src = bg.substring(4,bg.length-1);
				var MyFilter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='crop')";
				oDivArray[i].style.backgroundImage="";
				oDivArray[i].style.filter = MyFilter;	
				oDivArray[i].display = "block";
				oDivArray[i].style.zIndex = -1;
			}
		}
	}
}


function objCorrectPNG(obj) // correctly handle PNG transparency in Win IE 5.5 & 6.
{
	if(BrowserDetect.browser != "Explorer")
		return;

	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])

	if ((version >= 5.5) && (document.body.filters)) {
		var oImgArray = obj.getElementsByTagName("img");
		//alert("oImgArray.length="+oImgArray.length);
		var i = oImgArray.length;
		while(i--){
			PngImgToSpan(oImgArray[i]);
		}
		
		
		/**************************************************************************
		***	2007.11.16	L. Price - 	Fix for Div Style.BackGround = ???.png		***
		**************************************************************************/
		var oDivArray = obj.getElementsByTagName("div");
		FixArrayPNGs(oDivArray);

		/**************************************************************************
		***	2008.04.24	L. Price - 	Fix for Td Style.BackGround = ???.png		***
		**************************************************************************/
		var oDivArray = obj.getElementsByTagName("td");
		FixArrayPNGs(oDivArray);

		/**************************************************************************
		***	2008.04.24	L. Price - 	Fix for Table Style.BackGround = ???.png		***
		**************************************************************************/
		var oDivArray = obj.getElementsByTagName("table");
		FixArrayPNGs(oDivArray);

		/**************************************************************************
		***	2008.04.24	L. Price - 	Fix for Span Style.BackGround = ???.png		***
		**************************************************************************/
		var oDivArray = obj.getElementsByTagName("span");
		FixArrayPNGs(oDivArray);

	}
	//closeAllPages();
}

function PngImgToSpanById(myID,retryCnt){
	var oImg = FindObjById(myID);
	if ( typeof( window[ 'retryCnt' ] ) == "undefined" ) {var retryCnt = 540; } 
	
	PngImgToSpan(oImg,retryCnt);
}

function PngImgToSpan(img,retryCnt){
	if(!img.src)
		return false;
	//alert("img.src="+img.src);
	if(img.width == 0){
		//alert("img.id.length="+img.id.length);
		if(img.id.length == 0){
			var cnt = 1;
			var PngFixImgID = "PngFixImg"+cnt;
			while(FindObjById(PngFixImgID)){
				cnt=cnt+1;
				PngFixImgID = "PngFixImg"+cnt;
			}
			img.id = PngFixImgID;
		}
		if ( typeof( window[ 'retryCnt' ] ) == "undefined" ) {var retryCnt = 540; } 
		retryCnt = retryCnt - 1;
		if(retryCnt>0)
			setTimeout('PngImgToSpanById("'+PngFixImgID+'","'+retryCnt+'")',300);
		return;
	}

	var imgName = img.src.toUpperCase();
	if (imgName.substring(imgName.length-3, imgName.length) == "PNG"){
		if((img.width == 0) && (img.height == 0)){
			//alert("load this img:"+imgName);
			pic1= new Image(); 
			pic1.src=imgName; 
			//alert("pic1.width="+pic1.width);
			//alert("getImageWidth(imgName)="+getImageWidth(imgName));
		}

		var imgID = (img.id) ? "id='" + img.id + "' " : "";
		var imgClass = (img.className) ? "class='" + img.className + "' " : "";
		var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
		var imgStyle = img.style.cssText ;
		var imgAttribs = img.attributes;
		var KeepAttrb = "";
		/*
		alert("img.width="+img.width);
		alert("img.height="+img.height);
		*/
		for (var j=0; j<imgAttribs.length; j++){
			var imgAttrib = imgAttribs[j];
			if (imgAttrib.nodeName == "align"){		  
				if (imgAttrib.nodeValue == "left") imgStyle = "float:left;" + imgStyle
				if (imgAttrib.nodeValue == "right") imgStyle = "float:right;" + imgStyle
				break
			}
			if ((imgAttrib.nodeName == "onclick") && (imgAttrib.nodeValue != null))
				KeepAttrb += " " + imgAttrib.nodeName + "=\"" + imgAttrib.nodeValue + "\" ";
		}

		var strNewHTML = "<span " + imgID + imgClass + imgTitle;
		strNewHTML += " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";";
		strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader";
		strNewHTML += "(src='" + img.src + "', sizingMethod='scale');\"";
		strNewHTML += " onmouseover=\"PNGswap('" + img.id + "');\" onmouseout=\"PNGswap('" + img.id +"');\"";
		strNewHTML += KeepAttrb ;
		strNewHTML += ">&nbsp;</span>" ;
		img.outerHTML = strNewHTML;
		//alert(strNewHTML);
		return true;
	}
	return false;
}


function GetImageSrc(obj){
	// *** This may need to be fixed for non .png files ***
	if(BrowserDetect.browser == "Explorer")
		if(obj.filters.length != 0)
			if(obj.filters(0).src.toLowerCase().indexOf('.png') != -1)
				return obj.filters(0).src;
	return obj.src;
}


function CopyImage(FromImg, ToImg){

		if(!FindObjById(FromImg))
			return;
		if(!FindObjById(ToImg))
			return;
			
		
		var oFromImg = GetImgObj(FindObjById(FromImg));
		var oToImg = GetImgObj(FindObjById(ToImg));
		
		if(BrowserDetect.browser == "Explorer"){
			if(oFromImg.tagName.toLowerCase() != "img")
				var FromSrc = oFromImg.filters(0).src;
			else 
				var FromSrc = oFromImg.src;

			if(oToImg.tagName.toLowerCase() != "img")
				oToImg.filters(0).src = FromSrc;
			else 
				oToImg.src = FromSrc;
			PngImgToSpan(oToImg);
			//oToImg.filters(0).src = oFromImg.filters(0);
		}else{
			//alert("oFromImg.src="+oFromImg.src);
			//alert("oToImg.src="+oToImg.src);
			oToImg.src = oFromImg.src;
		}

		//alert("Image Copied: ("+oToImg.tagName+") "+ oToImg.src);
}

function GetImgObj(obj){
	var ImgObj = obj;
	
	/*
	alert("obj.tagName="+obj.tagName);
	if((BrowserDetect.browser == "Explorer"))
		alert("obj.innerHTML.toLowerCase().indexOf('.png')="+obj.innerHTML.toLowerCase().indexOf('.png'));
	*/
	
	if(obj.tagName.toLowerCase() != "img")
		if((BrowserDetect.browser == "Explorer") && (obj.innerHTML.toLowerCase().indexOf('.png') != -1))
			ImgObj = obj.getElementsByTagName('span')[0];	
		else
			ImgObj = obj.getElementsByTagName('img')[0];	
	//alert("ImgObj="+ImgObj);
	return ImgObj;
}

function getImageWidth(myImage) {
	var x, obj;
	if (document.layers) {
		var img = getImage(myImage);
		return img.width;
	} else {
		return getElementWidth(myImage);
	}
	return -1;
}

function getImageHeight(myImage) {
	var y, obj;
	if (document.layers) {
		var img = getImage(myImage);
		return img.height;
	} else {
		return getElementHeight(myImage);
	}
	return -1;
}


function addOnloadEvent2(fnc){
  if ( typeof window.addEventListener != "undefined" )
    window.addEventListener( "load", fnc, false );
  else if ( typeof window.attachEvent != "undefined" ) {
    window.attachEvent( "onload", fnc );
  }
  else {
    if ( window.onload != null ) {
      var oldOnload = window.onload;
      window.onload = function ( e ) {
        oldOnload( e );
        window[fnc]();
      };
    }
    else 
      window.onload = fnc;
  }
}


if(BrowserDetect.browser == "Explorer"){window.attachEvent("onload", correctPNGDelay);}



