//***********************************************************************
//Objetivos	: Formatação de campos numéricos durante a digitação
//Premissas	: 
//Entradas	: Evento do teclado, número de casas decimais do campo e se aceita negativos
//Saída		: Valor formatado
//***********************************************************************
function FormataValor(objCampo,intTamMax,intTeclaPres, intDec, intLang) {

	var strTecla;     //tecla pressionada
	var strVr;        //valor do campo 
	var intTam;       //tamanho 


	if (intTeclaPres == '') {
		strTecla = 100;
		
	}
	else {
		strTecla = intTeclaPres.keyCode;
	}

		strVr = objCampo.value;		
		strVr = strVr.replace( "/", "" );
		strVr = strVr.replace( "/", "" );
		strVr = strVr.replace( ",", "" );
		strVr = strVr.replace( ",", "" );
		strVr = strVr.replace( ",", "" );
		strVr = strVr.replace( ",", "" );
		strVr = strVr.replace( ".", "" );
		strVr = strVr.replace( ".", "" );
		strVr = strVr.replace( ".", "" );
		strVr = strVr.replace( ".", "" );
		strVr = EliminaZerosEsquerda(strVr);
		intTam = strVr.length;
		
		if (intTam < intTamMax && strTecla != 8){ intTam = strVr.length + 1; }
		if (strTecla == 8 ){ intTam = intTam - 1; }
		if ( strTecla == 8 || strTecla >= 48 && strTecla <= 57 || strTecla >= 96 && strTecla <= 105 ){
			if(intLang==1)
			{			
				if ( intTam == 13 ) {return false;}
				if ( intTam == 1 ){objCampo.value = '0,0' + strVr;}
				if ( intTam == 2 ){objCampo.value = '0,' + strVr;}
				if ((intTam > 2 ) && (intTam <= 5))  {objCampo.value = strVr.substr(0,intTam-2) + ',' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 5 ) && (intTam <= 8))  {objCampo.value = strVr.substr(0,intTam-5) + '.' + strVr.substr(intTam-5,3) + ',' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 8 ) && (intTam <= 11)) {objCampo.value = strVr.substr(0,intTam-8) + '.' + strVr.substr(intTam-8,3) + '.' + strVr.substr(intTam-5,3) + ',' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 11) && (intTam <= 12)) {objCampo.value = strVr.substr(0,intTam-11) + '.' + strVr.substr(intTam-11,3) + '.' + strVr.substr(intTam-8,3) + '.' + strVr.substr(intTam-5,3) + ',' + strVr.substr(intTam-2,2); }
			}else
			{
				if ( intTam == 13 ) {return false;}
				if ( intTam == 1 ){objCampo.value = '0.0' + strVr;}
				if ( intTam == 2 ){objCampo.value = '0.' + strVr;}
				if ((intTam > 2 ) && (intTam <= 5))  {objCampo.value = strVr.substr(0,intTam-2) + '.' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 5 ) && (intTam <= 8))  {objCampo.value = strVr.substr(0,intTam-5) + ',' + strVr.substr(intTam-5,3) + '.' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 8 ) && (intTam <= 11)) {objCampo.value = strVr.substr(0,intTam-8) + ',' + strVr.substr(intTam-8,3) + ',' + strVr.substr(intTam-5,3) + '.' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 11) && (intTam <= 12)) {objCampo.value = strVr.substr(0,intTam-11) + ',' + strVr.substr(intTam-11,3) + ',' + strVr.substr(intTam-8,3) + ',' + strVr.substr(intTam-5,3) + '.' + strVr.substr(intTam-2,2); }			
			}
		}
		else {return false;}

	}

	function EliminaZerosEsquerda(intValor) {
		if 	(intValor.substr(0,1) == '0') {intValor = intValor.substr(1,intValor.length)}
		if 	(intValor.substr(0,1) == '0') {intValor = intValor.substr(1,intValor.length)}
		if 	(intValor.substr(0,1) == '0') {intValor = intValor.substr(1,intValor.length)}
		return intValor;
		
	}
	




