//  SET ARRAYS
var day_of_week = [];
day_of_week[0] = new Array('L','M','M','J','V','S','D');
day_of_week[1] = new Array('Dl','Dm','Dm','Dj','Dv','Ds','Dg');
day_of_week[2] = new Array('M','T','W','T','F','S','S');
day_of_week[3] = new Array('L','M','M','J','V','S','D');
var month_of_year = [];
month_of_year[0] = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
month_of_year[1] = new Array('Gener','Febrer','Mar&ccedil;','Abril','Maig','Juny','Juliol','Agost','Setembre','Octubre','Novembre','Desembre');
month_of_year[2] = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
month_of_year[3] = new Array('Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Ao&ucirc;t','Septembre','Octobre','Novembre','Decembre');
var tancar = [];
tancar[0] = "Cerrar";
tancar[1] = "Tancar";
tancar[2] = "Close";
tancar[3] = "Fermer";
var seguent = [];
seguent[0] = "Siguiente mes";
seguent[1] = "Seg&uuml;ent mes";
seguent[2] = "Next month";
seguent[3] = "Mois suivant";
var anterior = [];
anterior[0] = "Mes anterior";
anterior[1] = "Mes anterior";
anterior[2] = "Previous month";
anterior[3] = "Mois pr&eacute;c&eacute;dent";

//  DECLARE AND INITIALIZE VARIABLES
var Calendar = new Date();

var year = Calendar.getYear();	    // Returns year
var anyActual = Calendar.getYear();	    // Aquest any no es modificarà
if (anyActual < 2000) anyActual = 1900 + anyActual;// Per evitar l'efecte 2000 en Netscape i Opera
if (year < 2000) year = 1900 + year;// Per evitar l'efecte 2000 en Netscape i Opera
var mesActual = Calendar.getMonth();    // Aquest mes no es modificarà
var month = Calendar.getMonth();    // Returns month (0-11)
var today = Calendar.getDate();    	// Returns day (1-31)
var weekday = Calendar.getDay();    // Returns day (0-6)

var DAYS_OF_WEEK = 7;   // "constant" for number of days in a week
var DAYS_OF_MONTH = 31; // "constant" for number of days in a month
var cal;    			// Used for printing


Calendar.setDate(1);    	// Start the calendar day at '1'
Calendar.setMonth(month);   // Start the calendar month at now
			
if (jsIdioma == "es") iIdioma = 0;
else if (jsIdioma == "ca") iIdioma = 1;
else if (jsIdioma == "en") iIdioma = 2;
else if (jsIdioma == "fr") iIdioma = 3;


var gCapaCalendari = "";


