// JavaScript Document
/* Função Imagem Selecionada */

function selecionado(id, img_selecionada)
{
	document.getElementById(id).src = img_selecionada;
}

function deseleciona(id, pagina_atual, img_deselecionada)
{
	if (id+".php" != pagina_atual)
	{
		document.getElementById(id).src = img_deselecionada;
	}
}


/* Função do Carrinho de Compras */

function validaForm(d) 
{
	var valido = true;
	var fields = document.getElementsByClassName("obrigatorio");
	var msg = "Campo obrigatório inválido.";
	
	for (var i = 0; i < fields.length; i++) {
		if (fields[i].value == "") {
			//setErro(fields[i], msg);
			alert("Campo "+ fields[i].alt +" inválido.");
			valido = false;

		} /*else {
			unsetErro(fields[i]);
		}*/
	}
	return valido;
}

function createRequest()
{
  try {
    request = new XMLHttpRequest();
  } catch (tryMS) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (otherMS) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = null;
      }
    }
  }
  return request;
}

function remover(id)
{
	//Criar o objeto de solicitação para remover o produto
	var request = createRequest();

	if(request == null)
	{
		alert("Impossível remover produto, seu navegador não tem suporte ao ajax!");
		return;
	}

	request.onreadystatechange = atualizaTela;
	request.open ("GET", "remover_produto.php?id_produto="+id+"&session=cesta", false);
	request.send(null);
}

function atualizaTela()
{
	if (request.readyState == 4)
	{
		if (request.status == 200)
		{
			//atualiza a tela
			document.forms[0].submit();
		}
	}
}

function finalizar()
{
	document.forms[0].action = "login.php";
}

function alterar()
{
	document.altera_carrinho.opc_alterar.value = 1;
	document.altera_carrinho.submit();
}

/* Função do Cadastro */

//Funcao de validação

 function validaFormCadastro(){
           d = document.cadastro;
           //validar nome
           if (d.nome.value == ""){
                     alert("O campo nome completo deve ser preenchido!");
                     d.nome.focus();
                     return false;
           } else if (!IsLETRAS(d.nome.value))
		 			{
						alert ("O campo nome deve ter apenas letras!");
					    d.nome.focus();
					    return false;
					}
         //validar email
         if (d.email.value == ""){
                   alert("O campo email deve ser preenchido!");
                   d.email.focus();
                   return false;
         }
         //validar email(verificao de endereco eletrônico)
         parte1 = d.email.value.indexOf("@");
//         parte2 = d.email.value.indexOf(".");
         parte3 = d.email.value.length;
//         if (!(parte1 >= 3 && parte2 >= 6 && parte3 >= 9)) {
         if (!(parte1 >= 3 && parte3 >= 9)) {
                   alert ("O campo email deve conter um endereco eletrônico válido!");
                   d.email.focus();
                   return false;
         }
		  //validar senha
         if (d.senha.value == ""){
                   alert("O campo senha deve ser preenchido!");
                   d.senha.focus();
                   return false;
         }
		//validar data de nascimento
         erro=0;
         hoje = new Date();
         anoAtual = hoje.getFullYear();
         barras = d.data_nascimento.value.split("/");
         if (barras.length == 3){
                   dia = barras[0];
                   mes = barras[1];
                   ano = barras[2];
                   resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano <= anoAtual && ano >= 1900));
                   if (!resultado) {
                             alert("Formato de data invalido!");
                             d.data_nascimento.focus();
                             return false;
                   }
         } else {
                   alert("Formato de data invalido!");
                   d.data_nascimento.focus();
                   return false;
         }
		 //validar sexo
         if (!d.sexo[0].checked && !d.sexo[1].checked) {
                   alert("Escolha o sexo!");
                   return false;
         }
		 //validar cpf
         if (d.cpf.value == ""){
                   alert ("O campo CPF deve ser preenchido!");
                   d.cpf.focus();
                   return false;
         } else if (!validaCPF(d.cpf.value))
		 			{
						alert ("O número do CPF deve ser válido!");
					    d.cpf.focus();
					    return false;
					}
		 //validar logradouro
         if (d.logradouro.value == "") {
                   alert("Escolha o logradouro!");
                   return false;
         }
		 //validar endereco
         if (d.endereco.value == "") {
                   alert("O campo endereço deve ser preenchido!");
				   d.endereco.focus();
                   return false;
         }
		 //validar numero
         if (d.numero.value == "") {
                   alert("O campo numero deve ser preenchido!");
				   d.numero.focus();
                   return false;
         }
		 //validar bairro
         if (d.bairro.value == "") {
                   alert("O campo bairro deve ser preenchido!");
				   d.bairro.focus();
                   return false;
         }
		 //validar cep
         if (d.cep.value == "") {
                   alert("O campo CEP deve ser preenchido!");
				   d.cep.focus();
                   return false;
         } else if (!IsCEP(d.cep.value))
		 			{
						alert ("CEP deve ser válido!");
					    d.cep.focus();
					    return false;
					}
					
		 //validar cidade
         if (d.cidade.value == "") {
                   alert("O campo cidade deve ser preenchido!");
				   d.cidade.focus();
                   return false;
         }
		 //validar estado
         if (d.estado.value == "") {
                   alert("Escolha o estado!");
                   return false;
         }
         //validar telefone
         if (d.telefone.value == ""){
                   alert ("O campo telefone deve ser preenchido!");
                   d.telefone.focus();
                   return false;
          } else if (!IsTELEFONE(d.telefone.value))
		 			{
						alert ("O telefone deve ser válido!");
					    d.telefone.focus();
					    return false;
					}
		 if (d.email.className == "verificando")
		 {
		 	alert ("Aguarde! Seu email está sendo verificado.");
			return false;
		 } else if (d.email.className == "negado")
		 	{
				alert ("Já existe um cadastro em nosso site utilizando este email!");
				return false;
			}
 
         return true;
        
 }

