/* funções genéricas para formatar dados 
autor: Hugo Maia
data de criação: 05/04/2004
Para utilizar as funções use o evento onKeyPress
*/

// Máscara de CEP
function mascaraCep(campo)
{
	if (campo.value.length=="2")
	{
		campo.value = campo.value + "."
	}
	if (campo.value.length=="6")
	{
		campo.value = campo.value + "-"
	}
}

// formatação de data
function FormatarData(campo) 
{
	tecla = window.event.keyCode;
	vr = campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;
	if ( tecla != 9 && tecla != 8 && tecla != 13 && tecla != 37 && tecla != 39 && tecla != 46 ){
		if ( tam > 2 && tam < 5 )
			campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, tam );
		if ( tam >= 5 && tam <= 10 )
			campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); }
}



//formatação CPF
function FormatarCPF(campo) {
	tecla = window.event.keyCode;
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 && tecla != 13 && tecla != 37 && tecla != 39 && tecla != 46 ) {
		if ( tam <= 3 ) 
	 		campo.value = vr ;
	 	if ( (tam > 3) && (tam <= 6) ) 
	 		campo.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, tam ) ;
	 	if ( (tam > 6) && (tam <= 9) ) 
	 		campo.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, tam ) ;
	 	if ( (tam > 9) && (tam <= 10) ) 
	 		campo.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ) + '-' + vr.substr( 9, tam ) ;
	}
}

//formatação CNPJ

function FormatarCNPJ(campo) {
	tecla = window.event.keyCode;
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 && tecla != 13 && tecla != 37 && tecla != 39 && tecla != 46 ) {
		if ( tam <= 2 ) 
	 		campo.value = vr ;
	 	if ( (tam > 2) && (tam <= 5) ) 
	 		campo.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, tam ) ;
	 	if ( (tam > 5) && (tam <= 8) ) 
	 		campo.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, tam ) ;
	 	if ( (tam > 8) && (tam <= 12) ) 
	 		campo.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/' + vr.substr( 8, tam ) ;
	 	if ( (tam > 12) && (tam <= 16) ) 
	 		campo.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/' + vr.substr( 8, 4 ) + '-' + vr.substr( 12, tam ) ;
	}
}


/********************************************************
* Descricao: formata valores digitados					*
* Funcao inserida por: Greice Mesquita					*
* Data: 29/07/2003										*
* Parâmetros: 											*
* 	campo = objeto onde será digitado o valor			*
* 	tammax = casas decimais								*
* 	teclapres = código da tecla assionada (event)		*
* 	formato = 											*
*		BR = formata valor no padrão Brasil				*
*		INT = formata valor no padrão internacional		*
* caso o caracteres										*
* Retorno:												*	
* 	 valor formatado									*
*********************************************************/	
function FormataValorBR(campo,tammax,teclapres,formato)
{
	var sinalMenos;
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length;
			
	if (formato == "INC")
	{
		strdec = ".";
		strmil = ",";
	}
	else
	{
		strdec = ",";
		strmil = ".";
	}
			
	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){tam = tam - 1 ; }
			
	if ( tecla == 189 || tecla == 109 || tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
	{	sinalMenos = vr.indexOf('-');
		if(sinalMenos != -1 )
		{ vr = vr.substr(1, tam);
		  tam = tam -1;
		if ( tam <= 2 ){ 
	 		campo.value = '-' + vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = '-' + vr.substr( 0, tam - 2 ) + strdec + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = '-' + vr.substr( 0, tam - 5 ) + strmil + vr.substr( tam - 5, 3 ) + strdec + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = '-' + vr.substr( 0, tam - 8 ) + strmil + vr.substr( tam - 8, 3 ) + strmil + vr.substr( tam - 5, 3 ) + strdec + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = '-' + vr.substr( 0, tam - 11 ) + strmil + vr.substr( tam - 11, 3 ) + strmil + vr.substr( tam - 8, 3 ) + strmil + vr.substr( tam - 5, 3 ) + strdec + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = '-' + vr.substr( 0, tam - 14 ) + strmil + vr.substr( tam - 14, 3 ) + strmil + vr.substr( tam - 11, 3 ) + strmil + vr.substr( tam - 8, 3 ) + strmil + vr.substr( tam - 5, 3 ) + strdec + vr.substr( tam - 2, tam ) ;}

		}
		else
		{	
		if ( tam <= 2 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + strdec + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + strmil + vr.substr( tam - 5, 3 ) + strdec + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + strmil + vr.substr( tam - 8, 3 ) + strmil + vr.substr( tam - 5, 3 ) + strdec + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + strmil + vr.substr( tam - 11, 3 ) + strmil + vr.substr( tam - 8, 3 ) + strmil + vr.substr( tam - 5, 3 ) + strdec + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 14 ) + strmil + vr.substr( tam - 14, 3 ) + strmil + vr.substr( tam - 11, 3 ) + strmil + vr.substr( tam - 8, 3 ) + strmil + vr.substr( tam - 5, 3 ) + strdec + vr.substr( tam - 2, tam ) ;}
	 	}	
			 
	}		
}

/**
  * remove os espaços tanto do lado esquerdo como do direito de uma string
  * a funcao é incorporada a class, nativa, do javascripo String, sendo possivel
  * seu uso em qlqr texto usado a notacao de metodo nativo.
  * para remover os espaços da esquerda e direita separamente use: ltrim e rtrim
  * respctivamente do mesmo modo ilustrado com a funcao trim abaixo.
  *
  * @name trim
  * @param string
  * @example:
  *	var text = "    Mutúa      ".trim();
  * var fieldvalue = document.getElementById('fieldForm').value.toString().trim();
  */
String.prototype.trim	= function(){return this.replace(/^\s+|\s+$/g,'');}
String.prototype.ltrim	= function(){return this.replace(/^\s+/,'');}
String.prototype.rtrim	= function(){return this.replace(/\s+$/,'');}


/**
 * classe que recebe um evento e retorna
 * um objeto com com o elemento e o evento em um novo objeto.
 * util para situacoes em que se precisa descobrir ql foi o 
 * elemento que disparou o evento.
 *
 * @name Event
 * @param event
 * @return {e, el}
 * @example:
 *
 * [HTML]
 * <form id="qlqr">
 *     <input type="text" id="sayHello" />
 * </form>
 *
 * [JAVSCRIPT]
 * <script>
 *  <!--
 *		var field = document.getElementById('sayHello').onblur=function(e){
	 		// nesta situacao antes de executar qlqr codigo, eh importante
			// recupera o objeto que lancou o evento, entao fazemos:
			input = new Event(e);
			
			// agora pomos manipular o campo normalmente
			alert( "o campo em questao é: " + input.el + " seu valor é.: " + input.el.value + " o evento disparado foi.: " + input.e );
	    }
 *  /-->
 * </script>
 */
var Event = function(e){
	var el = e||event; el = el.target||(el.target=el.srcElement||null);
	return {e: e, el: el};
}