/**
 * global.js
 *
 * Dit bestand bevat alle minimale javascript om de modules en componenten van het cms werkend te houden.
 *
 * @author Martin Borsboom
 * @site http://wwww.martinborsboom.nl 
 */

/**
 * addLoadEvent
 * Hiermee kan je diverse functies toevoegen aan window.onLoad
 *
 * @param string func is de naam van de functie
 */
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} 
	else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

/**
 * handPointer
 * om de cursor naar handje te zetten
 *
 * @param element obj is het object dat een hand pointer moet krijgen
 */
function setHandPointer(obj) {
	try {
		obj.style.cursor = "pointer";
	}
	catch(e) {
		obj.style.cursor = "hand";
	}
}

/** 
 * warnUser() voor de zekerheid, zodat een gebruiker niet per ongelijk een actie uitvoert.
 *
 * @param string msg is de warning die aan de gebruiker moet worden laten zien.
 */
function warnUser(msg) {
	var answer = confirm(msg);
	if(answer) {
		return true;
	}
	return false;	
}

/**
 * isIE6
 * om te kijken of we in de ie6 browser zitten
 */
function isIE6() {

	if (navigator.platform != "Win32" || navigator.appName != "Microsoft Internet Explorer") {
		return false;
	}
	
	//we moeten alleen ie versies doen vanaf 5.5 en kleinder dan ie7
	var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
	return (rslt != null && Number(rslt[1]) >= 5.5 && Number(rslt[1]) < 7);
}

/**
 * needPngFilter
 * kijkt of de browser een png filter moet of, of het niet nodig is
 */
function needPngFilter() {

	if(!document.body.filters) {
		return false;
	}

	return isIE6();
}

/**
 * enableAlphaImages / doEnableAlphaImages
 * Functie die alle pngs backgrounds in je html opzoekt en deze voor ie transparant maakt
 */
enableAlphaImages = function doEnableAlphaImages(){

	if (needPngFilter()) {
		for (var i = 0; i < document.all.length; i++){
			
			var obj = document.all[i];
			var bg = obj.style.backgroundImage;

			//voor achtergronden
			if (bg && bg.match(/\.png/i) != null) {
			
				var img = bg.substring(4,bg.length-1);
				
				obj.style.backgroundImage = '';
				obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ img +"', sizingMethod='scale')";
			}

		}
	}
	
}

/**
 * fixPNGImage
 * functie om een normale image op png te fixen
 *
 * todo:
 * deze functie uitbreiden dat die ook css classes en eventueel andere dingen overneemt
 *
 * @param element myImage is het imageobject dat gefiltered moet worden
 */
function fixPNGImage(myImage) {

	if(needPngFilter()) {
	
	  var imgID = (myImage.id) ? "id='" + myImage.id + "' " : "";
	  var imgStyle = "display: inline-block; " + myImage.style.cssText;
								
	  myImage.outerHTML = "<span " + imgID + " style=\"" + imgStyle + "; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>";
		
	}
	
}

/** kijk of we de transparant fix moeten uitvoeren */
addLoadEvent(enableAlphaImages);
