/* validados(obj) -> onSubmit */
function Confirma_Envio(exibemsg,msg,form) {
	var ok = false;
	if (!validadados(form)){
	 return false;
	 exit;
	}
	if (msg==""){
		msg = "Confirma operação?"
	} 
	if (exibemsg){
		ok = (window.confirm(msg));
	}else{
		ok = true;
	}		
	if (ok){
		form.submit(); 
		return true;
	}else{
		return false;
	}
}
/*
function validadados(ond){
	numcamps = ond.length;
	valida   = undefined;
	error='';
	for(i=0;i<numcamps;i++){
		tipo = ond.elements[i].tipo;
		valida = '';
			alert(ond.elements[i].propertyName);
		switch(tipo){
			case 'cpf':
				valida = validaCPF_CNPJ(ond.elements[i]);
				break;
			case 'cnpj':
				valida = validaCPF_CNPJ(ond.elements[i]);
				break;				
			case 'int': 
				valida = validaint(ond.elements[i]);
				break;
			case 'mail': 
				valida = validamail(ond.elements[i]);
				break;
			case 'texto': 
				valida = validatexto(ond.elements[i]);
				break;
		 	case 'data': 
				valida = validadata(ond.elements[i]);
				break;
		 default: 0==0;
		}
		if(valida!=undefined) error += valida;
	}	
	if(error!=''){
		alert('ERROS ENCONTRADOS\n\n'+error);
		return false;
	}else{
		return true;
    }		
} 
*/
function validalogin(obj,requerido){
	if (!obj.disabled){
		var login = new String(obj.value)	
		var specialChars="\\(\\)><?@,;:\\\\\\\"\\.\\[\\]";	
		var validChars="\[^\\s" + specialChars + "\]";	
		var quotedUser="(\"[^\"]*\")";			
		var atom=validChars + '+';	
		var word="(" + atom + "|" + quotedUser + ")";	
		var loginPat=new RegExp("^" + word + "(\\." + word + ")*$");				
		if ((requerido) && (obj.value=='')){ 
			return ( ' em branco.\n'); 
		}else{		
			if (login.match(loginPat)==null) {
				return ( ' - O login do usuário contêm caracteres inválidos.\n');  
			}
			for (i=0; i<login.length; i++) {
				if (login.charCodeAt(i)>127) {
					return ( ' - O login do usuário contêm caracteres inválidos.\n');  
				}
			}			
		}		
	}
	return '';
}

