//jQuery.noConflict();

jQuery(document).ready(function() {
 	 
	jQuery('.submit_button').click(function() {

		var form = jQuery(this).parents('FORM');
	
		if ( ! validate_form(form)) {
		 	return false;
		 }
		
	});
});



function validate_form(form) {
		
	var err_msg     = jQuery('.error_message');
	var err_msg_txt = '';
	var is_error    = false;
	
	var fields = {
		first_name :    { name : 'first name',   default_value : '', type : 'input' },
		last_name :     { name : 'last name',    default_value : '', type : 'input' },
		email :         { name : 'email',        default_value : '', type : 'input' },
		verify_email :  { name : 'verify email', default_value : '', type : 'input' },
		comments :      { name : 'comments',     default_value : '', type : 'textarea' }
	};
	
	for (field in fields) {
		
		var this_field = jQuery('#' + field);
				
		this_field.removeClass('error');
		
		if (fields[field].type === 'select') {
			var this_field_div = this_field.closest('FIELDSET').find('.select_target');
			this_field_div.removeClass('error');
		}
		
		if (this_field.val().trim() === '' || this_field.val() === fields[field].default_value) {
			
			is_error = true;
			err_msg_txt += 'Please enter ' + fields[field].name + '<br />';
			this_field.addClass('error');
			
			if (fields[field].type === 'select') {
				this_field_div.addClass('error');
			}
		}
	}

	if (jQuery('#email').val() != jQuery('#verify_email').val()) {
		is_error = true;
		err_msg_txt += 'Please make sure email addresses match<br />';
	
	} else if ( ! validate(jQuery('#email').val())) {
	
		is_error = true;
		err_msg_txt += 'Please make sure you have entered a valid email address<br />';
	}
	
	if (is_error === true) {
		err_msg.html(err_msg_txt);
		return false;
	} else {
		err_msg.html('');
		form.submit();
	}
	
}

// http://www.white-hat-web-design.co.uk/articles/js-validation.php (edited)
function validate(address) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if (reg.test(address) == false) {
   		return false;
	} else {
    	return true;
	}
}

