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