//***********************************************************************
//Objetivos	: Formatação de campos numéricos durante a digitação
//Premissas	: 
//Entradas	: Evento do teclado, número de casas decimais do campo e se aceita negativos
//intLang	: 1 = portugues - 2 = ingles
//Saída		: Valor formatado
//***********************************************************************
function FormataValorAnt(objCampo,intTamMax,intTeclaPres, intDec, intLang) {

var strTecla;     //tecla pressionada
var strVr;        //valor do campo 
var intTam;       //tamanho 

if (intTeclaPres == '') {
	strTecla = 100;
	
}
else {
	strTecla = intTeclaPres.keyCode;
}

	strVr = objCampo.value;
	strVr = strVr.replace( "/", "" );
	strVr = strVr.replace( "/", "" );
	strVr = strVr.replace( ",", "" );
	strVr = strVr.replace( ",", "" );
	strVr = strVr.replace( ",", "" );
	strVr = strVr.replace( ",", "" );
	strVr = strVr.replace( ".", "" );
	strVr = strVr.replace( ".", "" );
	strVr = strVr.replace( ".", "" );
	strVr = strVr.replace( ".", "" );	
	intTam = strVr.length;

	if (intTam < intTamMax && strTecla != 8){ intTam = strVr.length + 1; }
	if (strTecla == 8 ){ intTam = intTam - 1; }
	if ( strTecla == 8 || strTecla >= 48 && strTecla <= 57 || strTecla >= 96 && strTecla <= 105 )
	{
	
		if(intLang==1)
		{
			if (intDec>=2) 
			{			
				if ( intTam <= 2 ){objCampo.value = strVr; }
				if ( (intTam > 2) && (intTam <= 5) ){objCampo.value = strVr.substr( 0, intTam - 2 ) + ',' + strVr.substr( intTam - 2, intTam ); }
				if ( (intTam >= 6) && (intTam <= 8) ){objCampo.value = strVr.substr( 0, intTam - 5 ) + '.' + strVr.substr( intTam - 5, 3 ) + ',' + strVr.substr( intTam - 2, intTam ); }
				if ( (intTam >= 9) && (intTam <= 11) ){objCampo.value = strVr.substr( 0, intTam - 8 ) + '.' + strVr.substr( intTam - 8, 3 ) + '.' + strVr.substr( intTam - 5, 3 ) + ',' + strVr.substr( intTam - 2, intTam ); }
				if ( (intTam >= 12) && (intTam <= 14) ){objCampo.value = strVr.substr( 0, intTam - 11 ) + '.' + strVr.substr( intTam - 11, 3 ) + '.' + strVr.substr( intTam - 8, 3 ) + '.' + strVr.substr( intTam - 5, 3 ) + ',' + strVr.substr( intTam - 2, intTam ); }
				if ( (intTam >= 15) && (intTam <= 17) ){objCampo.value = strVr.substr( 0, intTam - 14 ) + '.' + strVr.substr( intTam - 14, 3 ) + '.' + strVr.substr( intTam - 11, 3 ) + '.' + strVr.substr( intTam - 8, 3 ) + '.' + strVr.substr( intTam - 5, 3 ) + ',' + strVr.substr( intTam - 2, intTam );}
			}
			else 
			{
				if (intTam == 4){objCampo.value = strVr.substr(0,1) + '.' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 5){objCampo.value = strVr.substr(0,2) + '.' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 6){objCampo.value = strVr.substr(0,3) + '.' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 7){objCampo.value = strVr.substr(0,1) + '.' + strVr.substr(1,3) + '.' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 8){objCampo.value = strVr.substr(0,2) + '.' + strVr.substr(2,3) + '.' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 9){objCampo.value = strVr.substr(0,3) + '.' + strVr.substr(3,3) + '.' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 10){objCampo.value = strVr.substr(0,1) + '.' + strVr.substr(1,3) + '.' +  strVr.substr(4,3) + '.' +  strVr.substr(intTam - 3, intTam); }
				if (intTam == 11){objCampo.value = strVr.substr(0,2) + '.' + strVr.substr(2,3) + '.' +  strVr.substr(5,3) + '.' +  strVr.substr(intTam - 3, intTam); }
			} 
		}else{
			if (intDec>=2) 
			{			
				if ( intTam <= 2 ){objCampo.value = strVr; }
				if ( (intTam > 2) && (intTam <= 5) ){objCampo.value = strVr.substr( 0, intTam - 2 ) + '.' + strVr.substr( intTam - 2, intTam ); }
				if ( (intTam >= 6) && (intTam <= 8) ){objCampo.value = strVr.substr( 0, intTam - 5 ) + ',' + strVr.substr( intTam - 5, 3 ) + '.' + strVr.substr( intTam - 2, intTam ); }
				if ( (intTam >= 9) && (intTam <= 11) ){objCampo.value = strVr.substr( 0, intTam - 8 ) + ',' + strVr.substr( intTam - 8, 3 ) + ',' + strVr.substr( intTam - 5, 3 ) + '.' + strVr.substr( intTam - 2, intTam ); }
				if ( (intTam >= 12) && (intTam <= 14) ){objCampo.value = strVr.substr( 0, intTam - 11 ) + ',' + strVr.substr( intTam - 11, 3 ) + ',' + strVr.substr( intTam - 8, 3 ) + ',' + strVr.substr( intTam - 5, 3 ) + '.' + strVr.substr( intTam - 2, intTam ); }
				if ( (intTam >= 15) && (intTam <= 17) ){objCampo.value = strVr.substr( 0, intTam - 14 ) + ',' + strVr.substr( intTam - 14, 3 ) + ',' + strVr.substr( intTam - 11, 3 ) + ',' + strVr.substr( intTam - 8, 3 ) + ',' + strVr.substr( intTam - 5, 3 ) + '.' + strVr.substr( intTam - 2, intTam );}
			}
			else 
			{
				if (intTam == 4){objCampo.value = strVr.substr(0,1) + ',' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 5){objCampo.value = strVr.substr(0,2) + ',' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 6){objCampo.value = strVr.substr(0,3) + ',' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 7){objCampo.value = strVr.substr(0,1) + ',' + strVr.substr(1,3) + ',' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 8){objCampo.value = strVr.substr(0,2) + ',' + strVr.substr(2,3) + ',' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 9){objCampo.value = strVr.substr(0,3) + ',' + strVr.substr(3,3) + ',' + strVr.substr(intTam - 3, intTam); }
				if (intTam == 10){objCampo.value = strVr.substr(0,1) + ',' + strVr.substr(1,3) + ',' +  strVr.substr(4,3) + ',' +  strVr.substr(intTam - 3, intTam); }
				if (intTam == 11){objCampo.value = strVr.substr(0,2) + ',' + strVr.substr(2,3) + ',' +  strVr.substr(5,3) + ',' +  strVr.substr(intTam - 3, intTam); }
		
			} 
		}			
	} 
	else {return false;}

}


