// prepare the form when the DOM is ready
$(document).ready(function() {
    var options = {
        target:        '#output1',   // target element(s) to be updated with server response
        beforeSubmit:  showRequest,  // pre-submit callback
        success:       showResponse  // post-submit callback
        

        // other available options:
        //url:       url         // override for form's 'action' attribute
        //type:      type        // 'get' or 'post', override for form's 'method' attribute
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)
        //clearForm: true        // clear all form fields after successful submit
        //resetForm: true        // reset the form after successful submit

        // $.ajax options can be used here too, for example:
        //timeout:   3000
    };


    // bind form using 'ajaxForm'
    $('#ContactForm').ajaxForm(options);

    //Validation

        url = 'assets/PHP/process.php?job=text';
        url2 = 'assets/PHP/process.php?job=email';
        url3 = 'assets/PHP/process.php?job=number';
	    options = {
	         verifying  : "emailVerifying",
	         valid      : "emailValid",
	         invalid    : "emailInvalid"
	    };
	    $('#firstname').verify(url, options);
	    $('#lastname').verify(url, options);
	    $('#enquiry').verify(url, options);
	    $('#company').verify(url, options);
		$('#email').verify(url2, options);
	    $('#phone').verify(url3, options);


});

// pre-submit callback
function showRequest(formData, jqForm, options) {

     $('#formloading').show();

     var form = jqForm[0];
     var enquiry = form.enquiry.value ;
     var firstname = form.firstname.value ;
     var lastname = form.lastname.value;
     var company = form.company.value;
     var email = form.email.value;
     var phone = form.phone.value;

     cleardivs();

     var response = true;

	// enquiry
	if (!validatetext(enquiry)) {response = false;showdiv('enquiry');}
	else {/** response = true */}
	// firstname
	if (!validatetext(firstname)) {response = false;showdiv('firstname');}
	else {/** response = true */}
	// lastname
	if (!validatetext(lastname)) {response = false;showdiv('lastname');}
	else {/** response = true */}
	// company
	if (!validatetext(company)) {response = false;showdiv('company');}
	else {/** response = true */}
	// email
	if (!validateemail(email)) {response = false;showdiv('email');}
	else {/** response = true */}
	// phone
	if (!validatenumber(phone)) {response = false;showdiv('phone');}
	else {/** response = true */}

	if (response == false) {
	$('#formloading').hide();
	}

	pageTracker._trackPageview('contact-form-success.html');
	
    return response;
}

function validatetext(value) {
  var RTN = true;
  var regexstr = "([A-Za-z]+)";
  var re = new RegExp(regexstr);
  if (re.test(value)) {
    return true;
  } else {
    return false;
  }
}

function validatenumber(value) {
  var RTN = true;
  var regexstr = "([0-9\s]$)";
  var re = new RegExp(regexstr);
  if (re.test(value)) {
    return true;
  } else {
    return false;
  }
}

function validateemail(value) {
  var RTN = true;
  var regexstr = "^[\\w-_\.+]*[\\w-_\.]\@([\\w]+\\.)+[\\w]+[\\w]$";
  var re = new RegExp(regexstr);
  
  if (re.test(value)) {
    return true;
  } else {
    return false;
  }
}

function showdiv(divid) {
	$('#err-' + divid).show();
}


function cleardivs() {
$('#err-firstname').hide();
$('#err-enquiry').hide();
$('#err-lastname').hide();
$('#err-company').hide();
$('#err-email').hide();
$('#err-phone ').hide();
}

// post-submit callback
function showResponse(responseText, statusText)  {

   $('#formloading').hide();
	
 $('#output1').show();
 
 
}

function validate(formData, jqForm, options) {
    // jqForm is a jQuery object which wraps the form DOM element
    //
    // To validate, we can access the DOM elements directly and return true
    // only if the values of both the username and password fields evaluate
    // to true

    var form = jqForm[0];
    if (!form.username.value || !form.password.value) {
        alert('Please enter a value for both Username and Password');
        return false;
    }
    alert('Both fields contain values.');
}


