var message_date = "";

   function esDigito(sChr){
    var sCod = sChr.charCodeAt(0);
    return ((sCod > 47) && (sCod < 58));
   }
 //-------------------------------------------------------------
 //-------------------------------------------------------------
 
   function valSep(oTxt){
    var bOk = false;
    var sep1 = oTxt.value.charAt(4);
    var sep2 = oTxt.value.charAt(7);
    bOk = bOk || ((sep1 == "-") && (sep2 == "-"));
	if (!bOk) message_date = message_date + "Please use date format yyyy-mm-dd\n";
    return bOk;
   }

 //-------------------------------------------------------------
 //-------------------------------------------------------------
   function finMes(oTxt){
    var nMes = parseInt(oTxt.value.substr(5,2), 10);
    var nAno = parseInt(oTxt.value.substr(0,4), 10);
    var nRes = 0;
    switch (nMes){
     case 1: nRes = 31; break;
     case 2: nRes = 28; 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 + (((nMes == 2) && (nAno % 4) == 0)? 1: 0);
   }

 //-------------------------------------------------------------
 //-------------------------------------------------------------
   function valDia(oTxt){
    var bOk = false;
    var nDia = parseInt(oTxt.value.substr(8, 2), 10);
    bOk = (nDia >= 1) && (nDia <= finMes(oTxt));
	if (!bOk) message_date = message_date + "For that month, the day must been between 1 and " +  finMes(oTxt) + "\n";
    return bOk;
   }
 //-------------------------------------------------------------
 //-------------------------------------------------------------
 
   function valMes(oTxt){
    var bOk = false;
    var nMes = parseInt(oTxt.value.substr(5, 2), 10);
    bOk = bOk || ((nMes >= 1) && (nMes <= 12));
	if (!bOk) message_date = message_date + "The month must been between 1 and 12\n" ;
    return bOk;
   }

 //-------------------------------------------------------------
 //-------------------------------------------------------------
   function valAno(oTxt){
    var bOk = true;
    var nAno = oTxt.value.substr(0,4);
    bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
    if (bOk){
     for (var i = 0; i < nAno.length; i++){
      bOk = bOk && esDigito(nAno.charAt(i));
     }
    }
	if (!bOk) message_date = message_date + "Please use date format yyyy-mm-dd\n" ;

    return bOk;
   }

 //-------------------------------------------------------------
 //-------------------------------------------------------------
   function valFecha(oTxt){
    var bOk = true;
	message_date = ""
    if (oTxt.value != ""){
		 bOk = bOk && (valAno(oTxt));
		 bOk = bOk && (valMes(oTxt));
		 bOk = bOk && (valDia(oTxt));
		 bOk = bOk && (valSep(oTxt));
		 if (!bOk){
			oTxt.value = "";
			oTxt.focus();
			window.alert("Unvalid date\n" + message_date);
		 };
	};
	return "";
}

//-------------------------------------------------------------
 //-------------------------------------------------------------
 
 function onlyDigits() {
		var key=document.event.keyCode;//codigo de tecla.
		if (key < 48 || key > 57){//si no es numero 
		document.event.keyCode=0;//anula la entrada de texto.
		};
}

//-------------------------------------------------------------

