/* функции для календаря */
//заполнение дат
function cal_full(){
  var data = new Date();
  var dayofweek;
  var nameDay;
  var classDay;
  var i,j;
  var today=$('#cal_todayData').val();
  data.setFullYear($('#cal_select_yearField').val());
  data.setMonth($('#cal_select_month').val()-1);
  cal_hide_all();
  i=1;
  for (j=1; j<=31; j++) {
     data.setDate(j);
     if (j > data.getDate()) break;        //Выход, если заканчивается месяц
     dayofweek = data.getDay();
     if (dayofweek==0)dayofweek = 7;      // замена воскресенья
     if (dayofweek == 1 && j!=1 )i++;     // Новая строка, если Понедельник и он не первый в месяце
     nameDay = $('#cal_day'+i+"_"+dayofweek);
     if(dayofweek<6) classDay='cal_workday';else classDay='cal_holiday';
     nameDay.html(j).addClass(classDay);
     if(today==j)nameDay.html(j).addClass('cal_today');
   }
}
//очистка календаря
function cal_hide_all(){
  var nameDay;
  for (i=1; i<=7; i++) {
    for (j=1; j<=6; j++) {
      nameDay = $('#cal_day'+j+"_"+i);
      nameDay.html('&nbsp;');
      if(nameDay.hasClass('cal_today')) nameDay.removeClass('cal_today');
      if(nameDay.hasClass('cal_holiday'))nameDay.removeClass('cal_holiday');
      if(nameDay.hasClass('cal_workday'))nameDay.removeClass('cal_workday');
    }
  }
}
//изменяет месяц
function cal_changeMonth(){
   //проверяем наличие ранее выбранной даты в выбранном месяце
   var data = new Date();
   var today=$('#cal_todayData').val();
   data.setFullYear($('#cal_select_yearField').val());
   data.setMonth($('#cal_select_month').val()-1);
   data.setDate(today);
   $('#cal_todayData').val(data.getDate());
   cal_full();
}
//изменяет активную дату по щелчку по дате
function cal_changeDate(){
   if($(this).html()=="&nbsp;")return;
   $('#cal_todayData').val($(this).html());
   cal_full();
}
//увеличивает год
function cal_yearPlus(){
   var year= $('#cal_select_yearField').val();
   $('#cal_select_yearField').val(Number(year)+1);
   //проверяем наличие ранее выбранной даты в выбранном месяце
   var data = new Date();
   var today=$('#cal_todayData').val();
   data.setFullYear($('#cal_select_yearField').val());
   data.setMonth($('#cal_select_month').val()-1);
   data.setDate(today);
   $('#cal_todayData').val(data.getDate());
   cal_full();
   return false;
}
//уменьшает год
function cal_yearMinus(){
   var year= $('#cal_select_yearField').val();
   $('#cal_select_yearField').val(Number(year)-1);
   //проверяем наличие ранее выбранной даты в выбранном месяце
   var data = new Date();
   var today=$('#cal_todayData').val();
   data.setFullYear($('#cal_select_yearField').val());
   data.setMonth($('#cal_select_month').val()-1);
   data.setDate(today);
   $('#cal_todayData').val(data.getDate());
   cal_full();
   return false;
}
//Изменение года
function cal_changeYear(){
  //проверяем наличие ранее выбранной даты в выбранном месяце
  var data = new Date();
  var today=$('#cal_todayData').val();
  data.setFullYear($('#cal_select_yearField').val());
  data.setMonth($('#cal_select_month').val()-1);
  data.setDate(today);
  $('#cal_todayData').val(data.getDate());
  cal_full();
}
//устанавливает сегодняшнюю дату
function cal_setToday(){
  var data = new Date();
  $('#cal_select_yearField').val(data.getFullYear());
  $('#cal_select_month').val(data.getMonth()+1);
  $('#cal_todayData').val(data.getDate());
  cal_full();
  return true;
}
/* END функции для календаря */

$(document).ready(function() {
   cal_full();
   $('.cal_days td').css('cursor','default').click(cal_changeDate);
   $('#cal_select_month').change(cal_changeMonth);
   $('#cal_btn_right').click(cal_yearPlus);
   $('#cal_btn_left').click(cal_yearMinus);
   $('#cal_select_yearField').change(cal_changeYear);
   $('#cal_today').click(cal_setToday);
}); // end ready()
