SVForm={};SVForm.validate=function(form){SVForm.disable(form);SVForm.doreset(form);new Ajax.Request(form.action,{parameters:Form.serialize(form),requestHeaders:["Accept","text/json"],onComplete:function(req){response=eval(req.responseText);var errcount=0;for(var i in response.errors){SVForm.raiseError(i,response.errors[i]);errcount++}if(errcount==0&&response.location){window.location=response.location}SVForm.enable(form)}});return false};SVForm.disable=function(A){inputs=A.getElementsByTagName("input");$A(inputs).map(function(B){if(B.type=="submit"){B.disabled=true;B.lastvalue=B.value;B.value="Sending..."}else{if(B.type=="reset"){Element.hide(B)}}})};SVForm.enable=function(A){inputs=A.getElementsByTagName("input");$A(inputs).map(function(B){if(B.type=="submit"){B.disabled=false;B.value=B.lastvalue}else{if(B.type=="reset"){Element.show(B)}}})};SVForm.clearError=function(A){A=$(A);errors=A.parentNode.getElementsByTagName("H3");$A(errors).map(function(B){Effect.Fade(B,{duration:0.3,afterFinish:function(){if(B.parentNode){B.parentNode.removeChild(B)}}})})};SVForm.raiseError=function(A,B){A=$(A);if(!A){return }errors=A.parentNode.getElementsByTagName("H3");$A(errors).map(function(C){C.parentNode.removeChild(C)});error=document.createElement("H3");error.innerHTML=B;error.style.display="none";A.parentNode.appendChild(error);Effect.Appear(error,{duration:0.3});A.onfocus=function(){SVForm.clearError(this)};A.onkeypress=function(){SVForm.clearError(this)}};SVForm.doreset=function(A){errors=A.getElementsByTagName("H3");$A(errors).map(function(B){Effect.Fade(B,{duration:0.3,afterFinish:function(){if(B.parentNode){B.parentNode.removeChild(B)}}})})};