
//SCRIPT QUE RETIRA CARACTERES NÃO NUMERICOS
function validaDigitos(objeto) {
	var valorAuxiliar = '';
	var valor;
	var digitosValidos;

	digitosValidos = '0123456789';

	valor = objeto.value;

	for (i=0;i<valor.length;i++){ 
	
		if(digitosValidos.indexOf(valor.charAt(i))>=0) {
			valorAuxiliar += valor.charAt(i);
		}
	}
	objeto.value=valorAuxiliar;
}



//SCRIPT QUE FORMATA UM DADO
function formataValor(objeto,tammax,pos,teclapres){
	validaDigitos(objeto);
	
	var tecla = teclapres.keyCode;
    	vr = objeto.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
        //alert(vr);
        
        
	
	tam = vr.length ;
        //alert(tam);


	if (tam > tammax) {
		vr = vr.substr(0, tammax);
		tam = vr.length;
	}        
               
		
                  if ( tam >= pos && tam < 6 ) objeto.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2 , tam );
                  else 
                    if ( tam >= pos && tam < 7 ) objeto.value = vr.substr( 0, 1 ) + '.' + vr.substr( 1, tam - 3 ) + ',' + vr.substr(tam - 2 , tam);
                    else 
                      if ( tam >= pos && tam < 8 ) objeto.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, tam - 4 ) + ',' + vr.substr(tam - 2 , tam);
                      else 
                        if ( tam >= pos && tam < 9 ) objeto.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, tam - 5 ) + ',' + vr.substr(tam - 2 , tam);
                      else 
                        if ( tam >= pos && tam < 10 ) objeto.value = vr.substr( 0, 1 ) + '.' + vr.substr( 1, 3 ) + '.' + vr.substr( 4, tam - 6 ) + ',' + vr.substr(tam - 2 , tam);
                        else 
                          if ( tam >= pos && tam < 11 ) objeto.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, tam - 7 ) + ',' + vr.substr(tam - 2 , tam);
                          else 
                            if ( tam >= pos && tam < 12 ) objeto.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, tam - 8 ) + ',' + vr.substr(tam - 2 , tam);
     
}
	 
	 
	 


//SCRIPT QUE FORMATA UM DADO
function formataCPF(objeto,tammax,pos,teclapres){
	validaDigitos(objeto);
	
	var tecla = teclapres.keyCode;
	vr = objeto.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	
	tam = vr.length ;

	if (tam > tammax) {
		vr = vr.substr(0, tammax);
		tam = vr.length;
	}

		if ( tam <= 2 ){
	 		objeto.value = vr ;}

                if ( tam > 3 && tam <= 6 ) objeto.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3 , tam );
                  else 
                    if ( tam > 6 && tam <= 9 ) objeto.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr(6 , tam);
                    else 
                      if ( tam > 9 && tam <= 11 ) objeto.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ) + '-' + vr.substr(9 , tam);
                        else 
                          if ( tam > 11 && tam <= 14 ) objeto.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/' + vr.substr( 8, 4 ) + '-' + vr.substr(12, tam);

	

}




//SCRIPT QUE FORMATA UM DADO
function formataSemestre(objeto,tammax,pos,teclapres){
	validaDigitos(objeto);
	
	var tecla = teclapres.keyCode;
	vr = objeto.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	
	tam = vr.length ;

	if (tam > tammax) {
		vr = vr.substr(0, tammax);
		tam = vr.length;
	}

		if ( tam <= 2 ){
	 		objeto.value = vr ;}
		if ( tam > pos && tam <= tammax ){
			objeto.value = vr.substr( 0, tam - pos ) + '.' + vr.substr( tam - pos, tam );}

}




//SCRIPT QUE FORMATA UM DADO
function formataDado(objeto,tammax,pos,teclapres){
	validaDigitos(objeto);

	var tecla = teclapres.keyCode;
	vr = objeto.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	
	tam = vr.length ;

	if (tam > tammax) {
		vr = vr.substr(0, tammax);
		tam = vr.length;
	}

		if ( tam <= 2 ){
	 		objeto.value = vr ;}
		if ( tam > pos && tam <= tammax ){
			objeto.value = vr.substr( 0, tam - pos ) + '-' + vr.substr( tam - pos, tam );}

}



//SCRIPT QUE FORMATA UMA PLACA
function formataPlaca(objeto,tammax,pos,teclapres){
	//validaDigitos(objeto);

	var tecla = teclapres.keyCode;
	
	
	vr = objeto.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	
	tam = vr.length ;

	if (tam > tammax) {
		vr = vr.substr(0, tammax);
		tam = vr.length;
	}

		if ( tam <= 2 ){
	 		objeto.value = vr ;}
		if ( tam > pos && tam <= tammax ){
			objeto.value = vr.substr( 0, tam - pos ) + '-' + vr.substr( tam - pos, tam );}

}



//SCRIPT QUE FORMATA UM DADO
function formataData(objeto,tammax,pos,teclapres){
	validaDigitos(objeto);
	
	var tecla = teclapres.keyCode;
	vr = objeto.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	
	tam = vr.length ;

	if (tam > tammax) {
		vr = vr.substr(0, tammax);
		tam = vr.length;
	}

		if ( tam <= 2 ){
	 		objeto.value = vr ;}
		if ( tam > pos && tam <= 4 ){
			objeto.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 );
                } else 
                  if ( tam > pos && tam <= tammax ) {
                        objeto.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); }

	
}



