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