function validaint(obj,requerido){
	if (!obj.disabled){
		if(requerido && ((obj.value=='') || (obj.value=='NULL'))){
			return ( ' em branco.\n');
		}else{
			if(requerido){
				if((isNaN(obj.value)) || ((obj.value=='') || (obj.value=='NULL'))){
					return ( ' não é válido.\n');
				}
			}
		}
	}
	return '';
}
function validamail(obj,requerido){
	if (!obj.disabled){	
		if ((obj.value == 'NULL') || (obj.value == "")) {
			if (requerido)	
				return ( ' - Endereço de email em branco.\n'); 
			else return '';
		}
		emailStr = new String(obj.value);
	
		/* The following variable tells the rest of the function whether or not
		to verify that the address ends in a two-letter country or well-known
		TLD.  1 means check it, 0 means don't. */
	
		var checkTLD=1;
	
		/* The following is the list of known TLDs that an e-mail address must end with. */
		
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
		
		/* The following pattern is used to check if the entered e-mail address
		fits the user@domain format.  It also is used to separate the username
		from the domain. */
		
		var emailPat=/^(.+)@(.+)$/;
		
		/* The following string represents the pattern for matching all special
		characters.  We don't want to allow special characters in the address.
		These characters include ( ) < > @ , ; : \ " . [ ] */
		
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		
		/* The following string represents the range of characters allowed in a
		username or domainname.  It really states which chars aren't allowed.*/
		
		var validChars="\[^\\s" + specialChars + "\]";
		
		/* The following pattern applies if the "user" is a quoted string (in
		which case, there are no rules about which characters are allowed
		and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
		is a legal e-mail address. */
		
		var quotedUser="(\"[^\"]*\")";
		
		/* The following pattern applies for domains that are IP addresses,
		rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
		e-mail address. NOTE: The square brackets are required. */
		
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		
		/* The following string represents an atom (basically a series of non-special characters.) */
		
		var atom=validChars + '+';
		
		/* The following string represents one word in the typical username.
		For example, in john.doe@somewhere.com, john and doe are words.
		Basically, a word iseither an atom or quoted string. */
		
		var word="(" + atom + "|" + quotedUser + ")";
		
		// The following pattern describes the structure of the user
		
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		
		/* The following pattern describes the structure of a normal symbolic
		domain, as opposed to ipDomainPat, shown above. */
		
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		
		/* Finally, let's start trying to figure out if the supplied address is valid. */
		
		/* Begin with the coarse pattern to simply break up user@domain into
		different pieces that are easy to analyze. */
		
		var matchArray=emailStr.match(emailPat);
	
		if (matchArray==null) {
			/* Too many/few @'s or something; basically, this address doesn't
			even fit the general mould of a valid e-mail address. */		
			return ( ' - Endereço de email parece incorreto (verificar @).\n');  
		}
		
		var user=matchArray[1];
		var domain=matchArray[2];
	
		// Start by checking that only basic ASCII characters are in the strings (0-127).
	
		for (i=0; i<user.length; i++) {
			if (user.charCodeAt(i)>127) {
				return ( ' - O nome do usuário contêm caracteres inválidos.\n');  
			}
		}
		
		for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {
				return ( ' - O domínio contêm caracteres inválidos.\n');  
			}
		}
	
		// See if "user" is valid
	
		if (user.match(userPat)==null) {
		// user is not valid
			return ( ' - O nome do usuário contêm caracteres inválidos.\n');  
		}
	
		/* if the e-mail address is at an IP address (as opposed to a symbolic
		host name) make sure the IP address is valid. */
	
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) {
		// this is an IP address
			for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					return ( ' - Endereço IP de destino é inválido!\n');  
				}
			}		
		}
	
		// Domain is symbolic name.  Check if it's valid.
		
		var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;
		for (i=0;i<len;i++) {
			if (domArr[i].search(atomPat)==-1) {
				return ( ' - O nome do domínio parece não ser válido.\n');  
			}
		}
	
		/* domain name seems valid, but now make sure that it ends in a
		known top-level domain (like com, edu, gov) or a two-letter word,
		representing country (uk, nl), and that there's a hostname preceding
		the domain or country. */
		
		if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
			return ( ' - O endereço tem de finalizar com um domínio bem conhecido ou com duas letras do país.\n');  
		}
	
		// Make sure there's a host name preceding the domain.
		
		if (len<2) {
			return ( ' - Está faltando o hostname!\n');  
		}
	}
	return '';
}
function VerificaCPF_CNPJ(obj)
{
 if (obj.value == "")
 {
  return true
 }
var msg_erro = ConfereCIC(obj);
 if (msg_erro=="")
 {
    return true;
 }
 else
 {
	 alert(msg_erro);
     obj.focus();
     obj.select();
     return false;

 }
}
function PreencheCIC(objCIC) {
        var chrP = objCIC.value.substring(objCIC.value.length-1, objCIC.value.length);

        if ( !chrP.match(/[0-9]/) && !chrP.match(/[\/.-]/) ) {
                objCIC.value = objCIC.value.substring(0, objCIC.value.length-1);
                return false;
        }
        return true;
}
function validaCPF_CNPJ(obj,requerido){
	alert(obj.value);
	if (!obj.disabled){	
		if((obj.value=='') || (obj.value=='NULL')){
			if (requerido) return ( ' em branco!\n'); else return '';  
		}
		return ConfereCIC(obj);
	}
	return '';
	
}
function validaCNPJ(obj,requerido){
	if (!obj.disabled){	
		if((obj.value=='') || (obj.value=='NULL')){
			if (requerido) return ( ' em branco!\n'); else return '';  
		}
		return ConfereCNPJ(obj);
	}
	return '';
	
}
function ApenasNum(strParm) {
	strParm = String(strParm);
	var chrPrt = "0";
	var strRet = "";
	var j=0;
	for (var i=0; i < strParm.length; i++) {
		chrPrt = strParm.substring(i, i+1);
		if ( chrPrt.match(/\d/) ) {
				if (j==0) {
					strRet = chrPrt;
					j=1;
				}
				else {
					strRet = strRet.concat(chrPrt);
				}
		}
	}
	return strRet;
}

