$(document).ready(function() {
	$('#thisdayCalendar').each(function() {
				_buildThisDayCalendar(this);
			})

	function _buildThisDayCalendar(domContainer) {
		var langCode = _getLangCode();
    var monthAndDay = _getMonthAndDay();
		var thisDayRootUrl = '/' + langCode + '/thisday';
		var monthsNames = {
			ru : ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль',
					'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
			uk : ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень',
					'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень',
					'Листопад', 'Грудень']
		}
		var monthsDays = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
		var resultHtml = '<div class="calendarContainer">';
		resultHtml += '<div class="header">';
		resultHtml += '<a class="prev" href="#" onclick="return false;"><span>&lt;</span></a>';
    resultHtml += '<h4>&nbsp;</h4>';
		resultHtml += '<a class="next" href="#" onclick="return false;"><span>&gt;</span></a>';
    
		resultHtml += '</div>';
    resultHtml += '<ul class="monthsDays">';

		for (var m = 1; m <= 12; ++m) {
			resultHtml += '<li id="calendarMonth_' + m
					+ '" style="display:none;">';
			resultHtml += '<ul class="days">';
			for (var d = 1; d <= monthsDays[m - 1]; ++d) {
        if (d == monthAndDay.day) {
          resultHtml += '<li class="selected">';
        } else {
				  resultHtml += '<li>';
        }
				resultHtml += '<a href="' + thisDayRootUrl + '/month/' + m + '/day/' + d
						+ '/">' + d + '</a>'
				resultHtml += '</li>';
			}
			resultHtml += '</ul>';
			resultHtml += '</li>';
		}
		resultHtml += '</ul>';
    resultHtml += '</div>';
		$(domContainer).html(resultHtml);
		var date = new Date();
		var currDay = monthAndDay.day;
		var currMonth = monthAndDay.month;
    $("#calendarMonth_" + currMonth,domContainer).show();
    $(".header h4",domContainer).html(monthsNames[langCode][currMonth - 1]);
    
    $('.prev',domContainer).click(function() {
      if (currMonth > 1) {
        $("#calendarMonth_" + currMonth,domContainer).hide();
        --currMonth;
        $("#calendarMonth_" + currMonth,domContainer).show();
        $(".header h4",domContainer).html(monthsNames[langCode][currMonth - 1]);
      }
    });
    
    $('.next',domContainer).click(function() {
      if (currMonth < 12) {
        $("#calendarMonth_" + currMonth,domContainer).hide();
        ++currMonth;
        $("#calendarMonth_" + currMonth,domContainer).show();
        $(".header h4",domContainer).html(monthsNames[langCode][currMonth - 1]);
      }
    });
	}

	function _getLangCode() {
		var langRegExp = /^\/([a-z]{2})/i;
		var path = window.location.pathname;
		var matches = langRegExp.exec(path);

		if (matches) {
			var langCode = matches[1].toLowerCase();
			if (langCode == 'uk' || langCode == 'ru') {
				return langCode;
			}
		}

		return 'uk';
	}
  
  function _getMonthAndDay() {
    var langRegExp = /^\/[a-z]{2}\/thisday\/([0-9]+)\/([0-9]+)[\/]?$/i;
    var path = window.location.pathname;
    var matches = langRegExp.exec(path);

    if (matches) {
      return {
        month : parseInt(matches[1]),
        day : parseInt(matches[2])
      };
    } else {
      var date = new Date();
      return {
        month : date.getMonth() + 1,
        day : date.getDate()
      };
    }
  }
})

