var dayArray = new Array (13);	dayArray [0] = -1;	dayArray [1] = 31;	dayArray [2] = 28;	dayArray [3] = 31;	dayArray [4] = 30;	dayArray [5] = 31;	dayArray [6] = 30;	dayArray [7] = 31;	dayArray [8] = 31;	dayArray [9] = 30;	dayArray [10] = 31;	dayArray [11] = 30;	dayArray [12] = 31;function isInteger (pValue) {	var lIsInteger = true;	var lChar;	for (var i = 0; i < pValue.length; i++) {			lChar = pValue.toString().substring(i, i+1);			if (! (lChar >= "0" && lChar <= "9")) {				lIsInteger = false;				break;			}	}	// Fin for	return lIsInteger;}	// Fin isIntegerfunction isLeapYear (pYear) {		if (((pYear % 400) == 0) || ((pYear % 4) == 0 && (pYear % 100) != 0))			return true;		else			return false;}	// Fin isLeapYearfunction esFechaCorrecta(pDay, pMonth, pYear, pDescr){	var error_msg= "Fecha no valida en el campo '" + pDescr + "' :\n "	var lIsValid = true;	var lYear = parseInt (pYear.value, 10);	var lMonth = parseInt (pMonth.value, 10);	var lDay = parseInt (pDay.value, 10);	var error = null;	// Si no se ha completado el campo fecha no debemos realizar comprobación alguna	if (pYear.value == "" && pMonth.value == "" && pDay.value == "")	{		return lIsValid;	}	//	Todos los componentes deben ser numéricos	if ((! (isInteger (pDay.value))) || (isNaN(lDay) )) {			lIsValid = false;			error_msg=error_msg + "\nDía debe ser numérico."			if (error == null) error = pDay;	}	if ((! (isInteger (pMonth.value))) || (isNaN(lMonth) )) {			lIsValid = false;			error_msg=error_msg + "\nMes debe ser numérico."			if (error == null) error = pMonth;	}	if ((! (isInteger (pYear.value))) || (isNaN(lYear) )) {			lIsValid = false;			error_msg=error_msg + "\nAño debe ser numérico."			if (error == null) error = pYear;	}	//	Mes = {1..12}	if (lMonth < 1 || lMonth > 12) {		lIsValid = false;		error_msg=error_msg + "\nMes debe estar entre 1 y 12."		if (error == null) error = pMonth;	}	//	Dia = {1..30 || 1..31} dependiendo del mes	if (lDay < 1 || lDay > (dayArray[lMonth] + ((isLeapYear (lYear) && lMonth == 2) ? 1 : 0))) {		lIsValid = false;		error_msg=error_msg + "\nEl día para ese mes no esta en un intervalo válido."		if (error == null) error = pDay;	}	//	Año debería tener 4 dígitos	if (pYear.value.length < 4) {		lIsValid = false;		error_msg=error_msg + "\nAño debe  tener 4 dígitos."		if (error == null) error = pYear;	}	if ( lIsValid == false )	{		error.focus();		error.select();		alert (error_msg);	}	return lIsValid;}	// Fin esFechaCorrecta