//SCRIPT QUE FORMATA UM DADO
function formatatel(objeto,tammax,pos,teclapres){
	validaDigitos(objeto);
	
	var tecla = teclapres.keyCode;
	vr = objeto.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
        
	
	tam = vr.length ;

	if (tam > tammax) {
		vr = vr.substr(0, tammax);
		tam = vr.length;
	}        
               

		if ( tam > pos && tam <= 7 ) objeto.value = vr.substr( 0, pos ) + '.' + vr.substr( pos, tam ); 
                else 
                  if ( tam > 7 && tam <= 8 ) objeto.value = vr.substr( 0, 4 ) + '.' + vr.substr( 4, 4 );
                  else 
                    if ( tam > 8 && tam <= 9 ) objeto.value = vr.substr( 0, 2 ) + '-' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 4 );
                    else 
                      if ( tam > 9 && tam <= 10 ) objeto.value = vr.substr( 0, 2 ) + '-' + vr.substr( 2, 4 ) + '.' + vr.substr( 6, 4 );
}















//SCRIPT QUE FORMATA UM DADO
function formatnota(objeto,tammax,pos,teclapres){
	validaDigitos(objeto);
	
	var tecla = teclapres.keyCode;
	vr = objeto.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
        
	
	tam = vr.length ;

	if (tam > tammax ) {
		vr = vr.substr(0, tammax);
		tam = vr.length;
	}        
               

		if ( tam > pos && tam <= 3 ) objeto.value = vr.substr( 0, pos ) + ',' + vr.substr( pos, tam ); 
                else 
                  if ( tam > pos && tam > 3 ) objeto.value = vr.substr( 0, pos + 1 ) + ',' + vr.substr( pos + 1, tam );

}











 
 
 
 
 
 
 documentall = document.all;
/*
* função para formatação de valores monetários retirada de
* http://jonasgalvez.com/br/blog/2003-08/egocentrismo
*/

function formatamoney(c) {
    var t = this; if(c == undefined) c = 2;		
    var p, d = (t=t.split("."))[1].substr(0, c);
    for(p = (t=t[0]).length; (p-=3) >= 1;) {
	        t = t.substr(0,p) + "." + t.substr(p);
    }
    return t+","+d+Array(c+1-d.length).join(0);
}

String.prototype.formatCurrency=formatamoney

function demaskvalue(valor, currency){
/*
* Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as 
* casas decimais
*/
var val2 = '';
var strCheck = '0123456789';
var len = valor.length;
	if (len== 0){
		return 0.00;
	}

	if (currency ==true){	
		/* Elimina os zeros à esquerda 
		* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e 
		* val2 contém os caracteres (descontando os zeros à esquerda)
		*/
		
		for(var i = 0; i < len; i++)
			if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;
		
		for(; i < len; i++){
			if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
		}

		if(val2.length==0) return "0.00";
		if (val2.length==1)return "0.0" + val2;
		if (val2.length==2)return "0." + val2;
		
		var parte1 = val2.substring(0,val2.length-2);
		var parte2 = val2.substring(val2.length-2);
		var returnvalue = parte1 + "." + parte2;
		return returnvalue;
		
	}
	else{
			/* currency é false: retornamos os valores COM os zeros à esquerda, 
			* sem considerar os últimos 2 algarismos como casas decimais 
			*/
			val3 ="";
			for(var k=0; k < len; k++){
				if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);
			}			
	return val3;
	}
}

function reais(obj,event){




var whichCode = (window.Event) ? event.which : event.keyCode;
/*
Executa a formatação após o backspace nos navegadores !document.all
*/
if (whichCode == 8 && !documentall) {	
/*
Previne a ação padrão nos navegadores
*/
	if (event.preventDefault){ //standart browsers
			//event.preventDefault();
		}else{ // internet explorer
			//event.returnValue = false;
	}
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	//obj.value= demaskvalue(x,true).formatCurrency();
	obj.value= x.formatCurrency();
	return false;
}
/*
Executa o Formata Reais e faz o format currency novamente após o backspace
*/
FormataReais(obj,'.',',',event);
} // end reais


function backspace(obj,event){
/*
Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
*/

var whichCode = (window.Event) ? event.which : event.keyCode;
if (whichCode == 8 && documentall) {	
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	var y = demaskvalue(x,true).formatCurrency();

	obj.value =""; //necessário para o opera
	obj.value += y;
	
	if (event.preventDefault){ //standart browsers
			event.preventDefault();
		}else{ // internet explorer
			event.returnValue = false;
	}
	return false;

	}// end if		
}// end backspace

function FormataReais(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;

//if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown
if (whichCode == 0 ) return true;
if (whichCode == 9 ) alert('a');//return true; //tecla tab
if (whichCode == 13) return true; //tecla enter
if (whichCode == 16) return true; //shift internet explorer
if (whichCode == 17) return true; //control no internet explorer
if (whichCode == 27 ) return true; //tecla esc
if (whichCode == 34 ) return true; //tecla end
if (whichCode == 35 ) return true;//tecla end
if (whichCode == 36 ) return true; //tecla home

/*
O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script
*/

if (e.preventDefault){ //standart browsers
		e.preventDefault()
	}else{ // internet explorer
		e.returnValue = false
}

var key = String.fromCharCode(whichCode);  // Valor para o código da Chave
if (strCheck.indexOf(key) == -1) return false;  // Chave inválida

/*
Concatenamos ao value o keycode de key, se esse for um número
*/
fld.value += key;

var len = fld.value.length;
var bodeaux = demaskvalue(fld.value,true).formatCurrency();
fld.value=bodeaux;

/*
Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror.
*/
  if (fld.createTextRange) {
    var range = fld.createTextRange();
    range.collapse(false);
    range.select();
  }
  else if (fld.setSelectionRange) {
    fld.focus();
    var length = fld.value.length;
    fld.setSelectionRange(length, length);
  }
  return false;

}





 
