/*

Correctly handle PNG transparency in Win IE 5.5 and 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2005.

Use in <HEAD> section with DEFER keyword
wrapped in conditional comments thus: 

    <!--[if lt IE 7]>
    <script defer type="text/javascript" src="pngfix.js"></script>
    <![endif]-->

This extended version includes imagemap and input image functionality.
It also requires a 1px transparent GIF.
 
*/

var pngfix = function()
{
	var strGif = "/mambots/editors/tinymce/jscripts/tiny_mce/themes/simple/images/spacer.gif";
	var strFilter = "progid:DXImageTransform.Microsoft.AlphaImageLoader";
	var arVersion = navigator.appVersion.split("MSIE");
	var version = parseFloat(arVersion[1]);

	if ((version >= 5.5) && (version < 7.0) && (document.body.filters)) 
	{
		for(var i=0; i<document.images.length; i++)
		{
		   var img = document.images[i];
		   var imgName = img.src.toUpperCase();
		   if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
		   {
			  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 = "display:inline-block;" + img.style.cssText;
			  if (img.align == "left") imgStyle = "float:left;" + imgStyle;
			  if (img.align == "right") imgStyle = "float:right;" + imgStyle;
			  if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
			  if (img.useMap)
			  {  
				 strAddMap = "<img style=\"position:absolute;  top:0px; left:0px;"
				 + "height:" + img.height + "px;width:" + img.width +"\" "
				 + "src=\"" + strGif + "\" usemap=\"" + img.useMap 
				 + "\" border=\"" + img.border + "\">";
			  }
			  var strNewHTML = "<span " + imgID + imgClass + imgTitle
			  + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
			  + "filter:" + strFilter
			  + "(src=\'" + img.src + "\', sizingMethod='crop');\"></span>";
			  if (img.useMap) strNewHTML += strAddMap;
			  img.outerHTML = strNewHTML;
			  i = i-1;
		   }
		}			
		var divs = document.getElementsBySelector('div');
		divs = divs.concat(document.getElementsBySelector('h3'));
		divs = divs.concat(document.getElementsBySelector('a'));
		for (var i = 0; i < divs.length; i++)
		{
			var bgImg = divs[i].getStyle('backgroundImage');
			if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
			{
				divs[i].setStyle('backgroundImage', 'none');
				var src = RegExp.$1;
				divs[i].style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+src+'",sizingMethod="crop")';
				divs[i].setStyle('position', 'static');
				var innerds = divs[i].getElementsBySelector('a');
				for (var j = 0; j < innerds.length; j++)
				{
					innerds[j].setStyle('position', 'relative');
				}
				innerds = divs[i].getElementsBySelector('div');
				for (var j = 0; j < innerds.length; j++)
				{
					innerds[j].setStyle('position', 'relative');
				}
			}
		}

	   for(i=0; i < document.forms.length; i++) findImgInputs(document.forms(i))
	}

	function findImgInputs(oParent)
	{
	   var oChildren = oParent.children;
	   if (oChildren)
	   {
		  for (var i=0; i < oChildren.length; i++ )
		  {
			 var oChild = oChildren(i);
			 if ((oChild.type == 'image') && (oChild.src))
			 {
				 var origSrc = oChild.src;
				 oChild.src = strGif;
				 oChild.style.filter = strFilter + "(src='" + origSrc + "')";
			 }
			 findImgInputs(oChild);
		  }
	   }
	}
};