function EhNumero(e,tipo){
	var key;
	var e;	
	var tipo;
	var argv = EhNumero.arguments;
	var argc = EhNumero.arguments.length;
	if (argc == 1){
		e = argv[0];
		tipo = 'DEC';
	}else{
		e = argv[0];
  	 	tipo = argv[1]; 	
	}
	if (tipo == 'INT') var caract = new RegExp(/^[0-9]/); else	var caract = new RegExp(/^[0-9.,]/); 	
	if (e.keyCode)	key=e.keyCode; else key=e.which;
	var caract = caract.test(String.fromCharCode(key));
	if ((!caract) && (key != 13)) return false; else return true;
}

function SoNumeros(e,tipo){
	var key;
	var e;	
	var tipo;
	var argv = SoNumeros.arguments;
	var argc = SoNumeros.arguments.length;
	if (argc == 1){
		e = argv[0];
		tipo = 'DEC';
	}else{
		e = argv[0];
  	 	tipo = argv[1]; 	
	}
	if (tipo == 'INT'){
		var caract = new RegExp(/^[0-9]+$/); 
	}else{
		var caract = new RegExp(/^[0-9.,]+$/); 
	}		
	if (e.keyCode)	key=e.keyCode; else key=e.which;
	var caract = caract.test(String.fromCharCode(key));
	if ((!caract) && (key != 13)) {
	 //alert("Caracter inválido : " +String.fromCharCode(event.keyCode)+"\n Entrar somente com números.");
	 	if (e.keyCode){
			e.keyCode = 0;
			return ;
		}else{
			return false;
		}	
   }
}
function FormataCIC (numCIC) {		
        numCIC = String(numCIC);

        switch (numCIC.length){
        case 11 :
                return numCIC.substring(0,3) + "." + numCIC.substring(3,6) + "." + numCIC.substring(6,9) + "-" + numCIC.substring(9,11);
        case 14 :
                return numCIC.substring(0,2) + "." + numCIC.substring(2,5) + "." + numCIC.substring(5,8) + "/" + numCIC.substring(8,12) + "-" + numCIC.substring(12,14);
        default :
                return numCIC;
        }
}
function ConfereCIC(objCIC) {
		var strCPFPat  = /^\d{3}\.\d{3}\.\d{3}-\d{2}$/;
		var strCNPJPat = /^\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}$/;

		numCPFCNPJ = ApenasNum(objCIC.value);
		
		if (!DigitoCPFCNPJ(numCPFCNPJ)){ 
			return ' - Atenção o Dígito verificador é inválido!\n';
		}
		
		objCIC.value        = FormataCIC(numCPFCNPJ);
		formated_numCPFCNPJ = FormataCIC(numCPFCNPJ);
		if (objCIC.value.match(strCNPJPat)) {
			 objCIC.value = formated_numCPFCNPJ
			 return '';
		}else if (objCIC.value.match(strCPFPat)) {
			 objCIC.value = formated_numCPFCNPJ
			 return '';
		}else{
			 objCIC.value = numCPFCNPJ
			return (' - Digite um valor válido!\n');  
		}
}

function ConfereCNPJ(objCIC) {
		var strCNPJPat = /^\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}$/;

		numCNPJ = ApenasNum(objCIC.value);
		
		if (!DigitoCNPJ(numCNPJ)){ 
			return ' - Atenção o Dígito verificador é inválido!\n';
		}
		
		objCIC.value     = FormataCIC(numCNPJ);
		formated_numCNPJ = FormataCIC(numCNPJ);
		if (objCIC.value.match(strCNPJPat)) {
			 objCIC.value = formated_numCNPJ
			 return '';
		}else{
			 objCIC.value = numCNPJ
			 return (' - Digite um valor válido!\n');  
		}
}