//VALOR MONETÁRIO:
//onKeyPress="javascript:ValidaTeclaNumeroReal(this,11,false);" 
//onFocus="javascript:FormataNumeroRealFoco(this,false);" 
//onBlur="javascript:FormataNumeroReal(this,'','',11,false,true,'');" 
//onbeforepaste="javascript:ValidaPasteNumeroReal(this,false,11);"

//***********************************************************************
//Objetivos	: Validação universal para quase todos os campos numéricos
//Premissas	: 
//Entradas	: Evento do teclado, número de casas decimais do campo e se aceita negativos
//Saída		: True ou false para o evento do teclado
//***********************************************************************
function ValidaTeclaNumeroReal(objCampo, intTamDecimal, blnNegativo) {
	var strTecla = String.fromCharCode(event.keyCode); //Valor da tecla pressionada
	var blnRetorno = ValidaDigitoNumeroReal(strTecla, intTamDecimal, blnNegativo); //Retorno da função


	if (event.keyCode == 44)
		event.returnValue = false;
	else
	{
		if (event.keyCode == 45 && blnNegativo) {
			if (objCampo.value.search('-') >= 0){
				objCampo.value = objCampo.value.substr(1,objCampo.maxLength - 1);
			}
			else{
				objCampo.value = '-' + objCampo.value;
			}			
			event.returnValue = false;
		}
		else
		{
			if (objCampo.value.search(',') < 0 && (objCampo.maxLength - 1) == objCampo.value.length && document.selection != null && document.selection.type != 'None')
				event.returnValue = false;
			else
				event.returnValue = blnRetorno;			
		}
	}
}

