var config = require('konfig')();

module.exports = {
	_getCurrentSchedule: function () {
		var schedule = config.app.Schedule;
		var currentDate = new Date();
		
		var dayOfWeek = currentDate.getDay();
		var daySchedule = schedule[dayOfWeek.toString()];

		return schedule[dayOfWeek.toString()];
	},
	_isOutOfSchedule: function() {
		var currentDate = new Date();
		var daySchedule = this._getCurrentSchedule();

		// TODO: Удалить завтра с утра
		if (currentDate.getDay() <= 4) return false;

		// Quick hack, convert to Moscow timezone		
		var hourOfDay = currentDate.getHours() + 4;
		// 22:15 -> 23:00, compare later 23 < 18 || 23 > 22 -> true
		if (currentDate.getMinutes() > 0) hourOfDay = hourOfDay + 1;

		if (hourOfDay >= 24) hourOfDay = hourOfDay - 24;

		var range1 = daySchedule.timeRanges[0];
		var range2 = daySchedule.timeRanges[1];

		var outOfScheduleRequest = false;
		if (range1 && range2) {
			outOfScheduleRequest = (hourOfDay < range1.start || hourOfDay > range1.end) && (hourOfDay < range2.start || hourOfDay > range2.end);
		}
		else {
			outOfScheduleRequest = hourOfDay < range1.start || hourOfDay > range1.end;
		}
		return outOfScheduleRequest;
	},
	getSorryMsg: function () {
		var message = 'ОГРОМНОЕ спасибо за интерес к Instacab! Все автомобили в настоящее время заполнены, пожалуйста проверьте снова в ближайшее время!';
		if (this._isOutOfSchedule()) {
			message = "ОГРОМНОЕ спасибо за интерес к Instacab! Сегодня машины доступны с " + this._getCurrentSchedule().name + ". Пожалуйста попробуйте позже заказать еще раз.";
		}

		return message;		
	},
	getNoneAvailableString: function () {
		var message = "НЕТ СВОБОДНЫХ АВТОМОБИЛЕЙ";

		if (this._isOutOfSchedule()) {
			message = "Машины доступны сегодня с " + this._getCurrentSchedule().name;
		}
		return message;
	}
}
@@ -411,89 +411,8 @@
 );%0A%0A
-%09%09// TODO: %D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C %D0%B7%D0%B0%D0%B2%D1%82%D1%80%D0%B0 %D1%81 %D1%83%D1%82%D1%80%D0%B0%0A%09%09if (currentDate.getDay() %3C= 4) return false;%0A%0A
 %09%09//
@@ -499,16 +499,17 @@
 () + 4;%0A
+%0A
 %09%09// 22:
@@ -565,43 +565,82 @@
 true
+%09%09
 %0A%09%09
-if (currentDate.getMinutes() %3E 0
+var hourOfDayEnd = currentDate.getHours() + 5;%0A%0A%09%09if (hourOfDay %3E= 24
 ) ho
@@ -663,13 +663,13 @@
 Day 
-+ 1;%0A
+- 24;
 %0A%09%09i
@@ -672,32 +672,35 @@
 %0A%09%09if (hourOfDay
+End
  %3E= 24) hourOfDa
@@ -692,32 +692,35 @@
 %3E= 24) hourOfDay
+End
  = hourOfDay - 2
@@ -711,24 +711,27 @@
  = hourOfDay
+End
  - 24;%0A%0A%09%09va
@@ -929,32 +929,35 @@
 art %7C%7C hourOfDay
+End
  %3E range1.end) &
@@ -988,32 +988,35 @@
 art %7C%7C hourOfDay
+End
  %3E range2.end);%0A
@@ -1091,16 +1091,19 @@
 ourOfDay
+End
  %3E range

Fix schedule comparison