function calendarik(SelectDay) {

//  stopB(e);

  calDiv = 'calendar';
  if (document.getElementById(calDiv))
      var calendar = document.getElementById(calDiv);

  var SelectMonth;
  date = new Date(sTime);
//  date = new Date('2006', '10', '30');
  today = date.getDate();
  todayWeekDay = date.getDay();
  todayWeekDay = (todayWeekDay==0) ? 7 : todayWeekDay; // set mon=1,tue=2... sun=7
  month = date.getMonth();
  year = date.getFullYear();
  limit = 6;
  week_day = 1;

  months = new Array('Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
  months_short = new Array('Янв','Фер','Мар','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек');
  days = new Array('пн','вт','ср','чт','пт','сб','вс');

  this_month = new Date(year, month, 1);
  last_month = new Date(year, month - 1, 1);
  next_month = new Date(year, month + 1, 1);

  lstmonth = (month == 0) ? 11 : month-1;
  nxtmonth = (month == 11) ? 0 : month+1;

  first_week_day = this_month.getDay();
  days_in_this_month = Math.round((next_month.getTime() - this_month.getTime())/(1000 * 60 * 60 * 24));
  days_in_last_month = Math.round((this_month.getTime() - last_month.getTime())/(1000 * 60 * 60 * 24));

  end_this_month = (today + limit - days_in_this_month > 0) ? days_in_this_month : today + limit;
  end_next_month = limit-(days_in_this_month - today);
  cook = false;

  if (SelectDay != null) {
      if ( (SelectDay >= today) && (SelectDay <= (today + limit)) ) {
        m = month+1;
//      m = nxtmonth;
        cook = true;
      }
      else if ( (SelectDay < today) && (SelectDay <= end_next_month) ) {
        if (nxtmonth == 11) {
            m = 1; year = year + 1;
        } else {
            m = nxtmonth + 1;
        }
        cook = true;
      }

      if (cook == true) {
        if (SelectDay < 10)  d = '0' + SelectDay; else d = SelectDay;
        if (m < 10) m = '0' + m;
        cook = d+''+m+''+year;
        window.location.href= sUrl + '?d=' + cook;
      }
  }
    SelectDay = sDay;
    SelectMonth = sMonth;

  if (isNaN(SelectMonth) || isNaN(SelectDay)) {
    SelectDay = today;
    SelectMonth = month;
  } 
  else if (((SelectDay >= today) && (SelectDay <= end_this_month)) || ((SelectMonth == nxtmonth+1) && (SelectDay <= end_next_month))) {
    SelectDay == SelectDay; //do nothing
  } 
  else {
    SelectDay = today;
    SelectMonth = month;
  }


  if (end_next_month <= 0)
      title = months[month] + '&nbsp;<strong>'+ today + '-' + (today+limit) + '</strong>';
  else {
      title = months_short[month] + '<strong>' + today + '-' + months_short[nxtmonth] + '</strong> ' + (end_next_month);
  }
                   
  var cal = "<table class='tabl' cellpadding='0' cellspacing='0' border='0'>\n";
  cal += "\t<tr>\n";
    cal += "\t</tr>\n\t<tr>\n";
  cal += "\t\t<td colspan='7' valign='bottom' style='padding:0px; margin:0px; height:10px;background:#BE0000;'></td>\n";
  cal += "\t</tr>\n";
  cal += "\t\t<td class='text' colspan='7' align='center' width='175'>\n <div style='width:180px; height:21px;'>"
  cal += "\t\t\t" + title + "\n";
  cal += "\t\t</div></td>\n";
  cal += "\t</tr>\n";

  cal += "\t<tr>\n";
  // name of days
  for(var i = 0; i < 7; i++) {
    cal += "\t\t<td class='text'>" + days[i] + "</td>\n";
  }

  var lookPrev = today - (todayWeekDay);

  // past days
  if (lookPrev < 0) {
    day_start = days_in_last_month - (todayWeekDay - today - 1); //week erased by 1 ?
    day_end = days_in_last_month;

    for(day_counter = day_start; day_counter <= day_end; day_counter++) {
        week_day %= 7;
        if(week_day == 1)
          cal += "\t</tr>\n\t<tr>\n";

        cal += "\t\t<td><span class='text2'>" + day_counter + "</span></td>\n";
    week_day++;
    }
  }

  // this month
  x = (todayWeekDay == 1) ? 0 : 7;
  day_end = today + x + (7 - todayWeekDay);
    
  if (lookPrev <= 0) {
    day_start = 1;
  } else {
    day_start = today - todayWeekDay +1; //week erased by 1 ?

    day_end = (day_end > days_in_this_month) ? days_in_this_month : day_end;
  }

  for(day_counter = day_start; day_counter <= day_end; day_counter++) {
    week_day %= 7;
    if(week_day == 1)
      cal += "\t</tr>\n\t<tr>\n";

    // current day
    if (day_counter == SelectDay)
        cal += "\t\t<td><b>" + day_counter + "</b></td>\n";

    // for current active week
    else if (day_counter >= today && day_counter <= end_this_month)
        cal += "\t\t<td><a href='#' class='bbb' onclick='calendarik(this.innerHTML)'>" + day_counter + "</a></td>\n";

    // future not active days
    else if (day_counter > end_this_month)
        cal += "\t\t<td><span class='text2'>" + day_counter + "</span></td>\n";

    // past not active days
    else if (day_counter < today)
        cal += "\t\t<td><span class='text2'>" + day_counter + "</span></td>\n";

  week_day++;
  }


  // future month
  if (lookPrev > 1) {
    day_start = 1;
    day_end = (7 + 7 - todayWeekDay) - (days_in_this_month - today);
    end = (end_next_month <= 0) ? 0 : end_next_month;

    for(day_counter = day_start; day_counter < day_end; day_counter++) {
        week_day %= 7;
        if(week_day == 1)
          cal += "\t</tr>\n\t<tr>\n";

        // current day
        if (day_counter == SelectDay)
            cal += "\t\t<td><b>" + day_counter + "</b></td>\n";

        // for current active week
        else if (day_counter <= end)
            cal += "\t\t<td><a href='#' class='bbb' onclick='calendarik(this.innerHTML)'>" + day_counter + "</a></td>\n";

        // future not active days
        else if (day_counter > end)
            cal += "\t\t<td><span class='text2'>" + day_counter + "</span></td>\n";

    week_day++;
    }
  }
  cal += "\t</tr>\n\t<tr>\n";
  cal += "\t\t<td colspan='7' valign='bottom' style='padding:0px; margin:0px; height:0px;'><div class='bord_bot'><div class='bord_bot2'><img src='{$imgPath}/spacer.gif' width='1' height='1' alt='' /></div></div></td>\n";
  cal += "\t</tr>\n";

  cal += '</table>';

  

  if (calendar) {
      calendar.innerHTML = cal;
      calendar.style.display = 'block';  
  }
}
