/* jQuery Form Plugin 2.43 - http://malsup.com/jquery/form/
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
$.fn.ajaxSubmit=function(a){function d(){function q(){var o=g.attr("target"),m=g.attr("action");j.setAttribute("target",x);j.getAttribute("method")!="POST"&&j.setAttribute("method","POST");j.getAttribute("action")!=f.url&&j.setAttribute("action",f.url);f.skipEncodingOverride||g.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"});f.timeout&&setTimeout(function(){z=true;r()},f.timeout);var l=[];try{if(f.extraData)for(var t in f.extraData)l.push($('<input type="hidden" name="'+t+'" value="'+ f.extraData[t]+'" />').appendTo(j)[0]);s.appendTo("body");s.data("form-plugin-onload",r);j.submit()}finally{j.setAttribute("action",m);o?j.setAttribute("target",o):g.removeAttr("target");$(l).remove()}}function r(){if(!A){var o=true;try{if(z)throw"timeout";var m,l;l=u.contentWindow?u.contentWindow.document:u.contentDocument?u.contentDocument:u.document;if(!(f.dataType=="xml"||l.XMLDocument||$.isXMLDoc(l))&&(l.body==null||l.body.innerHTML=="")){if(--D){log("requeing onLoad callback, DOM not available"); setTimeout(r,250);return}return}A=true;i.responseText=l.body?l.body.innerHTML:null;i.responseXML=l.XMLDocument?l.XMLDocument:l;i.getResponseHeader=function(E){return{"content-type":f.dataType}[E]};if(f.dataType=="json"||f.dataType=="script"){var t=l.getElementsByTagName("textarea")[0];if(t)i.responseText=t.value;else{var B=l.getElementsByTagName("pre")[0];if(B)i.responseText=B.innerHTML}}else if(f.dataType=="xml"&&!i.responseXML&&i.responseText!=null)i.responseXML=y(i.responseText);m=$.httpData(i, f.dataType)}catch(C){o=false;i.error=C;$.handleError(f,i,"error",C)}if(o){f.success(m,"success");v&&$.event.trigger("ajaxSuccess",[i,f])}v&&$.event.trigger("ajaxComplete",[i,f]);v&&!--$.active&&$.event.trigger("ajaxStop");if(f.complete)f.complete(i,o?"success":"error");setTimeout(function(){s.removeData("form-plugin-onload");s.remove();i.responseXML=null},100)}}function y(o,m){if(window.ActiveXObject){m=new ActiveXObject("Microsoft.XMLDOM");m.async="false";m.loadXML(o)}else m=(new DOMParser).parseFromString(o, "text/xml");return m&&m.documentElement&&m.documentElement.tagName!="parsererror"?m:null}var j=g[0];if($(":input[name=submit]",j).length)alert('Error: Form elements must not be named "submit".');else{var f=$.extend({},$.ajaxSettings,a),p=$.extend(true,{},$.extend(true,{},$.ajaxSettings),f),x="jqFormIO"+(new Date).getTime(),s=$('<iframe id="'+x+'" name="'+x+'" src="'+f.iframeSrc+'" onload="(jQuery(this).data(\'form-plugin-onload\'))()" />'),u=s[0];s.css({position:"absolute",top:"-1000px",left:"-1000px"}); var i={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;s.attr("src",f.iframeSrc)}},v=f.global;v&&!$.active++&&$.event.trigger("ajaxStart");v&&$.event.trigger("ajaxSend",[i,f]);if(p.beforeSend&&p.beforeSend(i,p)===false)p.global&&$.active--;else if(!i.aborted){var A=false,z=0;if(p=j.clk){var w=p.name;if(w&&!p.disabled){f.extraData=f.extraData||{};f.extraData[w]= p.value;if(p.type=="image"){f.extraData[w+".x"]=j.clk_x;f.extraData[w+".y"]=j.clk_y}}}f.forceSync?q():setTimeout(q,10);var D=100}}}if(!this.length)return this;if(typeof a=="function")a={success:a};var b=$.trim(this.attr("action"));if(b)b=(b.match(/^([^#]+)/)||[])[1];b=b||window.location.href||"";a=$.extend({url:b,type:this.attr("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},a||{});b={};this.trigger("form-pre-serialize",[this,a,b]);if(b.veto)return this; if(a.beforeSerialize&&a.beforeSerialize(this,a)===false)return this;var e=this.formToArray(a.semantic);if(a.data){a.extraData=a.data;for(var c in a.data)if(a.data[c]instanceof Array)for(var k in a.data[c])e.push({name:c,value:a.data[c][k]});else e.push({name:c,value:a.data[c]})}if(a.beforeSubmit&&a.beforeSubmit(e,this,a)===false)return this;this.trigger("form-submit-validate",[e,this,a,b]);if(b.veto)return this;c=$.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 n=a.success||function(){};h.push(function(q){var r=a.replaceTarget?"replaceWith":"html";$(a.target)[r](q).each(n,arguments)})}else a.success&&h.push(a.success);a.success=function(q,r,y){for(var j=0,f=h.length;j<f;j++)h[j].apply(a,[q,r,y||g,g])};c=$("input:file",this).fieldValue();k=false;for(b=0;b<c.length;b++)if(c[b])k=true;if(c.length&& a.iframe!==false||a.iframe||k||0)a.closeKeepAlive?$.get(a.closeKeepAlive,d):d();else $.ajax(a);this.trigger("form-submit-notify",[this,a]);return this}; $.fn.ajaxForm=function(a){return this.ajaxFormUnbind().bind("submit.form-plugin",function(d){d.preventDefault();$(this).ajaxSubmit(a)}).bind("click.form-plugin",function(d){var b=d.target,e=$(b);if(!e.is(":submit,input:image")){b=e.closest(":submit");if(b.length==0)return;b=b[0]}var c=this;c.clk=b;if(b.type=="image")if(d.offsetX!=undefined){c.clk_x=d.offsetX;c.clk_y=d.offsetY}else if(typeof $.fn.offset=="function"){e=e.offset();c.clk_x=d.pageX-e.left;c.clk_y=d.pageY-e.top}else{c.clk_x=d.pageX-b.offsetLeft; c.clk_y=d.pageY-b.offsetTop}setTimeout(function(){c.clk=c.clk_x=c.clk_y=null},100)})};$.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")}; $.fn.formToArray=function(a){var d=[];if(this.length==0)return d;var b=this[0],e=a?b.getElementsByTagName("*"):b.elements;if(!e)return d;for(var c=0,k=e.length;c<k;c++){var g=e[c],h=g.name;if(h)if(a&&b.clk&&g.type=="image"){if(!g.disabled&&b.clk==g){d.push({name:h,value:$(g).val()});d.push({name:h+".x",value:b.clk_x},{name:h+".y",value:b.clk_y})}}else if((g=$.fieldValue(g,true))&&g.constructor==Array)for(var n=0,q=g.length;n<q;n++)d.push({name:h,value:g[n]});else g!==null&&typeof g!="undefined"&& d.push({name:h,value:g})}if(!a&&b.clk){a=$(b.clk);e=a[0];if((h=e.name)&&!e.disabled&&e.type=="image"){d.push({name:h,value:a.val()});d.push({name:h+".x",value:b.clk_x},{name:h+".y",value:b.clk_y})}}return d};$.fn.formSerialize=function(a){return $.param(this.formToArray(a))}; $.fn.fieldSerialize=function(a){var d=[];this.each(function(){var b=this.name;if(b){var e=$.fieldValue(this,a);if(e&&e.constructor==Array)for(var c=0,k=e.length;c<k;c++)d.push({name:b,value:e[c]});else e!==null&&typeof e!="undefined"&&d.push({name:this.name,value:e})}});return $.param(d)};$.fn.fieldValue=function(a){for(var d=[],b=0,e=this.length;b<e;b++){var c=$.fieldValue(this[b],a);c===null||typeof c=="undefined"||c.constructor==Array&&!c.length||(c.constructor==Array?$.merge(d,c):d.push(c))}return d}; $.fieldValue=function(a,d){var b=a.name,e=a.type,c=a.tagName.toLowerCase();if(typeof d=="undefined")d=true;if(d&&(!b||a.disabled||e=="reset"||e=="button"||(e=="checkbox"||e=="radio")&&!a.checked||(e=="submit"||e=="image")&&a.form&&a.form.clk!=a||c=="select"&&a.selectedIndex==-1))return null;if(c=="select"){var k=a.selectedIndex;if(k<0)return null;b=[];c=a.options;var g=(e=e=="select-one")?k+1:c.length;for(k=e?k:0;k<g;k++){var h=c[k];if(h.selected){var n=h.value;n||(n=h.attributes&&h.attributes.value&& !h.attributes.value.specified?h.text:h.value);if(e)return n;b.push(n)}}return b}return a.value};$.fn.clearForm=function(){return this.each(function(){$("input,select,textarea",this).clearFields()})};$.fn.clearFields=$.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})}; $.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||typeof this.reset=="object"&&!this.reset.nodeType)this.reset()})};$.fn.enable=function(a){if(a==undefined)a=true;return this.each(function(){this.disabled=!a})}; $.fn.selected=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=$(this).parent("select");a&&d[0]&&d[0].type=="select-one"&&d.find("option").selected(false);this.selected=a}})};
