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