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