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