function CA(isOn){
	for (var i=0;i<frmList.elements.length;i++){
		var e = frmList.elements[i];
		if ((e.name != 'allbox') && (e.type=='checkbox')){
			if (isOn != 1){
				e.checked = frmList.allbox.checked;
				if (frmList.allbox.checked){
					hL(e);
				}else{
					dL(e);
				}
			}else{
				e.tabIndex = i;
				if (e.checked){
					hL(e);
				}else{
					dL(e);
				}
			}
		}
	}
}

function CCA(CB){
		if (CB.checked)
			hL(CB);
		else
			dL(CB);
			
	var TB=TO=0;
	for (var i=0;i<frmList.elements.length;i++){
		var e = frmList.elements[i];
		if ((e.name != 'allbox') && (e.type=='checkbox')){
			TB++;
			if (e.checked) TO++;
		}
	}
	if (TO==TB)
		frmList.allbox.checked=true;
	else
		frmList.allbox.checked=false;
}
function hL(E){
	while (E.tagName!="TR"){
		E=E.parentNode;
	}
	E.className = "H";
}

function dL(E){
	while (E.tagName!="TR"){
		E=E.parentNode;
	}
	E.className = "";
}
function vChk(frm){ 
	var sw=0;
	for(var i=0;i<frm.length;i++){
		if(frm.elements[i].checked){
			sw=1;
		}		
	}
	if(sw!=1){
		alert("Para Eliminar debe seleccionar un Registro.");
		return(false);
	}		
}

function vKeyNum(){
	if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
}

function vKeyNum2(){
	if (event.keyCode < 45 || event.keyCode > 57 || event.keyCode == 46) event.returnValue = false;
}


function esDigito(sChr){
	var sCod = sChr.charCodeAt(0);
	return ((sCod > 47) && (sCod < 58));
	}
	function valSep(oTxt){
	var bOk = false;
	bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
	bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
	return bOk;
	}
	function finMes(oTxt){
	var nMes = parseInt(oTxt.value.substr(3, 2), 10);
	var nRes = 0;
	switch (nMes){
	case 1: nRes = 31; break;
	case 2: nRes = 29; break;
	case 3: nRes = 31; break;
	case 4: nRes = 30; break;
	case 5: nRes = 31; break;
	case 6: nRes = 30; break;
	case 7: nRes = 31; break;
	case 8: nRes = 31; break;
	case 9: nRes = 30; break;
	case 10: nRes = 31; break;
	case 11: nRes = 30; break;
	case 12: nRes = 31; break;
	}
	return nRes;
	}
	function valDia(oTxt){
	var bOk = false;
	var nDia = parseInt(oTxt.value.substr(0, 2), 10);
	bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
	return bOk;
	}
	function valMes(oTxt){
	var bOk = false;
	var nMes = parseInt(oTxt.value.substr(3, 2), 10);
	bOk = bOk || ((nMes >= 1) && (nMes <= 12));
	return bOk;
	}
	function valAno(oTxt){
	var bOk = true;
	var nAno = oTxt.value.substr(6);
	bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
	if (bOk){
	for (var i = 0; i < nAno.length; i++){
	bOk = bOk && esDigito(nAno.charAt(i));
	}
	}
	return bOk;
	}
	function valFecha(oTxt){
	var bOk = true;
	if (oTxt.value != ""){
		bOk = bOk && (valAno(oTxt));
		bOk = bOk && (valMes(oTxt));
		bOk = bOk && (valDia(oTxt));
		bOk = bOk && (valSep(oTxt));
		if (!bOk){
			alert("La fecha ingresada no es válida");
			oTxt.value = "";
			oTxt.focus();
		}
	}else{
		alert("Debe ingresar una Fecha");
		oTxt.value = "";
		oTxt.focus();
	}
}


