function meses(lengua) {	
	var nombreMes = [];
	switch(lengua) {
		case "es":
			nombreMes[0] = "Enero"; 
			nombreMes[1] = "Febrero"; 
			nombreMes[2] = "Marzo"; 
			nombreMes[3] = "Abril"; 
			nombreMes[4] = "Mayo"; 
			nombreMes[5] = "Junio"; 
			nombreMes[6] = "Julio"; 
			nombreMes[7] = "Agosto";
			nombreMes[8] = "Septiembre"; 
			nombreMes[9] = "Octubre";
			nombreMes[10] = "Noviembre";
			nombreMes[11] = "Diciembre";	
			break;
		case "ca":
			nombreMes[0] = "Gener"; 
			nombreMes[1] = "Febrer"; 
			nombreMes[2] = "Març"; 
			nombreMes[3] = "Abril"; 
			nombreMes[4] = "Maig"; 
			nombreMes[5] = "Juny"; 
			nombreMes[6] = "Juliol"; 
			nombreMes[7] = "Agost";
			nombreMes[8] = "Setembre"; 
			nombreMes[9] = "Octubre";
			nombreMes[10] = "Novembre";
			nombreMes[11] = "Desembre";			
			break;
	}
		
	return nombreMes
}

function numDiasMeses(bisiesto) {
	var diasMes = [];
	diasMes[0] = 31;
	(bisiesto)? diasMes[1]= 29:diasMes[1]= 28;
	diasMes[2]= 31;
	diasMes[3]= 30;
	diasMes[4]= 31;
	diasMes[5]= 30;
	diasMes[6]= 31;
	diasMes[7]= 31;
	diasMes[8]= 30;
	diasMes[9]= 31;
	diasMes[10]= 30;
	diasMes[11]= 31;
	return diasMes
}

// Esta función genera el calendario de un determinado mes
function calendario(anno,mes,lengua){		
	
	//Cargamos los meses del año
	var nombreMes = [];	
	nombreMes=meses(lengua);
	
		
	//Creamos la fecha del primer día del mes y año especificados
	p = new Date(anno,mes,1);
	diaSemanaPrimeroMes = p.getDay();
	
	//Comprobamos si el año es bisiesto
	var bisiesto = false;
	if (anno % 4 == 0 && anno % 100 != 0 || anno % 100 == 0 && anno % 400 == 0) bisiesto = true;	
	
	//Cargamos el nº de días de cada mes
	var diasMes = [];
	diasMes=numDiasMeses(bisiesto);
	finmes = diasMes[mes];
	
	//Obtenemos el día de inicio del mes
	switch (diaSemanaPrimeroMes) {
		case 0:
			diaSemanaPrimeroMes = 6;
			break;
		default:
			diaSemanaPrimeroMes = diaSemanaPrimeroMes -1;
			break;
	}

	//Cabecera de la tabla
	var texto = "";
	texto+= nombreMes[mes]+"<br>";
	texto += "<table border='0' class='calendario'>";
	texto += "<tr><td class='cabecera'>L</td class='cabecera'><td class='cabecera'>M</td><td class='cabecera'>X</td>";
	texto += "<td class='cabecera'>J</td><td class='cabecera'>V</td><td class='cabecera'>S</td><td class='cabecera'>D</td></tr><tr>";
	
	// Generamos el calendario
	z = 1; j = 1;
	for (i = 0;i<42;i++) {
		var esDomingo = j % 7 == 0;	
		if ( i < diaSemanaPrimeroMes ){ 
	 		if (esDomingo) texto += "<td class='domingo' id='tdMes"+mes+'Dia'+z+"'></td>";
				else texto += "<td></td>";
		}
			if ( i == diaSemanaPrimeroMes ){
	 			if (esDomingo) texto += "<td class='domingo' id='tdMes"+mes+'Dia'+z+"'>"+z+"</td>";
					else texto += "<td class='laborable' id='tdMes"+mes+'Dia'+z+"'>"+z+"</td>";	
			z++;
		}
		if ( i > diaSemanaPrimeroMes ){
			if (z <= finmes){	
				if (esDomingo) texto += "<td class='domingo' id='tdMes"+mes+'Dia'+z+"'>"+z+"</td>";
					else texto += "<td class='laborable' id='tdMes"+mes+'Dia'+z+"'>"+z+"</td>";	
			}
			else texto += "<td></td>";
			z++; 
		}
		if (esDomingo) texto += "</tr><tr>";
			j++;
	}	
	texto += "</tr></table>";
	
	// Devolvemos el calendario
	
	return texto
	
}

function annoCompleto(anno,lengua) {		
		for (num=0;num<12;num++) {			
			numMes=num+1;	
			document.getElementById("mes"+numMes).innerHTML= calendario(anno,num,lengua);
		}		
}

function vaciarAnno() {		
		for (num=0;num<12;num++) {			
			numMes=num+1;	
			document.getElementById("mes"+numMes).innerHTML== '';
		}		
}

function festivo(mes,dia,tipo,descripcion) {    
    switch (tipo) {
    case 1: {      
      document.getElementById("tdMes"+mes+"Dia"+dia).className="nacional";
      document.getElementById("tdMes"+mes+"Dia"+dia).title="Fiesta nacional: "+descripcion;
      break;
    }
    case 3:
      document.getElementById("tdMes"+mes+"Dia"+dia).className="autonomica";
      document.getElementById("tdMes"+mes+"Dia"+dia).title="Fiesta autonómica: "+descripcion;
      break;
   case 4:
      document.getElementById("tdMes"+mes+"Dia"+dia).className="local";   
  }
}
