// В ASP добавте сюда следующую строчку: <script language=javascript runat=server>
//-------------------------------------------------------------------------------------
function leapYear(year) //Функция, проверяющая високосный ли год...
{
  if (year % 4 == 0) 
  {
    if (year % 100 == 0) 
      if (year % 400 == 0) return true; else return false;
    return true; 
  };
  return false;
}
//-------------------------------------------------------------------------------------
function DaysInMonth(month, year) 
{

  var ar = new Array(11);
  // January  // February
  ar[0] = 31; ar[1] = (leapYear(year)) ? 29 : 28; 
   // March   // April    // May      // June     // July     // August
  ar[2] = 31; ar[3] = 30; ar[4] = 31; ar[5] = 30; ar[6] = 31; ar[7] = 31; 
  // September// October  // November  // December
  ar[8] = 30; ar[9] = 31; ar[10] = 30; ar[11] = 31;
  return ar[month];
}
//-------------------------------------------------------------------------------------
function getMonthName(month) 
{

  var ar = new Array(11)
  ar[0] = "Январь"; ar[1] = "Февраль"; ar[2] = "Март"; ar[3] = "Апрель";
  ar[4] = "Май"; ar[5] = "Июнь"; ar[6] = "Июль"; ar[7] = "Август";
  ar[8] = "Сентябрь"; ar[9] = "Октябрь"; ar[10] = "Ноябрь"; ar[11] = "Декабрь";
  return ar[month];
}
//-------------------------------------------------------------------------------------
function getShortWkDayName(wday) // Сокращенные названия дней неделиC
{
  var wkDay = new Array(6)
  wkDay[0] = "Пн"; wkDay[1] = "Вт"; wkDay[2] = "Ср"; wkDay[3] = "Чт";
  wkDay[4] = "Пт"; wkDay[5] = "Сб"; wkDay[6] = "Вс";
  return wkDay[wday];
}
//-------------------------------------------------------------------------------------

//------------------------------------------------------------------------------------------------------
function drawCal(year, month, firstDay, lastDay, digitHL, HrefArr, FuncName)
//------------------------------------------------------------------------------------------------------
// Возвращает объект String с HTML-кодом таблицы календаря
// ---------------------- АРГУМЕНТЫ: ---------------------------------------------------------
// year      год в виде четырехзначного числа
// month     месяц в виде цифры от 0 до 11 (с Января по Декабрь).
// firstDay  первая дата в календаре (если 0 - то первое число месяца) 
// lastDay   последняя дата в календаре (если 0 - то число дней в месяце)
// digitHL   день, который надо подсвечивать (если 0 - то ничего не подсвечивается)
// HrefArr   массив с числами, для которых должны быть ссылки.
//           Массив должен быть обязательно отсортирован по возрастанию и первый
//           элемент массива HrefArr[0] должен быть >= firstDay.
//           Если HrefArr==null, то ссылки создаются для ВСЕХ чисел от firstDay до lastDay
// FuncName  Имя функции которая должна вызываться при клике на день месяца
//           Формат данной функции должен быть 
//           function FuncName(intYear,intManth,intDay)
//------------------------------------------------------------------------------------------------------
{
  // Константы значений некоторых атрибутов
  var cellspacing = 0;    // значение аналогичного атрибута таблицы
  var cellpadding = 0;    // значение аналогичного атрибута таблицы
  var firstDayInstance, ii=0;;
  if (firstDay==0)
  { firstDayInstance = new Date(year, month, 1); firstDay=1; }
  else
  { firstDayInstance = new Date(year, month, firstDay); }
  var firstDayWeekDay=(firstDayInstance.getDay()-1 < 0) ? 6 : firstDayInstance.getDay()-1;
  firstDayInstance = null;
  if (lastDay==0) {lastDay=DaysInMonth(month, year)};

  var jscr1, jscr2, jscr3; //ПРОТОТИП ФУНКЦИИ ВЫЗЫВАЮЩЕЙСЯ ПО КЛИКЕ НА ДАТУ!
//  jscr1='<a href="javascript:' + FuncName + '('; jscr2=')">'; jscr3='</a>';
	jscr1='<a href="http://www.mpress.ru/redactor3.htm?'+month+1+'" class="active">';
	//jscr3='</a>';

  var text = "";
  text += '\n<table class="CALall" width="100%" cellspacing="' + cellspacing + '" cellpadding="' + cellpadding + '">\n';
  text += '<colgroup span="5" id="Day" />';
  text += '<colgroup span="2" id="HDay" />\n'; //колонки с выходными днями обычно бывают пошире остальных

  text += '<tr><th class="CALmnth" colspan="7">&nbsp;' + getMonthName(month) + ' ' + year + '&nbsp;</th></tr>\n'; 

  text += '<tr class="CALwkd">'; // Создаем строку с названиям Дней недели
  for (var dayNum = 0; dayNum < 7; ++dayNum) 
    {text += '<td ' + ((dayNum>4) ? 'class="CALwkdHL" >' : '>') + getShortWkDayName(dayNum) + '</td>';}
  text += '</tr>\n';
  // Пошли непосредственно дни заносить...
  var digit = firstDay;
  var curCell = 0;
  var weekNum=Math.ceil((lastDay-(firstDay-1) + firstDayWeekDay) / 7);

  for (var row = 1; row <= weekNum; ++row) 
  {
    text += '<tr>'
    for (var col = 1; col <= 7; ++col) 
    {
      if (digit > lastDay) 
         { text += '<td class="CALempty">&nbsp;</td>'; continue; };
      if (curCell < firstDayWeekDay) 
         { text += '<td class="CALempty">&nbsp;</td>'; curCell++; } 
      else 
      {
        text += '<td ';
        text += (digit == digitHL) ? 'class="CALdgtHL" ' : '';
        text += (col > 5) ? 'class="CALdgtHD" ><a class="active" href="?menu=23&y='+year+'&m='+(month+1)+'&d='+(digit)+'">' : '>';
        if (HrefArr==null)
          {text += jscr1 + year + ',' +  month  + ',' +  digit + jscr2 + digit + jscr3;}
        else  {
          if (digit==HrefArr[ii])
            {
            text += jscr1 + year + ',' +  month  + ',' +  digit + jscr2 + digit + jscr3;
            ii++;
            }
          else
              {text +='<a href="?menu=23&y='+year+'&m='+(month+1)+'&d='+(digit)+'" class="active">'+  digit;}
          };
        text += '</a></td>';
        digit++;
      }
    }
    text += '</tr>\n';
  };
  text += '</table>\n\n';
  return text;
}

//var now = new Date(); 
//			var yr  = now.getFullYear ();
//			var mth = now.getMonth();
//			var day = now.getDate();
//			var txt1;
//			txt=drawCal(yr, mth, 0, 0, day, 0, "DoIt")
//			document.write(txt);
//------------------------------------------------------------------------------------------------------
// В ASP не забудьте здесь написать: </script>
