(function(b){function c(){var a="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log)window.console.log(a);else window.opera&&window.opera.postError&&window.opera.postError(a)}b.fn.ajaxSubmit=function(a){function d(o){function m(){function D(){try{var Q=(t.contentWindow?t.contentWindow.document:t.contentDocument?t.contentDocument:t.document).readyState;c("state = "+Q);Q.toLowerCase()=="uninitialized"&&setTimeout(D,50)}catch(P){c("Server abort: ",P," (",P.name,
")");u(2);x&&clearTimeout(x);x=undefined}}var G=g.attr("target"),J=g.attr("action");r.setAttribute("target",y);f||r.setAttribute("method","POST");J!=n.url&&r.setAttribute("action",n.url);if(!n.skipEncodingOverride&&(!f||/post/i.test(f)))g.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"});if(n.timeout)x=setTimeout(function(){z=true;u(1)},n.timeout);var K=[];try{if(n.extraData)for(var N in n.extraData)K.push(b('<input type="hidden" name="'+N+'" />').attr("value",n.extraData[N]).appendTo(r)[0]);
if(!n.iframeTarget){C.appendTo("body");t.attachEvent?t.attachEvent("onload",u):t.addEventListener("load",u,false)}setTimeout(D,15);r.submit()}finally{r.setAttribute("action",J);G?r.setAttribute("target",G):g.removeAttr("target");b(K).remove()}}function u(D){if(!(s.aborted||L)){try{F=t.contentWindow?t.contentWindow.document:t.contentDocument?t.contentDocument:t.document}catch(G){c("cannot access response document: ",G);D=2}if(D===1&&s)s.abort("timeout");else if(D==2&&s)s.abort("server abort");else{if(!F||
F.location.href==n.iframeSrc)if(!z)return;t.detachEvent?t.detachEvent("onload",u):t.removeEventListener("load",u,false);D="success";var J;try{if(z)throw"timeout";var K=n.dataType=="xml"||F.XMLDocument||b.isXMLDoc(F);c("isXml="+K);if(!K&&window.opera&&(F.body==null||F.body.innerHTML==""))if(--H){c("requeing onLoad callback, DOM not available");setTimeout(u,250);return}var N=F.body?F.body:F.documentElement;s.responseText=N?N.innerHTML:null;s.responseXML=F.XMLDocument?F.XMLDocument:F;if(K)n.dataType=
"xml";s.getResponseHeader=function(U){return{"content-type":n.dataType}[U]};if(N){s.status=Number(N.getAttribute("status"))||s.status;s.statusText=N.getAttribute("statusText")||s.statusText}var Q=/(json|script|text)/.test((n.dataType||"").toLowerCase());if(Q||n.textarea){var P=F.getElementsByTagName("textarea")[0];if(P){s.responseText=P.value;s.status=Number(P.getAttribute("status"))||s.status;s.statusText=P.getAttribute("statusText")||s.statusText}else if(Q){var R=F.getElementsByTagName("pre")[0],
S=F.getElementsByTagName("body")[0];if(R)s.responseText=R.textContent?R.textContent:R.innerHTML;else if(S)s.responseText=S.innerHTML}}else if(n.dataType=="xml"&&!s.responseXML&&s.responseText!=null)s.responseXML=M(s.responseText);try{E=I(s,n.dataType,n)}catch(V){D="parsererror";s.error=J=V||D}}catch(T){c("error caught: ",T);D="error";s.error=J=T||D}if(s.aborted){c("upload aborted");D=null}if(s.status)D=s.status>=200&&s.status<300||s.status===304?"success":"error";if(D==="success"){n.success&&n.success.call(n.context,
E,"success",s);q&&b.event.trigger("ajaxSuccess",[s,n])}else if(D){if(J==undefined)J=s.statusText;n.error&&n.error.call(n.context,s,D,J);q&&b.event.trigger("ajaxError",[s,n,J])}q&&b.event.trigger("ajaxComplete",[s,n]);q&&!--b.active&&b.event.trigger("ajaxStop");n.complete&&n.complete.call(n.context,s,D);L=true;n.timeout&&clearTimeout(x);setTimeout(function(){n.iframeTarget||C.remove();s.responseXML=null},100)}}}var r=g[0],w,A,n,q,y,C,t,s,z,x,B=!!b.fn.prop;if(o)for(A=0;A<o.length;A++){w=b(r[o[A].name]);
w[B?"prop":"attr"]("disabled",false)}if(b(":input[name=submit],:input[id=submit]",r).length)alert('Error: Form elements must not have name or id of "submit".');else{n=b.extend(true,{},b.ajaxSettings,a);n.context=n.context||n;y="jqFormIO"+(new Date).getTime();if(n.iframeTarget){C=b(n.iframeTarget);w=C.attr("name");if(w==null)C.attr("name",y);else y=w}else{C=b('<iframe name="'+y+'" src="'+n.iframeSrc+'" />');C.css({position:"absolute",top:"-1000px",left:"-1000px"})}t=C[0];s={aborted:0,responseText:null,
responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(D){var G=D==="timeout"?"timeout":"aborted";c("aborting upload... "+G);this.aborted=1;C.attr("src",n.iframeSrc);s.error=G;n.error&&n.error.call(n.context,s,G,D);q&&b.event.trigger("ajaxError",[s,n,G]);n.complete&&n.complete.call(n.context,s,G)}};(q=n.global)&&!b.active++&&b.event.trigger("ajaxStart");q&&b.event.trigger("ajaxSend",[s,n]);if(n.beforeSend&&
n.beforeSend.call(n.context,s,n)===false)n.global&&b.active--;else if(!s.aborted){if(o=r.clk)if((w=o.name)&&!o.disabled){n.extraData=n.extraData||{};n.extraData[w]=o.value;if(o.type=="image"){n.extraData[w+".x"]=r.clk_x;n.extraData[w+".y"]=r.clk_y}}n.forceSync?m():setTimeout(m,10);var E,F,H=50,L,M=b.parseXML||function(D,G){if(window.ActiveXObject){G=new ActiveXObject("Microsoft.XMLDOM");G.async="false";G.loadXML(D)}else G=(new DOMParser).parseFromString(D,"text/xml");return G&&G.documentElement&&
G.documentElement.nodeName!="parsererror"?G:null},O=b.parseJSON||function(D){return window.eval("("+D+")")},I=function(D,G,J){var K=D.getResponseHeader("content-type")||"",N=G==="xml"||!G&&K.indexOf("xml")>=0;D=N?D.responseXML:D.responseText;N&&D.documentElement.nodeName==="parsererror"&&b.error&&b.error("parsererror");if(J&&J.dataFilter)D=J.dataFilter(D,G);if(typeof D==="string")if(G==="json"||!G&&K.indexOf("json")>=0)D=O(D);else if(G==="script"||!G&&K.indexOf("javascript")>=0)b.globalEval(D);return D}}}}
if(!this.length){c("ajaxSubmit: skipping submit process - no element selected");return this}var f,e,g=this;if(typeof a=="function")a={success:a};f=this.attr("method");e=this.attr("action");if(e=(e=typeof e==="string"?b.trim(e):"")||window.location.href||"")e=(e.match(/^([^#]+)/)||[])[1];a=b.extend(true,{url:e,success:b.ajaxSettings.success,type:f||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},a);e={};this.trigger("form-pre-serialize",[this,a,e]);if(e.veto){c("ajaxSubmit: submit vetoed via form-pre-serialize trigger");
return this}if(a.beforeSerialize&&a.beforeSerialize(this,a)===false){c("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var h,j,k=this.formToArray(a.semantic);if(a.data){a.extraData=a.data;for(h in a.data)if(a.data[h]instanceof Array)for(var p in a.data[h])k.push({name:h,value:a.data[h][p]});else{j=a.data[h];j=b.isFunction(j)?j():j;k.push({name:h,value:j})}}if(a.beforeSubmit&&a.beforeSubmit(k,this,a)===false){c("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",
[k,this,a,e]);if(e.veto){c("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}h=b.param(k);if(a.type.toUpperCase()=="GET"){a.url+=(a.url.indexOf("?")>=0?"&":"?")+h;a.data=null}else a.data=h;var v=[];a.resetForm&&v.push(function(){g.resetForm()});a.clearForm&&v.push(function(){g.clearForm()});if(!a.dataType&&a.target){var l=a.success||function(){};v.push(function(o){var m=a.replaceTarget?"replaceWith":"html";b(a.target)[m](o).each(l,arguments)})}else a.success&&v.push(a.success);
a.success=function(o,m,u){for(var r=a.context||a,w=0,A=v.length;w<A;w++)v[w].apply(r,[o,m,u||g,g])};h=b("input:file",this).length>0;p=g.attr("enctype")=="multipart/form-data"||g.attr("encoding")=="multipart/form-data";if(a.iframe!==false&&(h||a.iframe||p))a.closeKeepAlive?b.get(a.closeKeepAlive,function(){d(k)}):d(k);else{if(b.browser.msie&&f=="get"){h=g[0].getAttribute("method");if(typeof h==="string")a.type=h}b.ajax(a)}this.trigger("form-submit-notify",[this,a]);return this};b.fn.ajaxForm=function(a){if(this.length===
0){var d={s:this.selector,c:this.context};if(!b.isReady&&d.s){c("DOM not ready, queuing ajaxForm");b(function(){b(d.s,d.c).ajaxForm(a)});return this}c("terminating; zero elements found by selector"+(b.isReady?"":" (DOM not ready)"));return this}return this.ajaxFormUnbind().bind("submit.form-plugin",function(f){if(!f.isDefaultPrevented()){f.preventDefault();b(this).ajaxSubmit(a)}}).bind("click.form-plugin",function(f){var e=f.target,g=b(e);if(!g.is(":submit,input:image")){e=g.closest(":submit");if(e.length==
0)return;e=e[0]}var h=this;h.clk=e;if(e.type=="image")if(f.offsetX!=undefined){h.clk_x=f.offsetX;h.clk_y=f.offsetY}else if(typeof b.fn.offset=="function"){g=g.offset();h.clk_x=f.pageX-g.left;h.clk_y=f.pageY-g.top}else{h.clk_x=f.pageX-e.offsetLeft;h.clk_y=f.pageY-e.offsetTop}setTimeout(function(){h.clk=h.clk_x=h.clk_y=null},100)})};b.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")};b.fn.formToArray=function(a){var d=[];if(this.length===0)return d;var f=this[0],
e=a?f.getElementsByTagName("*"):f.elements;if(!e)return d;var g,h,j,k,p,v;g=0;for(p=e.length;g<p;g++){h=e[g];if(j=h.name)if(a&&f.clk&&h.type=="image"){if(!h.disabled&&f.clk==h){d.push({name:j,value:b(h).val()});d.push({name:j+".x",value:f.clk_x},{name:j+".y",value:f.clk_y})}}else if((k=b.fieldValue(h,true))&&k.constructor==Array){h=0;for(v=k.length;h<v;h++)d.push({name:j,value:k[h]})}else k!==null&&typeof k!="undefined"&&d.push({name:j,value:k})}if(!a&&f.clk){a=b(f.clk);e=a[0];if((j=e.name)&&!e.disabled&&
e.type=="image"){d.push({name:j,value:a.val()});d.push({name:j+".x",value:f.clk_x},{name:j+".y",value:f.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 f=this.name;if(f){var e=b.fieldValue(this,a);if(e&&e.constructor==Array)for(var g=0,h=e.length;g<h;g++)d.push({name:f,value:e[g]});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=
[],f=0,e=this.length;f<e;f++){var g=b.fieldValue(this[f],a);g===null||typeof g=="undefined"||g.constructor==Array&&!g.length||(g.constructor==Array?b.merge(d,g):d.push(g))}return d};b.fieldValue=function(a,d){var f=a.name,e=a.type,g=a.tagName.toLowerCase();if(d===undefined)d=true;if(d&&(!f||a.disabled||e=="reset"||e=="button"||(e=="checkbox"||e=="radio")&&!a.checked||(e=="submit"||e=="image")&&a.form&&a.form.clk!=a||g=="select"&&a.selectedIndex==-1))return null;if(g=="select"){var h=a.selectedIndex;
if(h<0)return null;f=[];g=a.options;var j=(e=e=="select-one")?h+1:g.length;for(h=e?h:0;h<j;h++){var k=g[h];if(k.selected){var p=k.value;p||(p=k.attributes&&k.attributes.value&&!k.attributes.value.specified?k.text:k.value);if(e)return p;f.push(p)}}return f}return b(a).val()};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){var a=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;
return this.each(function(){var d=this.type,f=this.tagName.toLowerCase();if(a.test(d)||f=="textarea")this.value="";else if(d=="checkbox"||d=="radio")this.checked=false;else if(f=="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.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=b(this).parent("select");a&&d[0]&&d[0].type=="select-one"&&d.find("option").selected(false);this.selected=a}})}})(jQuery);
