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