function updateChars() {
	$("#descChars").text("Character count (50 minimum): " + ($("#desc").val() == null ? "0" : jQuery.trim($("#desc").val()).length));
}

function validateForm() {
	var retVal = true;

	if (isEmpty($("#fname").val())) {
		showErr("fname", "Please enter your first name");
		retVal = false;
	} else { hideErr("fname"); }

	if (isEmpty($("#lname").val())) {
		showErr("lname", "Please enter your last name");
		retVal = false;
	} else { hideErr("lname"); }

	if (isEmpty($("#email").val())) {
		showErr("email", "Please enter an email address");
		retVal = false;
	} else if (!validateEmailString($("#email").val())) {
		showErr("email", "Invalid email address");
		retVal = false;
	} else if ($("#emailConf").val() == null || $("#email").val() != $("#emailConf").val()) {
		showErr("email", "Emails don't match");
		retVal = false;
	 }else { hideErr("email"); }

	if (!isEmpty($("#phone").val()) && !validatePhone($("#phone").val())) {
		showErr("phone", "Please enter a valid format with at least 10 digits");
		retVal = false;
	} else { hideErr("phone"); }

	if (isEmpty($("#title").val())) {
		showErr("title", "Please enter a title");
		retVal = false;
	} else { hideErr("title"); }

	if (isEmpty($("#desc").val())) {
		showErr("desc", "Please enter a description");
		retVal = false;
	} else if (jQuery.trim($("#desc").val()).length < 50) {
		showErr("desc", "Enter a minimum of 50 characters");
		retVal = false;
	} else if (jQuery.trim($("#desc").val()).length > 3000) {
		showErr("desc", "Maximum of 3000 characters");
		retVal = false;
	} else { hideErr("desc"); }

	if ($("#fixedrewtype")[0].checked) {
		if ($("#fixedsum")[0].checked) {
			if (isEmpty($("#fixvalue").val())) {
				$("#rewardErr").text("Please enter a budget");
				retVal = false;
			} else if (!$("#fixvalue").val().match(/^[0-9]{1,7}(\.[0-9]{1,2})?$/)) {
				$("#rewardErr").text("Budget format is invalid. Please enter a numeric value");
				retVal = false;
			} else if (parseFloat($("#fixvalue").val()) <= 0) {
				$("#rewardErr").text("Budget must be greater than 0");
				retVal = false;
			} else { $("#rewardErr").text(""); }
		} else {
			if (isEmpty($("#fixmin").val()) || isEmpty($("#fixmax").val())) {
				$("#rewardErr").text("Please enter a budget range");
				retVal = false;
			} else if (!$("#fixmin").val().match(/^[0-9]{1,7}(\.[0-9]{1,2})?$/) || !$("#fixmax").val().match(/^[0-9]{1,7}(\.[0-9]{1,2})?$/)) {
				$("#rewardErr").text("Budget format is invalid. Please enter a numeric value");
				retVal = false;
			} else if (parseFloat($("#fixmin").val()) > parseFloat($("#fixmax").val())) {
				$("#rewardErr").text("From value should be less than To value");
				retVal = false;
			} else if (parseFloat($("#fixmax").val()) <= 0) {
				$("#rewardErr").text("Budget must be greater than 0");
				retVal = false;
			} else { $("#rewardErr").text(""); }
		}
	}
	else if ($("#hourlyrewtype")[0].checked) {
		if (isEmpty($("#perhrvalue").val())) {
			$("#rewardErr").text("Please enter a budget");
			retVal = false;
		} else if (!$("#perhrvalue").val().match(/^[0-9]{1,6}(\.[0-9]{1,2})?$/)) {
			$("#rewardErr").text("Budget format is invalid. Please enter a numeric value");
			retVal = false;
		} else if (parseFloat($("#perhrvalue").val()) <= 0) {
			$("#rewardErr").text("Budget must be greater than 0");
			retVal = false;
		} else { $("#rewardErr").text(""); }
	} else {
		if (isEmpty($("#mnthvalue").val())) {
			$("#rewardErr").text("Please enter a budget");
			retVal = false;
		} else if (!$("#mnthvalue").val().match(/^[0-9]{1,7}(\.[0-9]{1,2})?$/)) {
			$("#rewardErr").text("Budget format is invalid. Please enter a numeric value");
			retVal = false;
		} else if (parseFloat($("#mnthvalue").val()) <= 0) {
			$("#rewardErr").text("Budget must be greater than 0");
			retVal = false;
		} else { $("#rewardErr").text(""); }
	}

	if (isEmpty($("#ends").val())) {
		showErr("ends", "Please select a start date");
		retVal = false;
	}
	else if (!$("#ends").val().match(/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/)) {
		showErr("ends", "Start date is invalid. Please use mm/dd/yyyy format");
		retVal = false;
	}
	else { hideErr("ends"); }
	
	if ($("#applyurlrdo")[0].checked)
	{
		hideErr("applymail");
		
		if (isEmpty($("#applyurl").val())) {
			showErr("applyurl", "Please enter a website URL");
			retVal = false;
		} else if (!validateURLString($("#applyurl").val())) {
			showErr("applyurl", "URL address is invalid. Make sure it starts with http:// or https://");
			retVal = false;
		} else { hideErr("applyurl"); }
	}
	else
	{
		hideErr("applyurl");

		if (isEmpty($("#applymail").val())) {
			showErr("applymail", "Please enter an email address");
			retVal = false;
		} else if (!validateEmailString($("#applymail").val())) {
			showErr("applymail", "Invalid email address");
			retVal = false;
		} else { hideErr("applymail"); }
	}
	
	if (!retVal) {
		$("#topError").removeClass("dispnone");
		$(window).scrollTop(0);
	}
	return retVal;
}
$("#ends").datepicker({ dateFormat: 'mm/dd/yy' });
if (isEmpty($("#ends").val())) { $("#ends").datepicker( 'setDate' , '0' ); }
$("#fixedrewtype").click(function(event){
	$("#fixedrewtypecont").show();
	$("#hourlyrewtypecont").hide();
	$("#monthlyrewtypecont").hide();
});
$("#hourlyrewtype").click(function(event){
	$("#fixedrewtypecont").hide();
	$("#hourlyrewtypecont").show();
	$("#monthlyrewtypecont").hide();
});
$("#monthlyrewtype").click(function(event){
	$("#fixedrewtypecont").hide();
	$("#hourlyrewtypecont").hide();
	$("#monthlyrewtypecont").show();
});
$("#fixedsum").click(function(event){
	$("#fixvalue").removeAttr("disabled");
	$("#fixmin").attr("disabled","disabled");
	$("#fixmax").attr("disabled","disabled");
});
$("#fixedrange").click(function(event){
	$("#fixvalue").attr("disabled","disabled");
	$("#fixmin").removeAttr("disabled");
	$("#fixmax").removeAttr("disabled");
});
$("#applyurlrdo").click(function(event){
	$("#applyurl").removeAttr("disabled");
	$("#applymail").attr("disabled","disabled");
});
$("#applymailrdo").click(function(event){
	$("#applyurl").attr("disabled","disabled");
	$("#applymail").removeAttr("disabled");
});
$("#desc").keyup(function(event) { updateChars(); });
$("#desc").change(function(event) { updateChars(); });
updateChars();