//Fim da função de validacao


//função para validar CPF
function validaCPF(s) {
	//tira o ponto e hifen do CPF
	var aux = s.split(".");
	s = aux[0]+aux[1]+aux[2];
	aux = s.split("-");
	s = aux[0]+aux[1];

	//comeca o calculo
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (var i=0; i<9; i++) {
		d1 += c.charAt(i)*(10-i);
 	}
	if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1){
		return false;
	}
	d1 *= 2;
	for (var i = 0; i < 9; i++)	{
 		d1 += c.charAt(i)*(11-i);
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1){
		return false;
	}
    return true;
}
//fim da funçao validar CPF


 // Função para validação de telefone e celular.
    function IsTELEFONE(strTELEFONE)
        {
            // Caso o CEP não esteja nesse formato ele é inválido!
            var objER = /^\(\d{2}\) \d{4}-\d{4}$/;

            strTELEFONE = Trim(strTELEFONE)

            if(strTELEFONE.length > 0)
                {
					
                    if(objER.test(strTELEFONE))
                        return true;
                    else
                        return false;
                }
            else
                return false;
        }

	 // Função para validação de Letras.
    function IsLETRAS(strLETRAS)
        {
            // Caso o nome não esteja nesse formato ele é inválido!
            var objER = /^[A-Za-z ÁáÉéÍíÓóÃâÊêÎîÔôÛûÃãÕõ]{1,}$/;

            strLETRAS = Trim(strLETRAS)

            if(strLETRAS.length > 0)
                {
					
                    if(objER.test(strLETRAS))
                        return true;
                    else
                        return false;
                }
            else
                return false;
        }

	 // Função para validação de RG.
    function IsRG(strRG)
        {
            // Caso o CEP não esteja nesse formato ele é inválido!
            var objER = /^[0-9]{2}.[0-9]{3}.[0-9]{3}-[0-9]{1}$/;

            strRG = Trim(strRG)

            if(strRG.length > 0)
                {
					
                    if(objER.test(strRG))
                        return true;
                    else
                        return false;
                }
            else
                return false;
        }

    // Função para validação de CEP.
    function IsCEP(strCEP)
        {
            // Caso o CEP não esteja nesse formato ele é inválido!
            var objER = /^[0-9]{5}-[0-9]{3}$/;

            strCEP = Trim(strCEP)

            if(strCEP.length > 0)
                {
					
                    if(objER.test(strCEP))
                        return true;
                    else
                        return false;
                }
            else
                return false;
        }
		
		function Trim(strTexto)
        {
            // Substitúi os espaços vazios no inicio e no fim da string por vazio.
            return strTexto.replace(/^\s+|\s+$/g, '');
        }
		
		
		//Funcao de mascara

	function formatar_mascara(src, mascara) {
		var campo = src.value.length;
		var saida = mascara.substring(0,1);
		var texto = mascara.substring(campo);
		if(texto.substring(0,1) != saida) {
			src.value += texto.substring(0,1);
		}
	}

    /*Função  Pai de Mascaras*/
    function Mascara(o,f){
        v_obj=o
        v_fun=f
        setTimeout("execmascara()",1)
    }
    
    /*Função que Executa os objetos*/
    function execmascara(){
        v_obj.value=v_fun(v_obj.value)
    }
    
    /*Função que Determina as expressões regulares dos objetos*/
    function leech(v){
        v=v.replace(/o/gi,"0")
        v=v.replace(/i/gi,"1")
        v=v.replace(/z/gi,"2")
        v=v.replace(/e/gi,"3")
        v=v.replace(/a/gi,"4")
        v=v.replace(/s/gi,"5")
        v=v.replace(/t/gi,"7")
        return v
    }
    
    /*Função que permite apenas numeros*/
    function Integer(v){
        return v.replace(/\D/g,"")
    }
    
    /*Função que padroniza telefone (11) 4184-1241*/
    function Telefone(v){
        v=v.replace(/\D/g,"")                 
        v=v.replace(/^(\d\d)(\d)/g,"($1) $2") 
        v=v.replace(/(\d{4})(\d)/,"$1-$2")    
        return v
    }
    
    /*Função que padroniza telefone (11) 41841241*/
    function TelefoneCall(v){
        v=v.replace(/\D/g,"")                 
        v=v.replace(/^(\d\d)(\d)/g,"($1) $2")    
        return v
    }
    
    /*Função que padroniza CPF*/
    function Cpf(v){
        v=v.replace(/\D/g,"")                    
        v=v.replace(/(\d{3})(\d)/,"$1.$2")       
        v=v.replace(/(\d{3})(\d)/,"$1.$2")       
                                                 
        v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") 
        return v
    }
    
    /*Função que padroniza CEP*/
    function Cep(v){
        v=v.replace(/D/g,"")                
        v=v.replace(/^(\d{5})(\d)/,"$1-$2") 
        return v
    }
    
    /*Função que padroniza CNPJ*/
    function Cnpj(v){
        v=v.replace(/\D/g,"")                   
        v=v.replace(/^(\d{2})(\d)/,"$1.$2")     
        v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") 
        v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           
        v=v.replace(/(\d{4})(\d)/,"$1-$2")              
        return v
    }
    
    /*Função que permite apenas numeros Romanos*/
    function Romanos(v){
        v=v.toUpperCase()             
        v=v.replace(/[^IVXLCDM]/g,"") 
        
        while(v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"")!="")
            v=v.replace(/.$/,"")
        return v
    }
    
    /*Função que padroniza o Site*/
    function Site(v){
        v=v.replace(/^http:\/\/?/,"")
        dominio=v
        caminho=""
        if(v.indexOf("/")>-1)
            dominio=v.split("/")[0]
            caminho=v.replace(/[^\/]*/,"")
            dominio=dominio.replace(/[^\w\.\+-:@]/g,"")
            caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"")
            caminho=caminho.replace(/([\?&])=/,"$1")
        if(caminho!="")dominio=dominio.replace(/\.+$/,"")
            v="http://"+dominio+caminho
        return v
    }

    /*Função que padroniza DATA*/
    function Data(v){
        v=v.replace(/\D/g,"") 
        v=v.replace(/(\d{2})(\d)/,"$1/$2") 
        v=v.replace(/(\d{2})(\d)/,"$1/$2") 
        return v
    }
    
    /*Função que padroniza DATA*/
    function Hora(v){
        v=v.replace(/\D/g,"") 
        v=v.replace(/(\d{2})(\d)/,"$1:$2")  
        return v
    }
    
    /*Função que padroniza valor monétario*/
    function Valor(v){
        v=v.replace(/\D/g,"") //Remove tudo o que não é dígito
        v=v.replace(/^([0-9]{3}\.?){3}-[0-9]{2}$/,"$1.$2");
        //v=v.replace(/(\d{3})(\d)/g,"$1,$2")
        v=v.replace(/(\d)(\d{2})$/,"$1.$2") //Coloca ponto antes dos 2 últimos digitos
        return v
    }
    
    /*Função que padroniza Area*/
    function Area(v){
        v=v.replace(/\D/g,"") 
        v=v.replace(/(\d)(\d{2})$/,"$1.$2") 
        return v
        
    }

