var f_MMAA = /^[\d]{2}\/[\d]{2}$/;
var f_DDMMAAAA = /^[\d]{2}\/[\d]{2}\/[\d]{4}$/;
var f_AAAAMMDD = /^[\d]{4}\/[\d]{2}\/[\d]{2}$/;


//Imprimir OK
function imprimir(){
    window.print();
}

//Salir y cerrar la ventana OK
function salir(){
    parent.window.close();
}

//Regresa a la página anterior OK
function Cancelar(){
    history.back(0);
}


function esIgualA(Obj,valComparar,Titulo){
    var text;
    var pase=false;
     for(i=0;i < Obj.length;i++){
        pase=true;
        text = Obj[i].value;
        if(text == valComparar ){
            alert(Titulo);
            Obj[i].focus();
		return false;
       }
    }
    if (pase==false){

        text=Obj.value
        if(text == valComparar){
            alert(Titulo);
            Obj.focus();
		return false;
        }
    }
    return true;
}


//Valida que el campo no esté vacío OK
function IsNotEmpty(Obj,Titulo){
    var text;
    var pase=false;
     for(i=0;i < Obj.length;i++){
        pase=true;
        text = Obj[i].value;
        if(text.length==0){
            alert(Titulo);
            Obj[i].focus();
		return false;
       }
    }
    if (pase==false){

        text=Obj.value
        if(text.length ==0){
            alert(Titulo);
            Obj.focus();
		return false;
        }
    }
    return true;
}

//Valida que el campo sea numérico OK
function IsNumeric(Obj,Titulo){
  var pase=false;
  for(k=0;k < Obj.length;k++){
        pase=true;
        text = Obj[k].value;
        if(text.length >0){
	        for(var i=0; i<text.length; i++) {
		     var ch=text.substring(i,i+1);
		     if(ch < "0" || ch > "9") {
			  alert("Digite un valor numérico para " + Titulo);
			  return false;
			}
	        }
	  }
    }

 if (pase==false){
     text=Obj.value
     if(text.length >0){
	     for(var i=0; i<text.length; i++) {
		  var ch=text.substring(i,i+1);
		  if(ch < "0" || ch > "9") {
		     alert("Digite una valor numérico para " + Titulo);
		     return false;
		   }
		}
     }
  }
  return true;
}

//Valida que lo ingresado no sea sólo espacios en blanco y retorna un mensaje OK
function esSoloEspaciosMen(cadena,Titulo){
    totalEspacios = 0;
    for (i=0;i<cadena.length;i++) {
        if (cadena.charAt(i) == ' ') {
            totalEspacios ++ ;
        }
    }
    if (totalEspacios == cadena.length) {
        alert(Titulo);
        return false;
    }
    else {
        return true;
    }
}

//Valida que lo ingresado no sea sólo espacios en blanco
function esSoloEspacios(cadena) {
    totalEspacios = 0;
    for (i=0;i<cadena.length;i++) {
        if (cadena.charAt(i) == ' ') {
            totalEspacios ++ ;
        }
    }
    if (totalEspacios == cadena.length) {
        return true;
    }
    else {
        return false;
    }
}

//Valida que un campo no sobrepase X caracteres
function MaxLength(Obj,Titulo,length){
    var text;
    var pase=false;
     for(i=0;i < Obj.length;i++){
        pase=true;
        text = Obj[i].value;
        if(text.length > length ){
            alert(Titulo);
            Obj[i].focus();
		return false;
       }
    }

    if (pase==false){

        text=Obj.value
        if(text.length > length){
            alert(Titulo + text.length - length + ' caracteres');
            Obj.focus();
	    return false;
        }
    }
    return true;
}

//Valida que un campo tenga mínimo X caracteres
function MinLength(Obj,Titulo,length){
    var text;
    var pase=false;
     for(i=0;i < Obj.length;i++){
        pase=true;
        text = Obj[i].value;
        if(text.length < length ){
            alert(Titulo);
            Obj[i].focus();
		return false;
       }
    }

    if (pase==false){
        text=Obj.value
        if(text.length < length){
            alert(Titulo);
            Obj.focus();
	    return false;
        }
    }
    return true;
}

//Valida que el campo sea una fecha y que esté en el debido formato
function IsDate(date){
    expresion = /d{2}\/\d{2}\/\d{4}/
    correcto = expresion.exec(date.value);
    if(!correcto){
            alert("La fecha " + date.value + " no es valida");
            return false;
    }
    return true;
}

