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