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

