primero 			= true;
divTieneCalendario 	= '';
divCalendario 		= '';
nombreMes			= '';
numeroAnio			= '';
anioPag				= '';
mesPag				= '';
diaPag				= '';
anioGet				= '';
mesGet				= '';
diaGet				= '';

//esta funcion escribe el div del mes
function escribirMes(anio, mes, dia)
{
	if (!primero)
	{
		divCalendario.removeChild(divTieneCalendario);
	}
	else
	{
		anioGet	= anio;
		mesGet	= mes;
		diaGet	= dia;
	}
	
	anioPag					= anio;
	mesPag 					= mes;
	primero					= false;
	divCalendario 			= document.getElementById('calendar');
	diasDelMes 				= darDiasMes(mes, anio);
	divTieneCalendario 		= document.createElement('div');
	tablaTieneCalendario 	= document.createElement('table');
	tbodyTieneCalendario 	= document.createElement('tbody');
	trTieneCalendario 		= document.createElement('tr');
	tdDia0 					= document.createElement('td');
	tdDia1 					= document.createElement('td');
	tdDia2 					= document.createElement('td');
	tdDia3 					= document.createElement('td');
	tdDia4 					= document.createElement('td');
	tdDia5 					= document.createElement('td');
	tdDia6 					= document.createElement('td');
	domingo 				= document.createTextNode('D');
	lunes 					= document.createTextNode('L');
	martes 					= document.createTextNode('M');
	miercoles 				= document.createTextNode('M');
	jueves 					= document.createTextNode('J');
	viernes 				= document.createTextNode('V');
	sabado 					= document.createTextNode('S');
	
	tdDia0.appendChild(domingo);
	tdDia1.appendChild(lunes);
	tdDia2.appendChild(martes);
	tdDia3.appendChild(miercoles);
	tdDia4.appendChild(jueves);
	tdDia5.appendChild(viernes);
	tdDia6.appendChild(sabado);
	
	tdDia0.className = 'tdDia';
	tdDia1.className = 'tdDia';
	tdDia2.className = 'tdDia';
	tdDia3.className = 'tdDia';
	tdDia4.className = 'tdDia';
	tdDia5.className = 'tdDia';
	tdDia6.className = 'tdDia';
	
	trTieneCalendario.appendChild(tdDia0);
	trTieneCalendario.appendChild(tdDia1);
	trTieneCalendario.appendChild(tdDia2);
	trTieneCalendario.appendChild(tdDia3);
	trTieneCalendario.appendChild(tdDia4);
	trTieneCalendario.appendChild(tdDia5);
	trTieneCalendario.appendChild(tdDia6);
	
	tbodyTieneCalendario.appendChild(trTieneCalendario);
	
	tablaTieneCalendario.appendChild(tbodyTieneCalendario);
	
	divTieneCalendario.appendChild(tablaTieneCalendario);
	
	divCalendario.appendChild(divTieneCalendario);
	
	tablaTieneCalendario.className = "tablaCalendario";
	tablaTieneCalendario.cellSpacing = "0";
	tablaTieneCalendario.cellPadding = "0";
	
	b = 0;
	
	//busco el numero de dia al que pertence el primer dia del mes
	primerDiaMes = darNombreDia(1, mes, anio);
	
	trFila = document.createElement('tr');
	tbodyTieneCalendario.appendChild(trFila);
	
	for (i = 0; i < primerDiaMes; i++)
	{
		texto 	= document.createTextNode(' ');
		tdFila 	= document.createElement('td');
		tdFila.className = "tdFila";
		
		tdFila.appendChild(texto);
		
		trFila.appendChild(tdFila);
	}
	
	b = i;
	
	for (i = 1; i <= diasDelMes; i++)
	{
		if (b == 0)
		{
			trFila = document.createElement('tr');
			tbodyTieneCalendario.appendChild(trFila);
		}
		
		texto 			= document.createTextNode(i);
		tdFila 			= document.createElement('td');
		link 			= document.createElement('a');
		link.href 		= '/agenda/?info=buscar&anio=' + anio + '&mes=' + (mes + 1) + '&dia=' + i;
		link.className 	= "linkCalendario";
		
		link.appendChild(texto);
		tdFila.appendChild(link);

		if (i == diaGet && mes == mesGet && anio == anioGet)
		{
			tdFila.style.background = "#10B2E7";
		}
		else
		{
			tdFila.onmouseover	= tdOver;
			tdFila.onmouseout 	= tdOut;
		}
		
		tdFila.className = "tdFila";
				
		trFila.appendChild(tdFila);
		
		if (b == 6)
		{
			b = 0;
		}
		else
		{
			b++;
		}
	}
	
	if (b > 0)
	{
		b = 6 - b;
		
		for (i = 0; i <= b; i++)
		{
			texto 	= document.createTextNode(' ');
			tdFila 	= document.createElement('td');
			
			tdFila.className = "tdFila";
			
			tdFila.appendChild(texto);
			
			trFila.appendChild(tdFila);
		}
	}
	
	escribeMesAnio(mes, anio);
	
}

