/*
'================[DOCUMENTAÇÃO DE PROGRAMA]================
' SISTEMA     : BRZ - Simulador Imobiliario
' TRANSAÇÃO   : Página Genérica
' PROGRAMA    : brzs99hm.js
' FUNÇÃO      : Pagina Genérica
' ANALISTA    : Dilcéia Alves
' PROGRAMADOR : Tiago De Toni
' DATA        : 19/09/2007
'=======================[MANUTENÇÕES]=======================
' Data        : 
' Programador : 
' Alteração   : 
'=============================================================
*/

/********************************************************************************************
'Descrição : Permite letras, números, vírgula, ponto, barra, hífen e underline.
'Parametro : (e) - event     (Maiusculo) - True/False
********************************************************************************************/
function AlfaNumerico(e, Maiusculo, LetrasAcentuadas)
{
	var Tecla;
	
	if (navigator.appName.indexOf("Netscape")!= -1){
		Tecla= event.which;
	}
	else{
		Tecla= e.keyCode;
	}
	
	//alert(Tecla);
		
	e.cancelBubble = true;
	
	if (LetrasAcentuadas == true){
		if ((Tecla >=192 && Tecla <= 196) || 
			(Tecla >=200 && Tecla <= 203) || 
			(Tecla >=204 && Tecla <= 207) || 
			(Tecla >=210 && Tecla <= 214) ||
			(Tecla >=217 && Tecla <= 220) ||
			Tecla == 199){
		    
			e.returnValue = true;
			return;
		}	
		if ((Tecla >=224 && Tecla <= 228) || 
			(Tecla >=232 && Tecla <= 235) || 
			(Tecla >=236 && Tecla <= 239) || 
			(Tecla >=242 && Tecla <= 246) ||
			(Tecla >=249 && Tecla <= 252) ||
			Tecla == 231){
		    
			if (AlfaNumerico.arguments.length == 0 || (AlfaNumerico.arguments.length > 0 && Maiusculo == true)) 
				e.keyCode -= 32;
				
			e.returnValue = true;
			return;
		}
	}
	if ((Tecla == 32) || (Tecla >= 44 && Tecla <= 57) || (Tecla >= 65 && Tecla <= 90))	{
		e.returnValue = true;
		return;
	}
	if (Tecla >= 97 && Tecla <= 122) {
		if (AlfaNumerico.arguments.length == 0 || (AlfaNumerico.arguments.length > 0 && Maiusculo == true)) 
			e.keyCode -= 32;
		e.returnValue = true;
		return;
	}
	e.returnValue = false;
}

function trimString(inputString,trimLeft,trimRight){
	var outputString  = '';
	var espacosAntes  = 0;
	var espacosDepois = 0;

 	if(trimLeft) {
		for(var i = 0 ; i < inputString.length ; i++) {
			if (inputString.charAt(i) == ' ')
				espacosAntes ++;
			else
				break;
		}
	}
	if(trimRight) {
		for(var i = inputString.length-1 ; i > 0 ; i--)	{
			if(inputString.charAt(i) == ' ')
				espacosDepois ++;
			else
				break;
		}
	}
	outputString = inputString.substr(espacosAntes);
	outputString = outputString.substr(0,(outputString.length-espacosDepois));
	return outputString;
}

function Completa(Campo,Tamanho){
	var Zeros = "00000000000000000000", Conteudo = Campo.value;
	var Digitos = Conteudo.length;
	if(Tamanho == null) Tamanho = Campo.maxLength;
	if(Digitos < Tamanho) Campo.value = Zeros.substring(0, Tamanho-Digitos) + Conteudo;
}

function Numerico(e){
	var tecla;
	
	tecla  = e.keyCode;
	if (tecla == 0) //é mozilla
		tecla = e.charCode; // é para o Mozilla

	if (tecla < 30 || (tecla > 47 && tecla < 58)) 
		return;

	e.returnValue = false;				
	
	try{
		e.preventDefault();  // é para o Mozilla
		}
	catch(e){}							
}

