$(function( ) {
    $.extend($.tools.overlay.conf, {
    absolute: true,
    speed: "fast",
    fadeInSpeed: "fast",
    expose: {color: "#333", loadSpeed: "fast"},
    onClose: function() {
        this.getContent().find("div.wrap").empty();
    }
    });

	ajaxifyForms();
	
	setupEventTracking();
});

 var center_overlay = function() {
     $('.overlay').each(function() {
         var overlay = $(this);
         var overlay_width = overlay.outerWidth({margin:true});
         var left = Math.max(($(window).width() - overlay_width) / 2, 0);
         overlay.css('left', left);
     });
 };

function signupValid() {
  var email = $("form.signup input#email").val();
	
	return /^.+@.+\.\w{2,5}$/.test(email);
}

function ajaxifyForms( ) {
	$("form.signup").each(function( ) {
		$(this).submit(function( ) {
			var form = this;
			
			var ready = function(data, textStatus) {
				$(form).children("fieldset").hide();
				$(form).children("fieldset.thanks").show();
				$(form).trigger("saved");
				enable();
			}
			
			var error = function( ) {
				var emailField = $(form).find("input#email");

				emailField.css("color", "red");
				emailField.focus(function( ) {
					$(this).css("color", null);
				});

				enable();
			}
			
			var disable = function( ) {
				$(form).find("input").attr("disabled", "disabled");
				$(form).find("input.submit").addClass("disabled");
			}
			
			var enable = function( ) {
				$(form).find("input").attr("disabled", null);
				$(form).find("input.submit").removeClass("disabled");
			}
			
			if (signupValid()) {
				$(form).trigger("validated");
				
				$.ajax({
					type: "POST",
					url: $(form).attr("action") + ".json",
					data: $(form).serialize(),
					success: ready,
					error: error,
					dataType: "json"
				});

				disable();
			} else {
				error();
			}
			
			return false;
		});
	});
}

function setupEventTracking( ) {
	$("form.signup input#email").keypress(function( ) {
	  if ($(this).val().length == 0) { // first letter typed
		_gaq.push(["_trackEvent", "signup", "enter_email"]);
		_gaq.push(["_trackPageview", "/invites/new"]);
	  }
	});
	
	$("form.signup").bind("validated", function( ) {
		_gaq.push(["_trackEvent", "signup", "submit_invite", $(this).find("input#email").val()]);
		_gaq.push(["_trackPageview", "/invites/create"]);
	});
}