function DigitoCNPJ(numCIC) {
		var numDois = numCIC.substring(numCIC.length-2, numCIC.length);
		var novoCIC = numCIC.substring(0, numCIC.length-2);
		if (numCIC.length < 14) return false;
		switch (numCIC.length){
						case 14 :
										numLim = 9;
										break;
		}
		//

		var numSoma = 0;
		var Fator = 1;
		for (var i=novoCIC.length-1; i>=0 ; i--) {
						Fator = Fator + 1;
						if (Fator > numLim) {
										Fator = 2;
						}
						numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
		}
		numSoma = numSoma/11;
		var numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
    if (numResto > 1) {
			numResto = 11 - numResto;
    }
    else {
      numResto = 0;
    }
    //-- Primeiro dígito calculado.  Fará parte do novo cálculo.
    //--
    var numDigito = String(numResto);
    novoCIC = novoCIC.concat(numResto);
    //--
        numSoma = 0;
        Fator = 1;
        for (var i=novoCIC.length-1; i>=0 ; i--) {
					Fator = Fator + 1;
					if (Fator > numLim) {
									Fator = 2;
					}
					numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
        }
        numSoma = numSoma/11;
        numResto = numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
    if (numResto > 1) numResto = 11 - numResto; else numResto = 0;
        //-- Segundo dígito calculado.
		numDigito = numDigito.concat(numResto);
		//
		if (numDigito == numDois)	return true; else return false;
}

function DigitoCPFCNPJ(numCIC) {
		var numDois = numCIC.substring(numCIC.length-2, numCIC.length);
		var novoCIC = numCIC.substring(0, numCIC.length-2);
		if (numCIC.length < 11) return false;
		switch (numCIC.length){
						case 11 :
										numLim = 11;
										break;
						case 14 :
										numLim = 9;
										break;
		}
		//

		var numSoma = 0;
		var Fator = 1;
		for (var i=novoCIC.length-1; i>=0 ; i--) {
						Fator = Fator + 1;
						if (Fator > numLim) {
										Fator = 2;
						}
						numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
		}
		numSoma = numSoma/11;
		var numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
    if (numResto > 1) {
			numResto = 11 - numResto;
    }
    else {
      numResto = 0;
    }
    //-- Primeiro dígito calculado.  Fará parte do novo cálculo.
    //--
    var numDigito = String(numResto);
    novoCIC = novoCIC.concat(numResto);
    //--
        numSoma = 0;
        Fator = 1;
        for (var i=novoCIC.length-1; i>=0 ; i--) {
					Fator = Fator + 1;
					if (Fator > numLim) {
									Fator = 2;
					}
					numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
        }
        numSoma = numSoma/11;
        numResto = numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
    if (numResto > 1) numResto = 11 - numResto; else numResto = 0;
        //-- Segundo dígito calculado.
		numDigito = numDigito.concat(numResto);
		//
		if (numDigito == numDois)	return true; else return false;
}
//--< Fim da Função >--
function validatexto(obj,requerido){	
	if(requerido && ((obj.value=='') || (obj.value=='NULL')))
		return ( ' em branco.\n'); 
	else return '';
}
function validadata(){
	var checkstr = "0123456789";
  	var DateField;
  	var Datevalue = "";
  	var DateTemp = "";
	var tipo;
  	var seperator = "/";
  	var day;
  	var month;
  	var year;
  	var leap = 0;
  	var err = 0;
  	var i;
	var obj;
	var requerido;
	var ano_requerido;
	var argv = validadata.arguments;
	var argc = validadata.arguments.length;
	obj          = argv[0];
	requerido    = argv[1];
	if (!obj.disabled){
		if (argc == 3) ano_requerido=argv[1]; else ano_requerido=true;  
		err = 0;
		DateField = obj;		
		DateValue = DateField.value;
		if(requerido && (DateValue==''))
			return (' em branco.\n');
		else{
			if (DateValue=='')
				return '';
			else{	  
			  /* Deletando todos os caracteres exceto o 0..9 */
				for (i = 0; i < DateValue.length; i++){
					if (checkstr.indexOf(DateValue.substr(i,1)) >= 0)	DateTemp = DateTemp + DateValue.substr(i,1);
				}
				DateValue = DateTemp;
				switch (DateValue.length){
					case 4 : 
						tipo = "ddmm";
						break;
					case 6 : 
						tipo = "ddmmaaaa";
						break;					
					case 8 : 
						tipo = "ddmmaaaa";
						break;
					default :
						tipo = "ddmmaaaa";
				}
		
			  	/* Exectutando a data para 8 digitos - string*/
			  	/* if entrada do ano com 2-digitos / exemplo 20xx */
				if (DateValue.length == 6){
					err = 21; 
					return (' - Entre com o ano no formato de 4 dígitos.\n');  
				}
				if (DateValue.length != 8){
					if (tipo == "ddmmaaaa"){						  		
						err = 19;
						return (' - Data Inválida.\n');  
					}
				}
			  	if (DateValue.length != 4){
					if (tipo == "ddmm"){
						err = 19;
						return (' - Data Inválida.\n');  
					}
			   	}else{
					if (ano_requerido) return (' - Data Inválida : Entre com o ano.\n');  
				}
				/* Se o ano for errado = 0000 */
				year == 0;
				
			  	if ((tipo == "ddmmaaaa")){
					if (err ==0){
						year = DateValue.substr(4,4);
						if (year == 0){
							err = 20;
							return (' - Data Inválida (Falta o ano).\n');  
						}
					}
				}
		
			  	/* Validando o mês*/
			  	month = DateValue.substr(2,2);
			  	if ((month < 1) || (month > 12)){
					err = 21;
					return (' - Data Inválida (Mês incorreto).\n');  
				}
			  	/* Validando o dia*/
			  	day = DateValue.substr(0,2);
			  	if (day < 1){
					err = 22;
					return (' - Data Inválida (Dia incorreto).\n');  
				}
			  	/* Validando ano Bissexto / fevereiro / dia */
			  	if (tipo == "ddmmaaaa"){
					if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) leap = 1;
				  	if ((month == 2) && (leap == 1) && (day > 29)){
						err = 23;
						return (' - Data Inválida (Dia incorreto para fevereiro).\n');  
					}
				  	if ((month == 2) && (leap != 1) && (day > 28)){
						err = 24;
						return (' - Data Inválida (Dia incorreto para fevereiro).\n');  
					}
				}
			  	/* Validando o mês */
			  	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))){
					err = 25;
					return (' - Data Inválida (Dia incorreto).\n');  
				}
				if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))){
					err = 26;
					return (' - Data Inválida (Dia incorreto).\n');  
				}
				/* if 00 houvendo entrada, sem erros */
				if ((tipo == "ddmm") && (day > 29) && (month == "02")){	 
					err = 27;
					return (' - Data Inválida (Dia incorreto).\n');  
				}		  
				if ((day == 0) && (month == 0) && (year == 00)){
					err = 0; 
					day = ""; 
					month = ""; 
					year = ""; 
					seperator = "";
				}
			}
			  /* if sem erros, escrevo a data completa no Input-Field (e.x. 13/12/2001) */
			if (err == 0){
				if (tipo=="ddmmaaaa")
					DateField.value = day + seperator + month + seperator + year;
				else
					DateField.value = day + seperator + month;
			}
		}
	}
	return '';
}

