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