/* Parametros da Funcao
pNome    	Nome do Campo para mensagem
pValor   	Valor do Campo
pTipo    	Tipo do Campo   1 = Texto Comum  2 = Somente Numero  3 = Email  4 = Cep  5 = Telefone 6 = CNPJ/CPF   7 = Numero Moeda  8 = Data
pNulo	 	Aceita em branco ou não  1 = Aceita  0 = Não Aceita
pQtdCaracter   	Quantidade de Caracteres
*/

function ValidaCampo(pNome, pValor, pTipo, pNulo, pQtdCaracter, indioma)
{
    var ComplementoMsg = 'caracteres';
	// Verifica o tipo
	if (pTipo == 1)
	{
	        // Verifica se aceita Nulo
        	if (pNulo == 0)
		{
                	if (pValor == '')
			{
				alert('O Campo ' + pNome + ' é obrigatório.');
	                        return false;
			}
		}		
	}
	else if (pTipo == 2)
	{
		ComplementoMsg = 'números';		
        // Verifica se aceita Nulo
        if (pNulo == 0)
        {
            if ((pValor == '') || (pValor == 0))
            {
                alert('O Campo ' + pNome + ' é obrigatório.');
                return false;
            }
        }
		if ((pValor != '') || (pValor != 0))
        {
			if (!VerificaSeNumerico(pValor)) 
			{
				alert('O Campo ' + pNome + ' só aceita números.'); 
				return false;
			}
        }
	}
	else if (pTipo == 3)
	{
		var Invalido;
		Invalido = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
        // Verifica se aceita Nulo
        if (pNulo == 0)
        {
            if (pValor == '')
            {
                alert('O Campo ' + pNome + ' é obrigatório.');
                return false;
            }
        }
		if ((pValor != '') || (pValor != 0))
        {
			if (Invalido.test(pValor) == false) 
			{
		        alert('O Campo ' + pNome + ' está Inválido.');
	            return false;
			}
        }
	}
    else if (pTipo == 4)
    {
		ComplementoMsg = 'números';    	
        // Verifica se aceita Nulo
        if (pNulo == 0)
        {
            if ((pValor == '') || (pValor == 0))
            {
                alert('O Campo ' + pNome + ' é obrigatório.');
                return false;
            }
        }
		if ((pValor != '') || (pValor != 0))
		{        
			// Retira os possiveis caracteres que possam ter no cep
			pValor = RetiraCaracterCep(pValor);
	        if (!VerificaSeNumerico(pValor))
	        {
	            alert('O Campo ' + pNome + ' só aceita números.');
	            return false;
	        }
		}
    }
    else if (pTipo == 5)
    {
    	ComplementoMsg = 'números';
        // Verifica se aceita Nulo
        if (pNulo == 0)
        {
            if ((pValor == '') || (pValor == 0))
            {
                alert('O Campo ' + pNome + ' é obrigatório.');
                return false;
            }
        }
		if ((pValor != '') || (pValor != 0))
		{        
	        // Retira os possiveis caracteres que possam ter no telefone
	        pValor = RetiraCaracterTelefone(pValor);
	        if (!VerificaSeNumerico(pValor))
	        {
	            alert('O Campo ' + pNome + ' só aceita números.');
	            return false;
	        }
		}
    }
	else if (pTipo == 6)
	{
        // Verifica se aceita Nulo
        if (pNulo == 0)
        {
            if ((pValor == '') || (pValor == 0))
            {
                alert('O Campo ' + pNome + ' é obrigatório.');
                return false;
            }
        }
		if ((pValor != '') || (pValor != 0))
		{        
	        pValor = RetiraCaracterCNPJCPF(pValor);                
			if (!VerificaSeNumerico(pValor)) 
			{
				alert('O Campo ' + pNome + ' só aceita números e os caracteres especiais . / - '); 
				return false;
	  		}
	  		
	  		if (!valida_cpfcnpj(pValor))
	  		{
				alert('O Campo ' + pNome + ' está Invalido! Ex.: 99.999.999/9999-99 ou 99999999999999'); 
				return false;
	  		}
		}  		
	}
	else if (pTipo == 7)
	{
    	ComplementoMsg = 'números antes das casas decimais';		
        // Verifica se aceita Nulo
        pValor = RetiraCaracterNumeroMoeda(pValor);                        
        pValor = pValor.replace(".","");
        if (pNulo == 0)
        {
            if ((pValor == '') || (pValor == 0))
            {
                alert('O Campo ' + pNome + ' é obrigatório.');
                return false;
            }
        }
		if ((pValor != '') || (pValor != 0))
		{        
			if (!VerificaSeNumerico(pValor)) 
			{
				alert('O Campo ' + pNome + ' só aceita números e suas potuações . , R$ '); 
				return false;
	  		}
		}  		
        pValor = RetiraCaracterNumeroMoeda(pValor, 1);                	  				
	}

	else if (pTipo == 8)
	{
    	ComplementoMsg = 'numeros';		
        // Verifica se aceita Nulo
        if (pNulo == 0)
        {
            if ((pValor == '') || (pValor == 0))
            {
                alert('O Campo ' + pNome + ' é obrigatório.');
                return false;
            }
        }
		if ((pValor != '') || (pValor != 0))
		{        
			if (!VerificaData(pValor)) 
			{
				alert('O Campo ' + pNome + ' só aceita data no formato DD/MM/AAAA'); 
				return false;
	  		}
		}  		

	}
	
	
    
	// Verifica o Tamanho esta com tamanho correto
	if (parseInt(pValor.length,10) > pQtdCaracter)
	{
		alert('O Campo ' + pNome + ' só aceita até ' + pQtdCaracter + ' ' + ComplementoMsg + '.');
                return false;
	}	
	return true;	
}