//fim da Funcao de mascara

function showEmailStatus() 
{
	//atualize a pagina pata mostrar se o nome do usuario é bom
	if (request.readyState == 4)
	{
		if (request.status == 200)
		{
			if (request.responseText == "okay")
			{
				 //validar email(verificao de endereco eletrônico)
				 parte1 = document.cadastro.email.value.indexOf("@");
				 parte3 = document.cadastro.email.value.length;
				 if (!(parte1 >= 3 && parte3 >= 9)) 
				 {
						   //Se houve um problema, informamos ao usuario
							document.getElementById("email").className = "negado";
							document.getElementById("email").focus();
							document.getElementById("email").select();
         		 }
				 else
				 {		 
					//Se tudo estiver bem, nenhuma mensagem de erro será mostrada
					document.getElementById("email").className = "aprovado";
				 }
			}
			else
			{
				//Se houve um problema, informamos ao usuario
				document.getElementById("email").className = "negado";
				document.getElementById("email").focus();
				document.getElementById("email").select();
			}
		}
	}
}

function checkEmail() 
{
	document.getElementById("email").className = "verificando";

	//obtenha um objeto de solicitacao e envie-o para o servidor
	request = createRequest();
	
	if (request == null)
	{
		alert("ERRO: Seu navegador não tem suporte a ajax!");
	}
	else
	{
		var theEmail = document.getElementById("email").value;
		var email = escape(theEmail);
		var url = "checkEmail.php?email=" + email;
		request.onreadystatechange = showEmailStatus;
		request.open("GET", url, true);
		request.send(null);
	}
}


 /* Função do Finalizar Compra */

