//Configura a URL da blank image
Ext.BLANK_IMAGE_URL = Ext.BASE_URL + 'lib/ext2/resources/images/default/s.gif';

Ext.namespace('Ext.nce.ciee');

Ext.nce.ciee.Access = Ext.extend(Ext.util.Observable, {
	/**
	 * Inicializa o módulo
	 */
	init : function(){
		//Inicializa o objeto de exibição de mensagens hint
		Ext.QuickTips.init();
		//Define que as mensagens hint serão exibidas dentro 
		//do próprio componente
		Ext.form.Field.prototype.msgTarget = 'qtip';

		//Cria as janelas de login
		//this.createEstagiarioWindow();
		
		//this.createEscolaWindow();

		//this.createEmpresaWindow();
		
		this.createVideoWindow();
		
	},
	
	/**
	 * Cria a janela de autenticação
	 * 
	 * Cria a janela, chamando a função para a criação
	 * do formulário para a entrada dos dados da autenticação.
	 *
	 * @return null Esta função não possui retorno
	 */
	createEstagiarioWindow : function(){
		//Chama função para a criação do formulário de entrada de dados
		this.createEstagiarioForm();
		
		/**
		 * @var Object/Ext.Window window Janela de atenticação
		 */
		this.windowEstagiario = new Ext.Window({
			closable: false,			
			title: 'Acesso do Estagiário',
			width: 245,
			height: 175,	
			iconCls:'restrict',
	        shim:false,
	        animCollapse:false,
	        constrainHeader:true,						
			modal: true,	
			bodyStyle: 'padding: 4px;padding-left:8px;',
			items:[
				this.formEstagiario
			],
			buttons:[
				{
					text: 'Acessar',
					handler: this.requestLogin,
					scope: this
				},
				{
					text: 'Cancelar',
					handler: function(){
						this.formEstagiario.form.reset();
						this.windowEstagiario.hide();
					},
					scope: this
				}
			]
			
		});
		
		//Registra evento para a abertura da janela
		var launcher = Ext.get('area-estagiario');
		launcher.on('click',this.showEstagiario,this)
		
	},
	
	/**
	 * Cria o formulário de entrada da janela de autenticação
	 * 
	 * Cria o formulário de entrada da janela de autenticação
	 * e todos os componentes e elementos do mesmo.
	 *
	 * @return null Esta função não possui retorno
	 */
	createEstagiarioForm : function(){
		/**
		 * @var Object/Ext.form.FormPanel form Formulário de autenticação
		 */
		this.formEstagiario = new Ext.form.FormPanel({
			baseCls: 'x-plain',
			layout: 'column',		
			items:[
				{
					baseCls: 'x-plain',
					buttonAlign: 'right',
					bodyStyle: 'padding-top:4px',
					labelAlign: 'top',
					layout: 'form',								
					width:152,
					items:[ 
						/**
						 * @var Object/Ext.form.TextField loginTextField campo de identificação do login do usuário
						 */
						new Ext.form.TextField({
							allowBlank: false,
							fieldLabel: 'Login',
							name:'login',
							width: 150
						}),
						/**
						 * @var Object/Ext.form.TextField passTextField campo de identificação da senha do usuário
						 */
						new Ext.form.TextField({
							allowBlank: false,
							fieldLabel: 'Senha',
							name:'pass',
							inputType: 'password',
							width: 150
						})
					]
					
				},
				{
					baseCls: 'x-plain',
					bodyStyle: 'padding-left:10px',
					html:'<img src="images/shared/login-est.gif" border="0" style="margin-top:28px;"></img>'
					
				}
		   ]

		});
		
	
	},
	
	showEstagiario : function(){
		this.windowEstagiario.show(Ext.get('area-estagiario'));
	},
	
	
	/**
	 * Cria a janela de autenticação
	 * 
	 * Cria a janela, chamando a função para a criação
	 * do formulário para a entrada dos dados da autenticação.
	 *
	 * @return null Esta função não possui retorno
	 */
	createEscolaWindow : function(){
		//Chama função para a criação do formulário de entrada de dados
		this.createEscolaForm();
		
		/**
		 * @var Object/Ext.Window window Janela de atenticação
		 */
		this.windowEscola = new Ext.Window({
			closable: false,			
			title: 'Acesso da Escola',
			width: 245,
			height: 175,	
			iconCls:'restrict',
	        shim:false,
	        animCollapse:false,
	        constrainHeader:true,						
			modal: true,	
			bodyStyle: 'padding: 4px;padding-left:8px;',
			items:[
				this.formEscola
			],
			buttons:[
				{
					text: 'Acessar',
					handler: this.requestLogin,
					scope: this
				},
				{
					text: 'Cancelar',
					handler: function(){
						this.formEscola.form.reset();
						this.windowEscola.hide();
					},
					scope: this
				}
			]
			
		});
		
		//Registra evento para a abertura da janela
		var launcher = Ext.get('area-escola');
		launcher.on('click',this.showEscola,this)
		
	},
	
	/**
	 * Cria o formulário de entrada da janela de autenticação
	 * 
	 * Cria o formulário de entrada da janela de autenticação
	 * e todos os componentes e elementos do mesmo.
	 *
	 * @return null Esta função não possui retorno
	 */
	createEscolaForm : function(){
		/**
		 * @var Object/Ext.form.FormPanel form Formulário de autenticação
		 */
		this.formEscola = new Ext.form.FormPanel({
			baseCls: 'x-plain',
			layout: 'column',		
			items:[
				{
					baseCls: 'x-plain',
					buttonAlign: 'right',
					bodyStyle: 'padding-top:4px',
					labelAlign: 'top',
					layout: 'form',								
					width:152,
					items:[ 
						/**
						 * @var Object/Ext.form.TextField loginTextField campo de identificação do login do usuário
						 */
						new Ext.form.TextField({
							allowBlank: false,
							fieldLabel: 'Login',
							name:'login',
							width: 150
						}),
						/**
						 * @var Object/Ext.form.TextField passTextField campo de identificação da senha do usuário
						 */
						new Ext.form.TextField({
							allowBlank: false,
							fieldLabel: 'Senha',
							name:'pass',
							inputType: 'password',
							width: 150
						})
					]
					
				},
				{
					baseCls: 'x-plain',
					bodyStyle: 'padding-left:10px',
					html:'<img src="images/shared/login-esc.gif" border="0" style="margin-top:28px;"></img>'
					
				}
		   ]

		});
		
	
	},
	
	showEscola : function(){
		this.windowEscola.show(Ext.get('area-escola'));
	},
	
	
	/**
	 * Cria a janela de autenticação
	 * 
	 * Cria a janela, chamando a função para a criação
	 * do formulário para a entrada dos dados da autenticação.
	 *
	 * @return null Esta função não possui retorno
	 */
	createEmpresaWindow : function(){
		//Chama função para a criação do formulário de entrada de dados
		this.createEmpresaForm();
		
		/**
		 * @var Object/Ext.Window window Janela de atenticação
		 */
		this.windowEmpresa = new Ext.Window({
			closable: false,			
			title: 'Acesso da Empresa',
			width: 245,
			height: 175,	
			iconCls:'restrict',
	        shim:false,
	        animCollapse:false,
	        constrainHeader:true,						
			modal: true,	
			bodyStyle: 'padding: 4px;padding-left:8px;',
			items:[
				this.formEmpresa
			],
			buttons:[
				{
					text: 'Acessar',
					handler: this.requestLogin,
					scope: this
				},
				{
					text: 'Cancelar',
					handler: function(){
						this.formEmpresa.form.reset();
						this.windowEmpresa.hide();
					},
					scope: this
				}
			]
			
		});
		
		//Registra evento para a abertura da janela
		var launcher = Ext.get('area-empresa');
		launcher.on('click',this.showEmpresa,this)
		
	},
	
	/**
	 * Cria o formulário de entrada da janela de autenticação
	 * 
	 * Cria o formulário de entrada da janela de autenticação
	 * e todos os componentes e elementos do mesmo.
	 *
	 * @return null Esta função não possui retorno
	 */
	createEmpresaForm : function(){
		/**
		 * @var Object/Ext.form.FormPanel form Formulário de autenticação
		 */
		this.formEmpresa = new Ext.form.FormPanel({
			baseCls: 'x-plain',
			layout: 'column',		
			items:[
				{
					baseCls: 'x-plain',
					buttonAlign: 'right',
					bodyStyle: 'padding-top:4px',
					labelAlign: 'top',
					layout: 'form',								
					width:152,
					items:[ 
						/**
						 * @var Object/Ext.form.TextField loginTextField campo de identificação do login do usuário
						 */
						new Ext.form.TextField({
							allowBlank: false,
							fieldLabel: 'Login',
							name:'login',
							width: 150
						}),
						/**
						 * @var Object/Ext.form.TextField passTextField campo de identificação da senha do usuário
						 */
						new Ext.form.TextField({
							allowBlank: false,
							fieldLabel: 'Senha',
							name:'pass',
							inputType: 'password',
							width: 150
						})
					]
					
				},
				{
					baseCls: 'x-plain',
					bodyStyle: 'padding-left:10px',
					html:'<img src="images/shared/login-emp.gif" border="0" style="margin-top:28px;"></img>'
					
				}
		   ]

		});
		
	
	},
	
	showEmpresa : function(){
		this.windowEmpresa.show(Ext.get('area-empresa'));
	},
	
	/**
	 * Cria a janela de autenticação
	 * 
	 * Cria a janela, chamando a função para a criação
	 * do formulário para a entrada dos dados da autenticação.
	 *
	 * @return null Esta função não possui retorno
	 */
	createVideoWindow : function(){
		this.video = new Ext.ux.ManagedIframePanel({  
		   xtype: 'iframepanel', 
		   loadMask: true
		});
		
		this.windowVideo = new Ext.Window({
			closable: true,
			modal: true,			
			title: 'Vídeo Institucional',
			width: 341,
			height: 315,	
			iconCls:'video',
			resizable: false,
	        shim:false,
			id:'video',
			closeAction: 'hide',
			layout:'fit',
	        animCollapse:false,
	        constrainHeader:true,							
			bodyStyle: 'padding: 2px;',
			items:[
				this.video
			],
			buttons:[
				{
					text: 'Fechar',
					handler: function(){
						this.video.setSrc('video/blank.html');
						this.windowVideo.hide();
					},
					scope: this
				}
			]
			
		});
		
		//Registra evento para a abertura da janela
		var launcher = Ext.get('area-video');
		launcher.on('click',this.showVideo,this)
		
	},
	
	showVideo : function(){		
		this.windowVideo.show(Ext.get('area-video'));
		this.video.loadMask.msg = "Carregando video...";
		this.video.setSrc('video/video.html');        		
	},
	
	
	requestLogin : function(){
		/*
		Ext.Msg.show({
		   title: 'Aguarde',
		   msg: 'Por favor aguarde, este item ainda está em desenvolvimento...',
		   width: 300,
		   buttons: Ext.MessageBox.OK,
		   icon: Ext.MessageBox.INFO
		});*/		

		//Área do site
		var homeArea = Ext.get('area-home');
		homeArea.dom.style.display = 'none';
		
		//Área restrita
		var restrictArea = Ext.get('area-restrict');
		restrictArea.dom.style.display = 'inline';
		
		this.estudante = new Ext.nce.ciee.estudante.restrict.Main();
		this.estudante.init();
	}
	
	
	

	
});