var ns6=document.getElementById&&!document.all;
var ie4=document.all;

var Selected_Month;
var Selected_Year;
var Current_Date = new Date();
var Current_Month = Current_Date.getMonth();
var TodayAnio = 0;

var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var Month_Label = new Array('Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic');

var Current_Year = Current_Date.getFullYear();
if (Current_Year < 1000)
Current_Year+=1900


var Today = Current_Date.getDate();

function Header(Year, Month) {

   if (Month == 1) 
   {
	Days_in_Month[1] = ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 !=0))) ? 29 : 28;
   }
   var Header_String = Month_Label[Month] + ' ' + Year;

   return Header_String;
}

function Make_Calendar(Year, Month) {
	//alert("3");
	Make_Calendar(Year, Month, null);
}

function Make_Calendar(Year, Month, Dia) {
	//alert("4");
	Make_Calendar(Year, Month, null, null);
}

function Make_Calendar(Year, Month, Dia, arrFechas) {
	//alert("5");
   var arrayFechas = arrFechas;
   var First_Date = new Date(Year, Month, 1);
   var Heading = Header(Year, Month);

   var First_Day = First_Date.getDay() + 1;
   if (((Days_in_Month[Month] == 31) && (First_Day >= 6)) ||
       ((Days_in_Month[Month] == 30) && (First_Day == 7))) {
      var Rows = 6;
   }
   else if ((Days_in_Month[Month] == 28) && (First_Day == 1)) {
      var Rows = 4;
   }
   else {
      var Rows = 5;
   }

	if (TodayAnio>0){
		Today = 0;
	}

   var HTML_String = '<table width="100%" border="0" cellpadding="0" cellspacing="0">';

   var Day_Counter = 1;
   var Loop_Counter = 1;

	fechaHoy = new Date();
	var DiaDeHoy = (fechaHoy).getDate();
	var MesDeHoy = (fechaHoy).getMonth();
	var AnioDeHoy = (fechaHoy).getFullYear();
	var AnioIni = 1917;
	var MesIni = 2;
	var DiaIni = 5;
	
	MesIni-=1;

   for (var j = 1; j <= Rows; j++) {
      HTML_String += '<tr>';
      for (var i = 1; i < 8; i++) {
         if ((Loop_Counter >= First_Day) && (Day_Counter <= Days_in_Month[Month])) {

			 if (Day_Counter<10)
				 strToday = '0'+Day_Counter;
			 else
				 strToday = Day_Counter;

			 var tmpMonth = (Month-1) + 2;

			 if (tmpMonth<10)
				 strToday += '/'+tmpMonth;
			 else
				 strToday += '/'+tmpMonth;

			 strToday += '/'+Year;

			if(	(	(Year<AnioDeHoy) ||
					( (Year==AnioDeHoy) && (Month<MesDeHoy) ) ||
					( (Year==AnioDeHoy) && (Month==MesDeHoy) && (Day_Counter<=DiaDeHoy))
				) & (
					(Year>AnioIni) ||
					( (Year==AnioIni) && (Month>MesIni) ) ||
					( (Year==AnioIni) && (Month==MesIni) && (Day_Counter>=DiaIni))
				)

				
				){				
				//alert("("+Day_Counter +"=="+ TodayAnio +"||"+ Day_Counter +"=="+ Dia +") && ("+Year +"=="+ Current_Year+") && ("+Month +"=="+ Current_Month+")");
					var day;
					if (Day_Counter < 10) {
						day = '0'+Day_Counter;
					} else {
						day = Day_Counter;
					}
					
					var selectedMonth;
					if ((Month+1) < 10) {
						selectedMonth = '0'+(Month+1);
					} else {
						selectedMonth = Month+1;
					}
					
				
				if ((Day_Counter == TodayAnio || Day_Counter == Dia) && (Year == Current_Year) && (Month == Current_Month)) {
					HTML_String += '<td class="today"><a href="http://dof.gob.mx/index.php?year='+Current_Year+'&month='+selectedMonth+'&day='+day+'">' + Day_Counter + '</a></td>';
				} else {
					/*
					if ((Day_Counter == Today || Day_Counter == Dia) && (Year == Current_Year) && (Month == Current_Month))  {
					   HTML_String += '<td class="today"><a href="#">' + Day_Counter + '</a></td>';
					} else {
					*/

					var day;
					if (Day_Counter < 10) {
						day = '0'+Day_Counter;
					} else {
						day = Day_Counter;
					}
					
					var selectedMonth;
					if ((Month+1) < 10) {
						selectedMonth = '0'+(Month+1);
					} else {
						selectedMonth = Month+1;
					}
					
					if (arrayFechas != null) {
						checkDay = (Day_Counter < 10)? ("0" + Day_Counter + ",") : (Day_Counter + ",");

						if (arrayFechas.indexOf(checkDay) == -1) {
						   //HTML_String += '<td onMouseOver="this.className=\'CeldaCursor\'" onMouseOut="this.className=\'Celda1\'">' + Day_Counter + '</a></td>';					
	  					   HTML_String += '<td class="actualdays">' + Day_Counter + '</td>';					
						} else {
						   //HTML_String += '<td onMouseOver="this.className=\'CeldaCursor\'" onMouseOut="this.className=\'Celda1\'"><a href="index.php?fecha='+ strToday  +'&mes='+document.getElementById('month').value+'&ano='+document.getElementById('year').value+'" class="Link3">' + Day_Counter + '</a></td>';
						   HTML_String += '<td class="actualdayslink"><a href="http://dof.gob.mx/index.php?year='+Year+'&month='+selectedMonth+'&day='+day+'">' + Day_Counter + '</a></td>';
						}						
					} else {
					   HTML_String += '<td class="actualdayslink"><a href="http://dof.gob.mx/index.php?year='+Year+'&month='+selectedMonth+'&day='+day+'">' + Day_Counter + '</a></td>';
					}					
					

						
					   //HTML_String += '<td class="actualdayslink"><a href="index.php?year='+Year+'&month='+selectedMonth+'&day='+day+'">' + Day_Counter + '</a></td>';
					//}
				}
			} else {
					   HTML_String += '<td class="actualdays">' + Day_Counter + '</a></td>';					
			}
            Day_Counter++;
         } else {
            HTML_String += '<td class="previousdays">&nbsp;&nbsp;</td>';
         }
         Loop_Counter++;
      }
      HTML_String += '</tr>';
   }
   
   HTML_String += '</table>';
	
   cross_el=ns6? document.getElementById("Calendar") : document.all.Calendar
   cross_el.innerHTML = HTML_String;
//   alert(HTML_String);
}