//funcion que devuelve la cantidad de dias de 1 mes
//enero: 0
//diciembre: 11
function darDiasMes(mes, anio)
{
	if (mes == 0 || mes == 2 || mes == 4 || mes == 6 || mes == 7 || mes == 9 || mes == 11)
	{
		dias = 31;
	}

	if (mes == 1)
	{
		if (esAnioBiciesto(anio))
		{
			dias = 29;
		}
		else
		{
			dias = 28;
		}
	}

	if (mes == 3 || mes == 5 || mes == 8 || mes == 10)
	{
		dias = 30;
	}

	return dias;
}

//devuelve true si el anio es biciesto y false si no lo es
function esAnioBiciesto(anio)
{
	//me fijo si es divisible por 4
	resto = anio % 4;
	
	if (resto == 0)
	{
		//me fijo si es principio de siglo
		resto = anio % 100;
		
		if (resto == 0)
		{
			//si es principiode siglo, tiene que ser divisible por 400 para ser biciesto
			resto = anio % 400;
			
			if (resto == 0)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			return true;
		}
	}
	else
	{
		return false;
	}
}

//devuelve un numero correspondiente al dia de la semana
//0: domingo
//1: lunes
//2: martes
//3: miercoles
//4: jueves
//5: viernes
//6: sabado
function darNombreDia(dia, mes, anio)
{
	fecha = new Date(anio, mes, dia);
	
	return fecha.getDay();
}

function escribeMesAnio(mes, anio)
{
	divAnioActual 	= document.getElementById('anioActual');
	divMesActual 	= document.getElementById('mesActual');
	
	if (nombreMes != '')
	{
		divAnioActual.removeChild(numeroAnio);
		divMesActual.removeChild(nombreMes);
	}
	
	nombreMes 	= document.createTextNode(darNombreMes(mes));
	numeroAnio 	= document.createTextNode(anio);
	
	divAnioActual.appendChild(numeroAnio);
	divMesActual.appendChild(nombreMes);
}

function darNombreMes(mes)
{
	switch (mes)
	{
		case 0:
			return 'Enero';
				break;
				
		case 1:
			return 'Febrero';
				break;
				
		case 2:
			return 'Marzo';
				break;
				
		case 3:
			return 'Abril';
				break;
				
		case 4:
			return 'Mayo';
				break;
				
		case 5:
			return 'Junio';
				break;
				
		case 6:
			return 'Julio';
				break;
				
		case 7:
			return 'Agosto';
				break;
				
		case 8:
			return 'Septiembre';
				break;
				
		case 9:
			return 'Octubre';
				break;
				
		case 10:
			return 'Noviembre';
				break;
				
		case 11:
			return 'Diciembre';
				break;
	}
}

function restarAnio()
{
	escribirMes(anioPag - 1, mesPag);
}

function sumarAnio()
{
	escribirMes(anioPag + 1, mesPag);
}

function restarMes()
{
	if (mesPag == 0)
	{
		nuevoMes = 11;
		nuevoAnio = anioPag - 1;
	}
	else
	{
		nuevoMes = mesPag - 1;
		nuevoAnio = anioPag;
	}
	
	escribirMes(nuevoAnio, nuevoMes);
}

function sumarMes()
{
	if (mesPag == 11)
	{
		nuevoMes = 0;
		nuevoAnio = anioPag + 1;
	}
	else
	{
		nuevoMes = mesPag + 1;
		nuevoAnio = anioPag;
	}
	
	escribirMes(nuevoAnio, nuevoMes);
}

function tdOver()
{
	this.style.background = '#E7E3D6';
}

function tdOut()
{
	this.style.background = '#FFFFFF';
}
