var fuente_numeros=2;
var fuente_mes=4
var color_fondo="eaeaea";
var color_fondo_desc="#CCD6D3";
var color_fondo_mes="#171EA5";
var color_texto_normal="white";
var color_texto_desc="black";
var color_dia_fiesta="red";

var meses=new Array("Gener","Febrer","Març","Abril","Maig","Juny",
                    "Juliol","Agost","Setembre","Octubre","Novembre",
                    "Decembre");
var dias=new Array("Dl","Dm","Dx","Dj","Dv","Ds","Dm");

var nueva_ventana;
var mes_actual;
var anio_actual;
var formulario;
var etiqueta;

function actualiza_dia_semana(dia)
{
	if (dia > 0) 
		return dia - 1
	else
		return 6;
}

function numero_de_dias(mes,anio)
{
	if (mes==3 || mes==5 || mes==8 || mes == 10)
		return 30;
	else if ((mes==1) && es_bisiesto(anio))
		return 29;
	else if (mes==1)
		return 28;
	else return 31;
}

function es_bisiesto(anio)
{
	if (((anio % 4 == 0) && anio % 100 != 0) || anio % 400 == 0)
		return true;
	else return false;
}

function ver_color(dia)
{
	if (dia==6)
		return color_dia_fiesta;
	else
		return color_texto_desc;
}

function finalizar(dia)
{
	nueva_ventana.close();
	//window.document.formulario.Fecha.value=dia+"/"+(mes_actual+1)+"/"+anio_actual;
	window.document.all[etiqueta].value=dia+"/"+(mes_actual+1)+"/"+anio_actual;
}

function calendario(mes,anio)
{
	var primer_dia=new Date(anio,mes,1);
	var dia_inicial=actualiza_dia_semana(primer_dia.getDay());
	var ultimo_dia=numero_de_dias(mes,anio);
	with (nueva_ventana) {
		document.open();
		document.writeln("<HTML>\n<HEAD>\n<TITLE>Calendari</TITLE>\n</HEAD>\n<BODY link=#000000 vlink=#000000>\n<CENTER>");
		
		/*document.writeln("<FORM>");
		document.writeln("<INPUT TYPE='BUTTON' VALUE='Mes +'" +
		                 " onClick='window.opener.actualizar_calendario(2,"+formulario+","+etiqueta+")'>");
		document.writeln("<INPUT TYPE='BUTTON' VALUE='Mes -'" +
		                 " onClick='window.opener.actualizar_calendario(3,"+formulario+","+etiqueta+")'>");
		document.writeln("<INPUT TYPE='BUTTON' VALUE='Any +'" +
		                 " onClick='window.opener.actualizar_calendario(4,"+formulario+","+etiqueta+")'>");
		document.writeln("<INPUT TYPE='BUTTON' VALUE='Any -'" +
		                 " onClick='window.opener.actualizar_calendario(5,"+formulario+","+etiqueta+")'>");
		document.writeln("<INPUT TYPE='BUTTON' VALUE='Cerrar'" +
		                 " onClick='self.close()'>");
		document.writeln("</FORM>\n</CENTER>");*/
		
		document.writeln("<TABLE BORDER=0 ALIGN=CENTER>\n<TR>");
		document.writeln("<TD ALIGN=CENTER BGCOLOR="+color_fondo_mes+"><A HREF='javascript:window.opener.actualizar_calendario(3,\""+formulario+"\",\""+etiqueta+"\")'><b><FONT SIZE="+fuente_mes+" COLOR="+color_texto_normal+">"+"<"+"</FONT></b></A></TD>\n");
		document.writeln("<TD ALIGN=CENTER COLSPAN=5 BGCOLOR="+color_fondo_mes+">"+"<b><FONT SIZE="+fuente_mes+" COLOR="+color_texto_normal+">"+meses[mes]+" "+anio+"</FONT></b></TD>\n");
		document.writeln("<TD ALIGN=CENTER BGCOLOR="+color_fondo_mes+"><A HREF='javascript:window.opener.actualizar_calendario(2,\""+formulario+"\",\""+etiqueta+"\")'><b><FONT SIZE="+fuente_mes+" COLOR="+color_texto_normal+">"+">"+"</FONT></b></A></TD>\n</TR>");
		
		for (var i=0;i<7;i++) 
			document.writeln("<TD ALIGN=CENTER BGCOLOR="+color_fondo_desc+">"+"<b><FONT SIZE=3 COLOR="+color_texto_desc+">"+dias[i]+"</FONT></b></TD>");
			
		document.write("</TR>\n<TR>");
		
		contador_de_dias=1;
		primera=true;
		while (contador_de_dias <= ultimo_dia) {
			for (var i=0;i<7;i++)
				if ((i<dia_inicial && primera) ||contador_de_dias > ultimo_dia)
					document.writeln("<TD ALIGN=CENTER><FONT SIZE="+fuente_numeros+" COLOR="+color_texto_desc+">&nbsp;</FONT></TD>");
				else {
					var texto=ver_color(i);
					document.writeln("<TD ALIGN=CENTER BGCOLOR="+color_fondo+">"+"<A HREF='javascript:window.opener.finalizar("+contador_de_dias+")'>"+"<FONT SIZE="+fuente_numeros+" COLOR="+texto+">"+contador_de_dias+"</FONT></A></TD>");
					contador_de_dias++;
				}
			primera=false;
			document.writeln("</TR>\n<TR>");
		}
		document.writeln("</TR>\n</TABLE>\n</HTML>");
		document.close();
	}
}


function actualizar_calendario(valor,formu,etiq)
{
	formulario=formu;
	etiqueta=etiq;
	
	nueva_ventana=open("","miventana","height=195,width=188,left=330,top=130,resizable=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,copyhistory=no");

	switch (valor) {
		case 1:
			var hoy=new Date();
			mes_actual=hoy.getMonth();
			anio_actual=hoy.getYear();
			if (navigator.appName == "Netscape")
				anio_actua+=1900;
			break;
		case 2:	
			if ((mes_actual + 1)/12 == 1) {
				anio_actual++;
				mes_actual=0;
			} else 
				mes_actual++;	
			break;
		case 3:
			if ((mes_actual-1)==-1) {
				anio_actual--;
				mes_actual=11;
			} else
				mes_actual--;
			break;
		case 4:
			anio_actual++;
			break;
		case 5:
			anio_actual--;
			break;	
	}
	calendario(mes_actual,anio_actual);
}
