
// función para construir el calendario escolar 2007-08

    function rellenarCalendario() {
		var DIVcalendario = document.getElementById('calendario');
		DIVcalendario.innerHTML += '<div class="trimestre" id="T0">' + tablaRelleno(7, 2009) + tablaRelleno(8, 2009) + tablaMes(9, 2009) + '</div><br clear="all" />';
		DIVcalendario.innerHTML += '<div class="trimestre" id="T1">' + tablaMes(10, 2009) + tablaMes(11, 2009) + tablaMes(12, 2009) + '</div><br class="clear" />';
		DIVcalendario.innerHTML += '<div class="trimestre" id="T2">' + tablaMes(1, 2010) + tablaMes(2, 2010) + tablaMes(3, 2010) + '</div><br class="clear" />';
		DIVcalendario.innerHTML += '<div class="trimestre" id="T3">' + tablaMes(4, 2010) + tablaMes(5, 2010) + tablaMes(6, 2010) + '</div><br class="clear" />';
        } 

// funciones para construir la tabla de un mes del calendario
// día mes año = dies mensis annus = day month year

var diaSemana = new Array();
	diaSemana[1] = "L";
    diaSemana[2] = "M";
    diaSemana[3] = "X";
    diaSemana[4] = "J";
    diaSemana[5] = "V";
    diaSemana[6] = "S";
    diaSemana[0] = "D";

var nombreMes = new Array();
	nombreMes[1] = "Enero";
	nombreMes[2] = "Febrero";
	nombreMes[3] = "Marzo";
	nombreMes[4] = "Abril";
	nombreMes[5] = "Mayo";
	nombreMes[6] = "Junio";
	nombreMes[7] = "Julio";
	nombreMes[8] = "Agosto";
	nombreMes[9] = "Septiembre";
	nombreMes[10] = "Octubre";
	nombreMes[11] = "Noviembre";
	nombreMes[12] = "Diciembre";
    
function indexWeekday(fecha) {
	var k = fecha.getDay(); // día de la semana correspondiente a la fecha
    (k == 0) ? k = 7 : k = k; // si k es igual a 0 hacemos que sea = 7
    return k;
    }

function esFestivo(dies, mensis, annus) {
    var fecha = new Date(annus, mensis-1, dies);
    var festivo = false; 
    if (fecha.getDay() == 6 || fecha.getDay() == 0) {
    	festivo = true;
        }
	if (annus == 2009) {
        switch (mensis) {
            case 10:
            	if (dies == 12) {
                	festivo = true;
                    }
				break;                    
            case 11:
            	if (dies == 1) {
                	festivo = true;
                    }
				break;                    
            case 12:
            	if (dies == 7 || dies == 8 || dies==23 || dies == 24 || dies == 25 || dies == 26 || dies == 27 || dies == 28 || dies == 29 || dies == 30 || dies == 31) {
                	festivo = true;
                    }
				break;                    
            }       
        }
	else if (annus == 2010) {
        switch (mensis) {
        	case 1:
            	if (dies == 1 || dies == 2 || dies == 3 || dies == 4 || dies == 5 || dies == 6 ||  dies == 29) {
                	festivo = true;
                    }
				break;                    
            case 2:
			   
            	break;
            case 3:
            	if (dies == 19 || dies == 29 || dies == 30 || dies == 31) {
                	festivo = true;
                    }
				break;                    
            case 4:
            	if (dies == 1 || dies == 2 || dies == 5) {
                	festivo = true;
                    }
				break;                    
            case 5:
            	if (dies == 31) {
                	festivo = true;
                    }
				break;                    
            case 6:
            	
            	break;
            }       
        }
    return festivo;       
	}    
function esCarnaval(dies, mensis, annus) {
    var fecha = new Date(annus, mensis-1, dies);
    var carnaval = false; 
	if (annus == 2010 && mensis == 2) {
		if (dies == 15 || dies == 16 || dies == 17) {
			carnaval = true;
			}
		}
	return carnaval;
	}
function esFestivoLocal(dies, mensis, annus) {
    var fecha = new Date(annus, mensis-1, dies);
    var festivoLocal = false; 
	if (annus == 2009 && mensis == 9) {
		if (dies == 21) {
			festivoLocal = true;
			}
		}
	if (annus == 2010 && mensis == 5) {
		if (dies == 15) {
			festivoLocal = true;
			}
		}	
	return festivoLocal;
	}
function tablaMes(mensis, annus) {
	var HTMLcontents = '<table class="mes" cellspacing="1" cellpadding="1">';	 
    var inicioMes = new Date(annus, mensis-1, 1); // primera fecha del mes
    var monthDay = 1; // iniciamos la cuenta de los días del mes
    var finMes = new Date(annus, mensis, 0); // última fecha del mes = fecha cero del mes siguiente
    var totaldiasMes = finMes.getDate(); // número total de días del mes
	HTMLcontents += '<thead>';
	HTMLcontents += '<tr><th colspan="7">' + nombreMes[mensis] + '&nbsp;' + annus + '</th></tr>'; 
	HTMLcontents += '<tr><td>L</td><td>M</td><td>X</td><td>J</td><td>V</td><td>S</td><td>D</td></tr>';
    HTMLcontents += '</thead>';
    var kindex = 0;
    for (i = 1; i <= 6; i++) { // 6 filas
    	HTMLcontents += '<tr>';
       	for (j = 1; j <= 7; j++) { // 7 columnas
          	kindex = 7 * (i-1) + j;
            if (kindex < indexWeekday(inicioMes)) {
            	HTMLcontents += '<td>&nbsp;</td>';
                }
            else if (monthDay <= totaldiasMes) {
            	if (esFestivo(monthDay, mensis, annus)) {
                	HTMLcontents += '<td class="festivo">' + monthDay + '</td>';
                    }
				else if (esCarnaval(monthDay, mensis, annus)) {
	               	HTMLcontents += '<td class="carnaval">' + monthDay + '</td>';
					}
				else if (esFestivoLocal(monthDay, mensis, annus)) {
	               	HTMLcontents += '<td class="festivoLocal">' + monthDay + '</td>';
					}
                else {
                	HTMLcontents += '<td>' + monthDay + '</td>';
                    }
                monthDay++;
            	}
            else {
                HTMLcontents += '<td>&nbsp;</td>';
                }
            }
        HTMLcontents += '</tr>';
        }
    HTMLcontents += '</table>';
    return HTMLcontents;
	}                                        

function tablaRelleno(mensis, annus) {
	var HTMLcontents = '<table class="mes" cellspacing="1" cellpadding="1">';	 
	HTMLcontents += '<tr><td colspan="7">&nbsp;</td></tr>'; 
	HTMLcontents += '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
    for (i = 1; i <= 6; i++) { // 6 filas
    	HTMLcontents += '<tr>';
       	for (j = 1; j <= 7; j++) { // 7 columnas
           	HTMLcontents += '<td>&nbsp;</td>';
            }
        HTMLcontents += '</tr>';
        }
    HTMLcontents += '</table>';
    return HTMLcontents;
	}                                                                
