$(function() {
	$('.error').hide();
	$("#inputSubmit").click(function() {
		$('.error').hide();
		disableForm(true);
		var frmName = $("#frmName").val();
		if (frmName == "") {
			$("#nameError").fadeIn(200);
			$("#frmName").focus();
			$("#inputSubmit").removeAttr("disabled");
			disableForm(false);
			return false;
		}
		var frmEmail = $("#frmEmail").val();
		if (frmEmail == "" || !isValidEmail(frmEmail)) {
			$("#emailError").fadeIn(200);
			$("#frmEmail").focus();
			disableForm(false);
			return false;
		}
		var frmMessage = $("#frmMessage").val();   
		var dataString = 'frmName='+frmName+'&frmEmail='+frmEmail+'&frmMessage='+frmMessage;
		
		$.ajax({
			type: "POST",
			url: "/lib/contact.php",
			data: dataString,
			success: function() {
				
				$('#formContent').fadeOut(300, function() {$('#thanksContent').fadeIn(300);clearForm();disableForm(false);});
			}
		});
		return false;
	});
	
});
function disableForm(s){
	if(s){
		$("#inputSubmit").attr("disabled", "disabled");
		$("#inputSubmit").attr("value", "Sending...");
		$("#frmName").attr("disabled", "disabled");
		$("#frmEmail").attr("disabled", "disabled");
		$("#frmMessage").attr("disabled", "disabled");
	}else{
		$("#inputSubmit").removeAttr("disabled");
		$("#inputSubmit").attr("value", "Submit");
		$("#frmName").removeAttr("disabled");
		$("#frmEmail").removeAttr("disabled");
		$("#frmMessage").removeAttr("disabled");
	};	
};
function clearForm(){
	$("#frmName").val('');
	$("#frmEmail").val('');
	$("#frmMessage").val('');
}

function isValidEmail(email, required) {
    if (required==undefined) {
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {
        return false;
    }
    if (email.indexOf("@") < 1) {
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {
        return false;
    } else if (email.indexOf("@") == email.length) {
        return false;
    } else if (email.indexOf("..") >=0) {
	return false;
    } else if (email.indexOf(".") == email.length) {
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.!#$%&'*+-/=?^_`{|}~";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}
