$(document).ready(function() {
	
		var supersleight	= function() {
		jQuery.fn.exists = function(){return jQuery(this).length>0;}
	
		if ($('div#png-fix').exists() == false) {
			$('div#png-replacement').html('<div id="png-fix"><img src="http://www.ferno.co.uk/site/img/bg_page/png-fix.png" alt="" /></div>');
		}
		
		var root = false;
		var applyPositioning = true;
		
		// Path to a transparent GIF image
		var shim			= 'http://www.ferno.co.uk/site/img/spacer.gif';
		
		// RegExp to match above GIF image name
		var shim_pattern	= /x\.gif$/i;
		
		
		
		var fnLoadPngs = function() { 
			if (root) {
				root = document.getElementById(root);
			}else{
				root = document;
			}
			
			if (root) {
				if (root.all) {
					for (var i = root.all.length - 1, obj = null; (obj = root.all[i]); i--) {
						// background pngs
						if (obj.currentStyle.backgroundImage.match(/\.png/i) !== null) {
							bg_fnFixPng(obj);
						}
						// image elements
						if (obj.tagName=='IMG' && obj.src.match(/\.png$/i) !== null){
							el_fnFixPng(obj);
						}
						// apply position to 'active' elements
						if (applyPositioning && (obj.tagName=='A' || obj.tagName=='INPUT') && obj.style.position === ''){
							obj.style.position = 'relative';
						}
					}
				}
			}
		};
	
		var 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('+shim+')';
		};
	
		var 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 = shim;
		};
		
		var addLoadEvent = function(func) {
			var oldonload = window.onload;
			if (typeof window.onload != 'function') {
				window.onload = func;
			} else {
				window.onload = function() {
					if (oldonload) {
						oldonload();
					}
					func();
				};
			}
		};
		
		return {
			init: function() { 
				addLoadEvent(fnLoadPngs);
			},
			
			limitTo: function(el) {
				root = el;
			},
			
			run: function() {
				fnLoadPngs();
			}
		};
	}();
	
	// limit to part of the page ... pass an ID to limitTo:
	
	supersleight.limitTo('png-fix');
	
	supersleight.init();
});