function lastOfMonth (
		pnMonth, //Mes (de 1..12)
		pnYear   //Aņo (en cuatro cifras)
	) {
	anMonths = new Array (31,28,31,30,31,30,31,31,30,31,30,31) ;
	var nRes = 0 ;
	
	if ((pnMonth<1)||(pnMonth>12)) {
		return 0 ;
	} else {
		nRes = anMonths[pnMonth-1] ;
		if ((pnMonth==2)&&( ((pnYear%400)==0)||(((pnYear%4)==0)&&((pnYear%100)!=0)))) { //Febrero bisiesto
			nRes++ ;
		}
		return nRes ;
	}
}

//------------------------------------------------------------------
//Devuelve cierto si la cadena es una fecha valida en formato dd/mm/yyyy
function fechaValida (
		psDate //Cadena con la fecha a validar
	) {
	reDate = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/
	//reDate = /^(\d{2})\/(\d{2})\/(\d{4})$/
	var bRes = reDate.test (psDate) ;
	if (bRes) { //La fecha tiene un formato correcto, ahora a probar los valores.
		//El aņo no se prueba.
		nDia = RegExp.$1 ;
		nMes = RegExp.$2 ;
		nAnyo = RegExp.$3 ;
		if ((nMes<1)||(nMes>12)) {
			bRes = false ;
		} else if ((nDia<1)||(nDia>lastOfMonth(nMes,nAnyo))) {
			bRes = false ;
		}
	}
	return bRes ;
}