// Funcao para verificar se é numerico ou não
function VerificaSeNumerico(pValor)
{
	var naoNumeros = /\D/;
    if (naoNumeros.test(pValor))
      	return false;
	else
		return true;
}

// Funcao para retirar caracteres do cep
function RetiraCaracterCep(pValor)
{
	pValor = pValor.replace('-', '');
	return pValor;
}

// Funcao para retirar caracter do Telefones
function RetiraCaracterTelefone(pValor)
{
    pValor = pValor.replace('-', '');
    pValor = pValor.replace('-', '');    
    pValor = pValor.replace(' ', '');    
    pValor = pValor.replace(' ', '');        
	pValor = pValor.replace('(', '');
	pValor = pValor.replace(')', '');
	pValor = pValor.replace('x', '');
	pValor = pValor.replace('x', '');
	pValor = pValor.replace('X', '');
	pValor = pValor.replace('X', '');
    return pValor;
}

// Funcao para retirar caracter do CNPJ/CPF
function RetiraCaracterCNPJCPF(pValor)
{
	pValor = pValor.replace("/", ""); 
    pValor = pValor.replace("/", ""); 
    pValor = pValor.replace("/", ""); 
    pValor = pValor.replace(",", ""); 
    pValor = pValor.replace(".", ""); 
    pValor = pValor.replace(".", ""); 
    pValor = pValor.replace(".", ""); 
    pValor = pValor.replace(".", ""); 
    pValor = pValor.replace(".", ""); 
    pValor = pValor.replace(".", ""); 
    pValor = pValor.replace(".", ""); 
    pValor = pValor.replace("-", ""); 
    pValor = pValor.replace("-", ""); 
    pValor = pValor.replace("-", ""); 
    pValor = pValor.replace("-", ""); 
    pValor = pValor.replace("-", ""); 
	return pValor;
    
}

// Funcao para retirar caracter do numero tipo moeda
// Se for passado 1 para o parametro RetornarSomenteInteiro ela retornará um numero inteiro
function RetiraCaracterNumeroMoeda(pValor, RetornarSomenteInteiro)
{
	pValor = pValor.toString();
	pValor = pValor.replace("R", ""); 
	pValor = pValor.replace("$", ""); 
    pValor = pValor.replace(" ", ""); 
    pValor = pValor.replace(" ", ""); 
    pValor = pValor.replace(" ", ""); 
    pValor = pValor.replace(" ", "");         

    
    if (pValor.indexOf(",") > -1) 
	{
	    pValor = pValor.replace(".", ""); 
	    pValor = pValor.replace(".", ""); 
	    pValor = pValor.replace(".", ""); 
	    pValor = pValor.replace(".", ""); 
	    pValor = pValor.replace(",", "."); 
	}
	else
	{
		tamanho = pValor.length;
		decimal = pValor.lastIndexOf(".");
		if (decimal == -1)
			decimal = tamanho
		

		ValorDecimal = pValor.substring(decimal)
		ValorInteiro = pValor.substring(0,decimal);

		ValorInteiro = ValorInteiro.replace(".", ""); 
	    ValorInteiro = ValorInteiro.replace(".", ""); 
	    ValorInteiro = ValorInteiro.replace(".", ""); 
	    ValorInteiro = ValorInteiro.replace(".", ""); 
	    if (RetornarSomenteInteiro == 1)
			pValor = ValorInteiro;
		else
			pValor = ValorInteiro.concat(ValorDecimal)		
	}
	return pValor;
    
}

