/*!
 * jQuery Form Plugin
 * version: 2.73 (03-MAY-2011)
 * @requires jQuery v1.3.2 or later
 *
 * Examples and documentation at: http://malsup.com/jquery/form/
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
(function(b){function m(){if(b.fn.ajaxSubmit.debug){var a="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(a):window.opera&&window.opera.postError&&window.opera.postError(a)}}b.fn.ajaxSubmit=function(a){function c(){function d(){var a=j.attr("target"),i=j.attr("action");c.setAttribute("target",g);c.getAttribute("method")!="POST"&&c.setAttribute("method","POST");c.getAttribute("action")!=e.url&&c.setAttribute("action",e.url);e.skipEncodingOverride|| j.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"});e.timeout&&(r=setTimeout(function(){p=!0;f(!0)},e.timeout));var l=[];try{if(e.extraData)for(var m in e.extraData)l.push(b('<input type="hidden" name="'+m+'" value="'+e.extraData[m]+'" />').appendTo(c)[0]);h.appendTo("body");k.attachEvent?k.attachEvent("onload",f):k.addEventListener("load",f,!1);c.submit()}finally{c.setAttribute("action",i),a?c.setAttribute("target",a):j.removeAttr("target"),b(l).remove()}}function f(a){if(!i.aborted&& !s)if(a===!0&&i)i.abort("timeout");else if((a=k.contentWindow?k.contentWindow.document:k.contentDocument?k.contentDocument:k.document)&&a.location.href!=e.iframeSrc||p){k.detachEvent?k.detachEvent("onload",f):k.removeEventListener("load",f,!1);var d=!0;try{if(p)throw"timeout";var c=e.dataType=="xml"||a.XMLDocument||b.isXMLDoc(a);m("isXml="+c);if(!c&&window.opera&&(a.body==null||a.body.innerHTML=="")&&--u){m("requeing onLoad callback, DOM not available");setTimeout(f,250);return}i.responseText=a.body? a.body.innerHTML:a.documentElement?a.documentElement.innerHTML:null;i.responseXML=a.XMLDocument?a.XMLDocument:a;if(c)e.dataType="xml";i.getResponseHeader=function(a){return{"content-type":e.dataType}[a]};var g=/(json|script|text)/.test(e.dataType);if(g||e.textarea){var j=a.getElementsByTagName("textarea")[0];if(j)i.responseText=j.value;else if(g){var n=a.getElementsByTagName("pre")[0],o=a.getElementsByTagName("body")[0];if(n)i.responseText=n.textContent;else if(o)i.responseText=o.innerHTML}}else if(e.dataType== "xml"&&!i.responseXML&&i.responseText!=null)i.responseXML=v(i.responseText);t=w(i,e.dataType,e)}catch(q){m("error caught:",q),d=!1,i.error=q,e.error&&e.error.call(e.context,i,"error",q),l&&b.event.trigger("ajaxError",[i,e,q])}i.aborted&&(m("upload aborted"),d=!1);d&&(e.success&&e.success.call(e.context,t,"success",i),l&&b.event.trigger("ajaxSuccess",[i,e]));l&&b.event.trigger("ajaxComplete",[i,e]);l&&!--b.active&&b.event.trigger("ajaxStop");e.complete&&e.complete.call(e.context,i,d?"success":"error"); s=!0;e.timeout&&clearTimeout(r);setTimeout(function(){h.removeData("form-plugin-onload");h.remove();i.responseXML=null},100)}}var c=j[0];if(b(":input[name=submit],:input[id=submit]",c).length)alert('Error: Form elements must not have name or id of "submit".');else{var e=b.extend(!0,{},b.ajaxSettings,a);e.context=e.context||e;var g="jqFormIO"+(new Date).getTime(),h=b('<iframe id="'+g+'" name="'+g+'" src="'+e.iframeSrc+'" />'),k=h[0];h.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(a){a=a==="timeout"?"timeout":"aborted";m("aborting upload... "+a);this.aborted=1;h.attr("src",e.iframeSrc);i.error=a;e.error&&e.error.call(e.context,i,a,a);l&&b.event.trigger("ajaxError",[i,e,a]);e.complete&&e.complete.call(e.context,i,a)}},l=e.global;l&&!b.active++&&b.event.trigger("ajaxStart");l&&b.event.trigger("ajaxSend",[i, e]);if(e.beforeSend&&e.beforeSend.call(e.context,i,e)===!1)e.global&&b.active--;else if(!i.aborted){var p=0,r,n=c.clk;if(n){var o=n.name;if(o&&!n.disabled&&(e.extraData=e.extraData||{},e.extraData[o]=n.value,n.type=="image"))e.extraData[o+".x"]=c.clk_x,e.extraData[o+".y"]=c.clk_y}e.forceSync?d():setTimeout(d,10);var t,u=50,s,v=b.parseXML||function(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.nodeName!="parsererror"?b:null},x=b.parseJSON||function(a){return window.eval("("+a+")")},w=function(a,d,e){var c=a.getResponseHeader("content-type")||"",f=d==="xml"||!d&&c.indexOf("xml")>=0,a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&b.error&&b.error("parsererror");e&&e.dataFilter&&(a=e.dataFilter(a,d));typeof a==="string"&&(d==="json"||!d&&c.indexOf("json")>=0?a=x(a):(d==="script"||!d&&c.indexOf("javascript")>=0)&&b.globalEval(a)); return a}}}}if(!this.length)return m("ajaxSubmit: skipping submit process - no element selected"),this;typeof a=="function"&&(a={success:a});var f=this.attr("action");(f=typeof f==="string"?b.trim(f):"")&&(f=(f.match(/^([^#]+)/)||[])[1]);f=f||window.location.href||"";a=b.extend(!0,{url:f,success:b.ajaxSettings.success,type:this[0].getAttribute("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},a);f={};this.trigger("form-pre-serialize",[this,a,f]); if(f.veto)return m("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(a.beforeSerialize&&a.beforeSerialize(this,a)===!1)return m("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var d,h,g=this.formToArray(a.semantic);if(a.data)for(d in a.extraData=a.data,a.data)if(a.data[d]instanceof Array)for(var k in a.data[d])g.push({name:d,value:a.data[d][k]});else h=a.data[d],h=b.isFunction(h)?h():h,g.push({name:d,value:h});if(a.beforeSubmit&&a.beforeSubmit(g,this,a)===!1)return m("ajaxSubmit: submit aborted via beforeSubmit callback"), this;this.trigger("form-submit-validate",[g,this,a,f]);if(f.veto)return m("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;d=b.param(g);a.type.toUpperCase()=="GET"?(a.url+=(a.url.indexOf("?")>=0?"&":"?")+d,a.data=null):a.data=d;var j=this,l=[];a.resetForm&&l.push(function(){j.resetForm()});a.clearForm&&l.push(function(){j.clearForm()});if(!a.dataType&&a.target){var p=a.success||function(){};l.push(function(d){var c=a.replaceTarget?"replaceWith":"html";b(a.target)[c](d).each(p,arguments)})}else a.success&& l.push(a.success);a.success=function(b,d,c){for(var e=a.context||a,f=0,g=l.length;f<g;f++)l[f].apply(e,[b,d,c||j,j])};d=b("input:file",this).length>0;k=j.attr("enctype")=="multipart/form-data"||j.attr("encoding")=="multipart/form-data";a.iframe!==!1&&(d||a.iframe||k)?a.closeKeepAlive?b.get(a.closeKeepAlive,c):c():b.ajax(a);this.trigger("form-submit-notify",[this,a]);return this};b.fn.ajaxForm=function(a){if(this.length===0){var c={s:this.selector,c:this.context};if(!b.isReady&&c.s)return m("DOM not ready, queuing ajaxForm"), b(function(){b(c.s,c.c).ajaxForm(a)}),this;m("terminating; zero elements found by selector"+(b.isReady?"":" (DOM not ready)"));return this}return this.ajaxFormUnbind().bind("submit.form-plugin",function(c){c.isDefaultPrevented()||(c.preventDefault(),b(this).ajaxSubmit(a))}).bind("click.form-plugin",function(a){var d=a.target,c=b(d);if(!c.is(":submit,input:image")){d=c.closest(":submit");if(d.length==0)return;d=d[0]}var g=this;g.clk=d;if(d.type=="image")a.offsetX!=void 0?(g.clk_x=a.offsetX,g.clk_y= a.offsetY):typeof b.fn.offset=="function"?(c=c.offset(),g.clk_x=a.pageX-c.left,g.clk_y=a.pageY-c.top):(g.clk_x=a.pageX-d.offsetLeft,g.clk_y=a.pageY-d.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 c=[];if(this.length===0)return c;var f=this[0],d=a?f.getElementsByTagName("*"):f.elements;if(!d)return c;var h,g,k,j,l,m;h=0;for(l=d.length;h<l;h++)if(g=d[h], k=g.name)if(a&&f.clk&&g.type=="image")!g.disabled&&f.clk==g&&(c.push({name:k,value:b(g).val()}),c.push({name:k+".x",value:f.clk_x},{name:k+".y",value:f.clk_y}));else if((j=b.fieldValue(g,!0))&&j.constructor==Array){g=0;for(m=j.length;g<m;g++)c.push({name:k,value:j[g]})}else j!==null&&typeof j!="undefined"&&c.push({name:k,value:j});if(!a&&f.clk&&(a=b(f.clk),d=a[0],(k=d.name)&&!d.disabled&&d.type=="image"))c.push({name:k,value:a.val()}),c.push({name:k+".x",value:f.clk_x},{name:k+".y",value:f.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 f=this.name;if(f){var d=b.fieldValue(this,a);if(d&&d.constructor==Array)for(var h=0,g=d.length;h<g;h++)c.push({name:f,value:d[h]});else d!==null&&typeof d!="undefined"&&c.push({name:this.name,value:d})}});return b.param(c)};b.fn.fieldValue=function(a){for(var c=[],f=0,d=this.length;f<d;f++){var h=b.fieldValue(this[f],a);h===null||typeof h=="undefined"||h.constructor== Array&&!h.length||(h.constructor==Array?b.merge(c,h):c.push(h))}return c};b.fieldValue=function(a,c){var f=a.name,d=a.type,h=a.tagName.toLowerCase();c===void 0&&(c=!0);if(c&&(!f||a.disabled||d=="reset"||d=="button"||(d=="checkbox"||d=="radio")&&!a.checked||(d=="submit"||d=="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;for(var f=[],h=a.options,k=(d=d=="select-one")?g+1:h.length,g=d?g:0;g<k;g++){var j=h[g];if(j.selected){var l= j.value;l||(l=j.attributes&&j.attributes.value&&!j.attributes.value.specified?j.text:j.value);if(d)return l;f.push(l)}}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(){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=!1;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()})};b.fn.enable=function(a){a===void 0&&(a=!0);return this.each(function(){this.disabled=!a})};b.fn.selected=function(a){a===void 0&&(a=!0);return this.each(function(){var c=this.type;if(c=="checkbox"||c=="radio")this.checked=a;else if(this.tagName.toLowerCase()=="option")c=b(this).parent("select"),a&&c[0]&&c[0].type=="select-one"&&c.find("option").selected(!1), this.selected=a})}})(jQuery);

