function vFact(obj){
    if (obj.checked==true){
        document.form1.ValRFCfact.value="con_factura";
    }else{
        document.form1.ValRFCfact.value="sin_factura";
    }
}
function comprobarSiBisisesto(anio){
	if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
		return true;
	}
	else {
		return false;
	}
}
function esFechaValida(fecha,txtObjName){
    /*if (fecha != undefined && fecha.value != "" ){
        if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)){
            alert("formato de fecha no válido (dd/mm/aaaa)");
            return false;
        }
    }*/
    var dia = parseInt(fecha.substring(0,2),10);
    var mes = parseInt(fecha.substring(3,5),10);
    var anio = parseInt(fecha.substring(6),10);

    switch(mes){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            numDias=31;
            break;
        case 4: case 6: case 9: case 11:
            numDias=30;
            break;
        case 2:
            if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
            break;
        default:
        txtObjName.value = "";
        alert("El RFC ingresado es incorrecto. Verificar la fecha en el RFC");
    return false;
    }
    if (dia>numDias || dia==0){
        txtObjName.value = "";
        alert("El RFC ingresado es incorrecto. Verificar la fecha en el RFC");
        return false;
    }
    return true;
}
function ValidaRFC12(txtObj){//Moral.
    if(txtObj.value.length!=12){
        txtObj.value = "";
        alert('El RFC ingresado es incorrecto. El formato correcto es: XXXAAMMDDXXX Para personas morales, con mayusculas.');
        return(false);
    }
    if ( !txtObj.value.match(/^[a-zA-Z]{3,3}[0-9]{6,6}[a-zA-Z0-9]*$/) ){
        txtObj.value = "";
        alert('El RFC ingresado es incorrecto. El formato correcto es: XXXAAMMDDXXX Para personas morales, con mayusculas.');
        return(false);
    }
    if(txtObj.value.length==12){
        var tipofecha=txtObj.value.substring(3,9);
    }
    var aa=tipofecha.substring(0,2);
    if (parseInt(aa)<=99 && parseInt(aa)>=40){aa="19"+aa}else{aa="20"+aa}
    var mm=tipofecha.substring(2,4);
    var dd=tipofecha.substring(4,6);
    var valFecha=dd+"/"+mm+"/"+aa
    if (esFechaValida(valFecha,txtObj)==false){
        txtObj.value="";
        return(false);
    }
    //txtObj.value=txtObj.value.toUpperCase();
    return(true);
}
function ValidaRFC13(txtObj){//Fisica.
    if(txtObj.value.length!=13){
        txtObj.value = "";
        alert('El RFC ingresado es incorrecto. El formato correcto es: XXXXAAMMDDXXX Para personas fisicas, con mayusculas.');
        return(false);
    }
    if ( !txtObj.value.match(/^[a-zA-Z]{4,4}[0-9]{6,6}[a-zA-Z0-9]*$/) ){
        txtObj.value = "";
        alert('El RFC ingresado es incorrecto. El formato correcto es: XXXXAAMMDDXXX Para personas fisicas, con mayusculas.');
        return(false);
    }
    if(txtObj.value.length==13){
        var tipofecha=txtObj.value.substring(4,10);
    }
    var aa=tipofecha.substring(0,2);
    if (parseInt(aa)<=99 && parseInt(aa)>=40){aa="19"+aa}else{aa="20"+aa}
    var mm=tipofecha.substring(2,4);
    var dd=tipofecha.substring(4,6);
    var valFecha=dd+"/"+mm+"/"+aa
    if (esFechaValida(valFecha,txtObj)==false){
        txtObj.value="";
        return(false);
    }
    //txtObj.value=txtObj.value.toUpperCase();
    return(true);
}