function FormataNumeroMoeda(pValor, SiglaMoeda)
{
	pValor = parseFloat(RetiraCaracterNumeroMoeda(pValor))
	pValor = (Math.round(pValor * 100))/100;
	pValor = pValor.toString();

	tamanho = pValor.length;	
	if (pValor.indexOf(".") > -1) 
	{
	    decimal = pValor.indexOf(".");		
	    pValor = pValor.replace(".", ",");         
	    casadecimal = pValor.substring(decimal)
	}
	else
	{
		decimal = tamanho;
		casadecimal = ',00'
	}
		
	casadosmil = pValor.substring(decimal-3, decimal);
	if (casadosmil == '')
		casadosmil = '0';
		
	casadosmilhao = pValor.substring(decimal-6, decimal-3);
	if (casadosmilhao != '')
		casadosmilhao = casadosmilhao + '.';
	
	casadosbilhao = pValor.substring(decimal-9, decimal-6);
	if (casadosbilhao != '')
		casadosbilhao = casadosbilhao + '.';
		
	casadostrilhao = pValor.substring(decimal-12, decimal-9);
	if (casadostrilhao != '')
		casadostrilhao = casadostrilhao + '.';

	if (SiglaMoeda != '')
		SiglaMoeda = SiglaMoeda + ' ';
	
	ValorFormatado = SiglaMoeda + casadostrilhao + casadosbilhao + casadosmilhao + casadosmil + casadecimal;
	return ValorFormatado;    
}


function VerificaTecla(Acao)
{
	if (event.keyCode==13)
	{
		event.keyCode=0;
		eval(Acao);
		event.returnValue=false;
	}

}

// formato valido dd/mm/aaaa
function VerificaData(pValor)
{
	var dataExpressao = /^\d{1,2}\/\d{1,2}\/\d{4}$/i;
	if (!dataExpressao.test(pValor))
	{
		return false;
	}
	return true;
	
	
}

