
function substr (f_string, f_start, f_length) {
    // http://kevin.vanzonneveld.net
    // +     original by: Martijn Wieringa
    // +     bugfixed by: T.Wild
    // +      tweaked by: Onno Marsman
    // *       example 1: substr('abcdef', 0, -1);
    // *       returns 1: 'abcde'
    // *       example 2: substr(2, 0, -6);
    // *       returns 2: ''
 
    f_string += '';
 
    if (f_start < 0) {
        f_start += f_string.length;
    }
 
    if (f_length == undefined) {
        f_length = f_string.length;
    } else if (f_length < 0){
        f_length += f_string.length;
    } else {
        f_length += f_start;
    }
 
    if (f_length < f_start) {
        f_length = f_start;
    }
 
    return f_string.substring(f_start, f_length);
}

$(document).ready(function() {
	
	/**
	 * Lite Order Form (page-order-lite.php)
	 */
	$('form#contactForm').submit(function() {
		$('form#contactForm .error').remove();
		var hasError = false;
		$('.requiredField').each(function() {
			if(jQuery.trim($(this).val()) == '') {
				var labelText = $(this).prev('label').text();
				var labelText = substr(labelText, 0, -2);
				
				if(labelText == 'Email') labelText = 'Email Address';
				$(this).parent().append('<br/><span class="error">Please provide your '+labelText+'.</span>');
				hasError = true;
			} else if($(this).hasClass('email')) {
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				if(!emailReg.test(jQuery.trim($(this).val()))) {
					var labelText = $(this).prev('label').text();
					$(this).parent().append('<br/><span class="error">You entered an invalid '+labelText+' address.</span>');
					hasError = true;
				}
			}
		});
		if(!hasError) {
			$('form#contactForm li.buttons button').fadeOut('normal', function() {
				$(this).parent().append('<img src="/wp-content/themes/vizual/contact-form/loading.gif" alt="Loading&hellip;" height="31" width="31" />');
			});
			var formInput = $(this).serialize();

				$(this).before('<p class="thanks">Form is being submitted, please be patient this may take a couple of minutes... <img src="/wp-content/themes/vizual/contact-form/submit-processing.gif" alt="Loading&hellip;" height="31" width="31" /></p>');
				$('form#contactForm').slideUp();

			$.post($(this).attr('action'),formInput, function(data){

				var url = $('#thankyou-url').val();
				window.location = (url);

				/*															  
				$('form#contactForm').slideUp("fast", function() {				   
					//$(this).before('<p class="thanks"><strong>Thanks!</strong> Your demo request was successful. We will respond very shortly.</p>');

					thankYou = $('#thankyou').val();
					$('.thanks').html(thankYou);

				});
				*/
			});
		}
		
		return false;
		
	});


	/**
	 * Question Submit Handler on FAQs page
	 * Used if FAQs additional question submitted
	 */
	$('form#questionForm').submit(function() {
		$('form#questionForm .error').remove();
		var hasError = false;
		$('.requiredField').each(function() {
			if(jQuery.trim($(this).val()) == '') {
				var labelText = $(this).prev('label').text();
				var labelText = substr(labelText, 0, -2);
				
				if(labelText == 'Email') labelText = 'Email Address';
				$(this).parent().append('<br/><span class="error">Please provide your '+labelText+'.</span>');
				hasError = true;
			} else if($(this).hasClass('email')) {
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				if(!emailReg.test(jQuery.trim($(this).val()))) {
					var labelText = $(this).prev('label').text();
					$(this).parent().append('<br/><span class="error">You entered an invalid '+labelText+' address.</span>');
					hasError = true;
				}
			}
		});
		if(!hasError) {
			$('form#questionForm li.buttons button').fadeOut('normal', function() {
				$(this).parent().append('<img src="/wp-content/themes/vizual/contact-form/loading.gif" alt="Loading&hellip;" height="31" width="31" />');
			});
			var formInput = $(this).serialize();

				$(this).before('<p class="thanks">Form is being submitted, please be patient this may take a couple of minutes... <img src="/wp-content/themes/vizual/contact-form/submit-processing.gif" alt="Loading&hellip;" height="31" width="31" /></p>');
				$('form#questionForm').slideUp();

			$.post($(this).attr('action'),formInput, function(data){

				var url = $('#thankyou-url').val();
				window.location = (url);

				/*
				$('form#questionForm').slideUp("fast", function() {				   
					//$(this).before('<p class="thanks">Thank you for your question, we will reply very shortly.</p>');

					thankYou = $('#thankyou').val();
					$('.thanks').html(thankYou);

				});
				*/
			});
		}
		
		return false;
		
	});


	/**
	 * Express Order Form (page-order-express.php)
	 * Professional Order Form (page-order-professional.php)
	 */
	$('form#orderForm').submit(function() {
		$('form#orderForm .error').remove();
		var hasError = false;
		$('.requiredField').each(function() {
			if(jQuery.trim($(this).val()) == '') {
				var labelText = $(this).prev('label').text();
				var labelText = substr(labelText, 0, -2);
				
				if(labelText == 'Email') labelText = 'Email Address';
				$(this).parent().append('<br/><span class="error">Please provide your '+labelText+'.</span>');
				hasError = true;
			} else if($(this).hasClass('email')) {
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				if(!emailReg.test(jQuery.trim($(this).val()))) {
					var labelText = $(this).prev('label').text();
					$(this).parent().append('<br/><span class="error">You entered an invalid '+labelText+' address.</span>');
					hasError = true;
				}
			}
		});
		if(!hasError) {
			$('form#orderForm li.buttons button').fadeOut('normal', function() {
				$(this).parent().append('<img src="/wp-content/themes/vizual/contact-form/loading.gif" alt="Loading&hellip;" height="31" width="31" />');
			});
			var formInput = $(this).serialize();

				$(this).before('<p class="thanks">Form is being submitted, please be patient this may take a couple of minutes... <img src="/wp-content/themes/vizual/contact-form/submit-processing.gif" alt="Loading&hellip;" height="31" width="31" /></p>');
				$('form#orderForm').slideUp();

			$.post($(this).attr('action'),formInput, function(data){

				var url = $('#thankyou-url').val();
				window.location = (url);

				/*
				$('form#orderForm').slideUp("fast", function() {				   
					//$(this).before('<p class="thanks">Thank you for your order, one of our sales team will contact you shortly to complete your order.</p>');

					thankYou = $('#thankyou').val();
					$('.thanks').html(thankYou);

				});
				*/
			});
		}
		
		return false;
		
	});


	/**
	 * Entperise Demo Order Form (page-request-ent-demo.php)
	 * HR.NET Enterprise
	 */
	$('form#demoRequest').submit(function() {
		$('form#demoRequest .error').remove();
		var hasError = false;
		$('.requiredField').each(function() {
			if(jQuery.trim($(this).val()) == '') {
				var labelText = $(this).prev('label').text();
				var labelText = substr(labelText, 0, -2);
				
				if(labelText == 'Email') labelText = 'Email Address';
				$(this).parent().append('<br/><span class="error">Please provide your '+labelText+'.</span>');
				hasError = true;
			} else if($(this).hasClass('email')) {
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				if(!emailReg.test(jQuery.trim($(this).val()))) {
					var labelText = $(this).prev('label').text();
					$(this).parent().append('<br/><span class="error">You entered an invalid '+labelText+' address.</span>');
					hasError = true;
				}
			}
		});
		if(!hasError) {
			$('form#demoRequest li.buttons button').fadeOut('normal', function() {
				$(this).parent().append('<img src="/wp-content/themes/vizual/contact-form/loading.gif" alt="Loading&hellip;" height="31" width="31" />');
			});
			var formInput = $(this).serialize();
			
				$(this).before('<p class="thanks">Form is being submitted, please be patient this may take a couple of minutes... <img src="/wp-content/themes/vizual/contact-form/submit-processing.gif" alt="Loading&hellip;" height="31" width="31" /></p>');
				$('form#demoRequest').slideUp();

			$.post($(this).attr('action'),formInput, function(data){
															  
				var url = $('#thankyou-url').val();
				window.location = (url);
				
				/*$('form#demoRequest').slideUp("fast", function() {				   
					//$(this).before('<p class="thanks">Thank you, one of our team will contact you shortly to arrange your demo.</p>');

					thankYou = $('#thankyou').val();
					$('.thanks').html(thankYou);

				});*/
			});
		}
		
		return false;
		
	});


	/**
	 * Registration Form Handler (page-conference-register.php)
	 */
	$('form#registrationForm').submit(function() {
		$('form#registrationForm .error').remove();
		var hasError = false;
		$('.requiredField').each(function() {
			if(jQuery.trim($(this).val()) == '') {
				var labelText = $(this).prev('label').text();
				var labelText = substr(labelText, 0, -2);
				
				if(labelText == 'Email') labelText = 'Email Address';
				$(this).parent().append('<br/><span class="error">Please provide your '+labelText+'.</span>');
				hasError = true;
			} else if($(this).hasClass('email')) {
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				if(!emailReg.test(jQuery.trim($(this).val()))) {
					var labelText = $(this).prev('label').text();
					$(this).parent().append('<br/><span class="error">You entered an invalid '+labelText+' address.</span>');
					hasError = true;
				}
			}
		});
		if(!hasError) {
			$('form#registrationForm li.buttons button').fadeOut('normal', function() {
				$(this).parent().append('<img src="/wp-content/themes/vizual/contact-form/loading.gif" alt="Loading&hellip;" height="31" width="31" />');
			});
			var formInput = $(this).serialize();
			$.post($(this).attr('action'),formInput, function(data){
				$('form#registrationForm').slideUp("fast", function() {				   
					$(this).before('<p class="thanks"><strong>Thanks!</strong> Your registration was successful. We will respond very shortly.</p>');
				});
			});
		}
		
		return false;
		
	});
});
