/* $Id$ */

function login_intern() {
    return formToAgent('login', '/ctt_intern/ctt.login', '/logged_in.html');
}

function send_passwd() {
    return formToAgent('send_password', '/ctt_intern/ctt.send_passwd', '');
}

function change_passwd() {
    return formToAgent('change_password', '/ctt_intern/ctt.change_passwd', '');
}


var actionRunning = false;

function formToAgent(formName, agentUrl, errorUrl) {
    if (actionRunning) {
        return false;
    }
    actionRunning = true;
    document.body.style.cursor = 'wait';
    form = document.forms[formName];
    dojo.xhrPost({
        url: agentUrl,
        form: form,
        handleAs: 'json',
        load: function(response, ioArgs) {
            console.log('Response:', response.rc, response.message, response.page);
            form.action = form.action + '/' + response.page;
            dojo.byId('message').value = response.message;
            if (response.page) {
                form.submit();
            } else {
                msgNode = dojo.byId('loops.messages.top')
                msgNode.innerHTML = response.message;
                msgNode.style.display = 'block';
            }
            document.body.style.cursor = 'auto';
            actionRunning = false;
            return response;
        },
        error: function(response, ioArgs) {
            console.log('Error:', response);
            if (errorUrl) {
                form.action = form.action + errorUrl;
                dojo.byId('message').value = 'error';
                form.submit();
            } else {
                msgNode = dojo.byId('loops.messages.top')
                msgNode.innerHTML = response;
                msgNode.style.display = 'block';
            }
            document.body.style.cursor = 'auto';
            actionRunning = false;
            return response;
        }
    });
    return false;
}


function loginOrRegister() {
    var form = document.forms.login_or_register;
    var selection = '';
    dojo.forEach(form.selection, function(cb) {
        if (cb.checked) selection = cb.value;
    });
    if (selection == 'login') {
        return formToAgent('login_or_register', '/ctt_intern/ctt.login', ' ');
    } else {
        form.login.value = '';
        form.password.value = '';
        return true;
    }
}