// Funcao para Validar CNPJ ou CPF
function valida_cpfcnpj(pValor)
{
	pcpfcnpj = pValor;

	if (pcpfcnpj.length == 11)
 	{
		pcpf = pcpfcnpj;
		if (pcpf.length != 11) 
		{
			sim=false
		}
 		else 
 		{
 			sim=true
 		}

  		if (sim)  // valida o primeiro digito
  		{
  			for (i=0;((i<=(pcpf.length-1))&& sim); i++)
  			{
   				val = pcpf.charAt(i)
   				if ((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4") && (val!="5")&&(val!="6")&&(val!="7")&&(val!="8")) 
   				{
   					sim=false
   				}
   			}

	   		if (sim)
			{
	    		soma = 0
	    		for (i=0;i<=8;i++)
	    		{
	     			val = eval(pcpf.charAt(i))
	     			soma = soma + (val*(i+1))
	    		}
	
	    		resto = soma % 11
	    		if (resto>9) 
	    			dig = resto -10
	    		else  
	    			dig = resto
	    		if (dig != eval(pcpf.charAt(9))) 
	    		{ 
	    			sim=false 
	    		}
	   			else   // valida o segundo digito
	    		{
	     			soma = 0
					for (i=0;i<=7;i++)
	     			{
	     				val = eval(pcpf.charAt(i+1))
	      				soma = soma + (val*(i+1))
	    			}
	
	     			soma = soma + (dig * 9)
	    			resto = soma % 11
	     			if (resto>9) 
	     				dig = resto -10
	     			else  
	     				dig = resto
	   				if (dig != eval(pcpf.charAt(10))) 
	   				{
	   					sim = false 
	   				}
	    			else 
	    				sim = true
	   			}
	   		}
	  	}
		if (sim) 
	  	{
	  		if      (pcpf == 11111111111) return false;
	  		else if (pcpf == 22222222222) return false;
	  		else if (pcpf == 33333333333) return false;
	  		else if (pcpf == 44444444444) return false;
	  		else if (pcpf == 55555555555) return false;
	  		else if (pcpf == 66666666666) return false;
	  		else if (pcpf == 77777777777) return false;
	  		else if (pcpf == 88888888888) return false;
	  		else if (pcpf == 99999999999) return false;
	  		else if (pcpf == 00000000000) return false;
	  		else
	  			return true;
	  	}
	  	else
	  	{
			return false;
	  	}
	}
	else if((pcpfcnpj.length == 14))
 	{
		pcgc = pcpfcnpj;

		// verifica o tamanho
		if (pcgc.length != 14)
		{
			sim=false
		}
		else 
		{
			sim=true
		}

		if (sim)  // verifica se e numero
		{
			for (i=0;((i<=(pcgc.length-1))&& sim); i++)
			{
				val = pcgc.charAt(i)
				if ((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4") && (val!="5")&&(val!="6")&&(val!="7")&&(val!="8")) 
				{
					sim=false
				}
			}
		}
		if (sim)  // se for numero continua
		{
			m2 = 2
			soma1 = 0
			soma2 = 0
			for (i=11;i>=0;i--)
			{
				val = eval(pcgc.charAt(i))
				m1 = m2
				if (m2<9) 
				{ 
					m2 = m2+1
				}
				else 
				{
					m2 = 2
				}
				soma1 = soma1 + (val * m1)
				soma2 = soma2 + (val * m2)
			}  // fim do for de soma

  			soma1 = soma1 % 11
			if (soma1 < 2) 
			{  
				d1 = 0
			}
			else 
			{ 
				d1 = 11- soma1
			}

			soma2 = (soma2 + (2 * d1)) % 11
			if (soma2 < 2) 
			{ 
				d2 = 0
			}
			else 
			{ 
				d2 = 11- soma2
			}

			if ((d1==pcgc.charAt(12)) && (d2==pcgc.charAt(13)))
			{ 
		  		if      (pcgc == 11111111111111) return false;
		  		else if (pcgc == 22222222222222) return false;
		  		else if (pcgc == 33333333333333) return false;
		  		else if (pcgc == 44444444444444) return false;
		  		else if (pcgc == 55555555555555) return false;
		  		else if (pcgc == 66666666666666) return false;
		  		else if (pcgc == 77777777777777) return false;
		  		else if (pcgc == 88888888888888) return false;
		  		else if (pcgc == 99999999999999) return false;
		  		else if (pcgc == 00000000000000) return false;
		  		else
		  			return true;
			}
			else 
			{
				return false;
			}
		}
		if (!sim)
			return false;
		else
		{
	  		if      (pcgc == 11111111111111) return false;
	  		else if (pcgc == 22222222222222) return false;
	  		else if (pcgc == 33333333333333) return false;
	  		else if (pcgc == 44444444444444) return false;
	  		else if (pcgc == 55555555555555) return false;
	  		else if (pcgc == 66666666666666) return false;
	  		else if (pcgc == 77777777777777) return false;
	  		else if (pcgc == 88888888888888) return false;
	  		else if (pcgc == 99999999999999) return false;
	  		else if (pcgc == 00000000000000) return false;
	  		else
	  			return true;
		}
	}
	else
		return false;
}

// Se a data 1 for  maior que a data 2  retorna true se nao retorna false
function ComparaData(dt1,dt2)
{
	var hoje = new Date();
	var ano = hoje.getYear();
	if(ano >= 50 && ano <= 99)
		ano = 1900 + ano
	else
		ano = 2000 + ano;
	
	var pos1 = dt1.indexOf("/",0)
	var dd = dt1.substring(0,pos1)
	pos2 = dt1.indexOf("/", pos1 + 1)
	var mm = dt1.substring(pos1 + 1,pos2)
	var aa = dt1.substring(pos2 + 1,10)
	if(aa.length < 4)
		if(ano > 1999)
			aa = (2000 + parseInt(aa,10))
		else
			aa = (1900 + parseInt(aa,10));
	var data1 = new Date(parseInt(aa,10),parseInt(mm,10) - 1, parseInt(dd,10));
	var pos1 = dt2.indexOf("/",0)
	var dd = dt2.substring(0,pos1)
	pos2 = dt2.indexOf("/", pos1 + 1)
	var mm = dt2.substring(pos1 + 1,pos2)
	var aa = dt2.substring(pos2 + 1,10)
	if(aa.length < 4)
		if(ano > 80 && ano <= 99)
			aa = (1900 + parseInt(aa,10))
		else
			aa = (2000 + parseInt(aa,10));
	var data2 = new Date(parseInt(aa,10),parseInt(mm,10) - 1,parseInt(dd,10));
	
	if(data1 > data2)
		return true; 
	else
		return false;
} 

// Função contra bug da ancora

function Cartorios(ancora) {

	var resultado;

	if (ancora==1) { resultado = "#protesto"; } 
	else if (ancora==2) { resultado = "#civil"; } 
	else if (ancora==3) { resultado = "#imoveis"; } 
	else if (ancora==4) { resultado = "#titulo"; } 
	else { resultado = "#subir"; }

	window.location.href = "?codtabela=56&argumento=1" + resultado;
}

// Fireworks MX

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


// Posição da Categoria na Home (Gerenciador)

function PosicaoDaHome(selecao, id, form) {
	idcampo = id + 'campo';
	idtexto = id + 'texto';
	idlinhas = id + 'linhas';
	idlinhas2 = id + 'linhas2';
				
	if (selecao.options[selecao.selectedIndex].text == "Sim")
	{
	document.getElementById(idlinhas).style.visibility = 'visible'; 
	document.getElementById(idlinhas2).style.visibility = 'visible'; 
	document.getElementById(idtexto).style.visibility = 'visible'; 
	document.getElementById(idcampo).style.visibility = 'visible'; 

	camposnot = 0;
	for (i=0; i<form.length; i++) 
	{
		if ((form.elements[i].type == "select-one") && (form.elements[i].options[form.elements[i].selectedIndex].text == "Sim")){ camposnot += 1; }
	}

	//document.getElementById(idcampo).value = eval(1 + Math.floor(Math.random() * 30));
	document.getElementById(idcampo).value = camposnot;
	}
	else {
	document.getElementById(idlinhas).style.visibility = 'hidden'; 
	document.getElementById(idlinhas2).style.visibility = 'hidden'; 
	document.getElementById(idtexto).style.visibility = 'hidden'; 
	document.getElementById(idcampo).style.visibility = 'hidden'; 		
	}
}

function SalvaCategorias(form) {
	elementos = form.length;
	i = 0;
	while (i < elementos) {
		if ((form.elements[i].type == "select-one") && (form.elements[i].options[form.elements[i].selectedIndex].text == "Não"))
		{
			form.elements[i+2].value = 0;
		}
		i++;
	}
}

// Trim Function

function Trim(String) {
	Resultado = String;

	var i;
	i = 0;

	while (Resultado.charCodeAt(0) == '32') {
		Resultado = String.substring(i,String.length);
		i++;
	}

	while (Resultado.charCodeAt(Resultado.length-1) == "32") {
		Resultado = Resultado.substring(0,Resultado.length-1); 
	}

	return Resultado;
}


// Detalhes do Imóvel

function DetalhesImovel(idimovel) 
{
	//detalhes = window.open('cadastrocontato.php?idimovel=' + idimovel, 'detalhes', 'width=700,height=500,top=0,left=0,scrollbars=yes,status=no,resizable=yes'); 
	//detalhes.focus();
	return false;
}
	
// in_array semelhante a função do PHP

function in_array (valor, matriz) {
  var texto = "¬" + matriz.join("¬") + "¬";
  var er = new RegExp ("¬" + valor + "¬", "gim");
  return ( (texto.match (er)) ? true : false );
}

// Substituir Acentos

caracteres =  new Array("á", "à", "ä", "â", "ã", "é", "è", "ë", "ê", "í", "ì", "ï", "î", "ó", "ò", "ö", "ô", "õ", "ú", "ù", "ü", "û", "ç", "ñ");

function SubstituiAcentos(texto) {
	novotexto = texto;	
	for (i=0; i<texto.length; i++) {
		if (in_array(texto.charAt(i), caracteres)) {
			novotexto = novotexto.replace(texto.charAt(i), "_");
		}
	}
	return novotexto;
}

function urlencode(str) {
	str = escape(str);
	return str.replace(/[*+\/@]|%20/g, function (s) {
		switch (s) {
			case "*": s = "%2A"; break;
			case "+": s = "%2B"; break;
			case "/": s = "%2F"; break;
			case "@": s = "%40"; break;
			case "%20": s = "+"; break;
		}
		return s;
	}
	);
}
