// Función que imprime la fecha actual en el idioma que se pasa como parámetro.
function getCurrentDate(iso) {
	return getCurrentDate(iso, false);
}

function getCurrentDate(iso, showDay) {
	var months_es = new Array('enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre');
	var months_en = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
	var months_fr = new Array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'ao&ucirc;t', 'septembre', 'octobre', 'novembre', 'décembre');

	var days_es = new Array('Domingo','Lunes','Martes','Miercoles','Jueves','Viernes','Sábado');
	var days_en = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
	var days_fr = new Array('Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi');

	var fecha = new Date();
	var year = fecha.getYear();
	var numMonth = fecha.getMonth();
	var numDay = fecha.getDate();
	var weekDay = fecha.getDay();

	if (year < 1000){
		year = year+1900;
	}

	var result = '';
	if (iso=='es_ES'){
		if(showDay) {
			result = days_es[weekDay] + ", "
		}
		result += numDay + " de " + months_es[numMonth] + " de " + year;
	}
	if (iso=='en_UK'){
		if(showDay) {
			result = days_en[weekDay] + ", "
		}
		result += months_en[numMonth] + " " + numDay + ", " + year;
	}
	if (iso=='fr_FR'){
		if(showDay) {
			result = days_fr[weekDay] + ", "
		}
		result +=  numDay + " " + months_fr[numMonth] + " " + year;
	}
	document.write(result);
}

/*	Función que valida una fecha con formato:
	es_ES: [d]d/mm/aaaa
	en_UK: mm/dd/yyyy
*/
function checkDate(iso, strDate) {

	var datePat_es = /^((([1-9]|[0][1-9]|[12][0-9]|3[01])([/])([13578]|[0][13578]|10|12)([/])(\d{4}))|(([1-9]|[0][1-9]|[12][0-9]|30)([/])([469]|[0][469]|11)([/])(\d{4}))|(([1-9]|[0][1-9]|1[0-9]|2[0-8])([/])(02)([/])(\d{4}))|((29)(\/)(02)([/])([02468][048]00))|((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9][0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9][13579][26])))$/
	var datePat_en = /((^(10|12|0?[13578])([/])(3[01]|[12][0-9]|0?[1-9])([/])((1[8-9]\d{2})|([2-9]\d{3}))$)|(^(11|0?[469])([/])(30|[12][0-9]|0?[1-9])([/])((1[8-9]\d{2})|([2-9]\d{3}))$)|(^(0?2)([/])(2[0-8]|1[0-9]|0?[1-9])([/])((1[8-9]\d{2})|([2-9]\d{3}))$)|(^(0?2)([/])(29)([/])([2468][048]00)$)|(^(0?2)([/])(29)([/])([3579][26]00)$)|(^(0?2)([/])(29)([/])([1][89][0][48])$)|(^(0?2)([/])(29)([/])([2-9][0-9][0][48])$)|(^(0?2)([/])(29)([/])([1][89][2468][048])$)|(^(0?2)([/])(29)([/])([2-9][0-9][2468][048])$)|(^(0?2)([/])(29)([/])([1][89][13579][26])$)|(^(0?2)([/])(29)([/])([2-9][0-9][13579][26])$))/

	var datePat = (iso=="es"||iso=="es_ES")?datePat_es:datePat_en;
	
	var matchArray = strDate.match(datePat);

	if (matchArray == null)
		return false;
	else
		return true;
}

/*	Función que valida una hora con formato:
	es_ES: [H]H:MM
	en_UK: [H]H:MM [AM|PM]
*/
function checkTime(iso, strTime) {

	var timePat_es = /^([0-9]|[0-1][0-9]|[2][0-3])(:)([0-5][0-9])$/
	var timePat_en = /^(1[0-2]|[1-9])(:)([0-5][0-9]) *(am|AM|pm|PM|aM|Am|pM|Pm) *$/

	var timePat = (iso=="es"||iso=="es_ES")?timePat_es:timePat_en;

	var matchArray = strTime.match(timePat);

	if (matchArray == null)
		return false;
	else
		return true;
}
