(function($) {
	var imgList = [];
	$.extend({
		preloadImages: function(imgArr, option) {
			var setting = $.extend({
				init: function(loaded, total) {},
				loaded: function(img, loaded, total) {},
				loaded_all: function(loaded, total) {},
				base: null,
				sequential: false
			}, option);
			
			var total = imgArr.length;
			var loaded = 0;
			
			setting.init(0, total);
			
			function loadImage( $file )
			{
				imgList.push($("<img />")
					.attr("src", setting.base ? setting.base + $file : setting.base )
					.load( onLoadComplete )
					.error( onLoadError )
				);
			}
			
			function onLoadComplete()
			{
				loaded++;
				setting.loaded( $(this), loaded, total);
				
				if(loaded == total) {
					setting.loaded_all(loaded, total);
				}
				 else
				{
					if ( setting.sequential )
					{
						loadImage( imgArr[loaded] );
					}
				}
			}
			
			function onLoadError()
			{
			}
			if ( !setting.sequential )
			{
				for(var i in imgArr) {
					loadImage( imgArr[i] );
				}
			}
			 else
			{
				loadImage( imgArr[loaded] );
			}
		}
	});
})(jQuery);

