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