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