
// configuracion de contantes para desplegar el calendario

	var headerHeight 	= 0 			// 	alto de la celda donde se encuentra el encabezado
	var border 			= 0 			// 	ancho del borde de la tabla en que se despliega el calendario
	var cellspacing 	= 0 			// 	ancho entre celdas de la tabla en que se despliega el calendario
	var headerColor 	= "red"  	// 	color de despliegue del mes y año en el encabezado de la  tabla en que se despliega el calendario
	var headerSize 		= "2" 			// 	tamaño del texto que aparece en el encabezado (mes, año)
	var colWidth 		= 0 			// 	ancho de las columnas en la tabla
	var dayCellHeight 	= 0				// 	alto de la celta que contiene los dias
	var dayColor 		= "darkblue"	// 	color de texto para los dias
	var cellHeight 		= 0 			// 	alto de las celdas donde se encuentran los dias del mes
	var todayColor 		= "red" 		// 	color que representa el dia actual
	var timeColor 		= "navy" 		//	color que repreenta la hora actual
	
/* Verifica si un año es bisiesto (true) o no (false)*/
function AnoBisiesto(Ano) 
{
	if (Ano % 4 == 0)
		return true 
	return false
}// AnoBisiesto

/* retorna la cantidad de dias de un mes */
function RetornaDias(Mes, Ano)
{
	var ar = new Array(12)

	ar[0] = 31 // enero
	ar[1] = (AnoBisiesto(Ano)) ? 29 : 28 // Febrero 
	ar[2] = 31 // Marzo
	ar[3] = 30 // Abril
	ar[4] = 31 // Mayo
	ar[5] = 30 // Junio
	ar[6] = 31 // Julio
	ar[7] = 31 // Agosto
	ar[8] = 30 // Septiembre
	ar[9] = 31 // Octubre
	ar[10] = 30 // Noviembre
	ar[11] = 31 // Diciembre
return ar[Mes]
}// fin RetornaDias

/* retorna el nombre del mes */ 
function NombreMes(Mes) 
{
	var ar = new Array(12)
	ar[0] = "ENERO"
	ar[1] = "FEBRERO"
	ar[2] = "MARZO"
	ar[3] = "ABRIL"
	ar[4] = "MAYO"
	ar[5] = "JUNIO"
	ar[6] = "JULIO"
	ar[7] = "AGOSTO"
	ar[8] = "SEPTIEMBRE"
	ar[9] = "OCTUBRE"
	ar[10] = "NOVIEMBRE"
	ar[11] = "DICIEMBRE"
return ar[Mes] // retorna el nombre del mes
}// fin NombreMes

function Calendario(Dia,Mes,Ano,DiaHoy,MesHoy,AnoHoy,Feriados,Url,Encabezado,Santo,Accion,Voy) 
{
	if (Ano < 1000) 
		Ano+=1900
		
	var monthName = NombreMes(Mes)
	var firstDayInstance = new Date(Ano, Mes, 1)
	var PrimerDia = firstDayInstance.getDay()-1 // permite saber el primer dia del mes (1=lunes, 2=martes)
	var Dias = RetornaDias(Mes, Ano) // numero de dias que tiene el mes
	
	if(PrimerDia < 0)
		PrimerDia = 6
	
	firstDayInstance = null
	DibujaCalendario(PrimerDia, Dias, Dia, monthName, Ano, Mes,DiaHoy,MesHoy,AnoHoy,Feriados,Url,Encabezado,Santo,Accion,Voy) // llamada a funcion que genera el html del calendario
}// fin Calendario()