//***********************************************************************
//Objetivos	: Função de apoio para validar a maior parte dos campos numéricos
//Premissas	: 
//Entradas	: Caracter, número de casas decimais do campo e se aceita negativos
//Saída		: True ou false para o caracter enviado
//***********************************************************************
function ValidaDigitoNumeroReal(strCaracter, intTamDecimal, blnNegativo) {
	if (intTamDecimal > 0){
		if (blnNegativo){
			return ("0123456789,-".indexOf(strCaracter)>=0);
		}
		else{
			return ("0123456789,".indexOf(strCaracter)>=0);
		}
	}
	else{
		if (blnNegativo){
			return ("0123456789-".indexOf(strCaracter)>=0);
		}
		else{
			return ("0123456789".indexOf(strCaracter)>=0);
		}
	}
}

//***********************************************************************
//Objetivos	: Formata campo numérico real ao se ganhar o foco
//Premissas	: 
//Entradas	: Objeto campo, flag indicando que ele aceita negativos
//Saída		: Objeto campo formatado
//***********************************************************************
function FormataNumeroRealFoco(objCampo, blnNegativo) 
{
	objCampo.value = SoNumeroReal(objCampo.value, blnNegativo);
	objCampo.select();
}


//***********************************************************************
//Objetivos	: Remove da string todos os caracteres que não aceitem as condições
//Premissas	: 
//Entradas	: String com o conteúdo a ser validado
//Saída		: String com os caracteres inválidos removidos
//***********************************************************************
function SoNumeroReal(strTexto, blnNegativo)
{
	var intContador; //Contador usado para varrer a string
	var strRetorno; //Retorno da função
	var blnVirgula = false; //Indica se existe vírgula
	strRetorno = '';
	for (intContador=0; intContador < strTexto.length; intContador++)
	{
		if ((!isNaN(strTexto.substr(intContador,1)) && strTexto.substr(intContador,1) != ' ') || strTexto.substr(intContador,1) == ',' || (strTexto.substr(intContador,1) == '-' && blnNegativo))
		{
			if (strTexto.substr(intContador,1) == ',')
			{
				if (blnVirgula == false)
				{
					blnVirgula = true;
					strRetorno = strRetorno + strTexto.substr(intContador,1);
				}
			}
			else if (strTexto.substr(intContador,1) == '-' && blnNegativo ){
				if (intContador == 0){
					strRetorno = strRetorno + strTexto.substr(intContador,1);
				}				
			}
			else
				strRetorno = strRetorno + strTexto.substr(intContador,1);
		}
	}
	return strRetorno;
}

