/**
 * CFImagePreload
 */

(function($){
	
	$.fn.preload = function(params) {
		
		// Parameters
		var defaultParams = {
			images: [],
			namespace: ''
		};
		$.extend(defaultParams, params);
		
		// Variables
		var preloadObj         = $(this);
		var preloadImagesTotal = defaultParams.images.length;
		var preloadCount       = 0;
		var namespace = '';
		if(defaultParams.namespace != '') {
			namespace = '.' + defaultParams.namespace;
		}
		
		// Validate the given parameters
		if(defaultParams.images.length == 0) return;
		
		// Preload Images
		var images      = new Array();
		var imagesTotal = defaultParams.images.length;
		for(var i = 0; i < imagesTotal; i ++) {
			var image = new Image();
			images.push(image);
			//image.onload = function() {
			images[i].onload = function() {
				if(++ preloadCount >= preloadImagesTotal) {
					// Dispatch Event
					preloadObj.trigger('PRELOAD_COMPLETE' + namespace);
				}
			}
			image.src = defaultParams.images[i];
		}
		
	}
	
	
})(jQuery);
