/*
 * jQuery preloadImages plugin
 * Version 0.1.1  (20/12/2007)
 * @requires jQuery v1.2.1+
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * @name preloadImages
 * @type jQuery
 * @cat Plugins/Browser Tweaks
 * @author Blair McBride <blair@theunfocused.net>
 http://plugins.jquery.com/project/preloadImages
*/

(function($) {

	$.preloadImages=function(arr) {
		$.preloadImages.add(arr);
		queuedStop = false;
		startPreloading();
	};

	$.preloadImages.add=function(arr) {
		if(typeof(arr)=='string') {
		alert('return');
			$.preloadImages.imageQueue.push(arr);
			return;
		}
		if(arr.length<1) return;
		for(var i=0, numimgs=arr.length; i<numimgs; i++){
			if(typeof(arr[i])=='string') $.preloadImages.imageQueue.push(arr[i]);
		}
	}

	$.preloadImages.clear = function() {
		$.preloadImages.imageQueue = [];	
	}

	$.preloadImages.stop = function() {
		queuedStop = true;
	}

	$.preloadImages.start = function(sType) {
		queuedStop = false;
		startPreloading(sType);
	}

	$.preloadImages.imageQueue = [];

	/* PRIVATE */
	var isPreloading = false;
	var queuedStop = false;

	function startPreloading(sType){
		if(isPreloading){
			//alert('call refused');
			return;
		}
		
		$(document.createElement('img')).bind('load', function() {
			if(queuedStop){
				queuedStop=isPreloading=false;
				return;
			}
			isPreloading=true;
			if($.preloadImages.imageQueue.length>0){
				this.src=$.preloadImages.imageQueue.shift();
				$("#oControl").prepend($.preloadImages.imageQueue.length +": "+ this.src +"<br />")
			}else{
				isPreloading=false;
				fPreloadingDone(sType);
			}
		}).trigger('load');
	}

})(jQuery);