//***********************************************************************
//Objetivos	: Formata número real ao se ganhar o foco
//Premissas	: 
//Entradas	: Objeto campo, valores máximo e mínimo, número de casas decimais, 
//            flag indicando se aceita negativos, flag indicando se o campo deve ser formatado na casa dos milhares, 
//            mensagem de erro opcional no caso de valor inválido
//Saída		: Objeto campo
//***********************************************************************
function FormataNumeroReal(objCampo, strValMin, strValMax, intTamDecimal, blnNegativo, blnFormata, strMsgNotValid)
{
	//Remove zeros a esquerda antes de iniciar formatação, convertendo valor para double e de volta para string.
	var dblValor = new Number(objCampo.value.replace(',','.')); //Valor sem zeros a esquerda
	var strValor; //Valor de devolução
	var intVirgula; //Posição da vírgula, se existir
	
	var intNegativo; //Posição do hífen
    var strValorFormat; //Valor de devolução, já formatado conforme as regras
    var intDecimal = intContador = intPosicao = 0; //Variáveis de apoio
    var intTamanhoInteiro; //Tamanho da parte inteira do campo
    var intTamanhoMaximoInteiro; //Tamanho máximo da parte inteira do campo

    var strValorSplit; //Variável que armazena as porções inteira e decimal do campo

    var intValMin; //Valor mínimo do campo
    var intValMax; //Valor máximo do campo
	
	if (isNaN(dblValor)){
		dblValor = 0;
	}	

	if (dblValor != 0){
		strValor = new String(dblValor);
	}
	else{
		strValor = objCampo.value;
	}

	strValor = strValor.replace('.',',');

	intVirgula = strValor.search(',');

	intNegativo = strValor.search('-');
	strValorFormat = '';
	
	intValMin = new Number(strValMin.replace(',','.'));
	intValMax = new Number(strValMax.replace(',','.'));
	
	if (strValor != '')
	{
		if (intVirgula == -1){
			if (intTamDecimal > 0){
				strValor += "," + MontaStringIgual("0", intTamDecimal);
			}
		}
		else
		{
			intDecimal = (strValor.substr(intVirgula + 1)).length;
			if (intTamDecimal != 0){
				if (intDecimal <= intTamDecimal)
					strValor += MontaStringIgual("0", intTamDecimal - intDecimal);
				else
				{
					if (strMsgNotValid == ''){
						alert ('Número de casas decimais (' + intDecimal + ') maior do que o permitido (' + intTamDecimal + ') !');
					}
					else{
						alert (strMsgNotValid);
					}					
					objCampo.focus();
					objCampo.select();
					return false;
				}
			}
			else{
				if (strMsgNotValid == ''){
					alert ('Digite apenas números inteiros!');
				}
				else{
					alert(strMsgNotValid);
				}				
				objCampo.focus();
				objCampo.select();
				return false;
			}			
		}

		if (strValMin != '' && dblValor < intValMin){
			if (strMsgNotValid == ''){
				alert ('Não digite valores inferiores a ' + strValMin + '!');
			}
			else{
				alert(strMsgNotValid);
			}			
			objCampo.focus();
			objCampo.select();
			return false;
		}
		if (strValMax != '' && dblValor > intValMax){
			if (strMsgNotValid == ''){
				alert ('Não digite valores superiores a ' + strValMax + '!');
			}
			else{
				alert(strMsgNotValid);
			}			
			objCampo.focus();
			objCampo.select();
			return false;
		}

		if (intTamDecimal > 0){
			strValorSplit = strValor.split(",");
			if (intNegativo > -1){
				intTamanhoInteiro = strValorSplit[0].length - 1;
			}
			else{
				intTamanhoInteiro = strValorSplit[0].length;
			}
			intTamanhoMaximoInteiro = objCampo.maxLength - intTamDecimal - 1;
		}
		else{
			if (intNegativo > -1){
				intTamanhoInteiro = strValor.length - 1;
			}
			else{
				intTamanhoInteiro = strValor.length;
			}
			intTamanhoMaximoInteiro = objCampo.maxLength;
		}
		
		if (intTamanhoInteiro > intTamanhoMaximoInteiro){
			if (strMsgNotValid == ''){
				alert ('Parte inteira (' + (intTamanhoInteiro) + ') maior do que o permitido (' + (intTamanhoMaximoInteiro) + ') !');
			}
			else{
				alert(strMsgNotValid);
			}
			objCampo.focus();
			objCampo.select();
			return false;
		}
		else{
			objCampo.value = strValor;
		}

		if ((strValor.substr(0,1) == ",") || (strValor.substr(0,2) == "-,")){
			if (intNegativo == -1){
				strValor = '0' + strValor;
			}
			else{
				strValor = '-0' + strValor.replace("-", "");
			}
		}

		intVirgula = strValor.search(',');
		if (intVirgula < 0){
			intVirgula = strValor.length;
		}
		strValorFormat = strValor.substr(intVirgula);
		if (blnFormata){
			for (intContador = intVirgula - 1; intContador >= 0; intContador--)
			{
				if (intPosicao == 3)
				{
					if (strValor.substr(intContador, 1) != '-'){
						strValorFormat = '.' + strValorFormat;
					}				
					intPosicao = 0;
				}
				strValorFormat = strValor.substr(intContador, 1) + strValorFormat;
				intPosicao++;
			}
		}
		else{
			strValorFormat = strValor;
		}
		//Remove sinal negativo, se necessário
		if (intNegativo > -1){
			if ((blnNegativo == false) || (dblValor == 0)){
				strValorFormat = strValorFormat.substr(1,strValorFormat.length - 1);
			}
		}

		objCampo.value = strValorFormat;		
	}
}

