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