(function($){
	var layerEmt = null;
	var iframeEmt = null;
	var options = {
		iframeMargin: {
			top: 10,
			right: 60,
			bottom: 10,
			left: 60
		},
		
		layerMargin: {
			top: 20,
			right: 40,
			bottom: 20,
			left: 40
		},
		
		fixedWidth: false,
		fixedHeight: false,
		animated: false
	};
	
	function resizeLayer(){
		var viewport = {
			left: $(window).scrollLeft(),
			top: $(window).scrollTop(),
			width: $(window).width(),
			height: $(window).height()
		};
		
		var layer = {
			left: (options.fixedWidth === false) ? viewport.left + options.layerMargin.left : (viewport.width / 2 - options.fixedWidth / 2) + viewport.left,
			top: (options.fixedHeight === false) ? viewport.top + options.layerMargin.top : (viewport.height / 2 - options.fixedHeight / 2) + viewport.top,
			width: (options.fixedWidth === false) ? viewport.width - (options.layerMargin.left + options.layerMargin.right) : options.fixedWidth,
			height: (options.fixedHeight === false) ? viewport.height - (options.layerMargin.top + options.layerMargin.bottom) : options.fixedHeight
		};
		
		var iframe = {
			left: options.iframeMargin.left,
			top: options.iframeMargin.top,
			width: layer.width - (options.iframeMargin.left + options.iframeMargin.right),
			height: layer.height - (options.iframeMargin.top + options.iframeMargin.bottom)
		};
		
		layerEmt.css({
			"width" : layer.width + "px",
			"height" : layer.height + "px",
			"left" : layer.left + "px",
			"top" : layer.top + "px"
		});
		
		iframeEmt.css({
			"width" : iframe.width + "px",
			"height" : iframe.height + "px",
			"left" : iframe.left + "px",
			"top" : iframe.top + "px"
		});
	}
	
	
	openInSlayer = function(url){
		resizeLayer();
		
		$(iframeEmt).attr("src", "about:blank");
		$(iframeEmt).attr("src", url);
		
		if(options.animated){
			$(layerEmt).fadeIn("fast");
		}
		else{
			$(layerEmt).show();
		}
	}
	
	$.fn.slayer = function(layerEmtSelector, customOptions){
		$.extend(options, customOptions);
		
		layerEmt = $(layerEmtSelector);
		iframeEmt = $(layerEmtSelector + " iframe:first");
		
		$(window).resize(function(){
			resizeLayer();
		});
		
		$(window).scroll(function(){
			resizeLayer();
		});
		
		this.each(function(){
			$(this).click(function(){
				var href = $(this).attr("href");
				if(_gaq){
					_gaq.push(["_trackEvent", "layer", "avattu", href]);
				}
				openInSlayer(href);
				return false;
			});
		});
	}
})(jQuery);