//***********************************************************************
//Objetivos	: Monta string com X caracteres repetidos
//Premissas	: 
//Entradas	: Caracter a ser repetido, número de repetições
//Saída		: String com os X caracteres
//***********************************************************************
function MontaStringIgual(strCaracter, intTamanho)
{
	var intContador; //Contador usado na repetição
	var strString = ''; //String de retorno
	for (intContador = 1; intContador <= intTamanho; intContador++)
		strString += strCaracter;
	return strString;
}

//***********************************************************************
//Objetivos	: Valida a colagem de dados em campos numérico real
//Premissas	: 
//Entradas	: Objeto campo, indicativo se aceita negativos, número de casas decimais
//Saída		: Objeto campo
//***********************************************************************
function ValidaPasteNumeroReal(objCampo, blnNegativo, intDecimal)
{
	var strTexto = RetornaClipBoard(); //Valor armazenado no clipboard
	var intVirgula; //Posição da vírgula, se existir
	LimpaClipBoard();

	if (strTexto != '')
	{
		strTexto = SoNumeroReal(strTexto, blnNegativo);
		intVirgula = strTexto.search(',');
		
		//Se campo não aceita decimais, remove tudo a direita da vírgula
		if ((intDecimal == 0) && (intVirgula >-1)){
			strTexto = strTexto.substr(0, intVirgula)
		}
		
		if (objCampo.maxLength > 0)
		{
			if (objCampo.maxLength >= strTexto.length)
			{
				objCampo.value = strTexto;
			}
			else
			{
				objCampo.value = strTexto.substr(0, objCampo.maxLength);
			}
		}
		else
		{
			objCampo.value = strTexto;
		}
	}
}


//DATA:
//onkeypress="javascript:FormataData(this);EventValidaKeyData(this);"
//onbeforepaste="javascript:ValidaPasteData(this);"
//onBlur="javascript:ValidaData(this);"

//***********************************************************************
// Objetivo : Formata a data conforme o usuário digita os valores no text
// Premissas : 
// Entradas : valor do text em questao (this)
// Saídas : nenhuma
//***********************************************************************
function FormataData(Campo) 
{	
	var intTecla = event.keyCode;
 	
	if (Campo.value.length == 0)
	{
		Campo.EditaCampo=true;
	}

    	if (Campo.value.length == 9)
	{
		//document.writeln(Campo.value.indexOf("/"));
		
		if (Campo.value.lastIndexOf("/") == 2)
		{
		Campo.EditaCampo=true;
		}
		else
		{
			if (Campo.value.indexOf("/") >= 3)
			{
			Campo.EditaCampo=true;
			}
			else
			{
			Campo.EditaCampo=false;
			}
		}
	}
  
  if (Campo.EditaCampo == true) {
	//alert(Campo.EditaCampo);
	vntValor = Campo.value;
	vntValor = vntValor.replace( ".", "" );
	vntValor = vntValor.replace( "/", "" );
 	vntValor = vntValor.replace( "/", "" );
	lngTamanho = vntValor.length + 1;

	if ( intTecla != 9 && intTecla != 8 )
	{
		if ( lngTamanho > 2 && lngTamanho < 5 )
			Campo.value = vntValor.substr( 0, lngTamanho - 2  ) + '/' + vntValor.substr( lngTamanho - 2, lngTamanho );
		if ( lngTamanho >= 5 && lngTamanho <= 10 )
			Campo.value = vntValor.substr( 0, 2 ) + '/' + vntValor.substr( 2, 2 ) + '/' + vntValor.substr( 4, 4 ); 
	}
  }
  else {	
   	lngTamanho = Campo.value.length+1;
        if (lngTamanho == 3 )
    		Campo.EditaCampo=true;
        if (lngTamanho == 6 )
   		Campo.EditaCampo=true;
  }
}

