<public:component lightweight="true">
<public:attach event="onpropertychange" onevent="iePNGFix(0)" />

<script type="text/javascript">

// IE5.5+ PNG Alpha Fix v1.0RC5
// (c) 2004-2007 Angus Turnbull http://www.twinhelix.com

// This is licensed under the GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/


// This must be a path to a blank image, relative to the HTML document(s).
// In production use I suggest '/images/blank.gif' or similar. That's all!
if (typeof blankImg == 'undefined') var blankImg = '/Sites/demo/Images/o.gif';

function filt(s, b){
	try{

		var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
		var sM = (currentStyle.backgroundRepeat == 'no-repeat') ? 'crop' : 'scale';
		s = (s || '').replace(/\(/g, '%28').replace(/\)/g, '%29');

		if (s && !(/IMG|INPUT/.test(nodeName) && !b) && currentStyle.width == 'auto' && currentStyle.height == 'auto'){
			style.width = offsetWidth + 'px';
			style.display = 'block';
		}

		if (filters[f]){
			filters[f].enabled = s ? true : false;
			if (s) with (filters[f]) { src = s }
		} else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="' + sM + '")';
	} catch (exception) {
		return false;
	}
}

function iePNGFix(init){
	if (!/MSIE (5\.5|6)/.test(navigator.userAgent)) return;
	var evt = init ? { propertyName: 'src,background' } : event;
	var isSrc = /src/.test(evt.propertyName);
	var isBg = /background/.test(evt.propertyName);
	var isClass = !init && ((this.className != this._png_class) && (this.className || this._png_class));
	if (!(isSrc || isBg || isClass)) return;
	this._png_class = this.className;
	var blank = blankImg.match(/([^\/]+)$/)[1];

	// Required for Whatever:hover support - erase any set BG if className changes.
	if (isClass && ((style.backgroundImage.indexOf('url(') == -1) || (style.backgroundImage.indexOf(blank) > -1))){
		style.backgroundImage = '';
		return;
	}

	if (isSrc && this.src && /IMG|INPUT/.test(nodeName)){
		if ((/\.png([^\.]+|$)/i).test(src)){
			filt(src, 1);
			src = blankImg;
		} else if (src.indexOf(blank) == -1) filt();
	}

	var bgSrc = currentStyle.backgroundImage || style.backgroundImage;
	if ((bgSrc + this.src).indexOf(blank) == -1){
		var bgPNG = bgSrc.match(/url[("']+(.*\.png[^\)"']*)[\)"']+/i);

		if (bgPNG){
			style.backgroundImage = 'url("' + blankImg + '")';
			filt(bgPNG[1], 0);
			// Unclickable elements inside PNG backgrounds.
			var tags = ['a', 'input', 'select', 'textarea', 'iframe', 'object'],
			t = tags.length, tFix = [];
			while (t--){
				var elms = all.tags(tags[t]), e = elms.length;
				while (e--) tFix.push(elms[e]);    
			}
			var t = tFix.length;
			if (t && (/relative|absolute/i).test(currentStyle.position)) alert('IEPNGFix: Children of positioned element are unclickable!\n' + this);
			while(t--) tFix[t].style.position = 'relative';
		} else filt();
	}
}

iePNGFix(1);
</script>
</public:component>