(function($){
	$.fn.frsGallery = function(settings){
		settings = jQuery.extend({
			imagemArray: [],
			containerH: null,
			slidetimer: null,
			sliding: false,
			slide: 2000,
			imagemAtual: 0
		}, settings);

		var jQueryObj = this; 
		function _inicializar(){
			_iniciar(this, jQueryObj);
			return false;
		}

		if(jQueryObj.length == 1)
			settings.imagemArray.push(new Array(jQueryObj.getAttribute('href'), jQueryObj.getAttribute('title')));
		else
			for(var i=0; i < jQueryObj.length; i++)
				settings.imagemArray.push(new Array(jQueryObj[i].getAttribute('href'),jQueryObj[i].getAttribute('title')));
				
		$('#frsgal_control').click(function(){
			_slideshow(true);
		});

		function _iniciar(objClicado,jQueryObj){
			settings.imagemAtual = 0;
			while(settings.imagemArray[settings.imagemAtual][0] != objClicado.getAttribute('href'))
				settings.imagemAtual++;

			_mostrar_imagem();
		}

		function _mostrar_imagem(){
			$('#frsgal_loading').show();
			var preloadImagem = new Image();
			preloadImagem.onload = function(){
				altura = settings.containerH ? settings.containerH : preloadImagem.height;
				$('#frsgal_container').fadeTo(500, 0.01, function(){
					$('#frsgal_container').css({'backgroundImage' : 'none'});
					$('#frsgal_container').animate({'height' : altura}, 200, function(){
						$('#frsgal_container').css({'backgroundImage' : 'url('+settings.imagemArray[settings.imagemAtual][0]+')'});
						$('#frsgal_container').fadeTo(500, 1, function(){
							$('#frsgal_loading').hide();
							if(settings.sliding)
								settings.slidetimer = setTimeout(function(){ _slideshow(false) }, settings.slide);
						});
					});
				});
				preloadImagem.onload = function(){};
			};
			preloadImagem.src = settings.imagemArray[settings.imagemAtual][0];
		}
		mover_imagem = false;
		
		function _slideshow(cmd){
			if(cmd){
				if(!settings.sliding){
					$('#frsgal_control').text("pausar slideshow");
					_slideshow(false);
					settings.sliding = true;
				} else {
					$('#frsgal_control').text("iniciar slideshow");
					clearTimeout(settings.slidetimer);
					settings.sliding = false;
				}
			} else {
				settings.imagemAtual = settings.imagemAtual < (settings.imagemArray.length-1) ? settings.imagemAtual+1 : 0;
				_mostrar_imagem();
			}
		}
		
		function _mover_imagem(e){
			local = $('#frsgal_container');
			offset = local.offset();
			
			var preloadImagem = new Image();
			preloadImagem.onload = function(){
				// imagemH: 600
				// areaH: 400
				sobra = preloadImagem.height - local.height(); // 600 - 400 = 200px
				mouseYpos = e.pageY - offset.top; // 1
				posicao = (mouseYpos - sobra); // 2px/1px mouseYpos;
				local.css('backgroundPosition', 'center '+posicao+'px'); // bgPos -200px: OK
				$('#frsgal_loading').text("sobra: "+sobra+" | mouseYpos: "+mouseYpos+" | posicao: "+posicao);
				preloadImagem.onload = function(){};
			};
			preloadImagem.src = settings.imagemArray[settings.imagemAtual][0];
			
		}

		//$('#frsgal_container').mousemove(_mover_imagem);
		_mostrar_imagem();
		return this.unbind('click').click(_inicializar);
	};
})(jQuery);
