var formValid = true;
var readyToSubmit = false;

function submitForm(e){
	if(readyToSubmit == false){
		e.preventDefault();
		submitValue = $("form#signup #submit").val();
		$("form#signup input").attr("readonly","readonly");
		$("form#signup #submit").attr("disabled","disabled").val("Processing...please wait.");
		formValid = true;
		$("form#signup input").blur();
		if(!formValid){
			$("#error").html("<div class='error'>There are some errors. Please fix them to create your site.</div><br>");
			$("form#signup input").removeAttr("readonly");
			$("form#signup #submit").removeAttr("disabled").val(submitValue);
		}else{
			readyToSubmit = true;
			$("form#signup").trigger("submit");
		}
	}
}

$(document).ready(function(){
	formValid = true;
	
	$("form#signup").bind("submit", submitForm);
	
	$("[name$=tname]").blur(function(){ 
		if(!$(this).val()){
			$("#errorName").html("<div class='invalidnote'><br>Enter your full name.</div>");
			formValid = false;
		}
		if($("[name=firstname]").val() && $("[name=lastname]").val()){
			$("#errorName").html("");
		}
	});
	
	$("[name=email]").blur(function(){ 
		if(!$(this).val().match(/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/)){
			$("#errorEmail").html("<div class='invalidnote'><br>Enter a valid email address.</div>");
			formValid = false;
		}else{
			$("#errorEmail").html("");
		}
	});
	
	$("[name=username]").blur(function(){
		var usernameValid = true;
		if($(this).val().length < 3){
			$("#errorUsername").html("<div class='invalidnote'>Choose a username that's at least 3 characters.</div>");
			usernameValid = false;
		}
		if(!$(this).val().match(/^[a-z0-9]*$/i)){
			$("#errorUsername").html("<div class='invalidnote'>Your username can only contain letters and numbers.</div>");
			usernameValid = false;
		}
		if($(this).val() == "www"){
			$("#errorUsername").html("<div class='invalidnote'>Your username can't be 'www'.</div>");
			usernameValid = false;
		}
		$.get("user/checkusername/"+escape($(this).val()), function(data){
			if(data == "taken"){
				$("#errorUsername").html("<div class='invalidnote'>Sorry, that username's taken.<br>Please choose another one.</div>");
				usernameValid = false;
			}
		});
		
		if(usernameValid){
			$("#errorUsername").html("");
		}else{
			formValid = false;
		}
		
	});
	
	$("[name=username]").keyup(function(){
		$(".subdomain").html($(this).val().toLowerCase());
	});
	
	$("[name=password]").blur(function(){
		if(!$(this).val()){
			$("#errorPassword").html("<div class='invalidnote'><br>Choose a password.</div>");
			formValid = false;
		}else{
			$("#errorPassword").html("");
		}
	});
	
	$("[name=verifypassword]").blur(function(){
		if($("[name=password]").val()){
			if($(this).val() != $("[name=password]").val()){
				$("#errorPassword").html("<div class='invalidnote'><br>Your passwords don't match.</div>");
				formValid = false;
			}else{
				$("#errorPassword").html("");
			}
		}
	});
	
	$("[name=code]").blur(function(){
		$.get("user/checkcode/"+escape($(this).val()), function(data){
			if(data == "invalid"){
				$("#errorCode").html("<div class='invalidnote'><br />That code is invalid.</div>");
				formValid = true;
			}else if(data == "expired"){
				$("#errorCode").html("<div class='invalidnote'><br />That code has expired.</div>");
				formValid = true;
			}else{
				$("#errorCode").html("");
			}
		});
	});
	
	$("[name=agree]").blur(function(){
		if($(this).attr("checked") != true){
			$("#errorAgree").html("<div class='invalidnote' style='width:50%;'>You must agree to the Terms of Use.</div>");
			formValid = false;
		}else{
			$("#errorAgree").html("");
		}
	});
	
	$("#infoPrefix").focus();
});