	/*
	* Author: Alex Baskov, 2010
	* NOTE: make sure you include this script *after* jquery.js
	*/

	// these 2 vars will probably be dynamic. if so, set them in another script tags ('<script type="text/javascript"></script>')
	var yearTo = 2011;
	var yearFrom = 2010;

	var devtrixToday = new Date(); // is used only as REAL CURRENT date
	var devtrixCurrentDay = devtrixToday.getDate();
	var devtrixCurrentMonth = devtrixToday.getMonth();
	var devtrixCurrentYear = devtrixToday.getFullYear();

	var devtrixMonth; // stores selected month (will be set to current month on calendar initializing)
	var devtrixYear; // stores selected year (will be set to current year on calendar initializing)

	var isSetActiveDate = false;

	var devtrixMonthNames = ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'];

	$(document).ready(function() {

		$("#nextMonth").click(nextMonth);
		$("#prevMonth").click(prevMonth);
		$("#devtrixMonth").click(function() { hideDropdowns("Year"); showDropdowns("Month"); });
		$("#devtrixYear").click(function() { hideDropdowns("Month"); showDropdowns("Year"); });
		$("#devtrixMonthDropdownClose").click(function() { hideDropdowns("Month"); });
		$("#devtrixYearDropdownClose").click(function() { hideDropdowns("Year"); });
		// populating the calendar years dropdowns
		for (var i = yearTo; i >= yearFrom; i--)
		{
			$("#devtrixYearDropdown").append('<a href="javascript:void(0);" rel="' + i + '">' + i + '</a>');
		}

		$("#devtrixMonthDropdown").find("a").click(function() { setMonthYear(parseInt($(this).attr("rel")), -1); });
		$("#devtrixYearDropdown").find("a").live("click", function() { setMonthYear(-1, parseInt($(this).attr("rel"))); });

		$("#devtrixMonth").html(devtrixMonthNames[devtrixCurrentMonth]);
		$("#devtrixYear").html(devtrixCurrentYear);

		//logic for selecting the day
		//$(".devtrix_day").live("click", setActiveDate);
		//draw calendar

		if (productDate != "")
		{
			var productDateArr = productDate.split("-");
			if (productDateArr.length == 3)
			{
				isSetActiveDate = true;
				setMonthYear(parseInt(productDateArr[1])-1, parseInt(productDateArr[0]));
				$(".devtrix_day").removeClass("devtrix_day_active");
				$("#devtrix_day_" + parseInt(productDateArr[2])).addClass("devtrix_day_active");
			}
			else
			{
				drawCalendar();
			}
		}
		else
		{
			drawCalendar();
		}

	});



	////
	// sets the active date
	//
	function setActiveDate()
	{
		isSetActiveDate = true;

		//$(".devtrix_day").removeClass("devtrix_day_active"); // removing active class from all elements
		//$(this).addClass("devtrix_day_active"); // setting active class on the element which was clicked

		var chosenDay = parseInt($(this).html());
		var chosenMonth = parseInt(devtrixMonth);
		var chosenYear = parseInt(devtrixYear);

		var redirectURL = "/" + chosenYear + "-" + ((chosenMonth < 9) ? "0" + (chosenMonth+1) : (chosenMonth+1)) + "-" + (chosenDay < 10 ? "0" + chosenDay : chosenDay) + "/";
		window.location = redirectURL;
		return false;

	} // /setActiveDate



	////
	// sets the date (clicking on Year dropdown)
	//
	function setMonthYear(localM, localY)
	{
		var localM = (localM >= 0) ? localM : devtrixMonth;
		var localY = (localY >= 0) ? localY : devtrixYear;
		hideDropdowns();
		return drawCalendar(localM, localY);
	} // /setMonthYear



	////
	// show the calendar
	//
	function drawCalendar(m, y)
	{
		var devtrixCalendarDaysHTML = "";
		var devtrixDaysInMonth; // lets make this var local
		var devtrixTodayString;
		devtrixMonth = (m >= 0) ? m : devtrixCurrentMonth;
		devtrixYear = (y >= 0) ? y : devtrixCurrentYear;

		// showing the selected month/year in the head of the calendar
		$("#devtrixMonth").html(devtrixMonthNames[devtrixMonth]);
		$("#devtrixYear").html(devtrixYear);

		var devtrixDate = new Date();
		devtrixDate.setMonth(devtrixMonth);
		devtrixDate.setFullYear(devtrixYear);
		devtrixDate.setDate(1);

		if (devtrixMonth == 0 || devtrixMonth == 2 || devtrixMonth == 4 || devtrixMonth == 6 || devtrixMonth == 7 || devtrixMonth == 9 || devtrixMonth == 11)
		{
			devtrixDaysInMonth = 31;
		}
		else if (devtrixMonth == 3 || devtrixMonth == 5 || devtrixMonth == 8 || devtrixMonth == 10)
		{
			devtrixDaysInMonth = 30;
		}
		else
		{
			devtrixDaysInMonth = ( (devtrixYear % 4 == 0 && !(devtrixYear % 100 == 0)) || devtrixYear % 400 == 0 ) ? 29 : 28;
		}

		var firstDay = devtrixDate.getDay(); // day of the week (1st day of the month) [0 - Sunday, ..., 6 - Saturday]

		// generating empty cells...
		for (var i = 0; i < firstDay - 1; i++) // remove '-1' when week is starting from sunday
		{
			devtrixCalendarDaysHTML += '<a href="javascript:void(0);" class="devtrix_day_empty">&nbsp;</a>';
		}

		// generating days of the month
		for (var i = 1; i <= devtrixDaysInMonth; i++)
		{
			devtrixTodayString = (devtrixYear == devtrixCurrentYear && devtrixMonth == devtrixCurrentMonth && i == devtrixCurrentDay && !isSetActiveDate) ? " devtrix_day_active" : "";
			devtrixCalendarDaysHTML += '<a href="/' + devtrixYear + '-' + (devtrixMonth < 10 ? "0" + (parseInt(devtrixMonth)+1) : parseInt(devtrixMonth)+1) + '-' + (i < 10 ? "0"+i : i) + '/" class="devtrix_day' + devtrixTodayString + '" id="devtrix_day_' + i + '">' + i + '</a>';
		}

		// displaying the calendar days
		$("#devtrixDays").html(devtrixCalendarDaysHTML);

		return true;
	} // drawCalendar()



	////
	// draw next month
	//
	function nextMonth()
	{
		hideDropdowns();
		// Increase the current month.
		var localMonth = devtrixMonth + 1;
		var localYear = devtrixYear;

		if (localMonth > 11)
		{
			localMonth = 0; // months are starting from zero (0 - January, 1 - February, ..., 11 - December)
			localYear = devtrixYear + 1;
		}

		// redraw the calendar
		drawCalendar(localMonth, localYear);
		return true;
	} // /nextMonth()



	////
	// draw previous month
	//
	function prevMonth()
	{
		hideDropdowns();
		var localMonth = devtrixMonth - 1;
		var localYear = devtrixYear;
		if (localMonth < 0)
		{
			localMonth = 11;
			localYear = devtrixYear - 1;
		}
		// redraw the calendar.
		drawCalendar(localMonth, localYear);
	} // /prevMonth()



	////
	// shows dropdowns.
	//
	function showDropdowns(param)
	{
		var param = param || "";

		if (param != "")
		{
			$("#devtrix" + param + "Dropdown").show();
			$("#devtrix" + param + "DropdownClose").show();
		}

		return true;
	} // /hideDropdowns()



	////
	// hides dropdowns. if no param specified then hides all dropdowns (Month and Year
	//
	function hideDropdowns(param)
	{
		var param = param || "";

		if (param != "")
		{
			$("#devtrix" + param + "Dropdown").hide();
			$("#devtrix" + param + "DropdownClose").hide();
		}
		else
		{
			$("#devtrixMonthDropdown").hide();
			$("#devtrixMonthDropdownClose").hide();
			$("#devtrixYearDropdown").hide();
			$("#devtrixYearDropdownClose").hide();
		}

		return true;
	} // /hideDropdowns()
