﻿/**
 * Custom jQuery Validator plugin
 * 
 * @author: Jeremy Burton
 * @version: 1.0 minified
 * @date: 8 December 2009
 *---------------------------------*/

(function(d){d.fn.validator=function(e,f){
    ///	<summary>
    ///		1: validator(callback, settings) - This function accepts a string containing the callback function to be executed after validation has been checked.  It also accepts a list of settings - optional.
    ///		2: validator(callback) - Will run validation with default settings and call the callback function after completion.
    ///	</summary>
    ///	<param name="selector" type="String">
    ///		1: callback - The function that will be called after validation has been checked.
    ///	</param>
    /// <param name="selector" Type="Object">
    ///     1: settings - A list of options that can be set to override defaults
    /// </param>
    ///	<returns type="$.fn.validator" />
    var b={minLength:3,emailRegEx:/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,phoneRegEx:/^(([0-9]{1})*[- .(]*([0-9a-zA-Z]{3})*[- .)]*[0-9a-zA-Z]{3}[- .]*[0-9a-zA-Z]{4})+$/,urlRegEx:/^(http[s]?:\/\/|ftp:\/\/)?(www\.)?[a-zA-Z0-9-\.]+\.(com|org|net|mil|edu|ca|co.uk|com.au|gov)$/,zipLength:5,status:"status"};f&&d.extend(b,f);var c="";this.each(function(){if(this.type==="text"||this.type==='password'||this.type==='textarea'){var a=d(this);if(a.hasClass("req")&&a.val().length===0){a.addClass("error"); c+=a.attr("name")+" is required.<br />"}else if(a.hasClass("minLength")&&a.hasClass("req")&&a.val().length<b.minLength||a.hasClass("minLength")&&a.val().length>0&&a.val().length<b.minLength){a.addClass("error");c+=a.attr("name")+" requires at least "+b.minLength+" characters.<br />"}else a.hasClass("error")&&a.removeClass("error");if(a.hasClass("email")&&!a.hasClass("error")&&a.val().length>0&&!b.emailRegEx.test(a.val())){a.addClass("error");c+="Must be a valid email address.<br />"}if(a.hasClass("phone")&& !a.hasClass("error")&&a.val().length>0&&!b.phoneRegEx.test(a.val())){a.addClass("error");c+="Must enter a valid phone number.<br />"}if(a.hasClass("url")&&!a.hasClass("error")&&a.val().length>0&&!b.urlRegEx.test(a.val())){a.addClass("error");c+="Must enter a valid URL.<br />"}if(a.hasClass("zip")&&!a.hasClass("error")&&!a.hasClass("req")&&a.val().length>0)if(isNaN(a.val())||a.val().length!==b.zipLength){a.addClass("error");c+="Zipcode must be "+b.zipLength+" digits.<br />"}}});if(c!==""){d("#"+b.status).html(c).addClass("status-error"); e(false)}else{d("#"+b.status).html("").removeClass("status-error");e(true)}return this}})(jQuery);
