var good_color  = '#00FF00';
var bad_color   = '#FF0000';

function refresh_captcha() {
  var now = new Date();
  $('captcha_img').src = '/captcha/index/' + now.getTime();
}

function show_error(message) {
    $("error").style.visibility = "visible";
    $("error_message").innerHTML = message;
}

function hide_error() {
    $("error").style.visibility = "hidden";
}

function submit_email() {
    email = $('email');
    new Ajax.Request('/ajax/check_registration', {
        method: 'post',
        parameters: {'email' : email.value},
        onFailure:
          function() {
            $('regform').submit();
          },
        onSuccess:
            function(transport) {
                var response = transport.responseText;
                var data = response.evalJSON(true);
                if(data.email == 'good') {
                    email.setStyle({background: good_color});
                    hide_error();
                    $('regform').submit();
                } else {
                    email.setStyle({background: bad_color});
                    show_error(data.email);
                }
            }
    });
}

function check_field(name) {
    fld = $(name);
    parms = new Hash();
    parms.set(name, fld.value);
    new Ajax.Request('/ajax/check_registration', {
            method: 'post',
            parameters: parms.toQueryString(),
        onSuccess:
            function(transport)   {
                var data = $H(transport.responseText.evalJSON());
                if(data.get(name) == 'good') {
                    fld.setStyle({ background: good_color });
                    hide_error();
                } else {
                    fld.setStyle({ background: bad_color });
                    show_error(data.get(name));
                }
            }
    });
}

function submit_login() {
    var names = ['name', 'password', 'captcha'];
    var params = new Hash();
    names.each(function(n) {
        params.set(n, $(n).value);
    });
    new Ajax.Request('/ajax/check_registration', {
    method: 'post',
    parameters: params.toQueryString(),
    onFailure:
        function() {
            $('regform').submit();
        },
    onSuccess:
        function(transport)   {
            var data = $H(transport.responseText.evalJSON());
            var enable_submit = true;
            names.each(function(n) {
                if(data.get(n) == 'good') {
                    $(n).setStyle({ background: good_color });
                } else {
                    $(n).setStyle({ background: bad_color });
                    show_error(data.get(n));
                    enable_submit = false;
                }
            });
            if(enable_submit) {
                $('regform').submit();
            }
        }
    });
}

