(function($) {
  //Função de montagem do modal
  $.buildAldeiaModal = function(url,option)
  {
	  
	  var defOption = 
	  {
		width : 'auto',
		height : 'auto',
		callback: null,
		bgcolor: '#000000',
		alpha: 0.6
	  };
	  
	  var useOption = $.extend(useOption,defOption,option);
	   
	  var isImage = false; //define se é imagem ou html, se for html carrega via ajax
	  var urlToOpen = url;
	  
	  isImage = urlToOpen.indexOf('.jpg') > 0 ? true : false;
	  
	  var background = $('<div class="aldmodal-background">'); //Div que fica no fundo
	  var container = $('<div class="aldmodal-container">'); // Div que irá conter o conteudo do modal
	  
	  
	  
	  //Inicio do processo de criar o modal
	 	background.css({
			opacity:0,
			position:'absolute',
			top:0,
			left:0,
			width:$(document).width(),
			height:$(document).height(),
			zIndex:100,
			background:useOption.bgcolor
			});
			
		$('body').append(background).find('.aldmodal-background').fadeTo(300,useOption.alpha);
		
		//Funções de fechamento do modal
		$('.aldmodal-background').click(function(){
			$.closeAldeiaModal();
		});
		
		$(document).keydown(function(e){
			if(e.keyCode == 27)
			{
				$.closeAldeiaModal();	
			}
		});
		
		//Aqui deveria vir o codigo de mostrar o loading, que é inserido dentro do background
		
		if(isImage)
		{
			var objImage = new Image();
			objImage.src = urlToOpen;
			
			var viewPortHeight = ($.browser.msie) ? document.documentElement.clientHeight : window.innerHeight;
			
			var imagem = $(objImage);
			container.css({
				position:'absolute',
				top:$(window).scrollTop() + (viewPortHeight/2),
				left:'50%',
				width:'auto',
				height:'auto',
				zIndex:101	
			});
			
			$('body').append(container);
			container.append(imagem);
	
			var contentWidth = parseInt(objImage.width)/2;
			var contantHeight = parseInt(objImage.height)/2;
			$('.aldmodal-container').css({
				marginLeft : '-' + contentWidth + 'px',
				marginTop : '-' + contantHeight + 'px'
			});
			$('.aldmodal-container').hide();	
			$('.aldmodal-container').delay(350).fadeIn(300,useOption.callback);
		}
		else
		{
			//aqui será feito o ajax para carregamento de páginas
			$.ajax({
			  url: urlToOpen,
			  cache: false,
			  success: function(html){
				  	
					var viewPortHeight = ($.browser.msie) ? document.documentElement.clientHeight : window.innerHeight;
					
				  	container.css({
						position:'absolute',
						top:$(window).scrollTop() + (viewPortHeight/2),
						left:'50%',
						width:'auto',
						height:'auto',
						zIndex:101	
					});
					
					$('body').append(container);
				  
					container.append(html);
					
					var contentWidth = (useOption.width == "auto") ? ($('.aldmodal-container').width()*0.5) : (useOption.width*0.5);
					var contantHeight = (useOption.height == "auto") ? ($('.aldmodal-container').height()*0.5) : (useOption.height*0.5);
					
					$('.aldmodal-container').css({
						marginLeft : '-' + contentWidth + 'px',
						marginTop : '-' + contantHeight + 'px'
					});
					
					$('.aldmodal-container').hide();	
					$('.aldmodal-container').delay(350).fadeIn(300,useOption.callback);
			  }
			});
		}
	  
  };
  
  //Funcao de fechar o modal
  $.closeAldeiaModal = function()
  {
	  $('.aldmodal-container').fadeOut(200,function(){
			$('.aldmodal-container').remove();
		});
		$('.aldmodal-background').delay(300).fadeOut(300,function(){
			$('.aldmodal-background').remove();
		});
  };
  
  
  //Chamada do modal
  $.fn.AldeiaModal = function(options)
  {
	$(this).click(function(){
		$.buildAldeiaModal($(this).attr('href'),options);
		return false;	 
	});
	return this; 
  };
  
})(jQuery);
