/*!
 * Plugin do jQuery slideMOsaic
 * Arrisco - Publicidade e Design, Lda
 * Copyright (c) Arrisco - Publicidade e Design, Lda
 * Version: 0.01 (21-10-2010)
 * Licenciado em MIT e GPL3.
 * Testado: jQuery v1.2.6 ou superior
 */

var primeiraVez = true;

(function($){
	jQuery.fn.curtain = function(settings){
		// Settings default
		
		var elemento = $(this);
		var nrImagens;
		var imagemPresente = 0;
		var imageObj;
		
		
		
		settings = jQuery.extend({
									prefixo:      'arriscoCurtain',
									tempoContentor: 200,
									imagens: banners
									}, 
									settings);

			
		

		/*var criarDelegado = function(objecto, metodo){
		    return function(){
		        return metodo.apply(objecto, arguments);
		    };
		};

		var img_onload = function(){
			
			redimensionarContentor(larguraImagem, alturaImagem);
		};


		var dimensoesImagem = function(){
			img.onload = criarDelegado(img, img_onload);
			img.src = settings.imagemInicial;
		};*/
		
		
		var misturar = function(){
			nrImagens = settings.imagens.length;
			imagens = settings.imagens.shuffle();
			
			imagemPresente = 0;
			
			pai = elemento.parent();
			pai.css('background-image', 'url('+imagens[imagemPresente]+')');
			
			imagemPresente++;
			
			preload();
			
		};
		
		
		var preload = function(){
			
			imageObj = new Image();
			
			for(i=0; i<= (imagens.length - 1); i++){
		          imageObj.src=imagens[i];
		          
		     }
			
		}
		
		
		var rodarImagens = function(){
			
			
			
			
			
			elemento.animate({'opacity': 0.5}, 1500, function(){
				elemento.css('background-image', 'url('+imagens[imagemPresente]+')');
				elemento.animate({'opacity': 1}, 1500, function(){
					pai = elemento.parent();
					pai.css('background-image', 'url('+imagens[imagemPresente]+')');
					rodarImagens();
					imagemPresente++;
					if(imagemPresente > (nrImagens - 1)){
						imagemPresente = 0;
					}
					
				});
			});
			

			
			
		}
		
			
			
			
		
		
		var curtain = function(){
			misturar();
			rodarImagens();
		};
		
		
		
		curtain();
		
		
		
		
		
		
		
		// Return
		return jQuery;
	};
})(jQuery);

