function isValidEmail(email) {
  return /^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/.exec(email) != null;
}

function isValid(form) {
  var email = form['ticket[email]'].value;
  var body = form['ticket[body]'].value;
  if (email == '' || body == '') {
    alert('All fields are required');
  } else if (!isValidEmail(email)) {
    alert('Please provide a valid email address.');
  } else {
    return true;
  } 
}

function showForm() {
  $('show-form').hide();
  $('hide-form').show();
  Effect.Appear('question-form-c');
}

function hideForm() {
  $('show-form').show();
  $('hide-form').hide();
  $('question-form-c').hide();
}
  
Event.observe(window, 'load', function () { 
  Event.observe('question-form', 'submit', function(event) {
    $('question-form').hide();
    Effect.Appear($('question-form-result'));
    Event.stop(event); // stop the form from submitting
    if (isValid($('question-form'))) {
      $('question-form').request({
        onSuccess: function(t) {
          $('spinner').hide();
          $('thanks').show();
          setTimeout(function () {
            $('question-form-result').hide();
            $('spinner').show();
            $('thanks').hide();
            $('question-form').reset();
            Effect.Appear('question-form');  
          }, 2000);
        }
      });
    } else {
      $('question-form-result').hide();
      Effect.Appear('question-form');
    }
  });
});

