/********************************************************************************
Author:: Duncan Dean Scholtz (duncandee@gmail.com)
*********************************************************************************/

//Depends on ::: --> 
/*  
* jQuery JSON Plugin
* version: 2.1 (2009-08-14)
* website's http://www.json.org/json2.js
*/

//jquery.timers-1.1.2

(function($){
	$.fn.simpleImageLoader = function(options){
		defaults = {
			delay: 1,
			jsonImgArray: null
		};
		var opts = $.extend(defaults,options);
		
		var element 	 = $(this.get(0));
		var elementID  = element.attr("id");
		
		var shuffleArray 		 = new Array();
		var imageObjectArray = new Array();
		var imageIteratorPos = null;
		
		//Data integ
		opts.delay = Math.abs(opts.delay);
		
		var start= function(){
			element.everyTime(opts.delay+"s","simpleGalTransition_"+elementID,function(){
				showNextItem();
			});
		},
		loadNextItem  = opts.nextItem  || function(){
			if(imageIteratorPos ==  (imageObjectArray.length-1) || imageIteratorPos == null ){
				imageIteratorPos = 0;
			}else{
				imageIteratorPos++;
			}
			return imageObjectArray[imageIteratorPos];
		},
		showNextItem  = opts.nextItem  || function(){
			element.html(loadNextItem());
		},
		addImageToArray = function(index, imageLoader){
			imageObjectArray[index] = imageLoader;
		},
		shuffleParsedArray = function(arr) {
			for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
			return arr;
		};
		
		(function(){
			if( opts.jsonImgArray == null ){
				alert('JsonImgArray is not set');
			}
			shuffleArray = shuffleParsedArray($.evalJSON(opts.jsonImgArray));
			
			$.each(shuffleArray, function(index, value){
				
				$('<img>').attr('src', value.src)
				.load(function(){
					if( value.href.length > 0 ){
						var objToAdd =  $('<a/>').attr('href', value.href ).html($(this));
					}else{//only image...
						var objToAdd = $(this);
					}
					addImageToArray(index,objToAdd);
				})
				
				
			});
			start();
			
		})();
	}
})(jQuery)