function Check_Nums() {
   if ((event.keyCode < 48) || (event.keyCode > 57)) {
      return false;
   }
}

function On_Year() {
	Selected_Month = "";
	Selected_Year = "";
	if (navigator.appName != "Microsoft Internet Explorer")	{
	   var Year = document.when.year.value;

	   if (Year.length == 4) {
	      Selected_Month = document.when.month.selectedIndex;
      	  Selected_Year = Year;
		  //alert(Selected_Month);
	      //Make_Calendar(Selected_Year, Selected_Month);
	   }
	} else {
	   var Year = document.getElementById('year').value;

	   if (Year.length == 4) {
	      Selected_Month = document.getElementById('month').selectedIndex;
		  Selected_Year = Year;
	      //Make_Calendar(Selected_Year, Selected_Month);
	   }
	}
	
	selMonth = Selected_Month+1;
	if (Selected_Month < 10) {
		selMonth = "0"+selMonth;
	}
	
	var url = "/checkDiaryDate.php?year=" + Selected_Year + "&month=" + selMonth;
	
	new Ajax.Request(url, {
	  method: 'get',
	  onSuccess: function(transport) {
    	var notice = transport.responseText;
	    //alert(notice);
		arrResponse = notice.split("|");
		arrFechas = arrResponse[0];
		arrFechaToday = arrResponse[1].split("/");
		yearToday = arrFechaToday[2];
		monthToday = arrFechaToday[1];
		dayToday = arrFechaToday[0];
		day = 00;
		
		selMonth = Selected_Month+1;
		if (Selected_Month < 10) {
			selMonth = "0"+selMonth;
		}
		
		if (yearToday == Selected_Year && monthToday == selMonth) {
			day = dayToday;
		}
		
		Make_Calendar(Selected_Year, Selected_Month, day, arrFechas);
	  }
	});	

}

