/*
* Login.js
*
*/

var eudlr_LoginPanel;
var eudlr_User;
var eudlr_userGUID;

(function(){
    var ns = Ext.ns('Ext.ux.plugins');
    /**
     * @class Ext.ux.plugins.DefaultButton
     * @extends Object
     *
     * Plugin for Button that will click() the button if the user presses ENTER while
     * a component in the button's form has focus.
     *
     * @author Stephen Friedrich
     * @date 09-DEC-2009
     * @version 0.1
     *
     **/
    ns.DefaultButton =  Ext.extend(Object, {
        init: function(button) {
            button.on('afterRender', setupKeyListener, button);
        }
    });
    function setupKeyListener() {
        var formPanel = this.findParentByType('form');
        new Ext.KeyMap(formPanel.el, {
            key: Ext.EventObject.ENTER,
            shift: false,
            alt: false,
            fn: function(keyCode, e){
                if(e.target.type === 'textarea' && !e.ctrlKey) {
                    return true;
                }
                this.el.select('button').item(0).dom.click();
                return false;
            },
            scope: this
        });
    }
    Ext.ComponentMgr.registerPlugin('defaultButton', ns.DefaultButton);
})();



function eudlr_LoginResultHandler(res) {
    // Ext.MessageBox.alert('Login', 'res=' + res); return;
    if(eudlr_WaitMsgBox) {
        eudlr_WaitMsgBox.hide();
        eudlr_WaitMsgBox = null;
    }
    if((!res) || (!res.state)) {
        Ext.Msg.minWidth = 360;
        Ext.Msg.show({
            title: 'Systemfehler',
            msg: 'Fehler in der Server-Kommunikation.<br/>Bitte probieren Sie es später noch einmal.',
            modal: true,
            icon: Ext.Msg.ERROR,
            buttons: Ext.Msg.OK
        });
        return;
    }
    if('OK' == res.state) {
        if(res.data) {
            eudlr_User = res.data;
            eudlr_userGUID = eudlr_User.userGUID;
            eudlr_LoginWindow.close();
            eudlr_StartPanel.enable();
            //Ext.MessageBox.alert('Willkommen', 'Willkommen: ' + res.data.firstName + ' ' + res.data.lastName);
        }
        else {
            Ext.Msg.minWidth = 300;
            Ext.Msg.show({
                title: 'Anmeldefehler',
                msg: 'Benutzername oder Kennwort falsch.',
                modal: true,
                icon: Ext.Msg.INFO,
                buttons: Ext.Msg.OK
            });

        }
    }
    else {
        Ext.Msg.minWidth = 360;
        Ext.Msg.show({
            title: 'Systemfehler',
            msg: 'Fehler in der Server-Kommunikation.<br/>Bitte probieren Sie es später noch einmal.',
            modal: true,
            icon: Ext.Msg.STOP,
            buttons: Ext.Msg.OK
        });
    }
}

function eudlr_OpenLogin() {
    eudlr_LoginPanel = new Ext.Panel({
        // title: 'Anmeldung',
        // x : 50,
        // y : 100,
        // collapsible:true,
        preventBodyReset: true,
        width: 400,
        height : 300,
        bodyStyle : 'align : center; font-size : 11pt; padding: 4px;',
        items : [
            {
                xtype : 'label',
                text : eudlr_msg_PleaseUserNameAndPassword,
                style : 'font-weight : bold'
            },
            {
                xtype : 'label',
                html : '<br/><br/>'

            },
            {
                xtype : 'label',
                html : eudlr_msg_RegistrationInfo,
                style : "font-size : 9pt; text-align : center"

            },
            {
                xtype : 'form',
                border:false,
                style : "padding-right : 10px",
                items : [
                    {
                     xtype : 'textfield',
                     id : 'username',
                     name : 'username',
                     fieldLabel : 'Benutzername',
                     // tooltip : 'Bitte geben Sie Ihren Benutzernamen ein',
                     value : (eudlr_test) ? 'martin.schloeter@ekom21.de' : '',
                     width : 260
                    },
                    {
                     xtype : 'textfield',
                     id : 'password',
                     name : 'password',
                     inputType : 'password',
                     fieldLabel : 'Kennwort',
                     tooltip : {
                         text : 'Bitte geben Sie Ihr Kennwort ein',
                         title : 'Hinweis',
                         autoHide : false

                     },
                     width : 260
                    }
                ],
                buttons : [
                    {
                        text : 'OK',
                        plugins: 'defaultButton',
                        handler : function() {
                            if(eudlr_test) {
                                eudlr_userGUID = 'a9d1ddcd-6c35-49e1-8801-2f649f297443';
                                eudlr_LoginWindow.close();
                                eudlr_StartPanel.enable();
                                return;
                            }
                            eudlr_loginUser(
                                Ext.get('username').getValue(),
                                Ext.get('password').getValue(),
                                eudlr_LoginResultHandler
                             );
                             Ext.Msg.getDialog().center = function(){
                                var xy = this.el.getAlignToXY(this.container, 'c-c');
                                this.setPagePosition(200, 300);
                                return this;
                             };
                             eudlr_WaitMsgBox = Ext.MessageBox.wait('Anfrage läuft...', "Server-Anfrage");
                        }
                    },
                    {
                        text : 'Zur Registrierung >>',
                        handler : function() {
                             Ext.Msg.getDialog().center = function(){
                                var xy = this.el.getAlignToXY(this.container, 'c-c');
                                this.setPagePosition(70, 220);
                                return this;
                             };
                            Ext.Msg.show({
                                title: 'Datenschutzhinweis',
                                msg: 'Mit der Registrierung und Nutzung des Antragsassistenten erklären Sie sich einverstanden, dass personenbezogene Daten von Ihnen gespeichert werden.',
                                modal: true,
                                icon: Ext.Msg.QUESTION,
                                buttons: Ext.Msg.OKCANCEL,
                                fn : function(buttonId) {
                                    if(buttonId == 'ok') {
                                        eudlr_OpenRegistration();
                                        eudlr_LoginWindow.disable();
                                    }

                                }
                            });
                            
                        }
                    }
                ]
            }
        ]
    });


    eudlr_LoginWindow = new Ext.Window({
            title:'Anmeldung EU-DLR-Antragsassistent',
            autosize : true,
            x : 150,
            y : 230,
            width: 400,
            height:230,
            closable: false,
            items: eudlr_LoginPanel });
    eudlr_LoginWindow.show();
}




