/* -------------------------------------
/////////////////////////////////////////
// Simple Form Validation with JQuery. //
/////////////////////////////////////////
// C.Burnett :: 09.05.06 ////////////////
/////////////////////////////////////////
---------------------------------------*/
String.prototype.isEmail=function() {
	var emailFilter=/^.+@.+\..{2,3}$/;
	var test = emailFilter.test(this);
	return test;
};
$.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)[0].focus();
				er++;
			}else{
				// Remove error class
				$('#'+this.id).removeClass('errorField');
			}
		});
		// Email validation
		$('.validate-email').each(function (i) {
			var v = this.value;
			var msg = this.attributes.title.value;
			if (!v.isEmail()){
				// 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)[0].focus();
				er++;
			}else{
				$('#'+this.id).removeClass('errorField');
			}
		});
		// Password validation
		$('.validate-password').each(function (i) {
			var v = this.value;
			if (v !=='') {
				var confV = $('#confirm_'+this.id).val();
				if(confV==='' || v!==confV){
					var msg = 'Your password does not match your confirm password!';
					var html = '<div class="error">'+msg+'</div>';
					$('#confirm_'+this.id).before(html);
					$('#confirm_'+this.id).addClass('errorField');
					// ScrollTo Requires Interface extensions
					$('#confirm_'+this.id).ScrollTo(500);
					$('#confirm_'+this.id)[0].focus();
					er++;
				}
				var msg = this.attributes.title.value;
				var test = v.length>=7 ? true : false;
				/*test = /[a-z]/.test(v) ? true : false;
				test = /[0-9]/.test(v) ? true : false;*/
				if (!test){
					// 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)[0].focus();
					er++;
				}else{
					$('#'+this.id).removeClass('errorField');
				}
			}
		});

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