/* sidebar-employee-login.js */

Ext.onReady(function(){
    var email_value, email_div, email_error, password_value, password_div, password_error;

	  Ext.QuickTips.init();
		
    function init(){
        var oForm = Ext.get('sidebar-employee-login-form');
        if(oForm) {
            oForm.on('submit', function(){
								return false;
            }, null, {
                stopEvent: true,
                preventDefault: true
            });
            Ext.fly('sidebar-employee-login-submit').on('click', function(evt, el, o){
                doForm('login');
            }, null, {
                stopEvent: true,
                preventDefault: true
            });
						Ext.fly('sidebar-employee-login-forgot').on('click', function(evt, el, o){
								doForm('reset');
						}, null, {
                stopEvent: true,
                preventDefault: true
						});
        }
    }
    
    function doForm(type){
        var doSubmit = true;
        Ext.fly('sidebar-employee-login').addClass('loading');
				Ext.fly('sidebar-employee-login-loading').setOpacity(80, {duration: .35, easing: 'easeIn'});
        email_value = Ext.fly('sidebar-employee-login-email').getValue();
        if(!email_value || email_value == '' || email_value.length == 0){
            Ext.fly('sidebar-employee-login-email-div').addClass('error');
//            Ext.fly('sidebar-employee-login-email-error').update('Required.');
            doSubmit = false;
        } else {
            Ext.fly('sidebar-employee-login-email-div').removeClass('error');
//            Ext.fly('sidebar-employee-login-email-error').update('');
        }
        if(type != 'reset'){
            password_value = Ext.fly('sidebar-employee-login-password').getValue();
            if(!password_value || password_value == '' || password_value.length == 0){
                Ext.fly('sidebar-employee-login-password-div').addClass('error');
//                Ext.fly('sidebar-employee-login-password-error').update('Required.');
                doSubmit = false;
            } else {
                Ext.fly('sidebar-employee-login-password-div').removeClass('error');
//                Ext.fly('sidebar-employee-login-password-error').update('');
            }
        }
        if(!doSubmit){
						Ext.fly('sidebar-employee-login-loading').setOpacity(0, {duration: .35, easing: 'easeOut'});
            Ext.fly('sidebar-employee-login').removeClass('loading');
        } else {
            Ext.Ajax.request({
              	url: '/login/'
              , params: {
                    email: email_value
                  , password: password_value
                  , type: type
									, redirect_url: Ext.fly('sidebar-employee-login-redirect_url').getValue()
									, redirect: Ext.fly('sidebar-employee-login-redirect').getValue()
                }
              , method: 'POST'
              , success: function(response, obj) {
                    var data = Ext.util.JSON.decode(response.responseText);
                    if(!data.success){
                        if(data.error.email) {
                            Ext.fly('sidebar-employee-login-email-div').addClass('error');
//                            Ext.fly('sidebar-employee-login-email-error').update(data.error.email);
                        } else {
                            Ext.fly('sidebar-employee-login-email-div').removeClass('error');
//                            Ext.fly('sidebar-employee-login-email-error').update('');
                        }
                        if(data.error.password) {
                            Ext.fly('sidebar-employee-login-password-div').addClass('error');
//                            Ext.fly('sidebar-employee-login-password-error').update(data.error.password);
                        } else {
                            Ext.fly('sidebar-employee-login-password-div').removeClass('error');
//                            Ext.fly('sidebar-employee-login-password-error').update('');
                        }
												Ext.fly('sidebar-employee-login-loading').setOpacity(0, {duration: .35, easing: 'easeOut'});
                        Ext.fly('sidebar-employee-login').removeClass('loading');
                        if(data.error.login){
                            Ext.Msg.show({
                                title:'Note',
                                msg: data.error.login,
                                buttons: Ext.Msg.OK,
                                animEl: 'sidebar-employee-login-submit',
                                icon: Ext.MessageBox.ERROR,
                                fn: function(){
                                    Ext.fly('sidebar-employee-login-password').focus();
                                }
                            });
                        }
                    } else {
                        if(data.redirect) {
                            location.replace(data.redirect);
                        } else {
														Ext.fly('sidebar-employee-login-loading').setOpacity(0, {duration: .35, easing: 'easeOut'});
                            Ext.fly('sidebar-employee-login').removeClass('loading');
                            Ext.Msg.show({
                                title:'Note',
                                msg: data.message,
                                buttons: Ext.Msg.OK,
                                animEl: 'sidebar-employee-login-password',
                                icon: Ext.MessageBox.INFO,
                                fn: function(){
                                    Ext.fly('sidebar-employee-login-password').focus();
                                }
                            });
                        }
                    
                    }
                }
            });              
        }
    }
		
		init();
});