$(function(){
	/**
	 * Extensão jQuery utilizada no módulo de login do e-commerce.
	 */
	jQuery.fn.loginModelo1 = function(settings){
		
		//----------------------------------------------------------------------
		//
		// Variáveis
		//
		//----------------------------------------------------------------------
		
		/**
		 * Variável de configuração. 
		 */
		var opt = {
			target:'',
			templateLogout:'',
			templateLogin:'',
			domainPath:'', 
			buttonLogin:'',
			buttonLogout:''
		}
		
		/**
		 * Local de alocação do template.
		 */
		var target = '';
		
		/**
		 * Estende a array de configurações.
		 */ 
		jQuery.extend(opt, settings);
		
		//----------------------------------------------------------------------
		//
		// Métodos
		//
		//----------------------------------------------------------------------
		
		/**
		 * Efetua o logof da página.
		 */
		function doLogof() {
			
			// Requisição AJAX para logar-se.
			$.ajax({

				// Define a forma de requisição e seus valores.
				type:"POST",
				dataType:"xml",
				url:"/entryPoint.php?class=ContactWebAjax&method=logoff",
				
				// Trata o erro.
				error:function(XMLHttpRequest, textStatus, errorThrown) {
					$.showError('Erro', textStatus +"<br/>"+XMLHttpRequest.responseText);
				},
				
				// Trata o retorno em caso de sucesso.
				success: function(data, textStatus, XMLHttpRequest){
					
					// Verifica se retornou erro.
					if($(data).find('error').text()) {
						$.showError('Falha no login', $(data).find('error').text());
						return;
					}
					
					// Se o login foi efetuado com sucesso.
					if($(data).find('success')) {
						logoutSuccess();
					}
				}, 
				
				// Adiciona o ouvinte no caso de se completar.
				complete: function() {
					$.closePreload();
				}		
				
			});	
			
			
		}
		
		/**
		 * Altera o template para o sucesso do logout.
		 */
		function logoutSuccess() {
			
			// Recupera o template a ser substituido.
			$.get(opt.templateLogin, 
				function(html){
					
					// Efetua a substituição do html.
					var tempHtml = html.replace('<domainPath>', opt.domainPath);
					
					// Efetua a substituição.
					$(opt.target).html(tempHtml);
					
					//
					maindo($(opt.target));
				}
			);
		}
		
		/**
		 * Sucesso ao se efetuar o login.
		 */
		function loginSuccess(name) {
			
			// Recupera o template a ser substituido.
			$.get(opt.templateLogout, 
				function(html){
					
					// Efetua a substituição do html.
					var tempHtml = html.replace('<nome>', name);
										
					// Efetua a substituição.
					$(opt.target).html(tempHtml);
					
					// 
					maindo($(opt.target));
				}
			);
		}
		
		/**
		 * Efetua o login do cliente.
		 */
		function doLogin(email, password) {
				
			// Requisição AJAX para logar-se.
			$.ajax({

				// Define a forma de requisição e seus valores.
				type:"POST",
				dataType:"xml",
				data:"email="+email+"&password="+password,
				url:"/entryPoint.php?class=ContactWebAjax&method=login",
				
				// Trata o erro.
				error:function(XMLHttpRequest, textStatus, errorThrown) {
					$.showError('Erro', textStatus +"<br/>"+XMLHttpRequest.responseText);
				},
				
				// Exibe o 'aguarde...'.
				beforeSend: function(){
					
				},
				
				// Trata o retorno em caso de sucesso.
				success: function(data, textStatus, XMLHttpRequest){
					
					// Verifica se retornou erro.
					if($(data).find('error').text()) {
						$.showError('Falha no login', $(data).find('error').text());
						return;
					}
					
					// Se o login foi efetuado com sucesso.
					if($(data).find('success')) {
						loginSuccess($(data).find('name').text());
					}
				}, 
				
				complete: function() {
					$.closePreload();
				}			
			});
		}
		
		//----------------------------------------------------------------------
		//
		// Main
		//
		//----------------------------------------------------------------------
		return this.each(function(){
						
			// Define o objeto de destino.
			target = ($(this));
			
			maindo(target)
		});
		
		function maindo(target) {
			
			// Recupera o login.
			var login = $('input[name=email]', target);
			
			// Recupera a senha.
			var senha = $('input[name=senha]', target);
			
			// Efetua o login.
			$(opt.buttonLogin, target).click(function() {
								
				// Mostra o preloader..
				$.showPreload('Aguarde...', false, 200, 0, false);
				
				// Efetua o login.
				doLogin(login.val(), senha.val());
			});
			
			$(opt.buttonLogout, target).click(function() {
				
				// Mostra o preloader..
				$.showPreload('Aguarde...', false, 200, 0, false);
				
				// Efetua o logout.
				doLogof();
			});
		}
			}
});
		
