/**
 * @author Giovanni Buffa
 * Copyright 2009 - simply@amp-gioppy.com
 * 
 * Under CC-License
 * 
 * Plugin for jQuery to show content from other HTML file into a layer
 */

(function($){
	$.fn.modalFile = function(options){
		
		var defaults ={
			url:'',
			popClass:''
		};
		
		var options = $.extend(defaults, options);

		$('body').append('<div id="'+options.popClass+'"><a href="#" class="close-popup">CLOSE</a><div id="'+options.popClass+'-content"></div></div>');
		
		return this.each(function(){
			$(this).click(function(e){
				e.preventDefault();
				var destination = $(this).attr('href');
				
				$('<div id="info"></div>').load(options.url, function(){
					$(this).appendTo('#'+options.popClass+'-content');
				})
			
				var maskHeight = $(document).height();
				var maskWidth = $(window).width();
				var winW = $(window).width();
				var winH = $(window).height();

				//Activate a listener 
				$(document).keydown(handleEscape);
	
				$('#'+options.popClass).css({
					left: winW/2 - $('#'+options.popClass).width()/2,
					top: winH/2 - $('#'+options.popClass).height()/2
					});
				
				$('#mask').css({
					'width': maskWidth,
					'height': maskHeight
				});
	
				$('#mask').animate({
					opacity: 0.7
				}, 200, "", function(){
					$(this).css('display', 'block')
				})
	
				$('#'+options.popClass).animate({
					opacity: 1
				}, 400, "", function(){
					$(this).css('display', 'block');
				})
			})
			
			$('.close-popup').click(function(e){
				e.preventDefault();
				$('#mask, #'+options.popClass).animate({
					opacity: 0
				},400,"",function(){
					$('#mask, #'+options.popClass).css('display', 'none');
				});
				$('#'+options.popClass+' #'+options.popClass+'-content').empty();
			})
			
			function chiudi(){
				$('#mask, #'+options.popClass).animate({
					opacity: 0
				},400,"",function(){
					$('#mask, #'+options.popClass).css('display', 'none');
				});
				$('#'+options.popClass+' #'+options.popClass+'-content').empty();
			}
			
			function handleEscape(e) {
				if (e.keyCode == 27) {
					chiudi();
				}
			}
			
		})	
	}
})(jQuery);

