//ROTATE IMAGES FROM HOMEPAGE_FLASH FOLDER
//Written By Joel Grannas - Creative Director @ Schoolwires

(function($){
    $.fn.joelJSONrotate = function(settings){
        //SETTINGS
	var config = {
		'siteID'	: '0',
		'baseFolder'	: 'homepage_flash',
		'folderName'	: 'set1',
		'random'	: 'yes',
		'delay'		: 8,
		'fadeSpeed'	: 2,
		'static'	: 'default.jpg'
	};
	if (settings){$.extend(config, settings);}
	  	
        return this.each(function(settings){
        	//*****************************
			var element = this;
        	var url = "/site/handlers/getimagesxml.ashx?SiteID=" + config.siteID + "&base_folder=" + config.baseFolder + "&foldername=" + config.folderName + "&output=1";
        	var myContainer = "#folder-" + config.folderName;
			
			//BUILD ARRAY OF IMAGES
			$.getJSON(url, function(data) {
				//ON COMPLETE LOAD, BUILD ARRAY
				buildSetup(data);
			});
			
			function buildSetup(data){
				var imagesArray = new Array();
				$.each(data.images, function(i){
					imagesArray.push(data.images[i]);
				});
				var totalFiles = imagesArray.length;
				if(totalFiles == 0){
					imagesArray.push(config.static);
				}
				//RANDOMIZE
				if(config.random !== "no"){
					imagesArray = imagesArray.sort(function(){return 0.5 - Math.random()});
				}
				//BUILD THE IMAGE STRUCTURE
				buildStructure(imagesArray);
			}
			
			function buildStructure(imagesArray){
				//BUILD CONTAINER FOR ROTATOR
				var structure = "<div id='folder-" + config.folderName + "'>"+
								"	<ul class='pictures' style='position:relative; list-style:none; margin:0px; padding:0px'></ul>"+
								"	<div id='" + config.folderName + "overlay'></div>"+
								"</div>";	
				$(element).prepend(structure);
				//INITIAL FUNCTION RUN
				loadImage(0,imagesArray);
			}
			
			//LOAD ALL DATA/IMAGES
			function loadImage(currentFile, imagesArray){
				var totalFiles = imagesArray.length;
				if(currentFile<totalFiles){
					
					//ADD LI FOR EACH ITEM
					$("<li class='imgHolder loading' />").css({
						"margin" 	: "0px",
						"padding"	: "0px",
						"display"	: "none",
						"position"	: "absolute",
						"top"		: "0px",
						"left"		: "0px" 
					}).prependTo("ul.pictures", myContainer);
					
					//CURRENT LI TO LOAD TO
					var currentLI = $("li.imgHolder:eq(0)", myContainer);
												
					//ADD IMAGE
					$("<img />").load(function(){
						$(this).appendTo(currentLI);
						$(currentLI).removeClass("loading").show();
						loadImage(currentFile+1,imagesArray);
						//RUN TIMER ON SECOND IMAGE COMPLETE
						if(currentFile == 1){
							rotateImages();
							rotateTimer();
						}
					}).attr('src',imagesArray[currentFile]);		
				}
			}
				
			//ROTATE FUNCTION
			function rotateTimer(){
				rotateTimer = setInterval(function(){
					rotateImages();
				}, config.delay*1000);	
			}
			
			function rotateImages(){
				if(!$("ul.pictures li:last", myContainer).prev().hasClass("loading")){
					if(!$("ul.pictures li:last", myContainer).prev().hasClass("loading")){
						$("ul.pictures li:last", myContainer).prev().show();
						$("ul.pictures li:last", myContainer).fadeOut(config.fadeSpeed*1000, function(){
							$(this).parent().prepend(this);
							$(this).show();
						});
					}
				}
			}
        	//*****************************
        });
    };
})(jQuery);