//Funcao de validação

 function validaFormFinaliza(){
 		//verifica se foi clicado em alterar endereco
 		if(document.getElementById("endereco_entrega_novo").className == "mostra")
		{
			 d = document.Form_FinalizaCompra;
			   
			 //validar logradouro
			 if (d.logradouro.value == "") {
					   alert("Escolha o logradouro!");
					   return false;
			 }
			 //validar endereco
			 if (d.endereco.value == "") {
					   alert("O campo endereço deve ser preenchido!");
					   d.endereco.focus();
					   return false;
			 }
			 //validar numero
			 if (d.numero.value == "") {
					   alert("O campo numero deve ser preenchido!");
					   d.numero.focus();
					   return false;
			 }
			 //validar bairro
			 if (d.bairro.value == "") {
					   alert("O campo bairro deve ser preenchido!");
					   d.bairro.focus();
					   return false;
			 }
			 //validar cep
			 if (d.cep.value == "") {
					   alert("O campo CEP deve ser preenchido!");
					   d.cep.focus();
					   return false;
			 } else if (!IsCEP(d.cep.value))
						{
							alert ("CEP deve ser válido!");
							d.cep.focus();
							return false;
						}
						
			 //validar cidade
			 if (d.cidade.value == "") {
					   alert("O campo cidade deve ser preenchido!");
					   d.cidade.focus();
					   return false;
			 }
			 //validar estado
			 if (d.estado.value == "") {
					   alert("Escolha o estado!");
					   return false;
			 }
 		}
        
		return true;
        
 }

	 // Função para validação de CEP.
    function IsCEP(strCEP)
        {
            // Caso o CEP não esteja nesse formato ele é inválido!
            var objER = /^[0-9]{5}-[0-9]{3}$/;

            strCEP = Trim(strCEP)

            if(strCEP.length > 0)
                {
					
                    if(objER.test(strCEP))
                        return true;
                    else
                        return false;
                }
            else
                return false;
        }
		
		function Trim(strTexto)
        {
            // Substitúi os espaços vazios no inicio e no fim da string por vazio.
            return strTexto.replace(/^\s+|\s+$/g, '');
        }
	
//Fim da função de validacao

//Funcao de mascara

	function formatar_mascara(src, mascara) {
		var campo = src.value.length;
		var saida = mascara.substring(0,1);
		var texto = mascara.substring(campo);
		if(texto.substring(0,1) != saida) {
			src.value += texto.substring(0,1);
		}
	}

    /*Função  Pai de Mascaras*/
    function Mascara(o,f){
        v_obj=o
        v_fun=f
        setTimeout("execmascara()",1)
    }
    
    /*Função que Executa os objetos*/
    function execmascara(){
        v_obj.value=v_fun(v_obj.value)
    }
    
    /*Função que Determina as expressões regulares dos objetos*/
    function leech(v){
        v=v.replace(/o/gi,"0")
        v=v.replace(/i/gi,"1")
        v=v.replace(/z/gi,"2")
        v=v.replace(/e/gi,"3")
        v=v.replace(/a/gi,"4")
        v=v.replace(/s/gi,"5")
        v=v.replace(/t/gi,"7")
        return v
    }
    
    /*Função que permite apenas numeros*/
    function Integer(v){
        return v.replace(/\D/g,"")
    }
    
    /*Função que padroniza CEP*/
    function Cep(v){
        v=v.replace(/D/g,"")                
        v=v.replace(/^(\d{5})(\d)/,"$1-$2") 
        return v
    }
    
//fim da Funcao de mascara

function alterarEndereco()
{
	var decisao = confirm("Deseja realmente alterar o endereço de entrega?");
	
	if (decisao == true)
	{
		document.getElementById("endereco_entrega_novo").className = "mostra";
		document.getElementById("endereco_entrega_atual").className = "oculto";
	}

}

