/***************************************************************************
* Patch für IE6: iteriere über alle Bilder in der Seite und lege
* einen Alpha-Transparenz-Filter über alle PNGs.
* Hintergrund: Der IE6 versteht noch keine Alpha-kanaligen PNGs und stellt
* die (semi-) transparenten Bereiche als Graues Rechteck dar.
* Wird in jede Seite eingebunden und automatisch nach Abschluss des
* Ladevorgangs ausgeführt.
*
* @author Marcus Bloch, Chamaeleon AG
* @author Tristan Lins, Chamaeleon AG
* @version 1.1
* @depends ProrotypeJS 1.6
****************************************************************************/
Event.observe(window, 'load', function() {
	var isIE = navigator.appName.include('Microsoft Internet Explorer');
	if(isIE){
		navigator.appVersion.match(/MSIE\s(\d+)/);
		if(RegExp.$1 != null && RegExp.$1 < 7){
			var metas = $$('meta');
			var placeholder = null;

			metas.each(function(meta) {
				var name = meta.name;
				if(name != null) {
					if(name.strip().toLowerCase() == 'png4ie-placeholder') {
						placeholder = meta.content.strip();
					}
				}
			});

			if(placeholder) {
				var re = /\.png(?:\.phtml)?(\?.*)?$/i;

				// relative Placeholder Pfad umschreiben zu einem
				// absoluten Pfad zu dem aktuellen Dokument, um
				// hinterher einen suffix Vergleich zu machen.
				var ph = placeholder;
				while(ph.startsWith('../'))
					ph = ph.substr(3);
				if(!ph.startsWith('/'))
					ph = '/' + ph;

				// Event-Listener Funktion
				var func = function(event) {
					var img = event.element();

					if(img.src.endsWith(ph)) {
						// nicht machen, wenn es sich um den Placeholder handelt
						// -> dann ist diese Grafik schon gefiltert!
					} else if(re.test(img.src)) {
						img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src + "')";
						img.src = placeholder;
					} else {
						img.style.filter = "";
					}
				};

				// Bilder bearbeiten
				for(var i = 0; i < document.images.length; i++){
					var img = document.images[i];

					if(re.test(img.src)) {
						img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src + "')";
						img.src = placeholder;
					}

					Event.observe(img, 'load', func);
				}
			}
		}
	}
});