//***********************************************************************
//Objetivos	: Valida a colagem de dados em campo Data
//Premissas	: 
//Entradas	: Objeto campo
//Saída		: Objeto campo
//***********************************************************************
function ValidaPasteData(objCampo)
{
	var strTexto = RetornaClipBoard(); //Valor armazenado no clipboard
	LimpaClipBoard();
	if (strTexto != '')
	{
		strTexto = SoNumero(strTexto);
		if (strTexto.length == 8)
			objCampo.value = strTexto.substr(0,2) + "/" + strTexto.substr(2,2) + "/" + strTexto.substr(4,4);
		else
			objCampo.value = '';
	}
}

//***********************************************************************
//Objetivos	: Retorna dados da área de transferência
//Premissas	: 
//Entradas	: 
//Saída		: Texto armazenado na área de transferência
//***********************************************************************
function RetornaClipBoard()
{
	return (window.clipboardData.getData('Text')).replace(/\t/g,'');
}

//***********************************************************************
//Objetivos	: Limpa área de transferência
//Premissas	: 
//Entradas	: 
//Saída		: 
//***********************************************************************
function LimpaClipBoard()
{
	return window.clipboardData.setData('Text','');
}

//***********************************************************************
//Objetivos	: Remove da string todos os caracteres que não aceitem as condições
//Premissas	: 
//Entradas	: String com o conteúdo a ser validado
//Saída		: String com os caracteres inválidos removidos
//***********************************************************************
function SoNumero(strTexto)
{
	var intContador; //Contador usado para varrer a string
	var strRetorno; //Retorno da função
	strRetorno = '';
	for (intContador=0; intContador < strTexto.length; intContador++)
	{
		if (!isNaN(strTexto.substr(intContador,1)) && strTexto.substr(intContador,1) != ' ')
			strRetorno = strRetorno + strTexto.substr(intContador,1);
	}
	return strRetorno;
}


//***********************************************************************
// Objetivo : Formata a data conforme o usuário digita os valores no text
// Premissas : 
// Entradas : valor do text (this)
// Saídas : alert indicando o erro da data
//***********************************************************************
function ValidaData() 
{
	strData = event.srcElement.value;	
	if (strData.length>0)
	{
		var dtmPat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; 
		var arrMatch = strData.match(dtmPat); 
		if (arrMatch == null) 
		{
			alert("Formato de data invalido.")
			event.srcElement.focus();
			event.srcElement.select();
			return;
		}
		else	
		{
			intDia = arrMatch[1]; 
			if (intDia.length==1)
				intDia = '0' + intDia;						
			intMes = arrMatch[3];
			if (intMes.length==1)
				intMes = '0' + intMes;
			intAno = arrMatch[4];
			if (intDia < 1 || intDia > 31) 
			{
				alert("Dia incorreto.");
				event.srcElement.focus();
				event.srcElement.select();
				return;
			}
			if (intMes < 1 || intMes > 12) 
			{ 
				alert("Mês incorreto.");
				event.srcElement.focus();
				event.srcElement.select();
				return;
			}
			if ((intMes==4 || intMes==6 || intMes==9 || intMes==11) && intDia==31) 
			{
				alert("Mês "+intMes+" não tem 31 dias!")
				event.srcElement.focus();
				event.srcElement.select();
				return;
			}
			if (intMes == 2) 
			{ 
				var blnIsLean = (intAno % 4 == 0 && (intAno % 100 != 0 || intAno % 400 == 0));
				if (intDia>29 || (intDia==29 && !blnIsLean)) 
				{
					alert("Fevereiro " + intAno + " não tem " + intDia + " dias!");
					event.srcElement.focus();
					event.srcElement.select();
					return;
				}
			}

			if (intAno <= 0 )
			{
				alert("Ano incorreto.");
				event.srcElement.focus();
				event.srcElement.select();
				return;
			}


		}		
		event.srcElement.value = intDia + '/' + intMes + '/' + intAno; 	
		return true;
	}	
}


