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