//
// Flagatrip login dialog
// Author: Alexey V. Ivanov <mail@aivanov.com>
//

LoginDialog = new Class({

    initialize: function(el) {
        this.element = el;
        this.opened = false;
        this.fx = new Fx.Morph(el, {duration: 1000, link: 'cancel', transition: Fx.Transitions.Back.easeInOut});
        this.element.addEvent('submit', this.onSubmit.bindWithEvent(this));
        // Hide dialog by outside click
        //this.element.getElement('div.formbody').onclick = function (e) { (e || event).stopPropagation(); }
        this.element.addEvent('click', function(e){ e.stopPropagation() });
        $(document.body).addEvent('click', this.onOutsideClick.bindWithEvent(this));
    },

    show: function(e) {
        if (e) new Event(e).stop();

        //ei 20100822 fix http://flagatrip.ru/pm/issues/10 -->
        $('wrapper').appendChild(this.element);
        //-------<

        this.fx.start({'top': 2});
        this.opened = true;
    },

    hide: function() {
        this.fx.start({'top': -248});
        this.opened = false;
    },

    onOutsideClick: function(e) {
        if (this.opened) {
            this.hide();
        }
    },

    onSubmit: function(e) {
        e.stop();
        var log = $('login_loader');
        log.setStyle('display', 'block');
        new FAjax("/ajax.php?action=login", {
            onComplete: function(data) {
                log.setStyle('display', '');
                if (data.errors) {
                    tooltip.show(data.errors, {altClass:'error', anchor:this.element, left:100, top:146});
                } else if (data.result) {
                    if (data.redirect) {
                        location.href = data.redirect;
                    } else {
                        location.reload();
                    }
                }
            }.bind(this)
        }).send(this.element.toQueryString());

    }

});

AuthReq = new Class({
    initialize: function(form) {
        this.form = form;
        this.form.addEvent('submit', this.onSubmit.bindWithEvent(this));
    },

    onSubmit: function(e) {
        e.stop();
        new FAjax("/ajax.php?action=login", {
            onComplete: function(data) {
                 if (data.errors) {
                    tooltip.show(data.errors, {altClass:'error', anchor:this.form, left:75, top:126});
                } else if (data.result) {
                    if (data.redirect) {
                        location.href = data.redirect;
                    } else {
                        location.reload();
                    }
                }
            }.bind(this)
        }).send(this.form.toQueryString());
    }
});

var loginDialog = new LoginDialog($('loginform'));
// Заменяем ссылку на логин-страницу выпадающим окошком, блокируем переход
$('lf_show_button').onclick = function(e) { new Event(e).stop(); loginDialog.show(); return false; }
