Ext.ns("Vreshenie.window");

Vreshenie.window.UserLoginWindow = Ext.extend(Ext.Window, {
    initComponent : function() {
	
		var formItemDefaults = {
            allowBlank : false,
            anchor     : '-5',
            listeners  : {
                scope      : this,
                specialkey : function(field, e) {
                    if (e.getKey() === e.ENTER && this.handler) {
                        this.handler.call(this.scope);
                    }
                }
            }
        };
		
		var	form = new Ext.FormPanel({
            defaultType : 'textfield',			
            labelWidth  : 70,
            frame       : true,
			monitorValid:true,
            url:'/users/login.php',
            labelAlign  : 'right',
            defaults    : formItemDefaults,
            items       : [{
                fieldLabel : 'Имя',
				vtype      :'email',
				allowBlank :false,
				blankText  :'Введите email',
                name       : 'user'
            },{
				fieldLabel : 'Пароль',
                inputType  : 'password',
				allowBlank :false,
                name       : 'password'
            }],
			buttons   : [
			'->',{
				text    : 'Забыли пароль?',
				iconCls: 'icon-lock-open',				
                handler : function(){
					if(!window.winForgetPassword){
						window.winForgetPassword = new Vreshenie.window.WinForgetPassword();
					}
					if(!window.winForgetPassword.isVisible()){window.winForgetPassword.show();}
				}
			},{
                text    : 'Вход',
				iconCls: 'icon-key',
				formBind: true,                
                handler:function(){
					form.getForm().submit({
						method:'POST',
						waitTitle:'Соединение с сервером',
						waitMsg:'Отправка данных...',
						success:function(form, response){
							var json = response.result;
							if(json.success == true){
								//console.dir(form);
								var user=form.getValues().user,
									password=form.getValues().password;
								Ext.getCmp('button-login').hide();
								Ext.getCmp('button-registration').hide();
								Ext.getCmp('button-user').setText(user);
								Ext.getCmp('button-user').show();
								Ext.getCmp('button-logout').show();
								//Ext.getCmp('toolbarSeparatorFirst').hide();
								Ext.getCmp('win-login-form').hide();
								Ext.Msg.alert('Ответ сервера', 'Логин и пароль верны', function(btn, text){
									
									var expires = new Date(json.end_date*1000);
									Ext.util.Cookies.set('user_id_session',json.user_id_session,expires);
									Ext.util.Cookies.set('user',json.user,expires);
									
									Ext.getCmp('win-login-form').hide();
									
									// Запись данных в статистику
									Ext.Ajax.request({
										url: '/requests/statistic/statistic.php',
										success: function(response, opts) {},
										failure: function(response, opts) {}
									});
								});								
							}
							else {Ext.Msg.alert('Ответ сервера', 'Не предусмотренный ответ сервера', function(btn, text){});}
						},
						failure:function(form, response){							
							var json = response.result;
							if(json.success == false){Ext.Msg.alert('Ответ сервера', 'Вероятно неверный логин или пароль');}
							else{Ext.Msg.alert('Ответ сервера', 'Не предусмотренный ответ сервера.');}
						}
					});
				}
            }]
		});
		
        Ext.apply(this,{
			layout:'fit',			
			closeAction:'hide',
			iconCls: 'icon-key',			
			width:280,
			height:130,
			plain: true,
			closable:true,
			modal:true,
			resizable:false,			
			animateTarget:'button-login',			
            items:form
        });			
        Vreshenie.window.UserLoginWindow.superclass.initComponent.call(this);
    }
});
