/**
 * Recupera o xml de endereço baseado no cep 
 */
function getAddreessByCep(cep) {
	
	cep = cep.replace(/-/gi,"");	
	// Define as variáveis
	var ajax = null;
	var url = '/entryPoint.php?plugin=shop&package=web&form=ajax&ajaxAction=getAddress';
	var params = "cep="+cep;
	// Efetua a requisição
	ajax = new Ajax.Request(
		url, {
			method: 'POST', 
			parameters: params, 
			onCreate: onCreateAddressByCep,
			onComplete: onResultAddressByCep
			//onFailure: onFailuleAddressByCep,
			//onException: onExceptionAddressByCep
		}
	);		
}

/**
 * Enquanto aguarda a chamada dentro do servidor pelo AJAX
 */
function onCreateAddressByCep() {
	
	$('erro').innerHTML = 'Aguarde...';
	
	// Limpa os campos.
	$('formAddress').value = "";
	
	$('formAddressDistrict').value = "";
	
	$('formAddressCity').value = "";
	
	$('formAddressState').value = "";
	
}


/**
 * Método responsável por recuperar os nós e retorná-los
 * @param result resultado da requisição getAddreessByCep()
 */
function onResultAddressByCep(result) {
	
	$('erro').innerHTML = "";
	
	// Verifica se retorna algum valor. 
	var response = result.responseText || null;
	//alert(response);
	
	if(response == null){
		$('erro').innerHTML = 'Caso seu CEP não seja encontrado,  continue seu cadastramento.';	
	}
	
	// Define a resposta como xml
	var xml = result.responseXML;
	
	// Define os valores dos inputs
	$('formAddress').value = xml.getElementsByTagName('nome')[0].firstChild.data;
	
	$('formAddressDistrict').value = xml.getElementsByTagName('bairro')[0].firstChild.data;
	
	$('formAddressCity').value = xml.getElementsByTagName('cidade')[0].firstChild.data;
	
	$('formAddressState').value = xml.getElementsByTagName('estado')[0].firstChild.data;
	
}

/**
 * Método executado ao ocorrer alguma excessão.
 */
function onExceptionAddressByCep() {
	
	// Mando o erro ao usuário
	alert('Erro ao efetuar a pesquisa por favor confirme o seu cep.');
}


/** 
 * Método executado ao ocorrer algum erro 
 */
function onFailuleAddressByCep(result) {
	
	// Destravo os inputs
	$('formAddressName').disabled = false;
	$('formAddressDistrict').disabled = false;
	$('formAddressCity').disabled = false;
	$('formAddressState').disabled = false;
	
	// Mudo o foco do ponteiro
	$('formAddressPostalCode').focus();
	
	// Mando o erro ao usuário
	alert('erro ao se efetuar a pesquisa por favor confirme o seu cep.')
}

/*******************************************************************************
 * 
 * Usado em: loja/login
 * 
 ******************************************************************************/
function verifyData(){
	
	// Valor do campo e-mail
	var login = $('emailInput').value;
	
	// Verifica se foi digitado valor no email.
	if(!$('emailInput').value){
		alert('Por favor digite um e-mail válido.');
		$('emailInput').focus();
		return false;	
	}
	// Consiste o email.
	if(!checkMail(login)) {
		alert('Email inválido!');
		$('emailInput').focus();
		return false;
	}
	
	// Verifica se é 1ª compra.
	var firstBuy = $('firstBuy').checked ;
	if(firstBuy == true){
	
		// Verifica se o campo cep está preechido.	
		if($('inputPostalCode').value.length < 9){
			
			alert("Por favor preencha o campo CEP.");
			$('inputPostalCode').focus();
			return false;
		}
		
		// Verifica se o email ja está sendo utulizado.
		// Se os dados estiverem todos corretos, envia o e-mail.
		verifyEmailLogin(login);
	}
	
	// Caso o usuário selecione "JA SOU CADASTRADO".
	var notFirstBuy = $('notFirstBuy').checked;
	if(notFirstBuy == true){
		
		// Verifica se digitou a senha.
		if($('inputPasswd').value.lenght < 3){
			alert('Por favor digite a senha.');
			$('inputPasswd').focus();
			return false;
		}
		
		// Verifica se usuário existe.
		// Se os dados estiverem correto, envia o formulario.
		verifyLogin(login, $('inputPasswd').value, verifyUser);
	}
	
	return false;
}

function verifyUser(result){
	
	// Instancia o retorno da resposta.
	var response = result.responseXML;
	
	// Verifica se ja esta utilizada (false) (true)
	var validate = response.getElementsByTagName('utilizado')[0].firstChild.data;
	
	if(validate == 'false'){
		alert('Usuário ou senha inválido!');
		return false;
	}else{
		document.loginForm.submit();
		return true;
	}
	
}
/*******************************************************************************
 * 
 * Fim da validação loja/login
 * 
 ******************************************************************************/



/**
 * Verifica se o login é valido.
 * 
 */
function verifyEmailLogin(login, onResultVerifyEmail) {
		
	// Define as variáveis
	var url = '/entryPoint.php?plugin=shop&package=web&form=ajax&ajaxAction=verifyEmail';
	
	//var ajax = '';
	var ajax = null;
	var params = "login="+login;
	
	// Efetua a requisição
	ajax = new Ajax.Request(
		url, {
			method: 'POST',
			parameters: params, 
			onComplete: onResultVerifyEmail
		}
	);
}

/**
 * Ouvinte para verificação de falhas no ajax
 */
function onFailuleVerifyEmail() {
	alert('Não foi possível verificar o e-mail.');
}

//------------------------------------------------------------------------------
//
// Login de usuário
//
//------------------------------------------------------------------------------

/**
 * Verifica o login
 */
function verifyLogin(login, passwd, functionResult) {
	
	// Define as variáveis
	var url = '/entryPoint.php?plugin=shop&package=web&form=ajax&ajaxAction=verifyLogin';
	
	//var ajax = '';
	var ajax = null;
	var params = "login="+login+"&passwd="+passwd;
	
	// Efetua a requisição
	ajax = new Ajax.Request(
		url, {
			method: 'POST',
			parameters: params, 
			onComplete: functionResult,
			onFailure: onFailuleVerifyLogin
			//onException: onExceptionVerifyLogin
		}
	);
	
}


function onFailuleVerifyLogin(){
	alert('falha');
}

function onExceptionVerifyLogin() {
	alert('excessao');
}


