!function(t){var i=function(t){var i,a=[];if(t.length)return"span"===t[0].tagName.toLowerCase()?(t.find(":checked").each(function(){a.push(this.value)}),a.join(",")):(i=t.attr("type"),"checkbox"===i||"radio"===i?t.filter(":checked").val():t.val())};t.fn.yiiactiveform=function(a){return this.each(function(){var e=t.extend({},t.fn.yiiactiveform.defaults,a||{}),s=t(this);void 0===e.validationUrl&&(e.validationUrl=s.attr("action")),t.each(e.attributes,function(a){this.value=i(s.find("#"+this.inputID)),e.attributes[a]=t.extend({},{validationDelay:e.validationDelay,validateOnChange:e.validateOnChange,validateOnType:e.validateOnType,hideErrorMessage:e.hideErrorMessage,inputContainer:e.inputContainer,errorCssClass:e.errorCssClass,successCssClass:e.successCssClass,beforeValidateAttribute:e.beforeValidateAttribute,afterValidateAttribute:e.afterValidateAttribute,validatingCssClass:e.validatingCssClass,errorCallback:e.errorCallback},this)}),s.data("settings",e),e.submitting=!1;var n=function(a,n){n&&(a.status=2),t.each(e.attributes,function(){this.value!==i(s.find("#"+this.inputID))&&(this.status=2,n=!0)}),n&&(void 0!==e.timer&&clearTimeout(e.timer),e.timer=setTimeout(function(){e.submitting||s.is(":hidden")||(void 0===a.beforeValidateAttribute||a.beforeValidateAttribute(s,a))&&(t.each(e.attributes,function(){2===this.status&&(this.status=3,t.fn.yiiactiveform.getInputContainer(this,s).addClass(this.validatingCssClass))}),t.fn.yiiactiveform.validate(s,function(i){var n=!1;t.each(e.attributes,function(){(2===this.status||3===this.status)&&(n=t.fn.yiiactiveform.updateInput(this,i,s)||n)}),void 0!==a.afterValidateAttribute&&a.afterValidateAttribute(s,a,i,n)},e.errorCallback))},a.validationDelay))};if(t.each(e.attributes,function(a,e){this.validateOnChange&&s.find("#"+this.inputID).change(function(){n(e,!1)}).blur(function(){2!==e.status&&3!==e.status&&n(e,!e.status)}),this.validateOnType&&s.find("#"+this.inputID).keyup(function(){e.value!==i(t(this))&&n(e,!1)})}),e.validateOnSubmit){s.on("mouseup keyup",":submit",function(){s.data("submitObject",t(this))});var r=!1;s.submit(function(){return r?(r=!1,!0):(void 0!==e.timer&&clearTimeout(e.timer),e.submitting=!0,void 0===e.beforeValidate||e.beforeValidate(s)?t.fn.yiiactiveform.validate(s,function(i){var a=!1;if(t.each(e.attributes,function(){a=t.fn.yiiactiveform.updateInput(this,i,s)||a}),t.fn.yiiactiveform.updateSummary(s,i),(void 0===e.afterValidate||e.afterValidate(s,i,a))&&!a){r=!0;var n=s.data("submitObject")||s.find(":submit:first");return void(n.length?n.click():s.submit())}e.submitting=!1},e.errorCallback):e.submitting=!1,!1)})}s.bind("reset",function(){setTimeout(function(){t.each(e.attributes,function(){this.status=0;var a=s.find("#"+this.errorID),e=t.fn.yiiactiveform.getInputContainer(this,s);e.removeClass(this.validatingCssClass+" "+this.errorCssClass+" "+this.successCssClass),a.html("").hide(),this.value=i(s.find("#"+this.inputID))}),s.find("label, :input").each(function(){t(this).removeClass(e.errorCss)}),t("#"+e.summaryID).hide().find("ul").html(""),void 0===e.focus||window.location.hash||s.find(e.focus).focus()},1)}),void 0===e.focus||window.location.hash||s.find(e.focus).focus()})},t.fn.yiiactiveform.getInputContainer=function(t,i){return void 0===t.inputContainer?i.find("#"+t.inputID).closest("div"):i.find(t.inputContainer).filter(':has("#'+t.inputID+'")')},t.fn.yiiactiveform.updateInput=function(a,e,s){a.status=1;var n,r,u=!1,o=s.find("#"+a.inputID),d=s.data("settings").errorCss;return o.length&&(u=null!==e&&t.isArray(e[a.id])&&e[a.id].length>0,n=s.find("#"+a.errorID),r=t.fn.yiiactiveform.getInputContainer(a,s),r.removeClass(a.validatingCssClass+" "+a.errorCssClass+" "+a.successCssClass),r.find("label, :input").each(function(){t(this).removeClass(d)}),u?(n.html(e[a.id][0]),r.addClass(a.errorCssClass)):(a.enableAjaxValidation||a.clientValidation)&&r.addClass(a.successCssClass),a.hideErrorMessage||n.toggle(u),a.value=i(o)),u},t.fn.yiiactiveform.updateSummary=function(i,a){var e=t(i).data("settings"),s="";if(void 0!==e.summaryID){if(a){var n=[];for(var r in e.attributes)e.attributes[r].summary&&n.push(e.attributes[r].id);t.each(e.attributes,function(){-1!==t.inArray(this.id,n)&&t.isArray(a[this.id])&&t.each(a[this.id],function(t,i){s=s+"
  • "+i+"
  • "})})}t("#"+e.summaryID).toggle(""!==s).find("ul").html(s)}},t.fn.yiiactiveform.validate=function(a,e,s){var n=t(a),r=n.data("settings"),u=!1,o={};if(t.each(r.attributes,function(){var t,a=[];void 0===this.clientValidation||!r.submitting&&2!==this.status&&3!==this.status||(t=i(n.find("#"+this.inputID)),this.clientValidation(t,a,this),a.length&&(o[this.id]=a)),!this.enableAjaxValidation||a.length||!r.submitting&&2!==this.status&&3!==this.status||(u=!0)}),!u||r.submitting&&!t.isEmptyObject(o))return void(r.submitting?setTimeout(function(){e(o)},200):e(o));var d=n.data("submitObject"),l="&"+r.ajaxVar+"="+n.attr("id");d&&d.length&&(l+="&"+d.attr("name")+"="+d.attr("value")),t.ajax({url:r.validationUrl,type:n.attr("method"),data:n.serialize()+l,dataType:"json",success:function(i){null!==i&&"object"==typeof i?(t.each(r.attributes,function(){this.enableAjaxValidation||delete i[this.id]}),e(t.extend({},o,i))):e(o)},error:function(){void 0!==s&&s()}})},t.fn.yiiactiveform.getSettings=function(i){return t(i).data("settings")},t.fn.yiiactiveform.defaults={ajaxVar:"ajax",validationUrl:void 0,validationDelay:200,validateOnSubmit:!1,validateOnChange:!0,validateOnType:!1,hideErrorMessage:!1,inputContainer:void 0,errorCss:"error",errorCssClass:"error",successCssClass:"success",validatingCssClass:"validating",summaryID:void 0,timer:void 0,beforeValidateAttribute:void 0,afterValidateAttribute:void 0,beforeValidate:void 0,afterValidate:void 0,focus:void 0,attributes:[],errorCallback:void 0}}(jQuery);