/* -------------------------------------
/////////////////////////////////////////
// Simple Form Validation with JQuery. //
/////////////////////////////////////////
// C.Burnett :: 09.05.06 ////////////////
/////////////////////////////////////////
---------------------------------------*/
$.fn.validate = function() {
	var effect 	= 'slideDown'; // Pick default effect
	var speed 	= 'medium'; // Choose default speed
	this.submit(function(e) {
		$('.error').remove();
		var er 		= 0;
		var region 	= 0;
		var sal 	= 0;
		// Simple empty field validation
		$('.validate-required', this).each(function (i) {
			var type = $(this).attr('type');
			if (type == 'text') {
				var v = this.value;
			}else if (type == 'checkbox' || type == 'radio') {
				var v = this.checked;
			}else{
				var v = this.value;
			}
			var msg = $(this).attr('title');

			if (v === '') {
				html = '<div class="error">'+msg+'</div>';
				$('#'+this.id).before(html);
				$('#'+this.id).addClass('errorField');
				// ScrollTo Requires Interface extensions
				if (!er) {
					$('#'+this.id).ScrollTo(500);
				}
				er++;
			}else{
				$('#'+this.id).removeClass('errorField');
			}
		});
		// Email validation
		$('.validate-email', this).each(function (i) {
			var v 	= this.value;
			var msg = $(this).attr('title');
			var emailFilter=/^.+@.+\..{2,3}$/;
			if (!(emailFilter.test(v))){
				html = '<div class="error">'+msg+'</div>';
				$('#'+this.id).before(html);
				$('#'+this.id).addClass('errorField');
				// ScrollTo Requires Interface extensions
				if (!er) {
					$('#'+this.id).ScrollTo(500);
				}
				er++;
			}else{
				$('#'+this.id).removeClass('errorField');
			}
		});

		// Call Error effect
		$('div.error')[effect](speed);
		// Catch Submit Event on Error
		if (er) e.preventDefault();
	});
};
