/**
 * @version			1.0.0 - 7 mei 2009
 *
 * @copyright		1.0.0, 7 mei 2009, Jan Niemantsverdriet, Gemaakt
 */

var CpHTMLPreloader_oImages = new Object();
var CpHTMLPreloader_oSettings = new Object();

/**
 * Start het preloaden van de afbeeldingen in de opgegeven array
 * 
 * @param Array a_aURLs				de urls van de afbeeldingen
 * @param string a_sId				een unieke id voor dit proces
 * @param a_sUpdateFunction			de functie die het proces monitort (lege string = geen)
 * @param a_sUpdateId				een id voor het proces dat dit proces monitort (lege string = geen)
 * @param a_sReloadURL				de url die geladen dient te worden als het preloaden is afgerond (lege string = geen)
 * @since 1.0.0 - 7 mei 2009
 * @author Jan Niemantsverdriet
 */
function CpHTMLPreloader_vStart(a_aURLs, a_sId, a_sUpdateFunction, a_sUpdateId, a_sReloadURL) {
	CpHTMLPreloader_oImages.a_sId = new Array();
	CpHTMLPreloader_oSettings.a_sId = new Object();
	CpHTMLPreloader_oSettings.a_sId.sFunction = a_sUpdateFunction;
	CpHTMLPreloader_oSettings.a_sId.sId = a_sUpdateId;
	CpHTMLPreloader_oSettings.a_sId.sReloadURL = a_sReloadURL;
	for (var iCounter = 0; iCounter < a_aURLs.length; iCounter++) {
		CpHTMLPreloader_oImages.a_sId[iCounter] = new Image();
		CpHTMLPreloader_oImages.a_sId[iCounter].src = a_aURLs[iCounter];
	}
	CpHTMLPreloader_vMonitor(a_sId);
}

/**
 * Houdt het laden in de gaten, update de progress en sluit af als het laden klaar is
 * 
 * @param a_aImages
 * @return
 */
function CpHTMLPreloader_vMonitor(a_sId) {
	var iFinished = 0;
	for (var iCounter = 0; iCounter < CpHTMLPreloader_oImages.a_sId.length; iCounter++) {
		if (CpHTMLPreloader_oImages.a_sId[iCounter].complete) {
			iFinished++;
		}
	} 
	if (iFinished < CpHTMLPreloader_oImages.a_sId.length) {
		setTimeout('CpHTMLPreloader_vMonitor(\'' + a_sId + '\')', 500);
		if (CpHTMLPreloader_oSettings.a_sId.sFunction != '') {
			var iStatus = 1000 * iFinished / CpHTMLPreloader_oImages.a_sId.length;
			eval(CpHTMLPreloader_oSettings.a_sId.sFunction + "(" + iStatus + ",'" + CpHTMLPreloader_oSettings.a_sId.sId + "')");
		}
	} else {
		eval(CpHTMLPreloader_oSettings.a_sId.sFunction + "(1000, \"" + (CpHTMLPreloader_oSettings.a_sId.sId) + "\")");
		if (CpHTMLPreloader_oSettings.a_sId.sReloadURL != '') document.location = CpHTMLPreloader_oSettings.a_sId.sReloadURL;
	}
}
