var fixPNG = {
	root: false,
	applyPositioning: true,
	shim: 'x.gif',
	
	bg_fnFixPng: function(obj){
		var mode = 'scale';
		var bg	= obj.currentStyle.backgroundImage;
		var src = bg.substring(5,bg.length-2);
		if (obj.currentStyle.backgroundRepeat == 'no-repeat') {
			mode = 'crop';
		}
		obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')";
		obj.style.backgroundImage = 'url('+this.shim+')';
	},
	el_fnFixPng: function(img){
		var src = img.src;
		img.style.width = img.width + "px";
		img.style.height = img.height + "px";
		img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
		img.src = this.shim;
	},
	
	loadPngs: function(){
		if($.browser.msie == true){
			if(jQuery.browser.version == '6.0'){
				var root = false;
				if (root) {
					root = document.getElementById(root);
				}else{
					root = document;
				}
				r=0;
				for (var i = root.all.length - 1, obj = null; (obj = root.all[i]); i--) {
					// background pngs
					if (obj.currentStyle.backgroundImage.match(/\.png/i) !== null) {
						this.bg_fnFixPng(obj);
						r++;
					}
					// image elements
					if (obj.tagName=='IMG' && obj.src.match(/\.png$/i) !== null){
						this.el_fnFixPng(obj);
						r++;
					}
					// apply position to 'active' elements
					if (this.applyPositioning && (obj.tagName=='A' || obj.tagName=='INPUT') && obj.style.position === ''){
						obj.style.position = 'relative';
					}
				}
			
			}
		}
	}
}

fixPNG.loadPngs();