function confirmLink(theLink, theMsj){
    // Confirmation is not required in the configuration file
    if (confirmMsg == '') {
        return true;
    }

    var is_confirmed = confirm(theMsj);
    if (is_confirmed) {
        theLink.href += '&is_js_confirmed=1';
    }

    return is_confirmed;
} // end of the 'confirmLink()' function


function f_question(theMsj){
    // Confirmation is not required in the configuration file
    var is_confirmed = confirm(theMsj);
    return is_confirmed;
} // end of the 'confirmLink()' function

function openWindow(url, lb, st, sc, w, h, r){
	var label_page = "";
	l = (screen.width / 2) - (w / 2);
	t = ((screen.height / 2) - (h / 2)) - 30;
	day = new Date();
	id = day.getTime();
	label_page = lb+id;
	window.open (url, label_page, "status="+st+",scrollbars="+sc+",width="+w+",height="+h+",left="+l+",top="+t+",resizable="+r);
}

function openWindow2(url, lb, st, sc, w, h, r){
	//l = (screen.width / 2) - (w);
	var label_page = "";
	l = 0;
	t = ((screen.height / 2) - (h / 2)) - 75;
	day = new Date();
	id = day.getTime();
	label_page = lb+id;
	window.open (url, label_page, "status="+st+",scrollbars="+sc+",width="+w+",height="+h+",left="+l+",top="+t+",resizable="+r);
}

//validar fecha seguna funcion
    var a, mes, dia, anyo, febrero;
    function anyoBisiesto(anyo){
        if (anyo < 100)
            var fin = anyo + 1900;
        else
            var fin = anyo ;
        if (fin % 4 != 0)
            return false;
        else
        {
            if (fin % 100 == 0)
            {
                if (fin % 400 == 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            /**
            * si es divisible por 4 y no es divisible por 100 > el año es bisiesto
            */
            else
            {
                return true;
            }
        }
    }
    
    /**
    * funcion principal de validacion de la fecha
    * argumento fecha > cadena de texto de la fecha introducida por el usuario
    */
    function validar_fecha( txt_fecha ){
       /**
       * obtenemos la fecha introducida y la separamos en dia, mes y año
       */
       a=txt_fecha.value;
       dia=a.split("-")[0];
       mes=a.split("-")[1];
       anyo=a.split("-")[2];
    if( (isNaN(dia)==true) || (isNaN(mes)==true) || (isNaN(anyo)==true) )
    {
        alert("La fecha introducida debe estar formada sólo por números ejemplo( 10-02-2006 )");
     return false;
       }
       if(anyoBisiesto(anyo))
           febrero=29;
       else
           febrero=28;
       /**
       * si el mes introducido es negativo, 0 o mayor que 12 > alertamos y detenemos ejecucion
       */
       if ((mes<1) || (mes>12))
       {
           alert("El mes introducido no es valido. Por favor, introduzca un mes correcto");
           txt_fecha.focus();
           txt_fecha.select();
           return false;
       }
       /**
       * si el mes introducido es febrero y el dia es mayor que el correspondiente 
       * al año introducido > alertamos y detenemos ejecucion
       */
       if ((mes==2) && ((dia<1) || (dia>febrero)))
       {
           alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
           txt_fecha.focus();
           txt_fecha.select();
           return false;
       }
       /**
       * si el mes introducido es de 31 dias y el dia introducido es mayor de 31 > alertamos y detenemos ejecucion
       */
       if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31)))
       {
           alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
           txt_fecha.focus();
           txt_fecha.select();
           return false;
       }
       /**
       * si el mes introducido es de 30 dias y el dia introducido es mayor de 301 > alertamos y detenemos ejecucion
       */
       if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30)))
       {
           alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
           txt_fecha.focus();
           txt_fecha.select();
           return false;
       }
       /**
       * si el mes año introducido es menor que 1900 o mayor que 2010 > alertamos y detenemos ejecucion
       * NOTA: estos valores son a eleccion vuestra, y no constituyen por si solos fecha erronea
       */
       if ((anyo<1900) || (anyo>2010)){
           alert("El año introducido no es valido. Por favor, introduzca un año entre 1900 y 2010");
           txt_fecha.focus();
           txt_fecha.select();
       } 
       /**
       * en caso de que todo sea correcto > enviamos los datos del formulario
       * para ello debeis descomentar la ultima sentencia
       */
       else
	   	return true;
          //alert("La fecha introducida es correcta. Gracias por su colaboración");
          //document.forms[0].submit();    
    }    


