
function validaCNPJ(CNPJ) {

    erro = new String;
	
    if (CNPJ.length < 18) erro += "CNPJ inválido - Dígitos insuficientes.\n"; 
	
    if (CNPJ == '00.000.000/0000-00') erro += "CNPJ inválido.\n"; 
	 
    if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
 
 	if (erro.length == 0) erro += "CNPJ inválido - Dígitos separadores inexistentes.\n";
    }
     
    //substituir os caracteres que não são números
    if(document.layers && parseInt(navigator.appVersion) == 4){
             x = CNPJ.substring(0,2);
             x += CNPJ. substring (3,6);
             x += CNPJ. substring (7,10);
             x += CNPJ. substring (11,15);
             x += CNPJ. substring (16,18);
             CNPJ = x; 
    } 
    else {
             CNPJ = CNPJ. replace (".","");
             CNPJ = CNPJ. replace (".","");
             CNPJ = CNPJ. replace ("-","");
             CNPJ = CNPJ. replace ("/","");
    }

    var nonNumbers = /\D/;
  
    if (nonNumbers.test(CNPJ)) erro += "CNPJ inválido - Dígitos alfanuméricos não são permitidos.\n"; 
               
    var a = [];
    var b = new Number;
    var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];

	for (i=0; i<12; i++){
		   a[i] = CNPJ.charAt(i);
		   b += a[i] * c[i+1];
	}
				
    if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
               
    b = 0;
    for (y=0; y<13; y++) {
		   b += (a[y] * c[y]); 
    }
			   
    if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	
    if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
		   erro +="CNPJ inválido.";
    }
			   
    if (erro.length > 0){
		   alert(erro);
		   return false;
    } 
   
return true;
}


function desmascara_cnpj(cnpj) {
var str = new String;

	for(var i=0; i<cnpj.length; i++) {
		if( (cnpj.charAt(i) == '.') || (cnpj.charAt(i) == '/') || (cnpj.charAt(i) == '-') );

		else {
		str += cnpj.charAt(i);
		}
	}
return str;
}




function mascara_cnpj(myfield, e)
{
    var key;
    var keychar;

    if (window.event)
       key = window.event.keyCode;
    else if (e)
       key = e.which;
    else
       return true;

    keychar = String.fromCharCode(key);

    // control keys
    if ((key==null) || (key==0) || (key==8) || 
            (key==9) || (key==13) || (key==27) )
       return true;

    // numbers
    else if ((("0123456789").indexOf(keychar) > -1)) 
    {

        if (myfield.value.length == 2 || myfield.value.length == 6) 
        {
            myfield.value = myfield.value + '.';		
            return true;
        }    
        else 
            if (myfield.value.length == 10) 
            {
                myfield.value = myfield.value + '/';		                    
                return true;
            }    
            else    
                if (myfield.value.length == 15)
                {
                    myfield.value = myfield.value + '-';		                    
                    return true;
                }                   
    } 
    else
       return false;	
}

