	function subscribe() {
		$("#dialog div.message").hide();
		if(valid()) {
			$("#dialog h2").html("Loading...");
  			$("#dialog").dialog( "option", "width", 200 );
			$("#dialog div.loader").show();
			$("#dialog").dialog('open');
			$("#dialog").dialog("option", "position", "center");
			$.post(
		  		"/ajax/subscribe" ,
		  		{
		   			firstname: $("#newsletter input#firstname").val(),
		   			lastname: $("#newsletter input#lastname").val(),
		   			email: $("#newsletter input#email").val()
		  		},
		  		function(json) {
		  			$("#newsletter input[type=text]").css("background-image", normal);
		  			$("#dialog div.message").hide();
		  			if(json.success == 1) {
			  			$("#dialog h2").html(successTitle);
			  			$("#dialog").dialog( "option", "width", 600 );
			  			$("#dialog div.success").show();
			   			$("#newsletter input#firstname").val("");
			   			$("#newsletter input#lastname").val("");
			   			$("#newsletter input#email").val("");
			  		} else if(json.success == 4) {
			  			$("#dialog h2").html(failureTitle);
			  			$("#dialog").dialog( "option", "width", 350 );
			  			$("#dialog div.alreadySubscribed").show();
			  		} else {
			  			$("#dialog h2").html(failureTitle);
			  			$("#dialog").dialog( "option", "width", 350 );
			  			$("#dialog div.failure").show();
			  		}
		  			$("#dialog").dialog("option", "position", "center");
			  		if(json.success.search("3") != -1) {
			  			$("#email").addClass("error")
			  			$("#dialog div.failure div.email").show();
			  		} if(json.success.search("5") != -1) {
			  			$("#firstname").addClass("error")
			  			$("#dialog div.failure div.firstname").show();
			  		} if(json.success.search("6") != -1) {
			  			$("#lastname").addClass("error")
			  			$("#dialog div.failure div.lastname").show();
			  		}
		  		}, "json"
			);
		} else {
  			$("#dialog h2").html(failureTitle);
  			$("#dialog").dialog( "option", "width", 350 );
  			$("#dialog div.failure").show();
	  		if($("#email").hasClass("error")) {
	  			$("#dialog div.failure .email").show();
	  		} if($("#firstname").hasClass("error")) {
	  			$("#dialog div.failure .firstname").show();
	  		} if($("#lastname").hasClass("error")) {
	  			$("#dialog div.failure .lastname").show();
	  		}
  			$("#dialog").dialog('open');
		}
	}
	
	function valid() {
		$("#newsletter input[type=text]").removeClass("error");
					
		var valid = true;
		
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; // Email validation
		
		if($("#email").val() == "" || !reg.test(jQuery.trim($("#email").val()))) {
  			$("#email").addClass("error")
			valid = false;
		}
		
		if($("#firstname").val() == "") {
  			$("#firstname").addClass("error")
			valid = false;
		}
		
		if($("#lastname").val() == "") {
  			$("#lastname").addClass("error")
			valid = false;
		}
		
		return valid;
    }
	
	$(function() {
		
		$("#dialog").dialog({ 
			autoOpen: false,
			minHeight: 100,
			resizable: false, 
			draggable: false, 
			modal: true
		});
		
		$("#dialog a.close").click(function(e) {
			e.preventDefault();
			$("#dialog").dialog('close');
		});
		
		error = "url(/img/UI/bkg/search_bkg_error.gif)";
		normal = "url(/img/UI/bkg/search_bkg.gif)"
		
		$("#newsletter input[type=text]").focus(function() {
			$(this).css("background-image", normal);
		});
		
		$("#newsletter a.submit").click(function(e) {
			e.preventDefault();
			subscribe();
		});
		
		$("#newsletter").keyup(function(e) {
			if(e.keyCode == 13) {
				e.preventDefault();
				subscribe();
			}				
		});
		
	});
