function esBisiesto(x) {
   if(x==0) return true;
   Fecha29 = new Date(x,1,29);
   Fecha1 = new Date(x,2,1);
   if(Fecha29.getDay()==Fecha1.getDay()) return false;
   else return true;
  }

function validaFechaRFC(ano,mes,dia) {
   if(dia.substring(0,1)=='0') dia = dia.substring(1,2);
   if(mes.substring(0,1)=='0') mes = mes.substring(1,2);
   if(ano.substring(0,1)=='0') ano = ano.substring(1,2);
   if(mes<1 || mes>12) return false
   if(dia<1) return false
   dpm = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
   if(esBisiesto(ano)) dpm[2]=29; else dpm[2]=28;
   if(dia>dpm[mes]) return false;
   return true;
  }

function validaRFC(RFC) {
alert("ENTRE A validaRFC);
var lon = RFC.length;
if(lon!=12 && lon!=13) {
 alert('EL RFC DEBE SER DE 12 O 13 DIGITOS.');
 return false;
}
if(lon==12) {fecha=RFC.substr(3,6); alfab=RFC.substr(0,3); homon=RFC.substr(9,3);}
if(lon==13) {fecha=RFC.substr(4,6); alfab=RFC.substr(0,4); homon=RFC.substr(10,3);}
if(isNaN(fecha) || !validaFechaRFC(fecha.substr(0,2),fecha.substr(2,2),fecha.substr(4,2))) {
 alert('RFC INVALIDO.');
 return false;
}
for(i=0; i<alfab.length; i++) 
 if(!isNaN(alfab.substr(i,1)))
  { alert('RFC INVALIDO.'); return false; }
if(!validaCaracteres(alfab,'&ρΡ')) 
  { alert('RFC INVALIDO.'); return false; }
if(!validaCaracteres(homon,'ρΡ')) 
  { alert('RFC INVALIDO.'); return false; }
return true;
}

function validaRFC2(){
	alert("ENTRE A validaRFC2");
}