(function(a){a.fn.ajaxSubmit=function(b){function m(){function o(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 n(){if(l++)return;h.detachEvent?h.detachEvent("onload",n):h.removeEventListener("load",n,false);var b=true;try{if(m)throw"timeout";var c,e;e=h.contentWindow?h.contentWindow.document:h.contentDocument?h.contentDocument:h.document;j.responseText=e.body?e.body.innerHTML:null;j.responseXML=e.XMLDocument?e.XMLDocument:e;j.getResponseHeader=function(a){var b={"content-type":d.dataType};return b[a]};if(d.dataType=="json"||d.dataType=="script"){var g=e.getElementsByTagName("textarea")[0];j.responseText=g?g.value:j.responseText}else if(d.dataType=="xml"&&!j.responseXML&&j.responseText!=null){j.responseXML=o(j.responseText)}c=a.httpData(j,d.dataType)}catch(i){b=false;a.handleError(d,j,"error",i)}if(b){d.success(c,"success");if(k)a.event.trigger("ajaxSuccess",[j,d])}if(k)a.event.trigger("ajaxComplete",[j,d]);if(k&&!--a.active)a.event.trigger("ajaxStop");if(d.complete)d.complete(j,b?"success":"error");setTimeout(function(){f.remove();j.responseXML=null},100)}var c=g[0];var d=a.extend({},a.ajaxSettings,b);var e="jqFormIO"+(new Date).getTime();var f=a('<iframe id="'+e+'" name="'+e+'" />');var h=f[0];var i=a.browser.opera&&window.opera.version()<9;if(a.browser.msie||i)h.src='javascript:false;document.write("");';f.css({position:"absolute",top:"-1000px",left:"-1000px"});var j={responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){}};var k=d.global;if(k&&!(a.active++))a.event.trigger("ajaxStart");if(k)a.event.trigger("ajaxSend",[j,d]);var l=0;var m=0;setTimeout(function(){var i=g.attr("target"),j=g.attr("action");g.attr({target:e,encoding:"multipart/form-data",enctype:"multipart/form-data",method:"POST",action:d.url});if(d.timeout)setTimeout(function(){m=true;n()},d.timeout);var k=[];try{if(b.extraData)for(var l in b.extraData)k.push(a('<input type="hidden" name="'+l+'" value="'+b.extraData[l]+'" />').appendTo(c)[0]);f.appendTo("body");h.attachEvent?h.attachEvent("onload",n):h.addEventListener("load",n,false);c.submit()}finally{g.attr("action",j);i?g.attr("target",i):g.removeAttr("target");a(k).remove()}},10);}if(typeof b=="function")b={success:b};b=a.extend({url:this.attr("action")||window.location.toString(),type:this.attr("method")||"GET"},b||{});var c={};this.trigger("form-pre-serialize",[this,b,c]);if(c.veto)return this;var d=this.formToArray(b.semantic);if(b.data){b.extraData=b.data;for(var e in b.data)d.push({name:e,value:b.data[e]})}if(b.beforeSubmit&&b.beforeSubmit(d,this,b)===false)return this;this.trigger("form-submit-validate",[d,this,b,c]);if(c.veto)return this;var f=a.param(d);if(b.type.toUpperCase()=="GET"){b.url+=(b.url.indexOf("?")>=0?"&":"?")+f;b.data=null}else b.data=f;var g=this,h=[];if(b.resetForm)h.push(function(){g.resetForm()});if(b.clearForm)h.push(function(){g.clearForm()});if(!b.dataType&&b.target){var i=b.success||function(){};h.push(function(c){a(b.target).html(c).each(i,arguments)})}else if(b.success)h.push(b.success);b.success=function(a,b){for(var c=0,d=h.length;c<d;c++)h[c](a,b,g)};var j=a("input:file",this).fieldValue();var k=false;for(var l=0;l<j.length;l++)if(j[l])k=true;if(b.iframe||k){if(a.browser.safari&&b.closeKeepAlive)a.get(b.closeKeepAlive,m);else m()}else a.ajax(b);this.trigger("form-submit-notify",[this,b]);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)

