﻿// javascript validation
function cfvalidate(formData, jqForm, cfoptions) {
	// error message behavior
	function cferrors(jqselector, errormessage, errorindex) {
		$(jqselector).removeClass('cfokay').addClass('cferror').focus();
		$(jqselector + '_err').html(errormessage);
		errorarray[errorindex] = errormessage;
	}
	
	// reset inputs to default, reset error messages to null
	$('.cfinput').removeClass('cferror').addClass('cfokay');
	$('.cfreply').html('').hide();
	
	// define variables to be used below
	var errorarray = new Array();
	var form = jqForm[0];			// form data
	var emailregex = /\S+@\S+\.\S/;
	var textregex = /[a-zA-Z]{3,}/;
	var phoneregex = /[0-9]{3,}/;
	
	// check message
	if(form.cfmessage.value == ''){
		cferrors('#cfmessage', 'please include a short message', 0);
	} else if (!form.cfmessage.value.match(textregex)) {
		cferrors('#cfmessage', 'this doesn\'t look like a real message', 0);
	} else if (form.cfmessage.value.length > 5000) {
		cferrors('#cfmessage', 'maximum message size is 5000 characters', 0);
	}

	// check phone
	if(form.cfphone.value != '' && !form.cfphone.value.match(phoneregex)) {
		cferrors('#cfphone', 'your phone number doesn\'t contain numbers?', 1);
	}
	
	// check email
	if(form.cfemail.value == '') {
		cferrors('#cfemail', 'email is required, but never shared', 2);
	} else if (!form.cfemail.value.match(emailregex)) {
		cferrors('#cfemail', 'make sure to use a valid email', 2);
	}
	
	// check name
	if(form.cfname.value == '') {
		cferrors('#cfname', 'please include your name', 3);
	} else if (!form.cfname.value.match(textregex)) {
		cferrors('#cfname', 'is this really your name?', 3);
	}
	
	// if errors, show error messages. if not, submit form
	if(errorarray.length != 0) {
		$('.cfreply').fadeIn();
		return false;
	} else {
		$('#cfsend').attr('disabled', 'disabled');
		$('#cfwrapper').hide();
		
		$("#modal_sky .content").html('<div style="margin:50px auto;"><h1>One moment please...<br />We\'re processing your request.</h1></div>');
		
		return true;
	}
}
