var today = new Date;
var start_arr = today.getDate()+"/"+(today.getMonth()+1)+"/"+today.getFullYear();

var next_day = today.getTime()+ 24*60*60*1000;
var tomorrow = new Date(next_day);
var start_dep = tomorrow.getDate()+"/"+(tomorrow.getMonth()+1)+"/"+tomorrow.getFullYear();

var margin = 0;
var actual_arr;
var actual_dep;
if (ext_actual_arr)
  {
   actual_arr = ext_actual_arr;
  }
else
  {
   var act_date_arr = today.getTime()+ parseInt(margin)*24*60*60*1000;
   var actual_date_arr = new Date(act_date_arr);
   actual_arr = actual_date_arr.getDate()+"/"+(actual_date_arr.getMonth()+1)+"/"+actual_date_arr.getFullYear();
  }
if (ext_actual_dep)
  {
   actual_dep = ext_actual_dep;
  }
else
  {
   var ARR_actual_arr = actual_arr.split('/');
   var date_actual_arr = new Date(ARR_actual_arr[2], ARR_actual_arr[1] - 1, ARR_actual_arr[0]);
   var act_date_dep = date_actual_arr.getTime()+ 24*60*60*1000;
   var actual_date_dep = new Date(act_date_dep);
   actual_dep = actual_date_dep.getDate()+"/"+(actual_date_dep.getMonth()+1)+"/"+actual_date_dep.getFullYear();
  }

var calendar_end = '31/12/2020';
/*
var message_1 = 'Too early';
var message_2 = 'Too late';
*/
var message_1 = 'Wrong date';
var message_2 = 'Wrong date';
var message_3 = 'Wrong date';

$(document).ready(function()
                            {
                             calendar.set(start_arr, calendar_end, actual_arr, 'date_arr', 'arr_date_function', message_1, message_2, message_3, 'errorClass');
                             calendar.set(start_dep, calendar_end, actual_dep, 'date_dep', 'dep_date_function', message_1, message_2, message_3, 'errorClass');
                            }
                  );

function calendar(){};
/* START of calendar.set */
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.gif',
                                               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()
                                           {
//                                            $('#' + fieldId).next().next('.' + errorClass).remove();
 document.getElementById("text_"+fieldId).innerHTML = '';
                                            if ($('#' + fieldId).val().length != 10)
                                              {
//                                               $('#' + fieldId).next().after('<p class="' + errorClass + '">' + wrongText + '</p>');

 document.getElementById("text_"+fieldId).innerHTML = wrongText;

                                               return !1;
                                              }
                                            arrDate = $('#' + fieldId).val().split('/');
                                            if (arrDate.length != 3)
                                              {
//                                               $('#' + fieldId).next().after('<p class="' + errorClass + '">' + wrongText + '</p>');

 document.getElementById("text_"+fieldId).innerHTML = wrongText;

                                               return !1;
                                              }
                                            date = new Date(arrDate[2], arrDate[1] - 1, arrDate[0]);
                                            if (date.getTime() < dateStart.getTime())
                                              {
//                                               $('#' + fieldId).next().after('<p class="' + errorClass + '">' + earlyText + '</p>');

 document.getElementById("text_"+fieldId).innerHTML = earlyText;

                                               return !1;
                                              }
                                            if (date.getTime() > dateEnd.getTime())
                                              {
//                                               $('#' + fieldId).next().after('<p class="' + errorClass + '">' + lateText + '</p>');

 document.getElementById("text_"+fieldId).innerHTML = lateText;

                                               return !1;
                                              }
                                            window[functionName]($('#' + fieldId).val(), $(this));
                                           }
                                        );
                 }
/* -- END of calendar.set -- */
calendar.errorsExist = function(arrErrorClasses)
                         {
                          for (errorClass in arrErrorClasses)
                             {
                              if ($('.' + arrErrorClasses[errorClass]).length) return 1;
                             }
                          return !1;

                         }
/*
function selDate(date, inst)
{
 $('body').append('<p>' + date + '</p>');
}
*/
function arr_date_function()
{
 document.getElementById("text_date_arr").innerHTML = '';
/*
 var arr_date_value = document.getElementById('date_dep').value;
*/
 var arr_date_array = $('#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();
 calendar.set(start_dep, calendar_end, new_actual_dep, 'date_dep', 'dep_date_function', message_1, message_2, message_3, 'errorClass');
}
function dep_date_function()
{
 document.getElementById("text_date_dep").innerHTML = '';
}
