function fcal_years() {
	var years = frmcal.anio;
	var year;
	var option;
	for (year = tyear; year >= fyear; year--) {
		years.options[years.options.length] = new Option(year, year);
	}
}

function fcal_setmonthyear() {
	frmcal.mes.selectedIndex = cdate.getMonth();
	frmcal.anio.selectedIndex = tyear - cdate.getFullYear();
}

function faddeventlistener(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

function fcal_show(year, month) {
	var mdays = new Date(year, month, 0).getDate();
	var dweek = new Date(year, month - 1, 1).getDay();
	var week;
	var day;
	var nday;
	var ndayweek;
	/*Si está dibujado eliminar*/
	week = bcal.getElementsByTagName('tr');
	for (nday = week.length - 1; nday >= 0; nday--) {
		bcal.removeChild(week[nday]);
	}
	/*Días previos*/
	week = document.createElement('tr');
	for (ndayweek = 0; ndayweek < dweek; ndayweek++) {
		week.appendChild(document.createElement('td'));
	}
	/*Días del mes*/
	for (nday = 1; nday <= mdays; nday++) {
		if (ndayweek % 7 == 0) {
			bcal.appendChild(week);
			week = document.createElement('tr');
			ndayweek = 0;
		}
		day = document.createElement('td');
		day.appendChild(document.createTextNode(nday));
		if (nday == cdate.getDate() && month == cdate.getMonth() + 1 && year == cdate.getFullYear()) {
			day.className = 'fecha_actual';
		} else {
			day.className = 'dia';
			faddeventlistener(day, 'click', fday_clicked);
		}
		week.appendChild(day);
		++ndayweek;
	}
	/*Días posteriores*/
	while (ndayweek++ < 7) {
		week.appendChild(document.createElement('td'));
	}
	bcal.appendChild(week);
}

function fday_clicked(e) {
	var item = e.target ? e.target : e.srcElement ? e.srcElement : null;
	document.location = '?fecha_diario=' + frmcal.anio.options[frmcal.anio.selectedIndex].value + '-' + frmcal.mes.options[frmcal.mes.selectedIndex].value + '-' + item.firstChild.nodeValue;
}