Ext.ns('Ext.app');
Ext.Direct.addProvider(Ext.app.REMOTING_API);

Ext.onReady(function() {

    var tbLoginUsername = new Ext.form.TextField({
        id: 'tbLoginUsername',
        fieldLabel: 'Username',
        allowBlank: false,
        anchor: '-16'
    });
    
    var tbLoginPassword = new Ext.form.TextField({
        id: 'tbLoginPassword',
        fieldLabel: 'Password',
        allowBlank: false,
        inputType: 'password',
        anchor: '-16'
    });
    
    var cbSaveLoginData = new Ext.form.Checkbox({
        id: 'cbSaveLoginData',
        boxLabel: 'Ricorda i dati',
        anchor: '-16'
    });
    
    cbSaveLoginData.on("check", function(chkBox, checked){
        if(checked){
            new Ext.ux.Notification({
	            iconCls: 'x-icon-warning',
	            title:	  'Attenzione',
	            html: 'Si sconsiglia di utilizzare l\'opzione <b>Ricorda i dati</b> in computer utilizzati da pi&ugrave; utenti.',
	            autoDestroy: true,
	            hideDelay: 5000
            }).show(document);
        }
    });
    
    tbLoginUsername.on("specialkey", function(field, ev){
        if(ev.getKey() == ev.ENTER){
            ev.preventDefault();
            btnLogin.fireEvent('click');
        }
    });
    
    tbLoginPassword.on("specialkey", function(field, ev){
        if(ev.getKey() == ev.ENTER){
            ev.preventDefault();
            btnLogin.fireEvent('click');
        }
    });
    
    var btnLogin = new Ext.Button({
        text: 'Login',
        iconCls: 'iconLogin'
    });
    
    var formLogin = new Ext.FormPanel({
        bodyStyle:'padding:5px 5px 0',
        width: 550,
        border: false,
        renderTo: Ext.get('divLoginForm'),
        buttonAlign: 'center',
        items: [
            tbLoginUsername,
            tbLoginPassword,
            cbSaveLoginData
        ],
        buttons: [
            btnLogin
        ]
    });

    btnLogin.on('click', function(e, t) {
        if (formLogin.form.isValid())
        {
            var msgMask = Ext.MessageBox.wait('Login in corso...');
                       
            cookieProvider.clear('condominiLoginFormUsername');
            cookieProvider.clear('condominiLoginFormPassword');
            cookieProvider.clear('condominiLoginFormSaveLogin');
            
            if (cbSaveLoginData.getValue())
            {
                cookieProvider.set('condominiLoginFormUsername', tbLoginUsername.getValue());
                cookieProvider.set('condominiLoginFormPassword', tbLoginPassword.getValue());
                cookieProvider.set('condominiLoginFormSaveLogin', true);    
            }
            else
            {
                cookieProvider.set('condominiLoginFormUsername', '');
                cookieProvider.set('condominiLoginFormPassword', '');
                cookieProvider.set('condominiLoginFormSaveLogin', false); 
            }
            
            DirectUsers.Login(tbLoginUsername.getValue(), 
                tbLoginPassword.getValue(), 
                false,
                function(result,e) {
                    if (result.success == true)
		            {
		                if (result.description == 'PasswordChangeOnAccess')
		                    location.href = '/ChangePassword.aspx';
		                else
		                    location.href = '/Secure/Default.aspx';
		            }   
		            else
		            {
		                Ext.MessageBox.show({
                            title: 'Errore',
                            msg: result.error,
                            buttons: Ext.MessageBox.OK,
                            animEl: 'mb9',
                            icon: 'ext-mb-error'
                        });
		            }
                });
        }
    });
    
    var _defaultUsername = cookieProvider.get('condominiLoginFormUsername', '');
    if (_defaultUsername != '')
        tbLoginUsername.setValue(_defaultUsername);
        
    var _defaultPassword = cookieProvider.get('condominiLoginFormPassword', '');
    if (_defaultPassword != '')
        tbLoginPassword.setValue(_defaultPassword);
        
    var _defaultSaveLogin = cookieProvider.get('condominiLoginFormSaveLogin', false);
    if (_defaultSaveLogin != '')
        cbSaveLoginData.setValue(_defaultSaveLogin);
    
    tbLoginUsername.focus(true, 300);

});
