// JavaScript Document

//Detecta si es Netscape

function creaCalendario (x)
{
hoy=new Date()
this.fecha=new Date()
this.fecha.setMonth(x)
var numDiasMes 
var numDiasFebrero=28
var dia=1
var diaPrimeroMes
var encabezado
var comienzoCalendario=""
var semanaCalendario=""
var mesCalendario
var abreFuturo=""
var cierraFuturo=""
var nombreMes
var pruebaNavegador=new Date(2006,8,21)
pruebaNavegador.setDate(dia)

/*comprueba si el año es bisiesto y calcula el numero de dias de febrero*/
for (i=2000; i<2060;i+=4)
{
if (this.fecha.getYear()==i)
{
numDiasFebrero=29; break;
}
}

/*establece el número de días para cada mes del año */

switch (this.fecha.getMonth())
{
case 0: numDiasMes=31; nombreMes="January"; break;
case 1: numDiasMes=numDiasFebrero; nombreMes="February" ;break;
case 2: numDiasMes=31; nombreMes="March"; break;
case 3: numDiasMes=30; nombreMes="April"; break;
case 4: numDiasMes=31; nombreMes="May"; break;
case 5: numDiasMes=30; nombreMes="June"; break;
case 6: numDiasMes=31; nombreMes="July"; break;
case 7: numDiasMes=31; nombreMes="August"; break;
case 8: numDiasMes=30; nombreMes="September"; break;
case 9: numDiasMes=31; nombreMes="October"; break;
case 10: numDiasMes=30; nombreMes="November"; break;
case 11: numDiasMes=31; nombreMes="December"
}



encabezado='<table cellpading="0"; cellspacing="0" width="150"><tr ><td></td><td colspan="5" align="center"><font size="4" >'+nombreMes+'</font></td><td></td><tr ><td align="center"><font size="4">S</font></td><td align="center"><font size="4">M</font></td><td align="center"><font size="4">T</font></td><td align="center"><font size="4">W</font></td><td align="center"><font size="4">T</font></td><td align="center"><font size="4">F</font></td><td align="center"><font size="4">S</font></td></tr>'


		
/*genera el calendario*/

for (j=0; j<6; j++) /*bucle para las añadir semanas*/
{
	var diaCalendario=""
	for (i=1; i<8; i++) /*bucle para añadir dias*/
	{
		this.fecha.setDate(dia)
		diaPrimeroMes=this.fecha.getDay()
				
		if (dia==1) /*calcula que dia de la semana es el dia 1 de mes para empezar a escribir los dias en el calendario*/
	
		{
							
				for (k=0; k<diaPrimeroMes; k++)
				{
					diaCalendario+='<td></td>'
					i=diaPrimeroMes+1
				}
			
			
		}
		dia+=1
		
		
		if (x<hoy.getMonth()) //detecta fecha antiguas
		{
		
		diaCalendario+='<td align="center">'+this.fecha.getDate()+'</td>'
		}
		if(x==hoy.getMonth()) //detecta fecha actual
		{
			if (this.fecha.getDate() < hoy.getDate())
			{
			diaCalendario+='<td align="center">'+this.fecha.getDate()+'</td>'	
			}
			else
			{
				diaCalendario+='<td align="center"><b>'+this.fecha.getDate()+'</b></td>'
			}
		}
		
		if (x>hoy.getMonth())  //detecta fechas futuras
			{
				diaCalendario+='<td align="center"><b>'+this.fecha.getDate()+'</b></td>'
			}	
		
		if (dia>numDiasMes) /*para de escribir el calendario el ultimo dia de mes*/
		{
			break;
		}

	
	}
	
semanaCalendario+='<tr>'+diaCalendario+'</tr>';

if (dia>numDiasMes)  /*para de escribir el calendario el ultimo dia de mes*/
{
	break;
}

}

/*escribe el calendario*/

mesCalendario=semanaCalendario


document.write(encabezado+mesCalendario+'</table>')

return this
}

function mesActual()
{
 	fechaActual=new Date()
	x=fechaActual.getMonth()
	calendario=new creaCalendario(x)
}

function calendarioAnual(x)
{
		
	calendario=new creaCalendario(x)
}



