(function(f){f.fn.ajaxDialogForm=function(q){var r=f.extend(true,{},f.fn.ajaxDialogForm.defaults,q);return this.each(function(){var s=f(this);var t=a(s,r);l(s,t);o(s,t)})};var d={content:".dialog-form-content",errors:".dialog-form-errors",result:".dialog-form-result",sending:".dialog-form-sending"};function l(q,r){q.dialog(r.dialogOptions);p(q,r);if(r.onInit!==null){r.onInit(q)}}function o(q,s){var u=n(q,s);var t=f.extend({},{submitHandler:u},s.validatorOptions);var r=f("<form></form>");m(r,s);q.find(d.content).wrapInner(r);q.find("form").validate(t)}function m(q,r){if(r.autocomplete!==null){q.attr("autocomplete",r.autocomplete)}}function p(q,r){var s=j(q,r);f("."+r.openButtonClass).click(s)}function a(q,r){return f.metadata?f.extend(true,{},r,q.metadata()):r}function c(q){return(function(r){q.dialog("close")})}function j(q,s){return(function r(t){if(s.onOpen!==null){s.onOpen()}h(q);q.dialog("open")})}function g(q){return(function(){q.find(d.content).slideUp("slow");q.find(d.sending).show()})}function n(q,r){var v=g(q);var u=k(q,r);var s=i(q);var t=f.extend(true,{},{beforeSubmit:v,error:s,success:u},r.ajaxFormOptions);return(function(w){f(w).ajaxSubmit(t)})}function k(q,r){return(function(s){if(s.IsValid){if(r.onSuccess!==null){r.onSuccess()}q.find(d.result).show();var t=c(q);q.parent().fadeOut(r.fadeOutDuration,t)}else{e(q,s.Errors)}})}function i(q){return(function(r,t,s){e(q,["Error Message: "+r.statusText])})}function e(q,r){q.find(d.sending).hide();q.find(d.errors).show();f.fn.ajaxDialogForm.showErrors(q.find(d.errors),r)}function h(q,r){q.find(d.content).show();q.find(d.errors).hide();q.find(d.sending).hide();q.find(d.result).hide()}function b(q){if(window.console&&window.console.log){window.console.log(q)}}f.fn.ajaxDialogForm.showErrors=function(r,t){var s=r.find("ul");var q=s.find("li");if(q.length>0){q.remove()}f.each(t,function(u,v){s.append("<li>"+v+"</li>")});r.show()};f.fn.ajaxDialogForm.defaults={fadeOutDuration:3000,openButtonClass:"dialog-form-open",autocomplete:null,dialogOptions:{resizable:false,width:525,autoOpen:false,modal:true},ajaxFormOptions:{dataType:"json",type:"post",url:document.location.href},validateOptions:{},onOpen:null,onSuccess:null,onInit:null}})(jQuery);
