// Java Document
//by hector velasco
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);//obtiene los meses
	var nRes = 0;
	switch (nMes)
	{
		case 1: nRes = 31; break;
		case 2: 
		if(parseInt(oTxt.value.substr(6, 4), 10)%4!=0)
			nRes = 28;
		else
			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 cachito="";
	var nDia = parseInt(oTxt.value.substr(0, 2), 10);
	bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
	if(bOk==false)
	{
		if(nDia>finMes(oTxt))
		{
			cachito=oTxt.value.substr(2, 10);
			oTxt.value=finMes(oTxt)+cachito;
		}
		if(nDia==0)
		{
			cachito=oTxt.value.substr(2, 10);
			oTxt.value="01"+cachito;
		}
	}
	return bOk;
}

function valMes(oTxt)
{
	var bOk = false;
	var cachito='';
	var nMes = parseInt(oTxt.value.substr(3, 2), 10);
	if(nMes>12)
	{
		cachito=oTxt.value.substr(0, 3)
		cachito=cachito+"12";
		cachito=cachito+oTxt.value.substr(5,10)
		oTxt.value=cachito;
	}
	if(nMes<1)
	{
		cachito=oTxt.value.substr(0, 3)
		cachito=cachito+"01";
		cachito=cachito+oTxt.value.substr(5,10)
		oTxt.value=cachito;
	}
	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(nAno==0)
	{
		cachito=oTxt.value.substr(0,6)
		cachito=cachito+"1900";
		oTxt.value=cachito;
	}
	if(nAno=="////")
	{
		cachito=oTxt.value.substr(0,6)
		cachito=cachito+"1900";
		oTxt.value=cachito;
	}
	if (bOk)
	{
		for (var i = 0; i < nAno.length; i++)
		{
			bOk = bOk && esDigito(nAno.charAt(i));
		}
	}
	return bOk;
}
function validasalir(e,valor,nombre)
{
	var key;
	var cachito;
	var arreglo=new Array();
	if (navigator.appName == "Netscape")//código te tecla netscape
		key=e.which;
	else//IE
	key=e.keyCode;
	arreglo=valor.split("/");
	if(valor.length==2)
	{
		if(valor>31)
		{
			if(key!=47)
			nombre.value="31/";
			else
			nombre.value="31";
			return false;
		}
		else
		{
			if(key!=47)
				nombre.value=nombre.value+"/";
		}
		if(nombre.value=="//")
		nombre.value="01";
	}
	if(valor.length==5)
	{
		if(parseInt(valor.substr(3, 2))>12)
		{
			cachito=valor.substr(0, 3);
			if(key!=47)
			cachito=cachito+"12/";
			else
			cachito=cachito+"12";
			nombre.value=cachito;
			return false;
		}
		else
		{
			if(key!=47)
				nombre.value=nombre.value+"/";
		}
		if(valor.substr(3, 2)=="//")
		{
			cachito=valor.substr(0, 3);
			if(key!=47)
			cachito=cachito+"01/";
			else
			cachito=cachito+"01";
			nombre.value=cachito;
		}
	}
	if(valor.length==10)
	{
		if(valor.substr(0,6)=="////")
		{
			cachito=valor.substr(0,6);
			cachito=cachito+"1900";
			valor.value=cachito;
		}
		var bOk=true;
		bOk = bOk && (valAno(nombre));
		bOk = bOk && (valMes(nombre));
		bOk = bOk && (valDia(nombre));
		bOk = bOk && (valSep(nombre));		
	}
}
function validafecha(e,valor,nombre)
{
	var key;
	var cachito;
	if (navigator.appName == "Netscape")//código te tecla netscape
		key=e.which;
	else//IE
	key=e.keyCode;
	if(key>46&&key<58||key==8)
	{		
		if(valor!="")
		{
			validasalir(e,valor,nombre);
			if(valor.length==10)
			{
				var bOk=true;
				bOk = bOk && (valAno(nombre));
				bOk = bOk && (valMes(nombre));
				bOk = bOk && (valDia(nombre));
				bOk = bOk && (valSep(nombre));		
			}
		}
	}
	else
	{
		return false;
	}
}