//створюємо масив місяців
var month_of_year = new Array('Січень','Лютий','Березень','Квітень','Травень','Червень','Липень','Серпень','Вересень','Жовтень','Листопад','Грудень');





var Calendar = new Date(); //поточна дата

var year = Calendar.getYear();	    // Повертає рік
var month = Calendar.getMonth();    // Повертає місяць (0-11)
var today = Calendar.getDate();    // Повертає день місяця(1-31)
var weekday = Calendar.getDay();    // Повертає день тижня(0-6)


var DAYS_OF_WEEK = 7;    // константа кількості днів в тижні
var DAYS_OF_MONTH = 31;    // константа кількості днів в місяці
var cal;    // змінна для друку календаря



Calendar.setDate(1);    // почати день місяця з '1'
Calendar.setMonth(month);    // почати місяць з поточного





//змінні для форматування (створення рядків і комірок і виділеної комірки)
var TR_start = '<TR>';
var TR_end = '</TR>';
var highlight_start = '<TD WIDTH="10"><TABLE CELLSPACING=0 BORDER=0 BGCOLOR=FFF000 ><TR><TD WIDTH="10"><FONT COLOR=000000><B><CENTER>';
var highlight_end   = '</CENTER></TD></TR></TABLE></B></FONT>';
var TD_start = '<TD WIDTH="25"><CENTER>';
var TD_end = '</CENTER></TD>';



//побудова таблиці календаря
cal =  '<TABLE WIDTH="170" BORDER=0  CELLSPACING=0 CELLPADDING=10  BGCOLOR=#424010><TR><TD>';
cal += '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=1>' + TR_start;
cal += '<TD COLSPAN="' + DAYS_OF_WEEK + '" BGCOLOR="#FFF000"><CENTER><FONT FAMILY=Arial,Helvetica SIZE=3pt COLOR=000000><B>';
cal += month_of_year[month]  + '</B></FONT>' + TD_end + TR_end;
cal += TR_start;

cal += TD_end + TR_end;
cal += TR_start;




// заповнення пустими комірками 
if(Calendar.getDay()==0)
{for(index=-6; index < Calendar.getDay(); index++)
{cal += TD_start + '  ' + TD_end;}
}

for(index=1; index < Calendar.getDay(); index++)
{
cal += TD_start + '  ' + TD_end;
}




// цикл зміни днів місяця
for(index=0; index < DAYS_OF_MONTH; index++)
{
	if( Calendar.getDate() > index )
	{
	  // повернення RETURNS THE NEXT DAY TO PRINT
	  week_day =Calendar.getDay();
	
	  // почати новий рядок з понеділка
	  if(week_day == 1)
	  cal += TR_start;
	
	
	  
	  if(week_day != DAYS_OF_WEEK)
	  {
	
	  //внутрішній цикл для збільшення дня
	  var day  = Calendar.getDate();
	
	  // виділення сьогоднішньої дати
	  if( today==Calendar.getDate() )
	  cal += highlight_start + day + highlight_end + TD_end;
	
	  // решта дат без виділення
	  else
	  cal += TD_start + day + TD_end;
	  }
	  
	  
	
	  // останній рядок останього дня тижня
	  if(week_day == DAYS_OF_WEEK)
	  cal += TR_end;
	  }
 

  // збільшення до закінчення місяця
  Calendar.setDate(Calendar.getDate()+1);

}



cal += '</TD></TR></TABLE></TABLE>';

//  вивід календаря
document.write(cal);


