/*
// Hi ha d'haver definides les següents variables:
	var day_of_week 	= new Array('L','M','M','J','V','S','D');;
	var month_of_year = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
	var idmaTancar 				= "Cerrar";
	var idmaMesSeguent 		= "mes siguiente";
	var idmaMesAnterior 	= "mes anterior";
*/

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;
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

var gCapaCalendari = "";
var gDiaSeleccionat = 0;

function escriuCalendari(mes, any, capaCalendari, diaSeleccionat)
{
	if (diaSeleccionat == undefined) diaSeleccionat = 1;
	gDiaSeleccionat = diaSeleccionat;
	
	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 (gCapaCalendari == "calendariArribadaDiv")			{
		var seleccionaData = "seleccionaDataArribada";
		var quinCalendari = "Arribada";
	}
	else if (gCapaCalendari == "calendariSortidaDiv")	{
		var seleccionaData = "seleccionaDataSortida";
		var quinCalendari = "Sortida";
	}
		
	var numSetmanes = 0;

	cal = "<table id='calendariArribadaTbl' cellspacing='0' cellpadding='0' bgcolor='#000000' class='calendariJS_grisFosc' style='width:130px; height:113px;'>";
	
	// S'escriuen més i any, i el botó de tancar
	cal += "<tr><td colspan=7>";
	cal += 	"<table cellspacing=0 cellpadding=0 style='width:100%;'><tr>";
	cal += 		"<td style='text-align:center;'><span style='cursor:pointer;' onclick='mesAnterior();' class='calendariJS_rosa' title='" + idmaMesAnterior + "'><img src='" + urlBlog + "img/calendariJS/mesAnterior.gif' title='" + idmaMesAnterior + "' width=10 height=15 border=0></span></td>";
	cal += 		"<td align='center' style='width:100px; height:20px;' class='calendariJS_rosa'>" + month_of_year[month] + "&nbsp;" + year + "</td>";
	cal += 		"<td style='text-align:center;'><span style='cursor:pointer;' onclick='mesSeguent();' class='calendariJS_rosa' title='" + idmaMesSeguent + "'><img src='" + urlBlog + "img/calendariJS/mesSeguent.gif' title='" + idmaMesSeguent + "' width=10 height=15 border=0></span></td>";
	cal += 	"</tr></table>";
	cal += "</td></tr>";

	// S'escriuen els dies de la setmana (les inicials)
	cal += "<tr>";
	for(var ind=0; ind < DAYS_OF_WEEK; ind++)	{
		var borderDrt = (ind<DAYS_OF_WEEK-1) ? "border-right:1px solid #373737;" : "";
		cal += "<td style=' "+borderDrt+"' class='calendariJS_grisClar' align='center'>" + day_of_week[ind] + "</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(ind=0; ind < tday; ind++){
		var borderDrt = (ind<DAYS_OF_WEEK-1) ? "border-right:1px solid #373737;" : "";
		cal += '<td style="'+borderDrt+'">&nbsp;</td>';
	}
	
		
	// LOOP per cada dia del mes
	var week_day = -1;
	for(ind=0; ind < DAYS_OF_MONTH; ind++)
	{
		if( Calendar.getDate() > ind )
		{
			week_day =Calendar.getDay();
			
			// Nova fila pel primer dia de la setmana (0 == Diumenge, 1 == Dilluns, ...)
			if(week_day == 1)
			{
				if (numSetmanes > 0) cal += '<tr>';
				numSetmanes++;
			}
			if(week_day != DAYS_OF_WEEK)
			{
				var borderDrt = (week_day > 0) ? "border-right:1px solid #373737;" : ""; // week_day==0 => diumenge
				
				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) )
				{
					var classe = (day == diaSeleccionat) ? "calendariJS_blancFonsRosa" : "calendariJS_blanc";
					// Dies futurs
					cal += "<td id='tdDia"+quinCalendari+day+"' style='cursor:pointer;"+borderDrt+"' align='center' onClick='"+seleccionaData+"("+day+","+month+","+year+");' class='"+classe+"'>";
					cal += "<b>" + day + "</b>";
					cal += "</td>";
				}
				else // Dies ja passat
				{
					cal += "<td style=' "+borderDrt+"' class=calendariJS_grisFosc  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

	// Acabem de posar els dies de la setmana que tenim a mitges
	if (week_day > 0){
		for(ind=week_day; ind < DAYS_OF_WEEK; ind++){
			var borderDrt = (ind<DAYS_OF_WEEK-1) ? "border-right:1px solid #373737;" : "";
			cal += '<td style="'+borderDrt+'">&nbsp;</td>';
		}
	}

	// Posem lines en blanc si aquest mes té menys de sis setmanes
	while (numSetmanes < 6)
	{
		cal += '<tr >';
		for(ind=0; ind < DAYS_OF_WEEK; ind++){
			var borderDrt = (ind<DAYS_OF_WEEK-1) ? "border-right:1px solid #373737;" : "";
			cal += '<td style="'+borderDrt+'">&nbsp;</td>';
		}
		cal += '</tr>';
		numSetmanes++;
	}

	cal += "</table>";



	var diaSol = "";
	diaSol += "<table cellpadding=0 cellspacing=0 style='width:116px; height:113px; background-color:#000000;'>";
	diaSol += 	"<tr style='height:25px;'><td align='center' valign='middle'>";
	diaSol += 		"<div style='position:relative; height:25px; width:116px; overflow:hidden;'>";
	var dt = new Date(any, mes, diaSeleccionat);
	var diaSetm = dt.getDay();
	if (diaSetm == 0) diaSetm = 7;
	var posIniDiaSolStr = posInicialDiaSolStr - (hSepDiaSolStr * (diaSetm-1) );
	diaSol += 			"<div id='diaSol"+quinCalendari+"DivStr' style='position:relative; top:"+posIniDiaSolStr+"px;' class='calendariJS_rosaGran' style='top:-5px;'>";
	for (var i=0; i<7; i++) diaSol += "<p style='margin-top:0px; margin-bottom:0px; height:25px;'>"+long_day_of_week[i]+"</p>";
	diaSol += 			"</div>";
	diaSol += 		"</div>";
	diaSol += 	"</td></tr>";
	diaSol += 	"<tr style='height:88px;'><td align='center' valign='middle'>";
	diaSol += 		"<div style='position:absolute; z-index:10;'>";
	diaSol += 			"<div style='position:absolute; top:38px; background-color:#000000; width:116px; height:1px; overflow:hidden;'></div>";
	diaSol += 			"<div style='position:absolute; top:39px; background-color:#373737; width:116px; height:1px; overflow:hidden;'></div>";
	diaSol += 		"</div>";
	diaSol += 		"<div style='position:relative; height:88px; width:116px; overflow:hidden; z-index:5;'>";
	var posIniDiaSol = posInicialDiaSol - (hSepDiaSol * (diaSeleccionat-1) );
	diaSol += 			"<div id='diaSol"+quinCalendari+"Div' style='position:relative; top:"+posIniDiaSol+"px;' class='calendariJS_blancGran'>";
	for (var i=1; i<32; i++) {
		var s = (i<10) ? "0" : "";
		diaSol += "<p style='margin-top:0px; margin-bottom:0px; height:110px;'>"+s + i+"</p>";
	}
	diaSol += 			"</div>";
	diaSol += 		"</div>";
	diaSol += 	"</td></tr>";
	diaSol += "</table>";
	
	
		
	
	var s = "";
	s += "<table cellpadding=0 cellspacing=0 onMouseOver='mouseOver();' onMouseOut='mouseOut(\"" + gCapaCalendari + "\")' >";
	s += 	"<tr>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/sup-esq.gif' 	width='3' 	height='3'></td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/sup1.gif' 			width='116' height='3'></td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/sup2.gif' 			width='4' 	height='3'></td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/sup1.gif' 			width='130' height='3'></td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/sup-drt.gif' 	width='3' 	height='3'></td>";
	s += 	"</tr>";
	s += 	"<tr>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/esq.gif' 			width='3' 	height='113'></td>";
	s += 		"<td>";
	s += 			diaSol;
	s += 		"</td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/mig.gif' 			width='4' 	height='113'></td>";
	s += 		"<td>";
	s += 			cal;
	s += 		"</td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/drt.gif' 			width='3' 	height='113'></td>";
	s += 	"<tr>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/inf-esq.gif' 	width='3' 	height='3'></td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/inf1.gif' 			width='116' height='3'></td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/inf2.gif' 			width='4' 	height='3'></td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/inf1.gif' 			width='130' height='3'></td>";
	s += 		"<td><img src='" + urlBlog + "img/calendariJS/inf-drt.gif' 	width='3' 	height='3'></td>";
	s += 	"</tr>";
	s += "</table>";


	//  PRINT CALENDAR
	var cpa = document.getElementById(gCapaCalendari);
	if (cpa) {
		cpa.innerHTML = s;
	}
	
	gContador = 10;
}


/*
 *	Canvia el dia
 */
var posInicialDiaSol = -15;
var hSepDiaSol = 110;
var posInicialDiaSolStr = 0;
var hSepDiaSolStr = 25;
function posicionaDia(ndia, nmes, nany, capa)
{
	var diaSolDiv = document.getElementById(capa);
	var diaSolDivStr = document.getElementById(capa+"Str");
	if (!diaSolDiv || !diaSolDivStr) return false;
	
	// Posicionem el numero
	var ttop = posInicialDiaSol - (hSepDiaSol * (ndia-1) );
	diaSolDiv.style.top = ttop + "px";
	
	//Posicionem el dia de la setmana
	var dt = new Date(nany, nmes, ndia);
	var diaSetm = dt.getDay();
	if (diaSetm == 0) diaSetm = 7; // 7=Diumenge, 1=Dilluns, 2=Dimarts...
	ttop = posInicialDiaSolStr - (hSepDiaSolStr * (diaSetm-1) );
	diaSolDivStr.style.top = ttop + "px";
	
	return true;
}




/*
 *	Salta al seguent mes
 */
function mesSeguent()
{
	tmonth = month + 1;
	tyear = year;
	if (tmonth == 12)
	{
		tmonth = 0;
		tyear++;
	}
	escriuCalendari(tmonth, tyear, "");
	
	if (gCapaCalendari == "calendariArribadaDiv") 		seleccionaDataArribada(1, tmonth, tyear);
	else if (gCapaCalendari == "calendariSortidaDiv")	seleccionaDataSortida(1, tmonth, tyear);
}

/*
 *	Salta al mes anterior
 */
function mesAnterior()
{
	tmonth = month - 1;
	tyear = year
	if (tmonth == -1) 
	{
		tmonth = 11;
		tyear--;
	}

	escriuCalendari(tmonth, tyear, "");

	var diaPerSeleccionar = 1;
	var avui = new Date();
	var diaDt= new Date(tyear, tmonth, 1);
	if (diaDt.valueOf() < avui.valueOf()) diaPerSeleccionar = avui.getDate();
	if (gCapaCalendari == "calendariArribadaDiv") 		seleccionaDataArribada(diaPerSeleccionar, tmonth, tyear);
	else if (gCapaCalendari == "calendariSortidaDiv")	seleccionaDataSortida(diaPerSeleccionar, tmonth, tyear);
}


/*
 *	Fa desapareixer el calendari passat un temps després de mouseOut
 */
var gContador = 5;
var gTimer = 0;
function mouseOut(strCapa)
{
	gContador--;
	if (gContador < 0){
		ocultaCalendari(strCapa);
	}
	else{
		if (gTimer != 0){
			clearTimeout(gTimer);
			gTimer = 0;
		}
		gTimer = setTimeout("mouseOut('" + strCapa + "');", 100);
	}
}
function mouseOver()
{	
	gContador = 5;
	clearTimeout(gTimer);
	gTimer = 0;
}

