jQuery(document).ready(function() {
    // add onsubmit handler to validate contact form.
	jQuery('#contact-form').submit(function() {
		 return validate_contact_form();
	});
});
/**
 *	Validate comment form. Checks author, email and comment.
 *	@return boolean.
 */
function validate_contact_form(){
    var result = true;
    
    if (jQuery('#contact-name').val() == ''){
		jQuery('#contact-name').addClass('error');
		jQuery('#contact-name').prev().children('label').addClass('errors');

		// add error text
		jQuery('#contact-name-error').remove();
		jQuery('.contact-form-contact-name').append('<p class="errors" id="contact-name-error">Vul uw naam in.</p>');

		result = false;
	} else {
		// remove errors
		jQuery('#contact-name').removeClass('error');
		jQuery('#contact-name').prev().children('label').removeClass('errors');

		// add error text
		jQuery('#contact-name-error').remove();
	}
	// phone validation (optional field)
	if (jQuery('#phone').attr('type') == 'text') {

		if (jQuery('#phone').val() == ''){
			jQuery('#phone').addClass('error');
			jQuery('#phone').prev().children('label').addClass('errors');

			// add error text
			jQuery('#phone-error').remove();
			jQuery('.contact-form-phone').append('<p class="errors" id="phone-error">Vul uw telefoonnummer in.</p>');

			result = false;
		} else {
			var phone = jQuery('#phone').val();
			var match = phone.match(/([0]{1}[6]{1}[-\s]*[1-9]{1}[\s]*([0-9]{1}[\s]*){7})|([0]{1}[1-9]{1}[0-9]{1}[0-9]{1}[-\s]*[1-9]{1}[\s]*([0-9]{1}[\s]*){5})|([0]{1}[1-9]{1}[0-9]{1}[-\s]*[1-9]{1}[\s]*([0-9]{1}[\s]*){6})/);
			if (match == null) {
				jQuery('#phone').addClass('error');
				jQuery('#phone').prev().children('label').addClass('errors');

				// add error text
				jQuery('#phone-error').remove();
				jQuery('.contact-form-phone').append('<p class="errors" id="phone-error">Vul een geldig telefoonnummer in.</p>');

				result = false;
			} else {
				// remove errors
				jQuery('#phone').removeClass('error');
				jQuery('#phone').prev().children('label').removeClass('errors');

				// add error text
				jQuery('#phone-error').remove();
			}
		}
	}

	// email validation
	if (jQuery('#email').val() == ''){
		jQuery('#email').addClass('error');
		jQuery('#email').prev().children('label').addClass('errors');

		// add error text
		jQuery('#email-error').remove();
		jQuery('.contact-form-email').append('<p class="errors" id="email-error">Vul uw e-mailadres in.</p>');

		result = false;
	} else {
		if (!contact_form_validate_email(jQuery('#email').val())){
			jQuery('#email').addClass('error');
			jQuery('#email').prev().children('label').addClass('errors');

			// add error text
			jQuery('#email-error').remove();
			jQuery('.contact-form-email').append('<p class="errors" id="email-error">Vul een geldig e-mailadres in.</p>');

			result = false;
		} else {
			// remove errors
			jQuery('#email').removeClass('error');
			jQuery('#email').prev().children('label').removeClass('errors');

			// add error text
			jQuery('#email-error').remove();
		}
	}
	
	// comment validation
	if (jQuery('#comment').val() == ''){
		jQuery('#comment').addClass('error');
		jQuery('#comment').prev().children('label').addClass('errors');

		// add error text
		jQuery('#comment-error').remove();
		jQuery('.contact-form-comment').append('<p class="errors" id="comment-error">Vul uw opmerking in.</p>');

		result = false;
	} else {
		// remove errors
		jQuery('#comment').removeClass('error');
		jQuery('#comment').prev().children('label').removeClass('errors');

		// add error text
		jQuery('#comment-error').remove();
	}
	
	return result;
}

/**
 *	Validates an e-mail address.
 *	@return boolean.
 */
function contact_form_validate_email(email) {
	return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(email);
}

