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 = oTxt;
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}

function valMes(oTxt){
var bOk = false;
var nMes = oTxt;
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}

function valAno(oTxt){
var bOk = true;
//var nAno = oTxt.toString();
bOk = bOk && ((oTxt.length == 2) || (oTxt.length == 4));
if (bOk){
for (var i = 0; i < oTxt.length; i++){
bOk = bOk && esDigito(oTxt.charAt(i));
}
}
return bOk;
}

function valFecha(oTxt){
var bOk = true;

	if (oTxt.value != ""){
		var sfecha=oTxt.value;
		calDate = new Date(sfecha);
		bOk = ('NaN'!=calDate);
		
	}
	
	if (!bOk){
		alert("Invalid Date.");
		oTxt.value = "";
		oTxt.focus();
		}
	
	return bOk;		
}