YAHOO.util.Event.onDOMReady(function() {
  
  var Dom = YAHOO.util.Dom;
  
  var status = Dom.get('status'),
      submit = Dom.get('submit');
  
  var getQueryString = function(fields) {
    for (var i=0; i<fields.length; i++)
      fields[i] = fields[i]+'='+Dom.get(fields[i]).value;
    return fields.join('&');
  }
  
  YAHOO.util.Event.addListener(document.forms[0], 'submit', function(e) {
    
    YAHOO.util.Event.preventDefault(e);
    status.className = '';
    status.innerHTML = '';
    submit.value = 'Please wait...';
    submit.disabled = true;
    
    YAHOO.util.Connect.asyncRequest('POST', '/contact/submit', {
      success: function(o) {
        
        var resp = eval('('+o.responseText+')');
        if (resp.error) {
          status.innerHTML = resp.error;
          status.className = 'error';
        } else {
          status.innerHTML = resp.success;
          status.className = 'success';
        }
        submit.value = 'Submit';
        submit.disabled = false;
        location.href = '/contact#form';
        
      }, failure: function(o) {
        
        status.innerHTML = 'An error occurred while sending your message. Please try again.';
        status.className = 'error';
        submit.value = 'Submit';
        submit.disabled = false;
        location.href = '/contact#form';
        
      }
    }, getQueryString(['name','email','message','recaptcha_challenge_field','recaptcha_response_field']));
    
    Recaptcha.reload();
  });
});