function DibujaCalendario(PrimerDia, UltimoDia, Dia, monthName, Ano, Mes,DiaHoy,MesHoy,AnoHoy,Feriados,Url,Encabezado,Santo,Accion,Voy) 
{

	// se crea la estructura basica de la tabla
	var text 	= "" 				// inicializacion de variable
	var openCol = "" 				// Variable que permiten abrir una columna
	var closeCol= ""  				// Variable que permiten cerrar una columna
	var Dias_Semana = new Array(7)	// crea un arreglo con los dias de la semana
	var Feriados_Mes = new Array(31)
	var i

	// declaracion de variables auxiliares

	var digit = 1
	var curCell = 0
	
	for(i=1;i<=31; i++)
	{
		Feriados_Mes[i] = 0
	}
	
	for(i=0;i< Feriados.length;i++)
	{
		Feriados_Mes[Feriados[i]]=1
	}
	
	Dias_Semana[0] 	= "L"
	Dias_Semana[1] 	= "M"
	Dias_Semana[2] 	= "M"
	Dias_Semana[3] 	= "J"
	Dias_Semana[4] 	= "V"
	Dias_Semana[5] 	= "S"
	Dias_Semana[6] 	= "D"
	
	/* VARIABLES QUE ME PERMITEN SETEAR LA NUEVAS FECHA*/
	
	var diaAntesFinal = RetornaDias((((Mes-1)+12)%12),Ano)
	
	var diaAntesDespues =  RetornaDias(((Mes+1)%12),Ano)
	
	var FechaAntes = new Date(Ano,(Mes-1),diaAntesFinal) 
	var FechaDespues = new Date(Ano,(Mes+1),diaAntesDespues) 
		
	var AnoAntes = FechaAntes.getYear()
	var AnoDespues = FechaDespues.getYear()
	
	if (AnoAntes < 1000) 
		AnoAntes+=1900
	if (AnoDespues < 1000) 
		AnoDespues+=1900
	
	if (Voy.length != 0)
	{
		if((Feriados_Mes[Dia]==1) && (Voy==1))
		{
				Dia--
		}
		if((Feriados_Mes[Dia]==1) && (Voy==2))
		{
				Dia++
		}
	}

		
	openCol = '<TD WIDTH="14%">'
	openCol += '<div align="center"><font face="Arial, Helvetica, sans-serif" size="1" color="#000099"><b>' 
	closeCol = '</b></FONT></div></TD>'

	// ******** inicio 2
		text += '<table width="135" border="0.5" bgcolor="#FFFFFF" cellpadding="0" cellspacing="0">'
		text += '<tr>' 
		text += '<td height="25" bgcolor="#f4a460" align="center" valign="middle">'
		text += '<a href="'+Url+'&Mes='+FechaAntes.getMonth()+'&Ano='+AnoAntes+'&Dia='+FechaAntes.getDate()+'&Voy=1&Accion='+Accion+'" onmouseover="window.status=\'Sistema de reservas\';return true"><img src="Images/Arw03lt.ico" width="11" height="11" border="0"></a>'
		text += '</td>'
		text += '<td height="25" bgcolor="#f4a460" align="center" valign="middle">'
		text += '<font color="#ffa500" size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><font color="#FFFFFF">'
		text += monthName + ' ' + Ano 
		text += '</font></b></font>'
		text 	+= 	'</td>'
		text 	+= 	'<td height="25" bgcolor="#f4a460" align="center" valign="middle">'
		text 	+= 	'<a href="'+Url+'&Mes='+FechaDespues.getMonth()+'&Ano='+AnoDespues+'&Dia=1&Voy=2&Accion='+Accion+'" onmouseover="window.status=\'Sistema de reservas\';return true"><img src="Images/Arw03rt.ico" width="11" height="11" border="0"></a>'
		text 	+= 	'</td>'
		text 	+= 	'</tr>'
		text 	+= 	'<tr>'
		text 	+= 	'<td height="117" bgcolor="#ff7f50" align="center" valign="top" colspan="3">'

	// ******** inicio 1
	
		text 	+= 	'<table width="100%" border="0" align="center">'
	
		// crea la fila con los dias de la semana
		text 	+= 	'<TR ALIGN="center" VALIGN="center" bgcolor="#fafad2">'

		for (var dayNum = 0; dayNum < 7; ++dayNum)
		{
			text	+=	openCol + Dias_Semana[dayNum] + closeCol 
		}
		text += '</TR>'

		for (var Fila = 1; Fila <= Math.ceil((UltimoDia + PrimerDia ) / 7); ++Fila) 
		{
			text += '<TR>'
			for (var Columna = 0; Columna < 7; ++Columna) 
			{
				if (digit > UltimoDia)
				{
					var aux = 7 - digit
					for (var aux_Columna = 1; aux_Columna <= aux; ++aux_Columna) 
					{	
						text += '<TD bgcolor="#ffffff"></TD>';
					}
					break
				}
				if (curCell < PrimerDia) 
				{
					text += '<TD bgcolor="#FFFFFF"></TD>';
					curCell++
				} 
				else 
				{
					if (digit == Dia)
					{ 
						//En Septiembre entra aqui
						text += '<TD bgcolor="#fafad2" width="14%" align="center">'						
						text += '<a href="'+Url+'&Dia='+digit+'&Mes='+Mes+'&Ano='+Ano+'&boton=Centro&Accion=Dia" onmouseover="window.status=\'Sistema de reservas\';return true"><font face="Arial, Helvetica, sans-serif" size="1" color="#000000">'
						text += digit
						text += '</font></a></td>'
					} 
					else
					{	
						if ( Feriados_Mes[digit]==1)
							text += '<TD bgcolor="#FFFFFF" width="14%" align="center"><font face="Arial, Helvetica, sans-serif" size="1" color="#FF0000">'+ digit + '</font></TD>'
						else
							if(Columna != 6)
							{
								if (Columna != 5)
									text += '<TD align="center" bgcolor="#FFFFFF" width="14%"><a href="'+Url+'&dia='+digit+'&mes='+Mes+'&ano='+Ano+'&boton=Centro&Accion=Dia" onmouseover="window.status=\'Sistema de reservas\';return true"><font face="Arial, Helvetica, sans-serif" size="1" color="#000000">' + digit + '</font></a></TD>'
								else
									text += '<TD align="center" bgcolor="#faebd7" width="14%"><a href="'+Url+'&dia='+digit+'&mes='+Mes+'&ano='+Ano+'&boton=Centro&Accion=Dia" onmouseover="window.status=\'Sistema de reservas\';return true"><font face="Arial, Helvetica, sans-serif" size="1" color="#000000">' + digit + '</font></a></TD>'
							}	
							else								
							{
								text += '<TD align="center"  bgcolor="#faebd7" width="14%"><font face="Arial, Helvetica, sans-serif" size="1" color="FF0000">' + digit + '</font></TD>'
							}
					}
					digit++
				}
			}
			text += '</TR>'
		}
		text += '</table>'
	// ********* fin 1
	//	text += '<div align="center"><a href="'+Url+'&Mes='+FechaDespues.getMonth()+'&Ano='+AnoDespues+'&Dia=1&Voy=2&Accion='+Accion+'" onmouseover="window.status=\'Sistema de reservas\';return true"><font face="arial,verdana" size="1" color="#000000" ><b>Mes Siguiente</b></font></a></div>'
	//	text += '</td>'
	//	text += '</tr>'
	//	text += '<tr>'
	//	text += '<td height="15" align="center" bgcolor="#FFCC66" valign="top" colspan="3">'
	//	text += '<a href="'+Url+'&dia='+DiaHoy+'&mes='+MesHoy+'&ano='+AnoHoy+'&boton=Centro&Accion=Dia" onmouseover="window.status=\'Hoy\';return true"><font face="arial,verdana" size="1" color="#000000" ><b>Hoy</b></font></a>'
	//	text += '</td>'
	//	text += '</tr>'
		
		if(Encabezado==1)
		{
			text += '<tr>'
			text += '<td height="15" bgcolor="#FFCC66" align="center" valign="top" colspan="3">'
			text += '<a href="'+Url+'&boton=Centro&Accion=Dia&Mes='+Mes+'&Ano='+Ano+'&Dia='+Dia+'" onmouseover="window.status=\'Sistema de reservas\';return true"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><b>Día</b></font></a>'
			text += '&nbsp;<font color="#000000">|</font>&nbsp;'
			text += '<a href="'+Url+'&boton=Centro&Accion=Semana&Mes='+Mes+'&Ano='+Ano+'&Dia='+Dia+'" onmouseover="window.status=\'Sistema de reservas\';return true"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#000000"><b>Semana</b></font></a>'
			text += '</td>'
			text += '</tr>'
		}
		text += '</table>'
	// ********* fin 2		
		
	// imprime el documento como un string en la pagina html	
	document.write(text) 

}// fin DibujaCalendario()