function AjustaTexto(sTexto){
    var sMsg = sTexto;
    
    sMsg = sMsg.replace(/&ccedil;/g, "ç");
    sMsg = sMsg.replace(/&#224;/g, "à");
    sMsg = sMsg.replace(/&aacute;/g, "á");
    sMsg = sMsg.replace(/&atilde;/g, "ã");
    sMsg = sMsg.replace(/&acirc;/g, "â");
    sMsg = sMsg.replace(/&eacute;/g, "é");
    sMsg = sMsg.replace(/&ecirc;/g, "ê");
    sMsg = sMsg.replace(/&iacute;/g, "í");
    sMsg = sMsg.replace(/&icirc;/g, "î");
    sMsg = sMsg.replace(/&otilde;/g, "õ");
    sMsg = sMsg.replace(/&ocirc;/g, "ô");
    sMsg = sMsg.replace(/&oacute;/g, "ó");
    sMsg = sMsg.replace(/&uacute;/g, "ú");
    sMsg = sMsg.replace(/&#170;/g, "ª");
    sMsg = sMsg.replace(/&#186;/g, "º");
	
    sMsg = sMsg.replace(/&Ccedil;/g, "Ç");
    sMsg = sMsg.replace(/&Aacute;/g, "Á");
    sMsg = sMsg.replace(/&Atilde;/g, "Ã");
    sMsg = sMsg.replace(/&Acirc;/g, "Â");
    sMsg = sMsg.replace(/&Eacute;/g, "É");
    sMsg = sMsg.replace(/&Ecirc;/g, "Ê");
    sMsg = sMsg.replace(/&Iacute;/g, "Í");
    sMsg = sMsg.replace(/&Icirc;/g, "Î");
    sMsg = sMsg.replace(/&Otilde;/g, "Õ");
    sMsg = sMsg.replace(/&Ocirc;/g, "Ô");
    sMsg = sMsg.replace(/&Oacute;/g, "Ó");
    sMsg = sMsg.replace(/&Uacute;/g, "Ú");
    
    return sMsg;
}
	
/**************************************************************************************************
Função    : function FormataData()
Descrição : Formata data no formato "dd/mm/aaaa"
**************************************************************************************************/
function FormataData(Campo)
{
    if (Campo.value.length == 2)
    {
        Campo.value += '/';
    }
    if (Campo.value.length == 5)
    {    
        Campo.value +=  '/';
    }
    return true; 
}

/**************************************************************************************************
Função    : function DataValida()
Descrição : Verifica se data no formato "dd/mm/aaaa" é válida
**************************************************************************************************/
function DataValida(Data)
{
	if (Data == "")
		return false;
	if (Data.length > 10)
		return false;
	if (!isNaN(Data))
		return false;
	valido = (Data.substr(2,1) == "/")?true:false;
	if (!valido)
		return false;
	valido = (Data.substr(5,1) == "/")?true:false;
	if (valido)
	{
		valido = (isNaN(Data.substr(0,2)))?false:true;
		valido = (isNaN(Data.substr(3,2)))?false:true;
		valido = (isNaN(Data.substr(6,4)))?false:true;
	}
	else
		return false;
	for (i=0;i<=Data.length;i++)
	{
		if (isNaN(Data.charAt(i)))
		{
			Separador = Data.charAt(i)
			if (Separador != "/")
				return false;
			dia = Data.substring(0,Data.indexOf(Separador));
			mes = Data.substring(Data.indexOf(Separador) + 1,Data.lastIndexOf(Separador));
			ano = Data.substring(Data.lastIndexOf(Separador) + 1,Data.length);
		}
	}
    
    // verifica o dia valido para cada mes 
    if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) { 
        return false; 
    } 

    // verifica se o mes e valido 
    if (mes < 01 || mes > 12 ) { 
        return false; 
    } 

    // verifica se e ano bissexto 
    if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
        return false; 
    } 
    return true;
}

/**************************************************************************************************
Função    : function DesformatarValor()
Descrição : Desformata o campo de Valor
**************************************************************************************************/
function DesformatarValor(obj) 
{
   var bTiraZeros = false;
   //Verifica se os últimos valores são zeros
   if (obj.value.substr(obj.value.length - 3, 3) == ',00') bTiraZeros = true;
   //Desformata o campo
   while (obj.value.indexOf(',') != -1) obj.value = obj.value.replace(',','');
   while (obj.value.indexOf('.') != -1) obj.value = obj.value.replace('.','');
   //Retira os zeros do final se necessário
   if (bTiraZeros) obj.value = obj.value.substr(0, obj.value.length - 2);
}

/**************************************************************************************************
Função    : function FormatarValor()
Descrição : Formatação de campo Valor (com ponto e vírgula automáticos)
**************************************************************************************************/
function FormatarValor(Campo)
{
	if (Campo == '')
		Campo = '0';
	if (Campo.substr(0,1) == ',' || Campo.substr(0,1) == '.')
		Campo = '0,' + Campo.substr(1);
		
	var i;
	i=0;
	while(i<Campo.length)
	{
		if(Campo.substr(i,1) == '.')
		{
			Campo = Campo.substr(0,i) + Campo.substr(i+1);
		}
		else
			i++;
	}
	
	if (Campo.indexOf(',') == -1)
		Campo= Campo + "," + "00"; 
	else 
	{
		var decimal = Campo.substr(Campo.indexOf(',') + 1, Campo.length);
		if (decimal.length == 0) 
			Campo = Campo + "00"; 
   		else if (decimal.length == 1)
   			Campo = Campo + "0"; 
   		else if (decimal.length >= 2)
   		{
			i=0;
			while(i<decimal.length)
			{
				if(decimal.substr(i,1) == '.' || decimal.substr(i,1) == ',')
				{
					decimal = decimal.substr(0,i) + decimal.substr(i+1);
				}
				else
					i++;
			}
			if(decimal.length==0)
				Campo = Campo.substr(0,Campo.indexOf(',')+1) + "00";
			else if(decimal.length==1)
				Campo = Campo.substr(0,Campo.indexOf(',')+1) + decimal + "0";
			else if(decimal.length>=2)
				Campo = Campo.substr(0,Campo.indexOf(',')+1) + decimal.substr(0,2);
		}
	}
	
	var cont = 0;
	var inteira = Campo.substr(0,Campo.length-3);
		
	for (i = inteira.length; i >= 0; i--) 
	{
		cont = cont + 1;
		if ((cont == 3) && (i > 1) && (inteira.substr(i-2,1) != '.')) 
		{
			inteira = inteira.substr(0,i-1) + '.' + inteira.substr(i-1,inteira.length);
			cont = 0;
		}	
	}
	Campo = inteira + Campo.substr(Campo.length-3);
	return Campo;
}

/**************************************************************************************************
Função    : function MudarCampo()
Descrição : Muda de campo
**************************************************************************************************/
function MudarCampo(Seguinte,event,Campo)
{
	if(event.keyCode==13)
	{
		return true;
	}
	   				
	if(Campo.value.length == Campo.maxLength  && event.keyCode > 46)
	{
		Seguinte.focus();
	}
	event.cancelBubble = true;
	return true;
}

/**************************************************************************************************
Função    : function DigitarNumerico()
Descrição : Permite digitar somente numeros
**************************************************************************************************/
function DigitarNumerico(e)
{
	var tecla;
	
	tecla  = e.keyCode;
	if (tecla == 0) //é mozilla
		tecla = e.charCode; // é para o Mozilla

	if (tecla < 30 || (tecla > 47 && tecla < 58) || e.charCode == 0) 
		return;

	e.returnValue = false;				
	
	try
	{
		e.preventDefault();  // é para o Mozilla
	}
	catch(e){}							
}

/**************************************************************************************************
Função    : function DigitarValorMoeda()
Descrição : Permite digitar somente numeros, virgula e ponto
**************************************************************************************************/
function DigitarValorMoeda(e)
{
	var tecla;
	
	tecla  = e.keyCode;
	if (tecla == 0) //é mozilla
		tecla = e.charCode; // é para o Mozilla
		
	if (tecla < 30 || (tecla > 47 && tecla < 58) || tecla == 44 || tecla == 46) 
		return;

	e.returnValue = false;				
	
	try
	{
		e.preventDefault();  // é para o Mozilla
	}
	catch(e){}							
}