// Validación de fecha mayor by hmera
//

//Formato de la fecha
// 1 = DD/MM/YYYY 
// 2 = MM/DD/YYYY   
// 3 = YYYY/MM/DD
// 4 = YYYY/DD/MM
var formato = 1;

//**********************************************************************************************
//   invierta una fecha dada retornando en formato YYYYMMDD
//  dFecIni = Fecha a invertir
//   nTipFormat = Formato en que biene la fecha
//             1 = DD/MM/YYYY 
//             2 = MM/DD/YYYY   
//             3 = YYYY/MM/DD
//             4 = YYYY/DD/MM

function invFecha(nTipFormat,dFecIni){
   var dFecIni = dFecIni.replace(/-/g,"/");               // reemplaza el - por /   
   
   // primera division fecha
   var nPosUno  = ponCero(dFecIni.substr(0,dFecIni.indexOf("/")));
   // 2º divicion fecha
   var nPosDos  = ponCero(dFecIni.substr(parseInt(dFecIni.indexOf("/")) + 1,parseInt(dFecIni.lastIndexOf("/")) - parseInt(dFecIni.indexOf("/")) - 1));
   // 3º divicion fecha
   var nPosTres = ponCero(dFecIni.substr(parseInt(dFecIni.lastIndexOf("/")) + 1));

   switch(nTipFormat){
      case 1 :   //   DD/MM/YYYY
         dReturnFecha = nPosTres + "" + nPosDos + "" + nPosUno;
         break;

      case 2 :   //   MM/DD/YYYY
         dReturnFecha = nPosTres + "" + nPosUno + "" +nPosDos;
         break;

      case 3 :   //   YYYY/MM/DD
         dReturnFecha = nPosUno + "" + nPosDos + "" +nPosTres;
         break;
   
      case 4 :   //   YYYY/DD/MM
         dReturnFecha = nPosUno + "" + nPosTres + "" +nPosDos;
         break;
   }
   
   return dReturnFecha;   // retorna la fecha    
}

// Agrega un cero delante del strPon cuando tenga solo un caracter
function ponCero(strPon){
   if(parseInt(strPon.length) < 2)
      strPon = "0" + strPon;
   return strPon;
}

//*******************************************************************************
// valida que la fecha dFecMenor es menor o igual a  dFecMayor
// los parametros dFecMenor, dFecMayor son fecha con divisores validos "-" o "/"
// el parametro dFormat es el tipo de formato en que viene la fecha 
//             1 = DD/MM/YYYY 
//             2 = MM/DD/YYYY   
//             3 = YYYY/MM/DD
//             4 = YYYY/DD/MM

function comparaFecha(dFormat,dFecMenor, dFecMayor){
   dFecMenor = invFecha(dFormat,dFecMenor);
   dFecMayor = invFecha(dFormat,dFecMayor);

   if(dFecMenor > dFecMayor)
      return false;
   else
      return true;
}

function validaFecha_pri_ven( dFechaMenor, dFechaMayor  ){
   //var dFechaMenor = formulario.dFecMenor.value;
   //var dFechaMayor = formulario.dFecMayor.value;
	
   if(comparaFecha( formato,dFechaMenor,dFechaMayor) == false){
      alert("la fecha del primer vencimiento ingresada no puede ser menor a la fecha actual");
	  return false;
   }else{
	 return true;
   }
}

  