//***********************************************************************
//Objetivos	: Formatação de campos numéricos durante a digitação
//Premissas	: 
//Entradas	: Evento do teclado, número de casas decimais do campo e se aceita negativos
//Saída		: Valor formatado
//***********************************************************************
function FormataValorDigitado(objCampo, intDec, intLang) {

	var strVr;        //valor do campo 
	var intTam;       //tamanho 

	if(intLang==1)
	{	
		if (objCampo.length-2 == objCampo.indexOf(",")){objCampo = objCampo + '0';}

	}else
	{
		if (objCampo.length-2 == objCampo.indexOf(".")){objCampo = objCampo + '0';}
	}

		strVr = objCampo;		
		strVr = strVr.replace( "/", "" );
		strVr = strVr.replace( "/", "" );
		strVr = strVr.replace( ",", "" );
		strVr = strVr.replace( ",", "" );
		strVr = strVr.replace( ",", "" );
		strVr = strVr.replace( ",", "" );
		strVr = strVr.replace( ".", "" );
		strVr = strVr.replace( ".", "" );
		strVr = strVr.replace( ".", "" );
		strVr = strVr.replace( ".", "" );
		strVr = EliminaZerosEsquerda(strVr);
		intTam = strVr.length;
		
			if(intLang==1)
			{			
				if ( intTam == 13 ) {return false;}
				if ( intTam == 1 ){objCampo = '0,0' + strVr;}
				if ( intTam == 2 ){objCampo = '0,' + strVr;}
				if ((intTam > 2 ) && (intTam <= 5))  {objCampo = strVr.substr(0,intTam-2) + ',' + strVr.substr(intTam-2,2); }
				if ((intTam > 5 ) && (intTam <= 8))  {objCampo = strVr.substr(0,intTam-5) + '.' + strVr.substr(intTam-5,3) + ',' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 8 ) && (intTam <= 11)) {objCampo = strVr.substr(0,intTam-8) + '.' + strVr.substr(intTam-8,3) + '.' + strVr.substr(intTam-5,3) + ',' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 11) && (intTam <= 12)) {objCampo = strVr.substr(0,intTam-11) + '.' + strVr.substr(intTam-11,3) + '.' + strVr.substr(intTam-8,3) + '.' + strVr.substr(intTam-5,3) + ',' + strVr.substr(intTam-2,2); }
			}else
			{
				if ( intTam == 13 ) {return false;}
				if ( intTam == 1 ){objCampo = '0.0' + strVr;}
				if ( intTam == 2 ){objCampo = '0.' + strVr;}
				if ((intTam > 2 ) && (intTam <= 5))  {objCampo = strVr.substr(0,intTam-2) + '.' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 5 ) && (intTam <= 8))  {objCampo = strVr.substr(0,intTam-5) + ',' + strVr.substr(intTam-5,3) + '.' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 8 ) && (intTam <= 11)) {objCampo = strVr.substr(0,intTam-8) + ',' + strVr.substr(intTam-8,3) + ',' + strVr.substr(intTam-5,3) + '.' + strVr.substr(intTam-2,2) ; }
				if ((intTam > 11) && (intTam <= 12)) {objCampo = strVr.substr(0,intTam-11) + ',' + strVr.substr(intTam-11,3) + ',' + strVr.substr(intTam-8,3) + ',' + strVr.substr(intTam-5,3) + '.' + strVr.substr(intTam-2,2); }			
			}

		return objCampo;
	}

