/**
 *	Arregla les imatges PNG en IE 6
 *
 *	PRE:
 *		scripts/gral.js
 *
 *	En teoria, cridant la funció que es crida al final del fitxer (supersleight.init();) ja hauria de funcionar tot,
 *	però he notat que no funciona del tot l'event "onload". Així que també cridarem "supersleight.run();" al final
 *	de tot (just abans de tancar el </body>
 */

var supersleight	= function() {

	var root = false;
	var applyPositioning = false;

	// Path to a transparent GIF image
	var shim	= nivell_html+'img/transparent.gif';

	// RegExp to match above GIF image name
	var shim_pattern	= /img\/transparent\.gif$/i;

	var fnLoadPngs = function()
	{
		if (root) root = document.getElementById(root);
		else 			root = document;

		if (root)
		{

			for (var i = root.all.length - 1; i >= 0; i--)
			{
				var obj = null;
				obj = root.all[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('header');
if (es.ie) supersleight.init();

