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