(function(e){var d=function(o,n){var p=true;if(!o.el.val()||o.el.val()==o.message){p=false}return(p)};var k=function(o,n){var p=true;if(!o.el.val()||o.el.val()==o.message||o.el.val().indexOf("@")<0||o.el.val().indexOf(".")<0){p=false}return(p)};var c=function(o,n){var p=true;if(!o.el.is(":checked")){p=false}return(p)};var h=function(o,n){var p=false;e("input[type=radio][name="+o.name+"]",n.el).each(function(){if(e(this).is(":checked")){p=true}});return(p)};var m=function(o,n){var p=true;if(!o.el.val()){p=false}return(p)};var b=function(o,n){o.el.addClass(n.options.error_class);o.el.bind("click focus",function(){o.el.removeClass(n.options.error_class)})};var a=function(o,n){o.el.addClass(n.options.error_class).val(o.message);o.el.bind("click focus",function(){o.el.removeClass(n.options.error_class).val("")})};var j=function(o,n){o.el.parent().find("."+n.options.error_append_class).remove();o.el.parent().append(e("<span/>").addClass(n.options.error_append_class).html(n.options.error_append_char));o.el.bind("click focus",function(){o.el.parent().find("."+n.options.error_append_class).remove()})};var i=function(o,n){o.el.parent().addClass(n.options.error_parent_class);o.el.parent().bind("click",function(){o.el.parent().removeClass(n.options.error_parent_class)})};var g=function(o,n){n.alert_message+=(o.message+"\r\n")};var f=function(p,o){var n=this;n.el=p;n.elements=[];n.alert_message="";n.options={callback:false,required_class:"validate_required",error_attribute:"title",error_output:{text:"class",email:"class",select:"class",other:"append"},error_class:"validate_invalid",error_append_char:" *",error_append_class:"validate_invalid_append",error_parent_class:"validate_invalid_parent",types:{text:d,email:k,checkbox:c,radio:h,select:m,textarea:d},output:{"class":b,inline:a,append:j,alert:g,parent:i}};n.set_options=function(r){if(r){if(r.types){var s=e.extend({},n.options.types,r.types)}if(r.output){var q=e.extend({},n.options.output,r.output)}e.extend(n.options,r);if(s){n.options.types=s}if(q){n.options.output=q}}};n.get_elements=function(){n.elements=[];e("."+n.options.required_class,n.el).each(function(){var t={};t.el=e(this);t.name=e(this).attr("name");t.message=e(this).attr(n.options.error_attribute);t.type=e(this).attr("type").toLowerCase();var s=e(this).attr("class").split(" ");var r=s.length;var q;for(q=0;q<r;q++){if(s[q].substr(0,14)=="validate_error"){t.output=s[q].replace(/validate_error_/,"")}if(s[q].substr(0,13)=="validate_type"){t.type=s[q].replace(/validate_type_/,"")}}if(e(this)[0].tagName.toLowerCase()=="input"){switch(t.type){case"text":if(!t.output){t.output=n.options.error_output.text}break;case"email":if(!t.output){t.output=n.options.error_output.email}break;case"checkbox":if(!t.output){t.output=n.options.error_output.other}break;case"radio":if(!t.output){t.output=n.options.error_output.other}if(e(this)[0]!=e(n.el).find("input[type=radio][name="+t.name+"]:last")[0]){t=false}break}}else{if(e(this)[0].tagName.toLowerCase()=="textarea"){if(!t.output){t.output=n.options.error_output.text}t.type="textarea"}else{if(e(this)[0].tagName.toLowerCase()=="select"){if(!t.output){t.output=n.options.error_output.select}t.type="select"}}}if(!t.output){t.output=n.options.error_output[t.type]}if(t){n.elements.push(t)}})};n.validate=function(){n.alert_message="";var t;var s=n.elements.length;var v=true;for(t=0;t<s;t++){var r=n.elements[t];var u=n.options.types[r.type];var q=n.options.output[r.output];if(u){if(!u(r,n)){v=false;if(q){q(r,n)}}}}if(n.alert_message){alert(n.alert_message)}if(v){if(n.options.callback){return n.options.callback(n)}else{return true}}else{return false}};n.set_options(o);n.get_elements();e(n.el).bind("submit",function(){return n.validate()})};var l=function(p,o){var n=this;n.el=p;n.alert_message="";n.element={};n.options={error_attribute:"title",error_output:{text:"class",email:"class",select:"class",other:"append"},error_class:"validate_invalid",error_append_char:" *",error_append_class:"validate_invalid_append",error_parent_class:"validate_invalid_parent",types:{text:d,email:k,select:m,textarea:d},output:{"class":b,inline:a,append:j,alert:g,parent:i}};n.set_options=function(r){if(r){if(r.types){var s=e.extend({},n.options.types,r.types)}if(r.output){var q=e.extend({},n.options.output,r.output)}e.extend(n.options,r);if(s){n.options.types=s}if(q){n.options.output=q}}};n.get_element=function(){n.element.el=e(n.el);n.element.name=e(n.el).attr("name");n.element.message=e(n.el).attr(n.options.error_attribute);n.element.type=e(n.el).attr("type").toLowerCase();var s=e(n.el).attr("class").split(" ");var r=s.length;var q;for(q=0;q<r;q++){if(s[q].substr(0,14)=="validate_error"){n.element.output=s[q].replace(/validate_error_/,"")}if(s[q].substr(0,13)=="validate_type"){n.element.type=s[q].replace(/validate_type_/,"")}}if(e(n.el)[0].tagName.toLowerCase()=="input"){switch(n.element.type){case"text":if(!n.element.output){n.element.output=n.options.error_output.text}break;case"email":if(!n.element.output){n.element.output=n.options.error_output.email}break}}else{if(e(n.el)[0].tagName.toLowerCase()=="textarea"){if(!n.element.output){n.element.output=n.options.error_output.text}n.element.type="textarea"}else{if(e(n.el)[0].tagName.toLowerCase()=="select"){if(!n.element.output){n.element.output=n.options.error_output.select}n.element.type="select"}}}};n.validate=function(){n.alert_message="";var t=true;var r=n.element;var s=n.options.types[r.type];var q=n.options.output[r.output];if(s){if(!s(r,n)){t=false;if(q){q(r,n)}}}if(n.alert_message){alert(n.alert_message)}return(t)};n.set_options(o);n.get_element()};e.fn.validate=function(n){var o=false;e(this).each(function(){var p=e(this)[0];if(e.data(p,"validate")){if(n){e.data(p,"validate").set_options(n)}else{o=e.data(p,"validate")}}else{if(p.tagName.toLowerCase()=="form"){e.data(p,"validate",new f(p,n))}else{if(p.tagName.toLowerCase()=="input"||p.tagName.toLower()=="textarea"||p.tagName.toLower()=="select"){var q=new l(p,n);o=q.validate()}}}});return o}})(jQuery);