/* formatadata(obj) -> onKeyDown */
function formatadata(e){
	var key;
	var e;
	var obj;
	var eh_numero;
	var argv = formatadata.arguments;
	var argc = formatadata.arguments.length;
	if (argc > 1){
		e = argv[0];
  	 	obj = argv[1]; 
		eh_numero = EhNumero(e,'INT');
		if (!eh_numero){
			if (e.keyCode){
        		e.keyCode = 0;
				return;
    		}else{
        		return false;
			}		
		}else{
			if (!bOpera){
				if (e.keyCode)	key=e.keyCode; else key=e.which;
				if ((key >= 48 && key <= 57) || (key >= 96 && key <= 105)) {
					if (obj.value.length == 2){
						obj.value += '/';
					}
					if (obj.value.length == 5){
						obj.value += '/';
					}
				}
			}
		}
	}else{
		obj = argv[0];	
		if (obj.value!='') {
			apenasData = ApenasNum(obj.value); 
			if (apenasData.length == 8) 
				obj.value = apenasData.substring(0,2) + "/" + apenasData.substring(4,2) + "/" + apenasData.substring(8,4);
		}
	}
}

/* formatafone(obj) -> onKeyDown */
function formatafone(e,obj){										
	var key;
	if (e.keyCode)	key=e.keyCode; else key=e.which;
	if ((key >= 48 && key <= 57) || (key >= 96 && key <= 105)) {
		if (obj.value.length == 0){
			obj.value = "(";
		}
		if (obj.value.length == 3){
			obj.value += ") ";
		}
		if (obj.value.length == 9){
			obj.value +="-";
		}
	}
}

