// JavaScript Document

	var mouseIsOverCalendar = false;
	var mouseIsOverComunicados = false;
	var holdDay = false;

	var day_of_week = new Array('D','L','M','M','J','V','S');
	var month_of_year = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
	var Calendar = new Date();
	var year = Calendar.getFullYear();		// Returns year
	var month = Calendar.getMonth();	// Returns month (0-11)
	var today = Calendar.getDate();		// Returns day (1-31)
	var weekday = Calendar.getDay();	// Returns day (1-31)
	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 rangeInitMonth = 11; // January
	var rangeInitYear = 2007;
	var rangeEndMonth =  Calendar.getMonth();
	var rangeEndYear = Calendar.getFullYear();
	
	var TR_start = '\t<tr>\n';
	var TD_start = '\t\t<td align="center">';
	var TD_end = '</td>\n';
	var TR_end = '\t</tr>\n';
	// border="0" align="center" cellpadding="0" cellspacing="0" style="border-color: #000000;"
	var highlight_start = '\t\t<TD>\n\t\t<TABLE border="0"  WIDTH="100%" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF">\n<TR><TD><B><CENTER>\n';
	var highlight_end   = '</CENTER></B></TD></TR></TABLE>\n';	

	var linksOfDay;
	var dataYear;

	function initCalendar()
	{
		var y;
		var m;
		var totalYears = (rangeEndYear - rangeInitYear) + 1;
		
		dataYear = new Array(totalYears)
		
		for(y = 0; y<totalYears; y++)
		{
			dataYear[y] = new Array(12);
			
			for(m = 0; m < 12; m++)
			{
				dataYear[y][m] = new Array();
			}
		}
	}

	function mostrarComunicados()
	{
		var tbl = document.getElementById('tblComunicadosCalendario');
		
		posXY = calculatePositionXY(tbl);

		var comunicados = document.getElementById('divComunicados');
		
		comunicados.style.left = posXY[0] + tbl.offsetWidth+'px';
		comunicados.style.top = posXY[1]+'px';
		
		comunicados.style.visibility = 'visible';
	}
	
	var comCalTiemer;
	
	function ocultarComunicados()
	{
		var ventana = document.getElementById('divComunicados');
		
		if((!mouseIsOverCalendar) && (!mouseIsOverComunicados))		
			ventana.style.visibility = 'hidden';
	}
	
	

	function mouseEnterToCalendar()
	{
		mouseIsOverCalendar = true;
		mostrarComunicados();
	}
	
	function mouseEnterToComunicados()
	{
		mouseIsOverComunicados = true;
	}
	
	
	var timeToDisapearComunnicates = 1500;
	
	function mouseOutOfCalendar()
	{
		mouseIsOverCalendar = false;
		
		clearTimeout(comCalTiemer);
		comCalTiemer = setTimeout('ocultarComunicados()', timeToDisapearComunnicates);
	}
	
	function mouseOutOfComunicados()
	{
		mouseIsOverComunicados = false;
		holdDay = false;
		
		clearTimeout(comCalTiemer);
		comCalTiemer = setTimeout('ocultarComunicados()', timeToDisapearComunnicates);
	}
	
	function showLinksOfDate(day)
	{
		if(!holdDay)
		{			
			var comunidadosArea = document.getElementById('divComunicados');
			
			var text = '<strong>D&iacute;a '+ day +' de ' + month_of_year[month] + ' de ' + year +':</strong><br /><br/>';
			
			if (linksOfDay[day] != null)
			{
				highLightCell('calendarCell'+day);
				comunidadosArea.innerHTML = text + linksOfDay[day];
			}
			else
			{
				comunidadosArea.innerHTML = text + '<strong><center> - Sin Comunicados - </center><br /><br /></strong>';
			}
		}// if !holdDay
	}
	
	function diNoHayMasComunicados()
	{
		var comunidadosArea = document.getElementById('divComunicados');
		var text = '<br /><br /><strong><center> - No hay m&aacute;s comunicados - </center></strong><br /><br/>';
		comunidadosArea.innerHTML = text;
	}
	
	function calculatePositionXY(obj)
	{
		var curleft = curtop = 0;
		
		if (obj.offsetParent)
		{
			do
			{
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			}
			while (obj = obj.offsetParent);
		}
		
		return [curleft,curtop]; //return array
	}
	
	function clickHoldDay(day)
	{
		holdDay = false;
		showLinksOfDate(day)
		holdDay = true;
	}
	
	function normalCell(cellName)
	{/*
		var cell = document.getElementById(cellName);
		cell.style.background = "";		
		*/
	}
	
	function highLightCell(cellName)
	{/*
		var cell = document.getElementById(cellName);
		cell.style.background="#FFFF00";
		*/
	}
	
	function createHighLightBtnCell(day)
	{
		var highLightCell =  '\t\t\t<table width="100%" border="0" cellpadding="0"  cellspacing="0" bordercolor="#FFFFFF"'
							+'\n\t\t\t\tid="calendarCellDay'+ day +'"'
							+'\n\t\t\t\tonclick="clickHoldDay(\''+ day +'\');" '
							+'\n\t\t\t\tonmouseover="showLinksOfDate(\''+ day +'\');"'
							+'\n\t\t\t\tonmouseout="normalCell(\'calendarCell'+ day +'\');"'
							+'\n\t\t\t\tstyle="border: 1px #555555 solid; background-image:url(images/calendarImages/cuadroCalendario.gif); background-repeat:repeat-x; cursor:pointer;" >'
							+'\n\t\t\t\t<tr><td align="center" id="calendarCell'+ day +'"><strong>'+ day +'</strong></td></tr>'
							+'\n\t\t\t</table>\n';
							
		return highLightCell;
	}
	
	function createTdNormalCell(day)
	{
		return '\t\t<td align="center" onmouseover="showLinksOfDate(\''+ day +'\');">';
	}
	
	function createTdTodayCell(day)
	{
		return '\t\t<td align="center" onmouseover="showLinksOfDate(\''+ day +'\');" bordercolor="#FF0000">';
	}
	
	
	function getNextMonth()
	{
		if(month == 11)
		{
			if(year < rangeEndYear)
			{
				month = 0;
				year++;
				generateCalendar();
			}
			//else alert('No hay más comunicados.');
		}
		else
		{
			if(year < rangeEndYear)
			{
				month++;
				generateCalendar();
			}
			else
			{
				if(month < rangeEndMonth) // just here the year viewed is the same to rangeEndYear ( the actual year )
				{
					month++;
					generateCalendar();
				}
				//else alert('No hay más comunicados.');
			}
		}
		
	}

	function getPreviousMonth()
	{
		if(month == 0)
		{
			if(year > rangeInitYear)
			{
				year--;
				month = 11;
				generateCalendar();
			}
			//else alert('No hay más comunicados.');
		}
		else
		{
			if(year > rangeInitYear)
			{
				month--;
				generateCalendar();
			}
			else
			{
				if(month > rangeInitMonth) // just here the year viewed is the same to actual year
				{
					month--;
					generateCalendar();
				}
				//else alert(' - No hay ms comunicados. month '+month);
			}
		}
	}
	var cal;
	function generateCalendar()	// ------------------------------ calendar code 
	{		
		
		
		Calendar.setDate(1);				// Start the calendar day at '1'
		Calendar.setMonth(month);			// Start the calendar month 
		Calendar.setYear(year);
		
		linksOfDay = dataYear[year - rangeInitYear][month];
		
		cal = '<div id="divComunicados" onmouseover="mouseEnterToComunicados();" onmouseout="mouseOutOfComunicados();">'
				+'<strong>Comunicados</strong></div>\n\n';
				
		cal +=  '<table border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#FFFFFF"\n'
			   +'id="tblComunicadosCalendario"\n'
			   +'onmouseover="mouseEnterToCalendar();"\n'
			   +'onmouseout="mouseOutOfCalendar();">\n';
			   
		cal += '<!-- begin heder -->\n';
		cal += TR_start;
		cal += '<td colspan="' + DAYS_OF_WEEK + '" bgcolor="#efefef" align="center">\n';
		
		cal += '<div style="font-weight: bold; color: #003399; font-size: 14px;">Comunicados de Prensa</div>\n';
		cal	+= '<table width="100%" border="0" cellspacing="0" cellpadding="0">\n';
		cal	+= '<tr>\n';

		if((month == rangeInitMonth) && (year == rangeInitYear))
			cal	+= '<td aling="left"><img src="images/calendarImages/calendarArrowLeftOff.jpg" width="12" height="12" onclick="diNoHayMasComunicados();" style="cursor:pointer" /></td>\n';
		else
			cal	+= '<td aling="left"><img src="images/calendarImages/calendarArrowLeftOn.jpg" width="12" height="12" onclick="getPreviousMonth();" style="cursor:pointer" /></td>\n';
		
		cal	+= '<td><div style="font-weight: bold; color: #003399; font-size: 14px; text-align:center;">' + month_of_year[month] + ' ' + year +'</div></td>\n';

		if((month == rangeEndMonth) && (year == rangeEndYear))
			cal	+= '<td aling="right"><img src="images/calendarImages/calendarArrowRightOff.jpg" width="12" height="12" onclick="diNoHayMasComunicados();" style="cursor:pointer" /></td>\n';
		else
			cal	+= '<td aling="right"><img src="images/calendarImages/calendarArrowRightOn.jpg" width="12" height="12" onclick="getNextMonth();" style="cursor:pointer" /></td>\n';

		cal	+= '</tr>\n';
		cal	+= '</table>\n'; 
		
		cal += TD_end
		cal += TR_end;
		
		cal += '<!-- begin days of week -->\n';
		cal += TR_start;
		for(index=0; index < DAYS_OF_WEEK; index++)									// LOOPS FOR EACH DAY OF WEEK
		{	
			if((year == rangeEndYear) && (month == rangeEndMonth) && (weekday == index))
				cal += TD_start + '<strong>' + day_of_week[index] + '</strong>' + TD_end;		// BOLD TODAY'S DAY OF WEEK
			else
				cal += TD_start + day_of_week[index] + TD_end;						// PRINTS leter of DAY
		}
		cal += TR_end;
		
		cal += '<!-- weeks -->\n';
		cal += TR_start;
		for(index = 0; index < Calendar.getDay(); index++)// FILL IN BLANK GAPS UNTIL TODAY'S DAY
			cal += TD_start + '&nbsp;' + TD_end;
		
		for(index=0; index < DAYS_OF_MONTH; index++)// LOOPS FOR EACH DAY IN CALENDAR
		{
			var calendarDate = Calendar.getDate();
			
			if(calendarDate  > index )
			{
				week_day = Calendar.getDay();// RETURNS THE NEXT DAY TO PRINT
				
				if(week_day == 0)// START NEW ROW FOR FIRST DAY OF WEEK
					cal += TR_start;
				
				if(week_day != DAYS_OF_WEEK)
				{
					var day  = calendarDate;
					
					if((year == rangeEndYear) && (month == rangeEndMonth) && (today == Calendar.getDate()))//HIGHLIGHT TODAY'S DATE
						cal += createTdTodayCell(day) + '\n\t\t<strong>';
					else // PRINTS DAY
						cal += createTdNormalCell(day);
					
					if (linksOfDay[day] != null)// if the day have info
						cal += '\n' + createHighLightBtnCell(day) + '\t\t';
					else
						cal += day;
					
					if((year == rangeEndYear) && (month == rangeEndMonth) && (today == Calendar.getDate()))//HIGHLIGHT TODAY'S DATE
						cal += '</strong>\n\t\t' + TD_end;
					else // PRINTS DAY
						cal += TD_end;
						
				}//if(week_day != DAYS_OF_WEEK)
				
				if(week_day == (DAYS_OF_WEEK-1))// END ROW FOR LAST DAY OF WEEK
					cal += TR_end;
			}// if( Calendar.getDate() > index )
			
			Calendar.setDate(Calendar.getDate()+1);// INCREMENTS UNTIL END OF THE MONTH
		}//LOOPS FOR EACH DAY IN CALENDAR
		
		cal += TR_end;
		cal+= '</TABLE>\n';
	
		var ca = document.getElementById('calendarArea');
		ca.innerHTML = cal;
	}	
	
	
    function calendarAddLink(y, m, d, no, title)
    {
        y = y-2007;
        m = m-1;
        
        if(dataYear[y][m][d] == null)
            dataYear[y][m][d]= "";
    
        
        dataYear[y][m][d] = dataYear[y][m][d]+"<a href=\"comunicados/puenteaComunicado.aspx?comNo="+no+"\" class=\"ligaCalendar\"><strong>"+no+":</strong> "+title+" </a><hr style=\"height: 1px; color:#7D7D00;\"/>";
    
    }
