	var elemento;
	var formato;
	var arrayValoresFixos;
	var valoresFixos;
	var string;
	var id;
/**
 * formata
 * @param {type} id 
 */
 function formata(id) {
    this.id=id;
    elemento=document.getElementById(this.id);
   	string=elemento.value;
    formato=elemento.attributes['mascara'].value;
   	if(formato.indexOf("*")==-1){//verifica se nao eh infinito
       	arrayValoresFixos = new Array(formato.length);   //array das posicoes dos valores fixos
	   	valoresFixos=new Array(formato.length);		//array dos valores fixos
	   	switch (formato) {
	   		default:
				if (string.length<formato.length){
				this.verificaFormato()	
	     	  	}  
       	 		else{
	       	 		this.verificaFormato();
    	   	 		elemento.value=string.slice(0,formato.length)
    	   	 		elemento.blur();
       	 		}
				break;
		}
     }   	
}
/**
 * verificaFormato
 * @param {type} null	 
 */
 function verificaFormato() {
 	var j=0;
        	for(var i=0; i<formato.length; i++) {    //monta array dos valores fixos
        		if(formato.charAt(i)!='0' && formato.charAt(i)!='C' && formato.charAt(i)!='\\'){//não é caracter especial
        			arrayValoresFixos[j]=i;
        			valoresFixos[j]=formato.charAt(i);
        			j++;        					
        		}        	
        		else if(formato.charAt(i)=='\\' && formato.charAt(i+1)=='A'){
					arrayValoresFixos[j]=i;
        			valoresFixos[j]=formato.charAt(i+1);
        			var t=formato.replace(valoresFixos[j],'');
        			formato=t.replace('\\',valoresFixos[j]);
        			j++;
				} 			
        	}
        		var i=0;
       		 	var pre='';
        		for(var k=arrayValoresFixos.length; k>=0; k--) { //constroi o prefixo- se houver - na primeira digitacao
        			if(arrayValoresFixos[k]==k && string.length ==1){
        				pre=valoresFixos[k]+pre;
       		 			i++;
       		 		} 
       		 	}
        	     	
        		for(i; i<arrayValoresFixos.length; i++) {//acrescenta na string o caracter fixo
        			if (string.length == arrayValoresFixos[i]){
        				string = string + valoresFixos[i];
        			}
        		}
        	this.verificaConteudo();	
        	string=pre+string;	    
        	if(string.length>formato.length)   			        		
           		string=string.slice(0,string.length-1);	
        		
           	elemento.value=string//atribui o valor do prefixo + string pro campo	
        }
/**
 * verificaConteudo
 * @param {null}  
 */
 function verificaConteudo() {
				//verifica se é inteiro
				if (formato.charAt(string.length-1)=='0'){
					 boxValue = parseFloat(string.charAt(string.length-1)); 
					 if ( isNaN(boxValue) ) { 
					 	alert("Digite um número."); 
						string=string.slice(0,string.length-1);					 	
					 }					
				}
 }       
