/*
 * LightBoxHrg - jQuery plugin para galeria de fotos
 *  
 * Copyright (c) 2008 Artur Gonzallez (Hargon)
 *
 * Licenciado sob licença MIT:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Desenvolvido: #18/11/2008#
 *
 */

$j(document).ready(function() {
	$j.lightboxHrg = {
		fecha: function () {
			$j('#light').hide('fast');
			$j('#fade').fadeOut('slow');

			$j('#light').empty();

			$j('#light').remove();
			$j('#fade').remove();
		},

		verificaImg: function(imagem){
			var fileTypes = ["bmp","gif","png","jpg","jpeg"];
			var ext = imagem.substring(imagem.lastIndexOf(".") + 1, imagem.length).toLowerCase();
			var vImagem = false;

			for (var i=0; i<fileTypes.length; i++){
				if (fileTypes[i]==ext)
				{
					vImagem = true;
					break;
				}
			}

			return vImagem;
		},

		posicaoY: function(id){
			var topo = 0;
			var largura = $j(id).width();
			var altura = $j(id).height();
			var htmlHeight = $j('html').height();
			var screenHeight = screen.height - 130;

			if (largura == 0){
				largura = 640;
			}
			if (altura == 0){
				altura = 480;
			}

			if ($j('html').scrollTop() == 0){
				altura = parseInt(altura) + 130;
			}

			topo = (parseInt($j('html').scrollTop()) + parseInt(screenHeight) - (parseInt(altura) + 22)) / 2;

			return topo;
		},

		posicaoX: function(id){
			var esquerda = 0;
			var largura = $j(id).width();
			var altura = $j(id).height();

			esquerda = (screen.width - largura - 60) / 2 + 'px';

			return esquerda;
		}
	};

	$j.fn.lightboxHrg = function(options){
			var settings = {
				largura: 150, 
				altura: 120
			};

			if(options) {
				$j.extend(settings, options);
			};

			return this.each(function() {
				var vImagem = $j.lightboxHrg.verificaImg(settings.url);

				var fadeHeight = $j('html').height() + 50;
				if (fadeHeight < $j('body').height()){
					fadeHeight = $j('body').height() + 50;
				}
				if (fadeHeight < screen.height){
					fadeHeight = screen.height + 50;
				}

				$j('<div id="fade"></div>').appendTo('body');
				$j("#fade")
					.attr('className', 'overlayFundoLightbox')
					.css('height',fadeHeight)
					.click (function(){ $j.lightboxHrg.fecha(); })
					.show();

				$j('<div id="light" ></div>').appendTo('body');
				$j('<div id="light2" ></div>').appendTo('#light');

				var topoLight = 0;
				var esquerdaLight = (screen.width - 120) / 2 + 'px';
				
				$j('#light')
					.attr('className', 'conteudoLightbox')
					.css({background: '#FFF url(' + settings.caminho + '/imagens/loading.gif) center center no-repeat'})
					.css('width', 150)
					.css('height', 120)
					.css('top',topoLight)
					.css('left',esquerdaLight)	
					.css('overflow','hidden')
					.fadeIn('slow');

				$j('<img id="botaoFecharLightBox" />').appendTo('#light');
				$j('#botaoFecharLightBox')
					.attr({
						   name: 'botaoFecharLightBox',
						   border: '0',
						   className: 'linkcursor',
						   src: settings.caminho + '/imagens/closelabel.gif',
						   margin: '0',
						   align: 'right',
						   alt: ''
						 })
					.click (function(){ $j.lightboxHrg.fecha(); })
					.hide();

				if (vImagem == false){
					var carregaWidth = settings.largura;
					var carregaHeight = settings.altura;

					if ((carregaWidth <= 150) && (carregaHeight <= 120)){
						carregaWidth = 800;
						carregaHeight = 600;
					}else if (carregaWidth > screen.width){
						carregaWidth = carregaWidth - 120;
					}

					$j('<iframe id="carregaPagina" frameBorder="0" ></iframe>').appendTo('#light2');
					$j('#carregaPagina')
						.attr({
							src : settings.url,
							width : carregaWidth,
							height : carregaHeight,
							marginWidth : '0',
							marginHeight : '0',
							name : 'carregaPagina'
						 })

						.hide()

						.load(function() {
							settings.largura =  parseInt(carregaWidth);
							settings.altura = parseInt(carregaHeight);

							esquerdaLight = $j.lightboxHrg.posicaoX(this);
							topoLight = $j.lightboxHrg.posicaoY(this);

							carregaHeight = parseInt(carregaHeight) + 22;

							$j("#light")
								.animate({
										 left: esquerdaLight, 
										 top: topoLight,
										 width: carregaWidth,
										 height: carregaHeight},
										 500, '',function(){$j('#carregaPagina').fadeIn('',
																			function(){$j('#botaoFecharLightBox').fadeIn();});})
								.css('background','#FFF');
						});

				}else{
					var img = new Image();
					$j(img)
						.load(function () {
							$j(this).hide();
							$j("#light2").append(this);	

							esquerdaLight = $j.lightboxHrg.posicaoX(this);
							topoLight = $j.lightboxHrg.posicaoY(this);
							
							carregaHeight = parseInt($j(this).height()) + 22 + 'px';
							carregaWidth = $j(this).width() + 'px';

							$j("#light")
								.animate({
										 left: esquerdaLight,
										 top: topoLight,
										 width: carregaWidth,
										 height: carregaHeight},
										 500, '',function(){$j(img).fadeIn('',
																		   	function(){$j('#botaoFecharLightBox').fadeIn();});})
								.css('background','#FFF');
						})

						.error(function () {})

						.attr('src', settings.url);						
				}

				return false;
			 });
	};

	$j("a[@rel='lightboxHrg']").click(function(e) {
		$j("a[@rel='lightboxHrg']").lightboxHrg({
												url: $j(this).attr('href'),
												largura: $j(this).attr('largura'),
												altura: $j(this).attr('altura'),
												caminho: ctt_url
												});
		e.preventDefault();
	});
});