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