function On_Month() {
	Selected_Month = "";
	Selected_Year = "";
	if (navigator.appName != "Microsoft Internet Explorer")	{
	   var Year = document.when.year.value;

	   if (Year.length == 4) {
	      Selected_Month = document.when.month.selectedIndex;
	      Selected_Year = Year;
		  //alert(Selected_Month);
	      //Make_Calendar(Selected_Year, Selected_Month);
	   } else {
	      alert('Please enter a valid year.');
	      document.when.year.focus();
		  return;
	   }
	} else {
	   var Year = document.getElementById('year').value;

	   if (Year.length == 4) {
	      Selected_Month = document.getElementById('month').selectedIndex;
	      Selected_Year = Year;
	      //Make_Calendar(Selected_Year, Selected_Month);
	   } else {
	      alert('Please enter a valid year.');
	      document.getElementById('year').focus();
		  return;
	   }
	}
	
	selMonth = Selected_Month+1;
	if (Selected_Month < 10) {
		selMonth = "0"+selMonth;
	}
	
	var url = "/checkDiaryDate.php?year=" + Selected_Year + "&month=" + selMonth;

	new Ajax.Request(url, {
	  method: 'get',
	  onSuccess: function(transport) {
    	var notice = transport.responseText;
	    //alert(notice);
		
		arrResponse = notice.split("|");
		arrFechas = arrResponse[0];
		arrFechaToday = arrResponse[1].split("/");
		yearToday = arrFechaToday[2];
		monthToday = arrFechaToday[1];
		dayToday = arrFechaToday[0];
		day = 00;
		
		selMonth = Selected_Month+1;
		if (Selected_Month < 10) {
			selMonth = "0"+selMonth;
		}
		
		if (yearToday == Selected_Year && monthToday == selMonth) {
			day = dayToday;
		}
		
		Make_Calendar(Selected_Year, Selected_Month, day, arrFechas);
	  }
	});
}

function Defaults(ano, mes, dia) {
	//alert("1");
	Defaults(ano, mes, dia, "");
}

function Defaults(ano, mes, dia, arrFechas) {
	//alert("2");
	if(navigator.appName != "Microsoft Internet Explorer")
	{
	   document.when.month.selectedIndex = mes-1;
	   document.when.year.value = ano;
	}
	else
	{
		document.getElementById("year").value = ano;
		document.getElementById("month").selectedIndex = mes-1;
	}
   Selected_Month = mes-1;
   Selected_Year = ano;
   Current_Month = mes - 1;
   Current_Year = ano;
   Make_Calendar(ano, mes-1, dia, arrFechas);
}

function DefaultsAnio(Anio, Mes, Dia) {
   TodayAnio = Dia;
if(navigator.appName != "Microsoft Internet Explorer")
{
   document.when.month.selectedIndex = Mes-1;
   document.when.year.value = Anio;
}
else
{
	document.getElementById("year").selectedIndex = 2006-Anio;
	document.getElementById("month").selectedIndex = Mes-1;
}

   Selected_Month = Mes-1;
   Selected_Year = Anio;
   Current_Month = Mes - 1;
   Current_Year = Anio;
   Make_Calendar(Anio, Mes-1);

}

function Skip(Direction) {
   if (Direction == '+') {
      if (Selected_Month == 11) {
         Selected_Month = 0;
         Selected_Year++;
      }
      else {
         Selected_Month++;
      }
   }
   else {
      if (Selected_Month == 0) {
         Selected_Month = 11;
         Selected_Year--;
      }
      else {
         Selected_Month--;
      }
   }
   Make_Calendar(Selected_Year, Selected_Month);
   document.when.month.selectedIndex = Selected_Month;
   document.when.year.value = Selected_Year;
}

function CalCboMeses() {
	var s, j;

	s = '<select name="month" id="month" onChange="On_Year()">';
	for (j = 0; j < Month_Label.length; j++) {
		s += '<option value=' + j + '>' + Month_Label[j] + '</option>';
	}
   s += '</select>'

   //cross_el=ns6? document.getElementById("CalendarMonths") : document.all.CalendarMonths
   //cross_el.innerHTML = s;
   document.writeln(s);
}
function CalCboAnios() {
	var s, j;

	var Current_Date = new Date();
	var tmp_Year = Current_Date.getFullYear();


	if (tmp_Year < 1900){
		tmp_Year = tmp_Year + 1900;
	}

	s = '<select id="year" name="year" onChange="On_Month()">';

	for (j = tmp_Year; j >= 1917; j--) 
	{
		if(j == tmp_Year)
		{
			s += "<option value='" + j + "' SELECTED>" + j + "</option>";
		}
		else
		{
			s += "<option value='" + j + "'>" + j + "</option>";
		}
	}
    s += '</select>';

   //cross_el=ns6? document.getElementById("CalendarYears") : document.all.CalendarYears
   //cross_el.innerHTML = s;
	document.writeln(s);
}

