var ecCalTable;
var ecCalFormName;
var ecCalInputName;
var ecCalYear;
var ecCalMonth;
var ecCalToday;
var ecCalDays;
var ecCalMonths;

function ecCalInit( calendarId, formName, inputName )
{
   ecCalTable = document.getElementById( calendarId );
   ecCalFormName = formName;
   ecCalInputName = inputName;
   ecCalToday = new Date();
   ecCalMonth = ecCalToday.getMonth();
   ecCalYear = ecCalToday.getYear();
   if ( ecCalYear < 200 ) ecCalYear += 1900;
   ecCalNameInit( "hu" );
   ecCalRedraw();
}

function ecCalNameInit( localeName )
{
   if ( localeName == "hu" ) {
      ecCalMonths = new Array( "Janu&#225;r", "Febru&#225;r", "M&#225;rcius", "&#193;prilis",
         "M&#225;jus", "J&#250;nius", "J&#250;lius", "Augusztus", "Szeptember", "Okt&#243;ber",
         "November", "December" );
      ecCalDays = new Array( "H", "K", "Sze", "Cs", "P", "Szo", "V" );
   }
}

function ecCalRedraw()
{
   html = "";

   // Year
   html += "<tr><th colspan=7>" + ( ecCalYear ) + "</th></tr>";

   // Month
   html += "<tr>";
   html += "<th colspan=\"7\"><a href=\"javascript:ecCalPrevMonth();\">&lt;&lt;</a>"
   html += " " + ecCalMonths[ecCalMonth] + " ";
   html += "<a href=\"javascript:ecCalNextMonth();\">&gt;&gt;</a></th"
   html += "</tr>";

   // Empty row
   // html += "<tr><td colspan=\"7\">&nbsp;</td></tr>"

   // Day names
   html += "<tr>";
   for ( i = 0; i < 7; i++ ) html += "<td>" + ecCalDays[i] + "</td>"
   html += "</tr>";

   // Days
   firstDayDate = new Date();
   firstDayDate.setFullYear( ecCalYear, ecCalMonth, 1 );
   days = ecCalDaysInMonth();

   firstDay = firstDayDate.getDay() - 1;
   if ( firstDay < 0 ) firstDay = 6;

   for ( i = 0; i < 42; i++ ) {
      if ( i % 7 == 0 ) html += "<tr>";
      if ( ( i - firstDay < 0 ) || ( i - firstDay >= days ) ) html += "<td>&nbsp;</td>";
      else {
         isItCurrent = false;
         html += "<td>";
         if ( ( ecCalToday.getYear() + 1900 == ecCalYear ) &&
            ( ecCalToday.getMonth() == ecCalMonth ) &&
            ( i - firstDay + 1 == ecCalToday.getDate() ) ) isItCurrent = true;
         if ( isItCurrent ) html += "<b>";
         html += "<a href=\"javascript:ecCalSetDay( " + ( i - firstDay + 1 ) + ");\">";
         html += "" + ( i - firstDay + 1 ) + "</a>";
         if ( isItCurrent ) html += "</b>";
         html += "</td>";
      }
      if ( i % 7 == 6 ) html += "</tr>";
   }
   ecCalTable.innerHTML = "<table>" + html + "</table>";
}

function ecCalDaysInMonth()
{
   var days = new Array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );

   if ( ecCalMonth != 1 ) return days[ecCalMonth];
   if ( ecCalYear % 4 == 0 ) return 29;
   return 28;
}

function ecCalPrevMonth()
{
   ecCalMonth--;
   if ( ecCalMonth < 0 ) {
      ecCalMonth = 11;
      ecCalYear--;
   }
   ecCalRedraw();
}

function ecCalNextMonth()
{
   ecCalMonth++;
   if ( ecCalMonth > 11 ) {
      ecCalMonth = 0;
      ecCalYear++;
   }
   ecCalRedraw();
}

function ecCalSetDay( dayNo )
{
   form = eval( "document.all." + ecCalFormName + "." + ecCalInputName );
   form.value = ecCalYear + "-" + ecCalPad( ecCalMonth + 1 ) + "-" + ecCalPad( dayNo );
   eval( "document.all." + ecCalFormName + ".submit()" );
}

function ecCalPad( num )
{
   if ( num < 10 ) return "0" + num;
   return "" + num;
}