function Semana(Dia,Mes,Ano,Url,Bloqueos,Feriados) 
{
	if (Ano < 1000) 
	{
		Ano+=1900
	}
	DibujaSemana(Dia,Mes, Ano,Url,Bloqueos,Feriados) // llamada a funcion que genera el html del semana
}//fin Semana()
	
function DibujaSemana(Dia,Mes,Ano,Url,Bloqueos,Feriados) 
{
		var cantidad = RetornaDias(Mes,Ano)
		var text 	= ""
		var titulo1
		var titulo2
		var aux
		var auxFechaAntes = new Date(Ano,Mes,(Dia-7)) 
		var auxFechaDespues = new Date(Ano,Mes,(Dia+7)) 
		var auxFechaTemp
		var Feriados_Mes = new Array(31)
		var sColor
		
		for(i=1;i<=31; i++)
		{
			Feriados_Mes[i] = 0
		}
		
		for(i=0;i<=Feriados.length;i++)
		{
			Feriados_Mes[Feriados[i]]=1
		}
			
		
		if (((Dia+6) > cantidad) )
		{
			if ((Mes +1 ) >11)
			{
				titulo1 = Dia +"&nbsp;" +  NombreMes(Mes)+ "&nbsp;" +(Ano)
				titulo2 = (Dia+6)%cantidad +"&nbsp;" +  NombreMes(((Mes+1)%12)) + "&nbsp;" +(Ano+1)
			}
			else
			{
				titulo1 = Dia +"&nbsp;" +  NombreMes(Mes)
				titulo2 = (Dia+6)%cantidad +"&nbsp;" +  NombreMes((Mes+1))+ "&nbsp;" +(Ano)
			}
		}
		else
		{
			titulo1 = Dia
			titulo2 = (Dia+6) +"&nbsp;" +  NombreMes(Mes)+ "&nbsp;" +(Ano)
		}
		
		
		text += '<table width="100%" border="0" bgcolor="#FFCA79" cellspacing="0" cellpadding="0">';
        text += '<tr>';
        text += '<td>';
		text += '<table width="100%" border="0" cellpadding="3" cellspacing="1" bordercolor="#339966">';
		text += '<tr>';
		text += '<td colspan="3" bgcolor="#FF9900"><div align="left">';
		text += '<a href="'+Url+'&Mes='+auxFechaAntes.getMonth()+'&Ano='+auxFechaAntes.getYear()+'&Dia='+auxFechaAntes.getDate()+'&Accion=Semana" onmouseover="window.status=\'Sistema de reservas\';return true"><img width=14 height=12 src=Images/Arw03lt.ico border=0></a>' 			  		
		text += '&nbsp;<font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">';
		text += '<B>Semana del '+ titulo1+' al '+titulo2+'</B>';
		text += '</font>&nbsp;';
		text += '<a href="'+Url+'&Mes='+auxFechaDespues.getMonth()+'&Ano='+auxFechaDespues.getYear()+'&Dia='+auxFechaDespues.getDate()+'&Accion=Semana" onmouseover="window.status=\'Sistema de reservas\';return true"><img width=14 height=12 src=img/Images/Arw03rt.ico border=0></a>'
		text += '</div></td>';
		text += '<td width="11%" bgcolor="#339966">';
			text += '<div align="center"><img width="21" height="15" src="imagenes/reserva_011.gif"></div>';
			text += '</td>';
		text += '</tr>';
		
		// hago el for para genera la semana 
		
		for(var fila=0;fila<7;fila++)
		{
			if ((fila % 2 ) == 0)
				sColor = "#FFFFFF"
			else
				sColor = "#FFF8E8"
				
			auxFechaTemp = new Date(Ano,Mes,(Dia+fila))
			
			var auxAno = auxFechaTemp.getYear()
			
			if (auxAno < 1000)
				auxAno += 1900
			
			text += '<tr>'
			text += '<td width="18%" bgcolor="'+sColor+'" valign="middle">';
			
			if ( Feriados_Mes[auxFechaTemp.getDate()]!=1)
			{
				if (Bloqueos[fila] == 1)
				{
					
					text += '<div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633"><b>'+DiaSemana(Dia+fila,Mes,Ano)+'</b></font>';
					text += '</td><td width="42%" bgcolor="'+sColor+'" valign="middle">';
					text += '<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">';
					text += auxFechaTemp.getDate() +'&nbsp;'+ NombreMes(auxFechaTemp.getMonth()) +'&nbsp;'+auxAno;
					text += '</font></div>';
					text += '</td>'		
					text += ' <td bgcolor="'+sColor+'" colspan="2" valign="middle">'
					text += '<a href="'+Url+'&dia='+auxFechaTemp.getDate()+'&mes='+auxFechaTemp.getMonth()+'&ano='+auxAno+'&boton=Centro" onmouseover="window.status=\'Sistema de reservas\';return true">';
					text += '<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">';
					text += 'Disponible';
					text += '</font></a>';
				}
				else
				{
					if (DiaNumeroSemana(Dia+fila,Mes,Ano) == 0 )
					{
						text += '<div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633"><b>'+DiaSemana(Dia+fila,Mes,Ano)+'</b></font>';
						text += '</td><td width="42%" bgcolor="'+sColor+'" valign="middle">';
						text += '<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">';
						text += auxFechaTemp.getDate() +'&nbsp;'+ NombreMes(auxFechaTemp.getMonth()) +'&nbsp;'+auxAno;
						text += '</font></div>';
						text += '</td>'		
						text += '<td bgcolor="'+sColor+'" colspan="2" valign="middle">'
						text += '<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">';
						text += 'No Disponible';
						text += '</font>';
	
					}
					else
					{
						text += '<div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633"><b>'+DiaSemana(Dia+fila,Mes,Ano)+'</b></font>';
						text += '</td><td width="42%" bgcolor="'+sColor+'" valign="middle">';
						text += '<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">';
						text += auxFechaTemp.getDate() +'&nbsp;'+ NombreMes(auxFechaTemp.getMonth()) +'&nbsp;'+auxAno;
						text += '</font></div>';
						text += '</td>'		
						text += '<td bgcolor="'+sColor+'" colspan="2" valign="middle">'
						text += '<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">';
						text += 'No Disponible';
						text += '</font>';
					}
				
				}
			}
			else
			{
					text += '<div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633"><b>'+DiaSemana(Dia+fila,Mes,Ano)+'</b></font>';
					text += '</td><td width="42%" bgcolor="'+sColor+'" valign="middle">';
					text += '<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">';
					text += auxFechaTemp.getDate() +'&nbsp;'+ NombreMes(auxFechaTemp.getMonth()) +'&nbsp;'+auxAno;
					text += '</font></div>';
					text += '</td>'		
					text += '<td bgcolor="'+sColor+'" colspan="2" valign="middle">'
					text += '<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">';
					text += 'No Disponible';
					text += '</font>';
			}
			text += '</td>'
			text += '</tr>';
		}
		text += '</table>';
		text += '</td>';
        text += '</tr>';
        text += '</table>';


		// imprime el documento como un string en la pagina html
		
		document.write(text) 
	}// fin DibujaSemana

// retorna el nombre del dia en la semana
function DiaSemana(Dia,Mes,Ano)
{
	var fecha_actual = new Date(Ano,Mes,Dia)
	var dia_semana;
	var Dias = new Array(7)

	dia_semana=fecha_actual.getDay()
	
	Dias[0] 	= "Domingo"
	Dias[1] 	= "Lunes"
	Dias[2] 	= "Martes"
	Dias[3] 	= "Miercoles"
	Dias[4] 	= "Jueves"
	Dias[5] 	= "Viernes"
	Dias[6] 	= "Sábado"
	return Dias[dia_semana]
}// fin DiaSemana()

// retorna el numero del dia en la semana
function DiaNumeroSemana(Dia,Mes,Ano)
{
	var fecha_actual = new Date(Ano,Mes,Dia) 
	var dia_semana;
	dia_semana=fecha_actual.getDay()
	return dia_semana
}// fin DiaSemana()


