// Creación de una librería para generar calendarios mediante JavaScript
// Autor: Juan Antonio Jimenez                                2001 12 11
//        Raimon Soler (per la revisió)                       06/08/2010
// ---------------------------------------------------------------------

// Inicialización de Variables  ...............  Valors originals

	Ample = 200;          //ancho de la tabla          (140)

	FonsTit = "#002080";	 //color títol              #003366
	FonsPla = "#FFCC99";	 //color de la cel·la       #FFCC99
	FonsFes = "#FEBF7D";	 //color en dia festiu      #FEBF7D
	FonsDia = "#DB9000";	 //color en dia laboral     #DB9000

	Lncolor = "#00F0F0";  //color línia cel·les      #FFFFFF

	cp = 1;               // cellpadding   (1)
	cs = 1;               // cellspacing   (1)

	Meses = new Array;
		Meses[0]  = "Gener";
		Meses[1]  = "Febrer";
		Meses[2]  = "Març";
		Meses[3]  = "Abril";
		Meses[4]  = "Maig";
		Meses[5]  = "Juny";
		Meses[6]  = "Juliol";
		Meses[7]  = "Agost";
		Meses[8]  = "Setembre";
		Meses[9]  = "Octubre";
		Meses[10] = "Novembre";
		Meses[11] = "Decembre";

//	NomDies = new Array ("L","M","X","J","V","S","D");
	NomDies = new Array ("Dl","Dm","Dx","Dj","Dv","Ds","Dm");
	DiesMes = new Array (31,28,31,30,31,30,31,31,30,31,30,31);

function EscriuMes(data){

	dia = data.getDate();     // data actual
	set = data.getDay();      // dia de la setmana
	mes = data.getMonth();    // mes actual
	ano = data.getYear();     // any actual
	
	if (ano%4 == 0) {
		DiesMes[1] = 29        //Si es bisiesto Febrero tiene 29 dias
	}
	
	stTexto = "";             //Posa el string que munta la taula = buit

// Obri la taula........................................................................
	stTexto += "<table cellpadding=" + cp +" cellspacing= " + cs + " border= 0 + width= " + Ample + ">";

// Fila del mes en curs.................................................................
  	stTexto += "<tr>";
  	stTexto += "<td colspan= 7 bgcolor=\"" + FonsTit + "\" class=\"caltit\" align= center><strong>" + Meses[mes] + "</strong></td>";
  	stTexto += "</tr>";
   document.write(stTexto);

// Fila dels dies de la setmana
  	stTexto += "<tr>";	
	for(i=0;i<7;i++){
		document.write ("<td bgcolor=\"" + FonsDia + "\" class=\"caltex\" align=center><b>&nbsp;" + NomDies[i] + "&nbsp;</b></td>");
	}
   stTexto  = "";
   stTexto += "</tr>";
   document.write(stTexto);
	
	aux = (dia - set + 1)%7    	//aux es el primer lunes del calendario
	
	if (aux > 1) {
		aux = aux - 7;            //aux es la primera casilla del calendario. 
	}

	nS = Math.ceil((DiesMes[mes] - aux + 1)/7);   //setmanes que va a ocupar ese mes
	
	// construye el calendario
	//   el 1r FOR genera las filas (semanas)
	//   el 2n FOR escribe cada día de la semana para esa semana

	for (var numSemana = 0; numSemana < nS; numSemana++){
		document.write("<tr>");
		for (i=0; i<7 ; i++){

			if (i > 5) {          // es fin de semana
				fons = FonsFes;
				clas = "calfes";
			} else {              // es dia laborable
				fons = FonsPla;
				clas = "caltex";
			}
   
			iAux = aux + i + numSemana*7;
			if (iAux < 1){
				// escribimos celdas vacias porque el dia 1 aun no ha llegado
				document.write("<td align=center bgcolor=\"" + fons +"\" class=\"" + clas +"\">&nbsp;</td>");
			}else if (iAux < DiesMes[mes] + 1 ){
				// ponemos el dia en negrita si coincide con la data que le hemos pasado a la funcion
				if (iAux == dia){
					document.write("<td align=center bgcolor=\"" + fons +"\" class=\"" + clas +"\"><b>" + iAux + "</b></td>");				
				}else{
					document.write("<td align=center bgcolor=\"" + fons +"\" class=\"" + clas +"\">" + iAux + "</td>");
				}
			}else{
				// terminamos de rellenar la tabla con celdas vacias
				document.write("<td align=center bgcolor=\"" + fons +"\" class=\"" + clas +"\">&nbsp;</td>");
			}
		}
		
		document.write("</tr>");
	}
	
   stTexto  = "";			
   stTexto += "</table>";

   document.write(stTexto);
}

