/*
  iebugfix.js
  Fix Internet Explorer rendering bugs (David Oliveira)

  Version:	1.0.1
  Author:	David Oliveira <d.oliveira@mm.ciben.pt>
 */


	/*
	  Fix PNG rendering
	 */

	function ie_bgpngfix ( ) {

		var
			sc = document.styleSheets,
			norepeats = new Array();

		// Find no-repeat's

		for ( var x = 0 ; x < sc.length ; x++ ) {
			for ( var y = 0 ; y < sc[x].rules.length ; y++ ) {
				var
					r = sc[x].rules[y],
					cs = r.style;

				if ( cs.backgroundRepeat == 'no-repeat' )
					norepeats[r.selectorText] = 1;
			}
		}


		// Replace PNG's

		for ( var x = 0 ; x < sc.length ; x++ ) {
			for ( var y = 0 ; y < sc[x].rules.length ; y++ ) {
				var
					r = sc[x].rules[y],
					cs = r.style;

				if ( cs.backgroundImage.match(/^url\((.*\.png)\)$/i) ) {
					cs.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+RegExp.$1+"',sizingMethod='"+(norepeats[r.selectorText]?'crop':'scale')+"')";
					cs.backgroundImage = '';
				}
			}
		}


	}


	/*
	  Fix 100% width tables with margins reajuste
	 */

	function ie_widthfix ( ) {

		var
			ts = document.getElementsByTagName('table');

		for ( var x = 0 ; x < ts.length ; x++ ) {

			var
				t = ts[x],
				m;

			for ( var p in {'marginLeft':1,'marginRight':1} ) {
				if ( m = t.style[p] ) {
					m = m.substr(0,m.length-2);
					t.style.width = t.offsetWidth-m;
				}
			}

		}

	}



	/*
	 Schedule all bugfixes
	 */

	if ( document.all ) {
		attachEvent("onload",ie_bgpngfix);
		attachEvent("onload",ie_widthfix);
	}
