$(function(){
	/**
	 * Extensão jQuery utilizada no módulo de login do e-commerce.
	 */
	jQuery.fn.login = function(settings){
		
		//----------------------------------------------------------------------
		//
		// Variáveis
		//
		//----------------------------------------------------------------------
		/**
		 * Variável de configuração. 
		 */
		var opt = {
			logout:true,
			name:null
		}
		
		/**
		 * Referência da instância.
		 */
		var login;
		
		/**
		 * Estende a array de configurações.
		 */ 
		jQuery.extend(opt, settings);
		
		//----------------------------------------------------------------------
		//
		// Métodos
		//
		//----------------------------------------------------------------------
		/**
		 * Altera o layout conforme a situação Logado / 
		 * Deslogado
		 */
		function modifyLayout(out) {
			
			if(out) {
				$('.modelLogout').show();
				$('.modelLogin').hide();
			} else {
				$('.modelLogout').hide();
				$('.modelLogin').show();
			}
		}
		
		/**
		 * Inclui o load para as requições ajax.
		 */
		function addLoad() {
			$('.addLoadContent').add('<div>')
								.attr('class', 'loading')
								.css({
									'text-align':'center',
									'width':'100px',
									'height':'20px',
									'position':'absolute',
									'top':'5px',
									'left':'0',
									'marginTop':'',
									'marginLeft':'50%',
									'z-index':'300'
								})
								.html('<img src="/images/wait.gif" border="0">')
								.appendTo(document.body);
		}
		
		/**
		 * Remove o load das requisoções AJAX.
		 */
		function removeLoad() {
			$('.loading').remove();
		}
		
		//----------------------------------------------------------------------
		//
		// Main
		//
		//----------------------------------------------------------------------
		return this.each(function(){
			
			$('img[ref=Login]', login).css({
				'cursor':'pointer'
			});
			
			login = $(this);
			
			// Verifica se ja está logado, sendo assim, adiciona o nome.
			if(opt.name) {	
				$('.loginName', login).html(opt.name);
			}
			
			// Ouvinte para a ação de logar-se.
			$('form[name=lOgIn]', login).submit(function(e){
				
				// Recupera o valor dos campos.
				var user = $('input[name=user]').val();
				var pass = $('input[name=password]').val();
				
				// Consiste os valores.
				if(user.length == 0 || pass.length == 0) {
					return false;
				}
				
				//
				// Requisição AJAX para logar-se.
				//
				$.ajax({

					// Define a forma de requisição e seus valores.
					type:"POST",
					dataType:"xml",
					data:"email="+user+"&password="+pass,
					url:"/entryPoint.php?class=ContactWebAjax&method=login",
					
					// Trata o erro.
					error:function(XMLHttpRequest, textStatus, errorThrown) {
						return false;
					},
					
					// Exibe o 'aguarde...'.
					beforeSend: function(){
						addLoad();
					},
					
					// Trata o retorno em caso de sucesso.
					success: function(data, textStatus, XMLHttpRequest){
						
						// Verifica se retornou erro.
						if( $(data).find('error').text()) {
							alert( $(data).find('error').text());
							return;
						} else {
							 location.reload();
						}	
					},
					
					// Executa quando completada a requisição.
					complete: function(){
						removeLoad();
					}
					
				});
				
				e.stopPropagation();
				
				return false;
			});
			 								
		});
	}
	
});
