jQuery(document).ready(function(){
	
	// Ask a question form
	jQuery('form#form-question').validate({
		errorPlacement: function(error, element) {
			error.prependTo(element.parent());
		},
		errorElement: 'div',
		errorClass: 'errorfeedback',

		rules: {
			question: 'required',
			name: 'required',
			email_address: {
				required: function(element) {
					return (jQuery('#telephone').val() == '');
				},
				email: true
			}
		},
				
		messages: {
			question: '<em>Required<\/em>',
			name: '<em>Required<\/em>',
			enquiry: '<em>Required<\/em>',
			email_address: {
				required: '',
				email: '<em>Not valid<\/em>'
			}
		},
		
		highlight: function(element, errorClass) {
			
			jQuery(element).addClass('error');
			jQuery(element).parent().addClass('error');

			if (element.name == 'email_address') {
				if (element.value == '') {
					jQuery(element.form).find('fieldset p.contact-methods').addClass('error');
					jQuery(element.form).find('#telephone').addClass('error');
					jQuery(element.form).find('#telephone').parent('div').addClass('error');
				} else {
					jQuery(element.form).find('fieldset h3').removeClass('error');
					jQuery(element.form).find('#telephone').removeClass('error');
					jQuery(element.form).find('#telephone').parent('div').removeClass('error');
				}
			}
			
		},
		
		unhighlight: function(element, errorClass) {
			jQuery(element).removeClass('error');
			jQuery(element).parent().removeClass('error');

			if (element.name == 'telephone') {
				jQuery(element.form).find('fieldset p.contact-methods').removeClass('error');
				jQuery("form").validate().element( "#email_address" );
				jQuery(element.form).find('#telephone').removeClass('error');
				jQuery(element.form).find('#telephone').parent('div').removeClass('error');
			}
						
		}

	});
	
	// Product demonstration form
	jQuery('form#form-demonstration').validate({
		errorPlacement: function(error, element) {
			error.prependTo(element.parent());
		},
		errorElement: 'div',
		errorClass: 'errorfeedback',

		rules: {
			name: 'required',
			email_address: {
				required: true,
				email: true
			}
		},
				
		messages: {
			name: '<em>Required<\/em>',
			enquiry: '<em>Required<\/em>',
			email_address: {
				required: '<em>Required<\/em>',
				email: '<em>Not valid<\/em>'
			}
		},
		
		highlight: function(element, errorClass) {
			jQuery(element).addClass('error');
			jQuery(element).parent().addClass('error');
		},
		
		unhighlight: function(element, errorClass) {
			jQuery(element).removeClass('error');
			jQuery(element).parent().removeClass('error');				
		}

	});
	
	// Pricing request form
	jQuery('form#form-pricing').validate({
		errorPlacement: function(error, element) {
			error.prependTo(element.parent());
		},
		errorElement: 'div',
		errorClass: 'errorfeedback',

		rules: {
			name: 'required',
			email_address: {
				required: true,
				email: true
			}
		},
				
		messages: {
			name: '<em>Required<\/em>',
			enquiry: '<em>Required<\/em>',
			email_address: {
				required: '<em>Required<\/em>',
				email: '<em>Not valid<\/em>'
			}
		},
		
		highlight: function(element, errorClass) {
			jQuery(element).addClass('error');
			jQuery(element).parent().addClass('error');
		},
		
		unhighlight: function(element, errorClass) {
			jQuery(element).removeClass('error');
			jQuery(element).parent().removeClass('error');				
		}

	});
	
});