/* ГЛОБАЛЬНЫЕ НАСТРОЙКИ КАЛЕНДАРЯ */

/* Надписи на кнопках */
var OpenText = "Show events in ";
var CloseText = "Hide events in ";

/* Классы для кнопок */
var OpenClass = "cBtn2";	// серая кнопка
var CloseClass = "cBtn";	// красная кнопка

/* Узнаем текущий месяц и год */
var NowDate = new Date();
var CurrentMonth = NowDate.getMonth();	// в переменную записывается номер текущего месяца
var CurrentYear = NowDate.getFullYear();	// в переменную записывается номер текущего года

/* Определяем количество дней в месяце */
function DaysPerMonth(y,m){
	DaysCount = 1;
	var YM = new Date(y,m);
	var IsStillRight = true;
	while(IsStillRight){
		YM = new Date(y, m, DaysCount++);
		IsStillRight = (YM.getMonth() == m);
	}
	return DaysCount-2;
}

/*--------------------------------*/

/* Массив, в котором хранится названия месяцев и статусы показа блоков с событиями (false - скрыты, true - показаны) */
var Months = new Array();
//----------------------англ.назв.--рус.назв.---статус
Months[0]  = new Array("January",   "Январь",   false);
Months[1]  = new Array("February",  "Февраль",  false);
Months[2]  = new Array("March",     "Март",     false);
Months[3]  = new Array("April",     "Апрель",   false);
Months[4]  = new Array("May",       "Май",      false);
Months[5]  = new Array("June",      "Июнь",     false);
Months[6]  = new Array("July",      "Июль",     false);
Months[7]  = new Array("August",    "Август",   false);
Months[8]  = new Array("September", "Сентябрь", false);
Months[9]  = new Array("October",   "Октябрь",  false);
Months[10] = new Array("November",  "Ноябрь",   false);
Months[11] = new Array("December",  "Декабрь",  false);

/* Обьявляем массив, в котором будут храниться ссылки на существующие акции */
// 1. заполнен он прямо на странице календаря
// 2. каждый элемент массива - это информация по одному дню
// 3. в каждом дне может быть несколько акций
// 4. каждая акция должна иметь свой уникальный идентификатор
var Actions = new Array();
for(i=0;i<12;i++){
	Actions[i] = new Array();
}

/* Показываем / Скрываем блоки с акциями */
function ShowActions(month,hide){
	if (hide == null) hide = true;
	AList = document.getElementById('Actions_'+month);	// Блок со списком мероприятий
	Btn = document.getElementById('Btn_'+month);			// Кнопка
	Block = document.getElementById('Block_'+month);	// Весь блок этого месяца

	/* Скрываем */
	if (Months[month][2]) {
		if (hide)	HideAllActions();
	}
	/* Показываем */
	else if (!Months[month][2]) {
		HideAllActions();	// скрываем все блоки акций
		if (AList) AList.style.display = "block";
		if (Btn) {
			Btn.value = CloseText+Months[month][0];
			Btn.className = CloseClass;
		}
		if (Block) Block.style.backgroundColor = "#EFF6F8";
		Months[month][2] = true;
	}
	/* если такой месяц не найден */
	else alert ("ERROR! Month is wrong.");
} 

/* Скрываем все блоки с акциями */
function HideAllActions(){
	for (i=0;i<Months.length;i++) {
		if (document.getElementById('Actions_'+i)) document.getElementById('Actions_'+i).style.display = "none";
		if (document.getElementById('Btn_'+i)) {
			document.getElementById('Btn_'+i).value = OpenText+Months[i][0];
			document.getElementById('Btn_'+i).className = OpenClass;
		}
		if (document.getElementById('Block_'+i)) document.getElementById('Block_'+i).style.backgroundColor = "transparent";
		Months[i][2] = false;
	}
	UnlightLink();
}

/* Выволим на страницу список дней, в функцию передается месяц, для которого строится список */
function WriteDates(month){
	var DPM = DaysPerMonth(CurrentYear,month);
	for(i=1; i<DPM+1; i++) {
		var ifix = (i<10) ? "0"+i:i;
		if (Actions[month][i]) {
			document.write("<td><a id=\"link"+month+"_"+i+"\" href=\"javascript:void(ShowActions("+month+",false),LightActions('"+ Actions[month][i] +"','link"+month+"_"+i+"'))\" class='active'>" + ifix + "</a></td>");
		}
		else document.write("<td>" + ifix + "</td>");
	}
}

/* Подсвечиваем мероприятия за выбранный день */
function LightActions(Actions,link_id){
	UnlightLink();
	LightLink(link_id);
	UnlightActions();
	var ActionsArray = Actions.split(",");
	for(i=0;i<ActionsArray.length;i++){
		document.getElementById("ActionId_"+ActionsArray[i]).className = "actual_line";
		ActiveActions[i] = "ActionId_"+ActionsArray[i];
	}
}

/* Убираем подсветку с активных мероприятий */
var ActiveActions = new Array();
function UnlightActions(){
	if (ActiveActions[0]) {
		for (i=0;i<ActiveActions.length;i++) {
			document.getElementById(ActiveActions[i]).className = "";
		}
	}
}

/* Подсвечиваем день, на который кликнули  */
function LightLink(id) {
	document.getElementById(id).className = "actual";
	ActiveLink = id;
}

/* Убираем подсветку с дня  */
var ActiveLink = false;
function UnlightLink() {
	if (ActiveLink) document.getElementById(ActiveLink).className = "active";
}

/* Скрываем ненужные кнопки */
function HideEmptyButtons(){
	for (i=0;i<Actions.length;i++){
		if (!Actions[i].length) document.getElementById("Btn_"+i).style.visibility = "hidden";
	}
}
