$(function(){

	if(typeof console === "undefined") {
	    console = { log: function() { } };
	}

	var $ = jQuery;
	
	var LW	=	{
		// Add overlay
		_addOverlay : function(callback)
		{
			$('<div id="overlay"></div>').appendTo("body");
			
			if(typeof callback == 'function'){
				callback.call(this);
			}
		},

		// Hide overlays
		_hideOverlays : function()
		{
			try{
				$("#subscribe-updates").fadeOut("fast", function(){
					$(this).remove();
					$("#overlay").remove();
				});
			}
			catch(e){}
		},
		
		_subscribe : function()
		{
			var email = $("#email-address").val();
				
			$.ajax({
				type: "POST",
				url: "/_includes/newsletter-subscribe/",
				data: $("#subscribe-updates form").serialize(),
				success: function(){
					location.reload();
				}
			});
		},
		
		subscribe : function()
		{
			// Hide modals on esc
			$(document).keyup(function(event){
				if (event.keyCode == 27) {
					LW._hideOverlays();
				}
			});
			
			$("#subscribe-updates a.close").live('click', function(){
				LW._hideOverlays();
				return false;
			});
			
			$("#subscribe-updates form").live('submit', function(){LW._subscribe(); return false;});
			$("#subscribe-updates form input.submit").live('click', function(){LW._subscribe(); return false;});

			$(".subscribe p a").click(function(){

				$.ajax({
					type: "GET",
					url: "/_includes/newsletter-signup/",
					data: 'newsletter='+$(this).attr("rel"),
					success: function(data){
						var winW = $(window).width();
						var winH = $(window).height();
						
						$("body").append(data);
						
						$("#subscribe-updates").hide();
						
						var w = $("#subscribe-updates").width();
						var h = $("#subscribe-updates").height();
						
						LW._addOverlay(function(){
							$("#subscribe-updates").css('left', winW/2-w/2).css('top', winH/2-h/2).fadeIn(300);
							$.scrollTo('0', 500);
						});
					}
				});
	
				return false;
			});		
		},

		init : function()
		{
			LW.subscribe();
		}
	};
	
	LW.init();

});
