/* -------------------------------------
/////////////////////////////////////////
// Simple Form Validation with JQuery. //
/////////////////////////////////////////
// C.Burnett :: 09.05.06 ////////////////
/////////////////////////////////////////
---------------------------------------*/

$.fn.validate = function() {
	var effect = 'slideDown'; // Pick default effect
	var speed = 'fast'; // Choose default speed
	this.submit(function(e) {
		$('.error').remove();
		var er = 0;
		// Simple empty field validation
		$('.validate-required').each(function (i) {
			var v = this.value;
			var msg = this.attributes.title.value;
			if (v == '') { 
				// Format the Error div
				var html = '<div class="error">'+msg+'</div>';
				$('#'+this.id).before(html);
				$('#'+this.id).addClass('errorField');
				// ScrollTo Requires Interface extensions
				$('#'+this.id).ScrollTo(500);
				// Set focus to field with error
				$('#'+this.id).get(0).focus();
				er++;
			}else{
				// Remove error class
				$('#'+this.id).removeClass('errorField');
			}		
		});		
		
		$('.validate-file').each(function (i) {
			var v   = this.value;
			var msg = this.attributes.title.value;

				if (v == '') { 
				// Format the Error div
				var html = '<div class="error">'+msg+'</div>';
				$('#'+this.id).before(html);
				$('#'+this.id).addClass('errorField');
				// ScrollTo Requires Interface extensions
				$('#'+this.id).ScrollTo(500);
				// Set focus to field with error
				$('#'+this.id).get(0).focus();
				er++;
			}else{
				// Remove error class
				if(v.indexOf('jpg') != '-1' || v.indexOf('JPG') != '-1')
				{
					$('#'+this.id).removeClass('errorField');
				}
				else
				{
					var html = '<div class="error">Only images with .jpg extensions are allowed</div>';
					$('#'+this.id).before(html);
					$('#'+this.id).addClass('errorField');
					// ScrollTo Requires Interface extensions
					$('#'+this.id).ScrollTo(500);
					// Set focus to field with error
					$('#'+this.id).get(0).focus();
					er++;
				}
			}		
		});		
		
		// Email validation
		$('.validate-email').each(function (i) { 
			var v = this.value;
			var msg = this.attributes.title.value;
			var emailFilter=/^.+@.+\..{2,3}$/;
			if (!(emailFilter.test(v))){
				// Format the Error div
				var html = '<div class="error">'+msg+'</div>';
				$('#'+this.id).before(html);
				$('#'+this.id).addClass('errorField');
				// ScrollTo Requires Interface extensions
				$('#'+this.id).ScrollTo(500);
				// Set focus to field with error
				$('#'+this.id).get(0).focus();
				er++;
			}else{
				$('#'+this.id).removeClass('errorField');
			}		
		});
		// Call Error effect
		$('div.error')[effect](speed);
		// Catch Submit Event on Error
		if (er) e.preventDefault();
	});
};