var supersleight	= function() {
	
	var imgRegex = new RegExp(/(.*\.png)([?].*)?$/i);
  var bgRegex = new RegExp(/^url\(["']?(.*\.png([?].*)?)["']?\)$/i);	
	
	var fnLoadPngs = function(node, skipCheck) {
	  var nodeList;
		if (!node) {
			nodeList = document.getElementsByTagName("BODY");
		}
		else {
		  nodeList = node.childNodes;
		}

		for (var i in nodeList) {
      try {
  		  var child = nodeList[i];
  		  if (child.nodeType == 1) { 
    		  var fixPngFound = (skipCheck || classCheck(child))
    			if (child.hasChildNodes) {
      		  fnLoadPngs(child, fixPngFound);
      		}
  		    if (fixPngFound) {
      			// background pngs
      			/* Skipping this; easier to use the underscore filter
      			if (child.currentStyle.backgroundImage.match(/\.png/i) !== null) {
      			 	bg_fnFixPng(child);
      			} */
      			// image elements
      			if (child.tagName=='IMG' && child.src.match(/\.png$/i) !== null){
      				el_fnFixPng(child);
      			}
      		} // if (fixPngFound)
      	} // if (child.nodeType == 1)
      } catch (err) {}
		} // for
		
	};

	var classCheck = function(node) {
	  if (node.className == "") {
	    return false;
	  }
	  var tmp = node.className.replace(" ", "|");
	  var classes = tmp.split("|");
	  for (var i in classes) {
	    if (classes[i] == "pngFix") {
	      return true;
	    }
	  }
	  return false;
	};

	var bg_fnFixPng = function(obj) {
		var bg	= obj.currentStyle.backgroundImage;
	  var match = bgRegex.exec(bg);
	  if (match) {
	    var base = match[1].substring(0, match[1].length-4);
	    obj.style.backgroundImage = "url('" + base + ".gif')";
	  }
	};

	var el_fnFixPng = function(img) {
	  var match = imgRegex.exec(img.src);
	  if (match) {
	    img.src = match[1].substring(0, match[1].length-4) + ".gif";
	  }
	};

	return {
		run: function() {
		  if (navigator.appVersion.indexOf("MSIE 6.0") >= 0) {
  			fnLoadPngs(false);
		  }
		}
	};
}();
