function toggle_form(enabled) {
    // Using enabled for readability
    $('betasignup_submit').disabled = !enabled;
    $('beta_invite_email').disabled = !enabled;
}

function show_message(message, success) {
    if (success)
        $('betasignup_message_span').setStyle({ color: 'green' });
    else
        $('betasignup_message_span').setStyle({ color: 'red' });
    
    $('betasignup_message_span').update(message);
    Effect.BlindDown('betasignup_message', { duration: 0.4 });
}

function ajax_success(transport) {
    response = transport.responseText || "0;There was a problem... please try again.";
    response = response.split(';', 2);
    
    success = response[0] == '1';
    if (!success)
        toggle_form(true);
    
    show_message(response[1], success);
}

function ajax_error(transport) {
    show_message('There was a problem... please try again.', 0);
    toggle_form(false);
}

function submit_signup() {
    params = $('betasignup_form').serialize(true);
    
    toggle_form(false);
    
    $('betasignup_message').hide();
    $('betasignup_message_span').update('&nbsp;');
    
    new Ajax.Request(submit_beta_signup_to,
      {
        method: 'post',
        parameters: params,
        onSuccess: ajax_success,
        onFailure: ajax_error
      });
}