/************
*
* Rv.Login.js
* Copyright (c) 2008 RavenMultimedia.com
* 
* Date         : 03/20/2008
* Synopsis     : Initialize Rv.Login namespace
* Requirements : Rv.Constants.js needs to be loaded.
*************/

Rv.Login = function (config) {
	
	Ext.QuickTips.init();
	
	var cp = new Ext.state.CookieProvider({
       expires: new Date(new Date().getTime()+(1000*60*60*24*30))
   });
   Ext.state.Manager.setProvider(cp);

	
		var infoPanel = {
			xtype		: 'panel',
			id			: 'logininfo',
			height		: 110,
			border		: false,
			bodyStyle  : {'background-color':'#F3F3F3','padding-top':'3px'},
			html		: '<img src="/images/logo_login.jpg" />'
		};
		
  var login = new Ext.FormPanel({ 
		url:'/_modules/login/_controls/', 
			labelWidth		: 160,
			labelAlign		: 'right',
		padding:200, 
		defaultType:'textfield',
			monitorValid	: true,
			border			: false,
			plain			: true,
			bodyStyle		: {'background-color':'#F3F3F3','padding-top':'5px'},
 		
		items:[{ 
			fieldLabel:'Username', 
			name:'u',
			id:'u', 
			allowBlank:false 
		},{ 
			fieldLabel:'Password', 
			name:'p',
			id:'p',  
			inputType:'password', 
			allowBlank:false 
		}]
	});
       
	var win = new Ext.Window({
		title:'Please Login', 
		width		: 400,
		height		: 234,
		closable  	: false,
		draggable	: false,
		modal 		: true,
		resizable	: false,
		plain		: true,
		border		: false,
		items: [infoPanel, login],
		keys: [{
			key: [10,13],
			fn: submitForm
		}],
		buttons:[{ 
			text:'Login',
			handler:function(){ 
				submitForm(); 
			} 
		}] 
	});
	
	
	function submitForm(){
		cp.set("u",document.getElementById('u').value);
		login.getForm().submit({ 
					method:'POST', 
					waitTitle:'Connecting', 
					waitMsg:'Sending data...',
 
					url:'/_modules/login/_controls/',
					
					success:function(){ 
						win.close();
						var redirect = '/'; 
						window.location = redirect;
					},
					failure:function(form, action){ 
						if(action.failureType == 'server'){ 
							obj = Ext.util.JSON.decode(action.response.responseText); 
							Ext.Msg.alert('Login Failed!', obj.errors.reason); 
						}else{ 
							Ext.Msg.alert('Login Failed!', 'Please enter a username and password to login.'); 
						} 
					} 
				});
	}
	
	win.show();
	
	window.onload = function(){
		if(cp.get("u", "")) {
			document.getElementById('u').value = cp.get("u", "");
			setTimeout("document.getElementById('p').focus()",50);
		}else{
			setTimeout("document.getElementById('u').focus()",50);
		}
	}
	
	if(session){
		Ext.Msg.alert('Session Expired!', 'Your session has expired due to inactivity.  <br />Please log in again.'); 
	}
	
	
	
};

Ext.reg('login', Rv.Login);



