!function(e){function t(){e.fn.ajaxSubmit.debug&&window.console&&window.console.log&&window.console.log("[jquery.form] "+Array.prototype.join.call(arguments,""))}e.fn.ajaxSubmit=function(a){function r(){function t(){if(!d++){c.detachEvent?c.detachEvent("onload",t):c.removeEventListener("load",t,!1);var a=!0;try{if(p)throw"timeout";var n,o;if(o=c.contentWindow?c.contentWindow.document:c.contentDocument?c.contentDocument:c.document,null==o.body&&!b&&e.browser.opera)return b=1,d--,void setTimeout(t,100);if(f.responseText=o.body?o.body.innerHTML:null,f.responseXML=o.XMLDocument?o.XMLDocument:o,f.getResponseHeader=function(e){var t={"content-type":i.dataType};return t[e]},"json"==i.dataType||"script"==i.dataType){var s=o.getElementsByTagName("textarea")[0];f.responseText=s?s.value:f.responseText}else"xml"!=i.dataType||f.responseXML||null==f.responseText||(f.responseXML=r(f.responseText));n=e.httpData(f,i.dataType)}catch(t){a=!1,e.handleError(i,f,"error",t)}a&&(i.success(n,"success"),m&&e.event.trigger("ajaxSuccess",[f,i])),m&&e.event.trigger("ajaxComplete",[f,i]),m&&!--e.active&&e.event.trigger("ajaxStop"),i.complete&&i.complete(f,a?"success":"error"),setTimeout(function(){u.remove(),f.responseXML=null},100)}}function r(e,t){return window.ActiveXObject?(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!=t.documentElement.tagName?t:null}var n=l[0];if(e(":input[name=submit]",n).length)return void alert('Error: Form elements must not be named "submit".');var i=e.extend({},e.ajaxSettings,a),o=jQuery.extend(!0,{},e.extend(!0,{},e.ajaxSettings),i),s="jqFormIO"+(new Date).getTime(),u=e(''),c=u[0];(e.browser.msie||e.browser.opera)&&(c.src='javascript:false;document.write("");'),u.css({position:"absolute",top:"-1000px",left:"-1000px"});var f={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1,u.attr("src","about:blank")}},m=i.global;if(m&&!e.active++&&e.event.trigger("ajaxStart"),m&&e.event.trigger("ajaxSend",[f,i]),o.beforeSend&&o.beforeSend(f,o)===!1)return void(o.global&&jQuery.active--);if(!f.aborted){var d=0,p=0,h=n.clk;if(h){var v=h.name;v&&!h.disabled&&(a.extraData=a.extraData||{},a.extraData[v]=h.value,"image"==h.type&&(a.extraData[name+".x"]=n.clk_x,a.extraData[name+".y"]=n.clk_y))}setTimeout(function(){var r=l.attr("target"),o=l.attr("action");n.setAttribute("target",s),"POST"!=n.getAttribute("method")&&n.setAttribute("method","POST"),n.getAttribute("action")!=i.url&&n.setAttribute("action",i.url),a.skipEncodingOverride||l.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),i.timeout&&setTimeout(function(){p=!0,t()},i.timeout);var f=[];try{if(a.extraData)for(var m in a.extraData)f.push(e('').appendTo(n)[0]);u.appendTo("body"),c.attachEvent?c.attachEvent("onload",t):c.addEventListener("load",t,!1),n.submit()}finally{n.setAttribute("action",o),r?n.setAttribute("target",r):l.removeAttr("target"),e(f).remove()}},10);var b=0}}if(!this.length)return t("ajaxSubmit: skipping submit process - no element selected"),this;"function"==typeof a&&(a={success:a}),a=e.extend({url:this.attr("action")||window.location.toString(),type:this.attr("method")||"GET"},a||{});var n={};if(this.trigger("form-pre-serialize",[this,a,n]),n.veto)return t("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(a.beforeSerialize&&a.beforeSerialize(this,a)===!1)return t("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var i=this.formToArray(a.semantic);if(a.data){a.extraData=a.data;for(var o in a.data)if(a.data[o]instanceof Array)for(var s in a.data[o])i.push({name:o,value:a.data[o][s]});else i.push({name:o,value:a.data[o]})}if(a.beforeSubmit&&a.beforeSubmit(i,this,a)===!1)return t("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[i,this,a,n]),n.veto)return t("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var u=e.param(i);"GET"==a.type.toUpperCase()?(a.url+=(a.url.indexOf("?")>=0?"&":"?")+u,a.data=null):a.data=u;var l=this,c=[];if(a.resetForm&&c.push(function(){l.resetForm()}),a.clearForm&&c.push(function(){l.clearForm()}),!a.dataType&&a.target){var f=a.success||function(){};c.push(function(t){e(a.target).html(t).each(f,arguments)})}else a.success&&c.push(a.success);a.success=function(e,t){for(var r=0,n=c.length;r<n;r++)c[r].apply(a,[e,t,l])};for(var m=e("input:file",this).fieldValue(),d=!1,p=0;p<m.length;p++)m[p]&&(d=!0);return a.iframe||d?e.browser.safari&&a.closeKeepAlive?e.get(a.closeKeepAlive,r):r():e.ajax(a),this.trigger("form-submit-notify",[this,a]),this},e.fn.ajaxForm=function(t){return this.ajaxFormUnbind().bind("submit.form-plugin",function(){return e(this).ajaxSubmit(t),!1}).each(function(){e(":submit,input:image",this).bind("click.form-plugin",function(t){var a=this.form;if(a.clk=this,"image"==this.type)if(void 0!=t.offsetX)a.clk_x=t.offsetX,a.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var r=e(this).offset();a.clk_x=t.pageX-r.left,a.clk_y=t.pageY-r.top}else a.clk_x=t.pageX-this.offsetLeft,a.clk_y=t.pageY-this.offsetTop;setTimeout(function(){a.clk=a.clk_x=a.clk_y=null},10)})})},e.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin"),this.each(function(){e(":submit,input:image",this).unbind("click.form-plugin")})},e.fn.formToArray=function(t){var a=[];if(0==this.length)return a;var r=this[0],n=t?r.getElementsByTagName("*"):r.elements;if(!n)return a;for(var i=0,o=n.length;i<o;i++){var s=n[i],u=s.name;if(u)if(t&&r.clk&&"image"==s.type)s.disabled||r.clk!=s||a.push({name:u+".x",value:r.clk_x},{name:u+".y",value:r.clk_y});else{var l=e.fieldValue(s,!0);if(l&&l.constructor==Array)for(var c=0,f=l.length;c<f;c++)a.push({name:u,value:l[c]});else null!==l&&"undefined"!=typeof l&&a.push({name:u,value:l})}}if(!t&&r.clk)for(var m=r.getElementsByTagName("input"),i=0,o=m.length;i<o;i++){var d=m[i],u=d.name;u&&!d.disabled&&"image"==d.type&&r.clk==d&&a.push({name:u+".x",value:r.clk_x},{name:u+".y",value:r.clk_y})}return a},e.fn.formSerialize=function(t){return e.param(this.formToArray(t))},e.fn.fieldSerialize=function(t){var a=[];return this.each(function(){var r=this.name;if(r){var n=e.fieldValue(this,t);if(n&&n.constructor==Array)for(var i=0,o=n.length;i<o;i++)a.push({name:r,value:n[i]});else null!==n&&"undefined"!=typeof n&&a.push({name:this.name,value:n})}}),e.param(a)},e.fn.fieldValue=function(t){for(var a=[],r=0,n=this.length;r<n;r++){var i=this[r],o=e.fieldValue(i,t);null===o||"undefined"==typeof o||o.constructor==Array&&!o.length||(o.constructor==Array?e.merge(a,o):a.push(o))}return a},e.fieldValue=function(t,a){var r=t.name,n=t.type,i=t.tagName.toLowerCase();if("undefined"==typeof a&&(a=!0),a&&(!r||t.disabled||"reset"==n||"button"==n||("checkbox"==n||"radio"==n)&&!t.checked||("submit"==n||"image"==n)&&t.form&&t.form.clk!=t||"select"==i&&t.selectedIndex==-1))return null;if("select"==i){var o=t.selectedIndex;if(o<0)return null;for(var s=[],u=t.options,l="select-one"==n,c=l?o+1:u.length,f=l?o:0;f<c;f++){var m=u[f];if(m.selected){var d=e.browser.msie&&m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value;if(l)return d;s.push(d)}}return s}return t.value},e.fn.clearForm=function(){return this.each(function(){e("input,select,textarea",this).clearFields()})},e.fn.clearFields=e.fn.clearInputs=function(){return this.each(function(){var e=this.type,t=this.tagName.toLowerCase();"text"==e||"password"==e||"textarea"==t?this.value="":"checkbox"==e||"radio"==e?this.checked=!1:"select"==t&&(this.selectedIndex=-1)})},e.fn.resetForm=function(){return this.each(function(){("function"==typeof this.reset||"object"==typeof this.reset&&!this.reset.nodeType)&&this.reset()})},e.fn.enable=function(e){return void 0==e&&(e=!0),this.each(function(){this.disabled=!e})},e.fn.selected=function(t){return void 0==t&&(t=!0),this.each(function(){var a=this.type;if("checkbox"==a||"radio"==a)this.checked=t;else if("option"==this.tagName.toLowerCase()){var r=e(this).parent("select");t&&r[0]&&"select-one"==r[0].type&&r.find("option").selected(!1),this.selected=t}})}}(jQuery);