var m_s_today = new Date;
var m_s_start_arr = m_s_today.getDate()+"/"+(m_s_today.getMonth()+1)+"/"+m_s_today.getFullYear();

var m_s_next_day = m_s_today.getTime()+ 24*60*60*1000;
var m_s_tomorrow = new Date(m_s_next_day);
var m_s_start_dep = m_s_tomorrow.getDate()+"/"+(m_s_tomorrow.getMonth()+1)+"/"+m_s_tomorrow.getFullYear();

var m_s_margin = 0;
var m_s_actual_arr;
var m_s_actual_dep;
if (m_s_ext_actual_arr)
  {
   m_s_actual_arr = m_s_ext_actual_arr;
  }
else
  {
   var m_s_act_date_arr = m_s_today.getTime()+ parseInt(m_s_margin)*24*60*60*1000;
   var m_s_actual_date_arr = new Date(m_s_act_date_arr);
   m_s_actual_arr = m_s_actual_date_arr.getDate()+"/"+(m_s_actual_date_arr.getMonth()+1)+"/"+m_s_actual_date_arr.getFullYear();
  }
if (m_s_ext_actual_dep)
  {
   m_s_actual_dep = m_s_ext_actual_dep;
  }
else
  {
   var m_s_ARR_actual_arr = m_s_actual_arr.split('/');
   var m_s_date_actual_arr = new Date(m_s_ARR_actual_arr[2], m_s_ARR_actual_arr[1] - 1, m_s_ARR_actual_arr[0]);
   var m_s_act_date_dep = m_s_date_actual_arr.getTime()+ 24*60*60*1000;
   var m_s_actual_date_dep = new Date(m_s_act_date_dep);
   m_s_actual_dep = m_s_actual_date_dep.getDate()+"/"+(m_s_actual_date_dep.getMonth()+1)+"/"+m_s_actual_date_dep.getFullYear();
  }

var m_s_calendar_end = '31/12/2020';
/*
var message_1 = 'Too early';
var message_2 = 'Too late';
*/
var m_s_message_1 = 'Wrong date';
var m_s_message_2 = 'Wrong date';
var m_s_message_3 = 'Wrong date';

$(document).ready(function()
                            {
                             m_s_calendar.set(m_s_start_arr, m_s_calendar_end, m_s_actual_arr, 'm_s_date_arr', 'm_s_arr_date_function', m_s_message_1, m_s_message_2, m_s_message_3, 'm_s_errorClass');
                             m_s_calendar.set(m_s_start_dep, m_s_calendar_end, m_s_actual_dep, 'm_s_date_dep', 'm_s_dep_date_function', m_s_message_1, m_s_message_2, m_s_message_3, 'm_s_errorClass');
                            }
                  );

function m_s_calendar(){};
/* START of calendar.set */
m_s_calendar.set = function(dateStart, dateEnd, dateActual, fieldId, functionName, earlyText, lateText, wrongText, errorClass)
                 {
/* -- Преобразуем даты -- */
                  arrDate = dateStart.split('/');
                  dateStart = new Date(arrDate[2], arrDate[1] - 1, arrDate[0]);
                  arrDate = dateEnd.split('/');
                  dateEnd = new Date(arrDate[2], arrDate[1] - 1, arrDate[0]);
                  arrDate = dateActual.split('/');
                  dateActual = new Date(arrDate[2], arrDate[1] - 1, arrDate[0]);
/* -- Подключаем datepicker -- */
                  $('#' + fieldId).datepicker(
                                              {
                                               setDate: dateActual,
                                               dateFormat: 'dd/mm/yy',
                                               showOn: 'both',
                                               minDate : dateStart,
                                               maxDate : dateEnd,
                                               buttonImage: '/images/cal.png',
                                               buttonImageOnly: true,
                                               numberOfMonths: 2,
                                               showButtonPanel: true,
                                               closeText: 'Close',
                                               currentText: 'Today',
                                               onSelect: function(date, inst)
                                                           {
                                                            $(this).next().next('.' + errorClass).remove();
                                                            window[functionName](date, inst);
                                                            window[functionName]();
                                                           }
                                              }
                                             )
                  .datepicker('setDate', dateActual);
/* -- Проверка вводимой в поле даты -- */
                  $('#' + fieldId).keyup(
                                         function()
                                           {
                                            document.getElementById("text_"+fieldId).innerHTML = '';
                                            if ($('#' + fieldId).val().length != 10)
                                              {
                                               document.getElementById("text_"+fieldId).innerHTML = wrongText;
                                               return !1;
                                              }
                                            arrDate = $('#' + fieldId).val().split('/');
                                            if (arrDate.length != 3)
                                              {
                                               document.getElementById("text_"+fieldId).innerHTML = wrongText;
                                               return !1;
                                              }
                                            date = new Date(arrDate[2], arrDate[1] - 1, arrDate[0]);
                                            if (date.getTime() < dateStart.getTime())
                                              {
                                               document.getElementById("text_"+fieldId).innerHTML = earlyText;
                                               return !1;
                                              }
                                            if (date.getTime() > dateEnd.getTime())
                                              {
                                               document.getElementById("text_"+fieldId).innerHTML = lateText;
                                               return !1;
                                              }
                                            window[functionName]($('#' + fieldId).val(), $(this));
                                           }
                                        );
                 }
/* -- END of calendar.set -- */
m_s_calendar.errorsExist = function(arrErrorClasses)
                         {
                          for (errorClass in arrErrorClasses)
                             {
                              if ($('.' + arrErrorClasses[errorClass]).length) return 1;
                             }
                          return !1;

                         }

function m_s_arr_date_function()
{
 document.getElementById("text_m_s_date_arr").innerHTML = '';
 var arr_date_array = $('#m_s_date_arr').val().split('/');
 var arr_date = new Date(arr_date_array[2], arr_date_array[1] - 1, arr_date_array[0]);
 var dep_time = arr_date.getTime()+ 24*60*60*1000;
 var dep_date = new Date(dep_time);
 var new_actual_dep = dep_date.getDate()+"/"+(dep_date.getMonth()+1)+"/"+dep_date.getFullYear();
// document.getElementById("text_m_s_date_dep").innerHTML = '';
 m_s_calendar.set(m_s_start_dep, m_s_calendar_end, new_actual_dep, 'm_s_date_dep', 'm_s_dep_date_function', m_s_message_1, m_s_message_2, m_s_message_3, 'm_s_errorClass');
}
function m_s_dep_date_function()
{
 document.getElementById("text_m_s_date_dep").innerHTML = '';
}

