

Ext.onReady(function(){
	Ext.EventManager.onWindowResize(centerPanel);
	
	
	var loginPanel = Ext.get("total");
	

	var loginBtn = Ext.get("submitBtn");
	loginBtn.on({
		'click': { fn: login }
	});

	var enterKey = Ext.get("field2");
	enterKey.on({
		'keydown': { fn:function(e){		
			if (e.keyCode==13){
				login();	
			}			
		  }
		}
	});
	
	
	//Ext.get("field3-label").setDisplayed('none');
	//Ext.get("field3").setDisplayed('none');

	centerPanel();
	
	function centerPanel(){
		var xy = loginPanel.getAlignToXY(document, 'c-c');
		positionPanel(loginPanel, xy[0], xy[1]);
	}
	
	function hideLoginFields(){
		Ext.get("field1-label").setDisplayed('none');
		Ext.get("field1").setDisplayed('none');
		Ext.get("field2-label").setDisplayed('none');
		Ext.get("field2").setDisplayed('none');
	}
	
	function showmessage(mge,ico){
		Ext.MessageBox.show({
			 title:'Alerta'
			,msg:mge
			,cls:'qo-login-alert'
			,modal:true		
			,icon:ico
			,buttons:Ext.MessageBox.OK
		});		
	}
	
	/*function loadGroupField(d){
		var combo = Ext.get("field3");
		var comboEl = combo.dom;
		
		while(comboEl.options.length){
			comboEl.options[0] = null;
		}
		
		for(var i = 0, len = d.length; i < len; i++){
			comboEl.options[i] = new Option(d[i][1], d[i][0]);
		}
	}*/
	
	function login(){
		
		var emailField = Ext.get("field1");
		var email = emailField.dom.value;
		var pwdField = Ext.get("field2");
		var pwd = pwdField.dom.value;
		
		//var groupField = Ext.get("field3");
		//var group = groupField.dom.value;
		
		if(validate(email) === false){			
			showmessage("O login é obrigatório",Ext.MessageBox.WARNING);
			return false;
		}
		
		if(validate(pwd) === false){	
			showmessage("A senha é obrigatória",Ext.MessageBox.WARNING);
			return false;
		}
		
		loginPanel.mask('Por favor aguarde...', 'x-mask-loading');
		
		Ext.Ajax.request({
			url: 'system/login/login.php'
			, params: {
				module: 'login'
				, usuario: email
				, senha: pwd
				
			}
			, success: function(o){
				loginPanel.unmask();
							
				if(typeof o == 'object'){
					var d = Ext.decode(o.responseText);
					
					if(typeof d == 'object'){
						if(d.success == true){
							var g = d.groups;
							
							if(g && g.length > 0){	
								hideLoginFields();
								//showGroupField();
						
								var d = [];
								for(var i = 0, len = g.length; i < len; i++){
									d.push([g[i].id, g[i].name]);
								}
								
								//loadGroupField(d);
								
							}else if(d.sessionId !== ""){
								
								loginPanel.mask('Redirecionando...', 'x-mask-loading');
								
								// get the path
								var path = window.location.pathname,
									path = path.substring(0, path.lastIndexOf('/') + 1);
								path = 'home.php';	
								// set the cookie
								//set_cookie('sessionId', d.sessionId, '', path, '', '' );
								
								// redirect the window
								window.location = path;
								
							}
						}else{
							if(d.errors && d.errors[0].msg){								
								showmessage(d.errors[0].msg,Ext.MessageBox.ERROR);
							}else{
								showmessage('Erro desconhecido no servidor',Ext.MessageBox.ERROR);								
							}
						}
					}
				}
			}
			, failure: function(){
				loginPanel.unmask();				
				showmessage('Conexão perdida com o servidor',Ext.MessageBox.ERROR);	
			}
		});
	}
	
	function positionPanel(el, x, y){
        if(x && typeof x[1] == 'number'){
            y = x[1];
            x = x[0];
        }
        el.pageX = x;
        el.pageY = y;
       	
        if(x === undefined || y === undefined){ // cannot translate undefined points
            return;
        }
        
        if(y < 0){ y = 10; }
        
        var p = el.translatePoints(x, y);
        el.setLocation(p.left, p.top);
        return el;
    }
    
    function showGroupField(){
		//Ext.get("field3-label").setDisplayed(true);
		//Ext.get("field3").setDisplayed(true);
	}
    
    function validate(field){
		if(field === ""){
			//field.markInvalid();
			return false;
		}
		return true;
	}
});