function escriuCalendari(mes, any, capaCalendari)
{	
	if (capaCalendari != "") gCapaCalendari = capaCalendari;

	if (any < anyActual) any = anyActual;
	if (mes < mesActual && !(any > anyActual)) mes = mesActual;

	Calendar.setDate(1);
	Calendar.setMonth(mes); //mes (0 - 11)
	month = mes;
	Calendar.setYear(any);
	year = any;
	
	if (capaCalendari == "calendariArribadaDiv")			seleccionaData = "seleccionaDataArribada";
	else if (capaCalendari == "calendariSortidaDiv")	seleccionaData = "seleccionaDataSortida";
		
	var numSetmanes = 0;

	cal = "<table id='calendariArribadaTbl' cellspacing='0' cellpadding='2' bgcolor='#FFFFFF' class='grisPetit' style='width:130px;' onMouseOver='mouseOver();' onMouseOut='mouseOut(\"" + gCapaCalendari + "\")'>";
	
	// S'escriuen més i any, i el botó de tancar
	cal += "<tr bgcolor='#0092CE'>";
	cal += 	"<td colspan='6' class='blanc'>" + month_of_year[iIdioma][month] + "&nbsp;" + year + "</td>";
	cal += 	"<td align='right'><a href='javascript:ocultaCalendari("+gCapaCalendari+");' class='blanc' title='" + tancar[iIdioma] + "'><b>X</b></a></td>";
	cal += "</tr>";

	// S'escriuen els dies de la setmana (les inicials)
	cal += "<tr>";
	for(index=0; index < DAYS_OF_WEEK; index++)	{
		cal += "<TD style='width:14px;' class='negrePetit' align='center'>" + day_of_week[iIdioma][index] + "</td>";
	}
	cal += '</tr>';
	
	// Reomplim els espais del més passat abans de l'1
	cal += '<tr>';
	var tday = Calendar.getDay();
	if (tday == 0) tday = 7;
	tday--;
	for(index=0; index < tday; index++)
		cal += '<td> </td>';
		
	// LOOP per cada dia del mes
	for(index=0; index < DAYS_OF_MONTH; index++)
	{
		if( Calendar.getDate() > index )
		{
			week_day =Calendar.getDay();
			
			// Nova fila pel primer dia de la setmana (0 == Diumenge, 1 == Dilluns, ...)
			if(week_day == 1)
			{
				numSetmanes++;
				cal += '<tr>';
			}
			
			if(week_day != DAYS_OF_WEEK)
			{
				var day  = Calendar.getDate();
				// Els dies passats en gris i la resta en blau
				if ( (day >= today && (month == mesActual && year == anyActual)) || (month>mesActual && year==anyActual) || (year==anyActual+1 && month<mesActual) )
				{
					// Dies futurs
					cal += "<td style='cursor:pointer' align='center' onClick='"+seleccionaData+"("+day+","+month+","+year+");' class=blauClarPetit>";
					cal += "<b>" + day + "</b>";
					cal += "</td>";
				}
				else // Dies ja passat
				{
					cal += "<td style='width:14px;' class=grisPetit  align='center'>" + day + "</td>";
				}
			}
			
			// Tanquem la fila a lúltim dia de la setmana
			if(week_day == 0)
			{
				if (numSetmanes == 0)numSetmanes++;
				cal += '</tr>';
			}
		}
		
		// S'incrementa el calendari fins a final de mes
		Calendar.setDate(Calendar.getDate()+1);
	
	}// end for loop
	
	// Posem lines en blanc si aquest mes té menys de sis setmanes
	while (numSetmanes < 6)
	{
		cal += '<tr ><td colspan=7>&nbsp;</td></tr>';
		numSetmanes++;
	}

	// Botons "següent" i "anterior"	
	if (month != mesActual || anyActual != year)
		cal += '<tr bgcolor="#0092CE"><td colspan="3" align="left"><a href="javascript:mesAnterior();" title="' + anterior[iIdioma] + '" class=blanc><b> << </b></a></td>';
	else
		cal += '<tr bgcolor="#0092CE"><td colspan="3" align="left"> </td>';
	cal += '<td colspan="4" align="right">';
	cal += '<a href="javascript:mesSeguent();" title="' + seguent[iIdioma] + '" class=blanc><b> >> </b></a></td>';
	cal += '</tr></TABLE>';
		
	cal += "</table>";
	
	//  PRINT CALENDAR
	MM_setTextOfLayer(gCapaCalendari,'', cal);
	
	gContador = 10;
}


function mesSeguent()
{
	// Salta al seguent mes
	tmonth = month + 1;
	tyear = year;
	if (tmonth == 12)
	{
		tmonth = 0;
		tyear++;
	}

	escriuCalendari(tmonth, tyear, "");
}


function mesAnterior()
{
	// Salta al seguent mes
	tmonth = month - 1;
	tyear = year
	if (tmonth == -1) 
	{
		tmonth = 11;
		tyear--;
	}

	escriuCalendari(tmonth, tyear, "");
}

var gContador = 10;
var gTimer = 0;
function mouseOut(strCapa)
{
	gContador--;
	if (gContador < 0){
		obj = MM_findObj(strCapa);
		ocultaCalendari(obj);
	}
	else{
		if (gTimer != 0){
			clearTimeout(gTimer);
			gTimer = 0;
		}
		gTimer = setTimeout("mouseOut('" + strCapa + "');", 100);
	}
}
function mouseOver()
{	
	gContador = 10;
	clearTimeout(gTimer);
	gTimer = 0;
}