//Valida una Fecha OK
function validarFecha(fecha) {

    valFecha = fecha.value ;
    dia = valFecha.substring(0,2);
    primerSeparador = valFecha.substring(2,3);
    mes = valFecha.substring(3,5);
    segundoSeparador = valFecha.substring(5,6);
    ano = valFecha.substring(6,10);

    if( mes == '09' )
        mes = '9';

    if( mes == '08' )
        mes = '8';

    if( dia == '09' )
        dia = '9';

    if( dia == '08' )
        dia = '8';

    if (valFecha.length != 10) {
        alert('El formato de la fecha ingresada no es valido');
        fecha.focus();
        return(false);
    }
    else {
        if (primerSeparador != '/' || segundoSeparador != '/') {
            alert('Los separadores utilizados en la fecha no son validos');
            fecha.focus();
            return(false);
        }
        else {
            if (esSoloEspacios(dia) || isNaN(dia)) {
                alert('El día de la fecha no es valido');
                fecha.focus();
                return(false);
            }
            else {
                if (esSoloEspacios(mes) || isNaN(mes)) {
                    alert('El mes de la fecha no es valido');
                    fecha.focus();
                    return(false);
                }
                else {
                    if (esSoloEspacios(ano) || isNaN(ano)) {
                        alert('El año de la fecha no es valido');
                        fecha.focus();
                        return(false);
                    }
                    else {
                        if (parseInt(ano) > 3000 || parseInt(ano) < 1900) {
                            alert('El año de la fecha está por fuera del rango');
                            fecha.focus();
                            return(false);
                        }
                        else {
                            if (parseInt(mes) > 12 || parseInt(mes) < 1) {
                                alert('El mes de la fecha está por fuera del rango');
                                fecha.focus();
                                return(false);
                            }
                            else {
                                if (esAnoBisiesto(parseInt(ano))) {
                                    diasMeses = new Array(0,31,29,31,30,31,30,31,31,30,31,30,31);
                                }
                                else {
                                    diasMeses = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
                                }
                                if (parseInt(dia) > diasMeses[parseInt(mes)] || parseInt(dia) < 1) {
                                    alert('El día de la fecha está por fuera del rango');
                                    fecha.focus();
                                    return(false);
                                }
                                else {
                                    return(true);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

//Valida si es año bisiesto
function esAnoBisiesto(ano) {
    if (ano%4 == 0) {
        if (ano.toString().substring(2,4) == '00') {
            if (ano%400 == 0) {
                return(true);
            }
            else {
                return(false);
            }
        }
        else {
            return(true);
        }
    }
    else {
        return(false);
    }
}


//////////////////////////////////////////////////////////////////////////////////////
//    Funcion qua pasa los parametros a docuware para ver las imagenes              // 
//////////////////////////////////////////////////////////////////////////////////////
// SIDI

function Docuware(l_dwdocid,l_dwpagecount,l_dwoffset,l_dwflags,l_dwdiskno,l_titulo){
    if(l_dwdocid == -1){
        alert("No existen documentos digitalizados");
        return false;
    }
    else{
        frmppal.dwdocid.value = l_dwdocid;
        frmppal.dwpagecount.value =l_dwpagecount;
        frmppal.dwoffset.value =l_dwoffset;
        frmppal.dwflags.value =l_dwflags;
        frmppal.dwdiskno.value =l_dwdiskno;
        frmppal.paginasig.value ="PRIMERA";
        frmppal.nomVentana.value = l_titulo;
        frmppal.action="http://urapan/docuware/SidiDocumneto.asp"; 
        frmppal.submit();
        return true;
   }
}
//////////////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////////
//PAGOS

//  Valida el formato de la fecha de vencimiento de la tarjeta de credito
function isValFecVenTarjetaCredito(Obj){
    fecha = Obj.value;

    if( !f_MMAA.test(fecha) ){
        alert("El formato de la fecha de vencimiento de la tarjeta no es valido, debe ser MM/AA")
        return false;
    }

    var mes = fecha.substring(0,2);
    var separador = fecha.substring(2,3);
    var ano = fecha.substring(3,5);


    Obj.value = mes;
    if( !IsNumeric(Obj,'el mes de la fecha de vencimiento de la tarjeta de crédito'))
       return false;

    Obj.value = ano;
    if( !IsNumeric(Obj,'el año de la fecha de vencimiento de la tarjeta de crédito'))
       return false;

    Obj.value = fecha;
    if( separador != "/" ){
        alert("El separador de la fecha de vencimiento de la tarjeta de crédito debe ser el /");
        return false;
    }

    if( mes == '08' )
        return true;

    if( mes == '09' )
        return true;

    if( parseInt(mes) > 12 || parseInt(mes) < 1 ){
        alert("El mes debe estar entre 1 y 12 ");
        return false;
    }


    return true;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////
