Event.observe(window, "load", function() { AjaxLogin.init(); });

var AjaxLogin = {

    init: function() {
        AjaxLogin.setHeaderLoginAction();
        AjaxLogin.setHeaderLogoutAction();

        if ($("login")) if (!$("login").value.length && !$("passwd").value.length) {

            $("passwdHelper").show().observe("click", function() {
                AjaxLogin.hideHelpers();
                $("passwd").focus();
            });

            $("loginHelper").show().observe("click", function() {
                AjaxLogin.hideHelpers();
                $("login").focus();
            });

            $("login").observe("focus", AjaxLogin.hideHelpers);
            $("passwd").observe("focus", AjaxLogin.hideHelpers);

            $("login").observe("focus", AjaxLogin.hideToolTip).blur();
            $("passwd").observe("focus", AjaxLogin.hideToolTip).blur();

        }
    },

    hideHelpers: function() {
        $("passwdHelper").hide();
        $("loginHelper").hide();
    },

    hideToolTip: function() {
        $("toolTipWrongAuth").hide();
    },

    writeHeaderLogin: function() {
        // ne pas oublier de modifier le layout default en cas de modif
        var newContent = '<form id="frmAuthAjax" method="post" action="/user-procloginajax">\n'
        + '<input type="text" class="text login" name="nick" id="login" />\n'
        + '<input type="password" class="text passwd" name="password" id="passwd" />\n'
        + '<input type="hidden" name="remember_me" id="remember_me" value="1" />\n'
        + '<input type="submit" class="submit" value="Go" />\n'
        + '<div id="passwdHelper" style="display:none;">Mot de Passe</div>\n'
        + '<div id="loginHelper" style="display:none;">Pseudo</div>\n';
        + '</form>\n';
        $("authFormContainer").innerHTML = newContent;

        newContent = '<a href="' + Configuration.HTTP_DOMAIN + '/user-login" class="insc">Inscription</a><br />\n'
        + '<a href="' + Configuration.HTTP_DOMAIN + '/user-lostpassword" class="lostMdp">Mot de passe perdu</a>\n';
        $("nextToAuthForm").innerHTML = newContent;

        AjaxLogin.setHeaderLoginAction();
    },

    writeHeaderLogout: function(nick) {
        $("authFormContainer").innerHTML = '<span>Bienvenue, <a href="http://' + nick + '.' + Configuration.BLOG_HOST + '/profil">' + nick + '</a></span>\n';

        var newContent = '<a href="' + Configuration.HTTP_DOMAIN + '/user-account" class="profil">Modifier</a><br />\n'
        + '<a href="/user-proclogout" class="logout" id="btnLogout">D&eacute;connexion</a>\n';
        $("nextToAuthForm").innerHTML = newContent;

        AjaxLogin.setHeaderLogoutAction();
    },

    setHeaderLoginAction: function() {
        if($("frmAuthAjax")) Actions.attach("frmAuthAjax", "onsubmit", "AjaxLogin.login");
    },

    setHeaderLogoutAction: function() {
        if($("btnLogout")) Actions.attach("btnLogout", "onclick", "AjaxLogin.logout");
    },

    login: function() {
        $("frmAuthAjax").request({
            onComplete: function(t, xjson) {
                if (xjson.success) {
                    $("toolTipWrongAuth").hide();
                    AjaxLogin.writeHeaderLogout(xjson.login);
                } else {
                    $("toolTipWrongAuth").show();
                }
            }
        });
        return false;
    },

    logout: function() {
        new Ajax.Request(
            $("btnLogout").href,
            {
                onComplete: function() {
                    if($("afterLogout")) {
                        window.location = $F("afterLogout");
                    } else {
                        if ($("addCommentZone")) Comments.hideForm();
                        AjaxLogin.writeHeaderLogin();
                    }
                }
            }
        );
        return false;
    }

};