/* formatacep(obj) -> onKeyDown */
function formatacep(e){
	var key;
	var e;
	var obj;
	var apenasNumeros;
	var argv = formatacep.arguments;
	var argc = formatacep.arguments.length;
	if (argc > 1){
		e = argv[0];
  	 	obj = argv[1]; 
		eh_numero = EhNumero(e,'INT');
		if (!eh_numero){
			if (e.keyCode){
        		e.keyCode = 0;
				return;
    		}else{
        		return false;
			}		
		}else{
			if (!bOpera){	
				if (e.keyCode)	key=e.keyCode; else key=e.which;	
				if ((key >= 48 && key <= 57) || (key >= 96 && key <= 105)) {
					if (obj.value.length == 5) obj.value +="-";
				}
			}
		}	
	}else{
		obj = argv[0];	
		if (obj.value!='') {
			apenasNumeros = ApenasNum(obj.value); 
			if (apenasNumeros.length == 8) obj.value = apenasNumeros.substring(0,5) + "-" + apenasNumeros.substring(5,8) ;
		}	
	}
}

/* formatacpf(obj) -> onKeyDown */
// +---------------------------------------------------+
// | e   - event object                                |
// | obj - object                                      |
// +---------------------------------------------------+
function formatacpf(){ 
	var key;
	var e;
	var obj;
	var eh_numero;
	var argv = formatacpf.arguments;
	var argc = formatacpf.arguments.length;
	if (argc == 1) obj = argv[0];
	if (argc > 1) {
		e = argv[0];
  	 	obj = argv[1]; 
		eh_numero = EhNumero(e,'INT');
		if (!eh_numero){
			if (e.keyCode){
        		e.keyCode = 0;
				return;
    		}else{
        		return false;
			}
		}else{
			if (!bOpera) {
				if (e.keyCode)	key=e.keyCode; else key=e.which;
				if ((key >= 48 && key <= 57) || (key >= 96 && key <= 105)) {
					if (obj.value.length == 3) obj.value +=".";
					if (obj.value.length == 7) obj.value +=".";
					if (obj.value.length == 11) obj.value +="-";
				}			
			}
		}
	}else{
		obj.value = FormataCIC(ApenasNum(obj.value));
		return;
	}	
}

/* formatacnpj(obj) -> onKeyDown */
function formatacnpj(){
	var key;
	var e;
	var obj;
	var eh_numero;
	var argv = formatacnpj.arguments;
	var argc = formatacnpj.arguments.length;
	if (argc == 1) obj = argv[0];
	if (argc > 1) {
		e = argv[0];
  	 	obj = argv[1]; 
		eh_numero = EhNumero(e,'INT');
		if (!eh_numero){
			if (e.keyCode){
        		e.keyCode = 0;
				return;
    		}else{
        		return false;
			}
		}else{
			if (!bOpera) {
				if (e.keyCode)	key=e.keyCode; else key=e.which;						
				if ((key >= 48 && key <= 57) || (key >= 96 && key <= 105)) {
					if (obj.value.length == 2) obj.value +=".";
					if (obj.value.length == 6) obj.value +=".";
					if (obj.value.length == 10)	obj.value +="/";
					if (obj.value.length == 15)	obj.value +="-";
				}
			}
		}
	}else{
		obj.value = FormataCIC(ApenasNum(obj.value));
		return;
	}	
}

/*
Limitar TEXTAREA
Uso: onKeyPress="return limita(campo a ser limitado,tamanho máximo);"
     onKeyUp="conta(campo a ser limitado,campo que recebe contador,tamanho máximo);"
*/
function limita(onde,valmax){
	tecla = event.keyCode;
	if (tecla != 13){
         	var atual = onde.value.length;
       	 	var texto = onde.value;
        		var maximo = valmax - 1;
	        if (atual >= maximo)
       			onde.value=texto.substring(0,maximo);
	}else{
		return false;
	}
}
	
function conta(campo,contador,valmax){
	var atual = campo.value.length;
	var maximo = valmax - 1;
	contador.value = valmax - atual;
	return ;
}