/**************************************************
*	Показ выбранного элемента.
*	Параметры:
*
*		
**************************************************/
function showStruct(el, plBut, minBut)
{

		if (plBut!=''&&minBut!='')
		{
	  	//скрываем кнопку РАЗВЕРНУТЬ
	  	document.getElementById(plBut).style.display="none";

	  	//отображаем кнопку СВЕРНУТЬ	
	  	document.getElementById(minBut).style.display="inline";
		}
	  	//отображаем скрытое содержание
	  	document.getElementById(el).style.display="block";
}

/**************************************************
*	Показ/скрытие выбранного элемента.
*	Параметры:
*
*		
**************************************************/

function changeDisplay(el, plBut, minBut)
{
	if (document.getElementById(el).style.display=="none")
	{
		showStruct(el, plBut, minBut);
	} 
	else
	{
	  	//скрываем отображенное содержание
	  	document.getElementById(el).style.display="none";
	}
}

/**************************************************
*	Скрытие выбранного элемента.
*	Параметры:
*		el -  id элемента
**************************************************/
function hideStruct(el, plBut, minBut)
{

	if (plBut!=''&&minBut!='')
	{
	  //скрываем кнопку СВЕРНУТЬ
	  document.getElementById(minBut).style.display="none";

	  //отображаем кнопку РАЗВЕРНУТЬ 	
	  document.getElementById(plBut).style.display="inline";

	}
	//скрываем отображенное содержание
	document.getElementById(el).style.display="none";

}

/********************************************
*	Эффект перекатывания (выделение при 
*	наведении  курсора мыши)
*	Параметры:
*		id - id элемента для 
			применения эффекта
********************************************/
function rollOver(id)
{
	document.getElementById(id).style.textDecoration="underline";
	document.getElementById(id).style.cursor="pointer";
}

function rollOut(id)
{
	document.getElementById(id).style.textDecoration="none";
	document.getElementById(id).style.cursor="default";
}

function rollOverN(ths)
	{
	ths.style.background="#FFFFFF";
	ths.style.borderTopColor="#AF0000";
	}

  function rollOutN(ths)
	{
	ths.style.background="#EDEEF0";
	ths.style.borderTopColor="#9DA2A6";
	} 

/**************************************************
*	Формирование календаря.
*	Параметры:
*		redWeekN - первая красная неделя в году
*		servDate - текущая дата (с сервера)
*		
**************************************************/

function calendar(redWeekN, servDate)
{
	//текущие:

	var today = new Date();
	var nowDay = today.getDay();	//день недели
	var nowDate = today.getDate();  //день месяца;
	var nowMonth = today.getMonth();  //месяц
	var nowYear = today.getFullYear();  //год
	
	var dayCount = 1; //количество дней в месяце
	
	var nowMonthText;  //текстовый вариант месяца
	
	var maxDayCount = 30;
	switch (nowMonth)
	{
		case 0: case 2: case 4: case 6: case 7: case 9: case 11: maxDayCount = 31; break;
		case 1: maxDayCount = (isLeapYear(nowYear) ? 29 : 28); break;
	}; 
	
	num = 0;
	week = new Array(6 * 7);
	
	//1. Первая неделя
	for(i = 0; i<7; i++) 
	{
		//вычисляем номер дня недели для числа
		var someday = new Date(nowYear, nowMonth, dayCount);
		var dayofweek = someday.getDay();
		//сдвигаем начало американской недели на понедельник
		dayofweek = dayofweek - 1;
		if(dayofweek == -1) dayofweek = 6;
		
		if(dayofweek == i)
		{
			//если дни недели совпадают, заполняем массив week числами месяца
			week[i + num * 7] = dayCount;
			dayCount++;
		}
		else
		{
			week[i + num * 7] = '';
		}
	};

	//2. Последующие недели месяца
	while(true)
	{
		num++;
		for(i = 0; i < 7; i++)
		{
			week[i + num * 7] = dayCount;
			dayCount++;
			//если достигли конца месяца, выходим из цикла
			if(dayCount > maxDayCount) break;
		};
		//если достигли конца месяца, выходим из цикла
		if(dayCount > maxDayCount) break;
	};

	//прописываем русские названия месяца
	switch(nowMonth)
	{
		case 0: nowMonthText = 'январь'; break;
		case 1: nowMonthText = 'февраль'; break;
		case 2: nowMonthText = 'март'; break;
		case 3: nowMonthText = 'апрель'; break;
		case 4: nowMonthText = 'май'; break;
		case 5: nowMonthText = 'июнь'; break;
		case 6: nowMonthText = 'июль'; break;
		case 7: nowMonthText = 'август'; break;
		case 8: nowMonthText = 'сентябрь'; break;
		case 9: nowMonthText = 'октябрь'; break;
		case 10: nowMonthText = 'ноябрь'; break;
		case 11: nowMonthText = 'декабрь'; break;
	};
	
	//выводим все на экран
	document.getElementById('nowMonthYear').innerHTML = nowMonthText + ' ' + nowYear;
	document.getElementById('calendar').innerHTML = '<TR class="day"><TD>ПН</TD><TD>ВТ</TD><TD>СР</TD><TD>ЧТ</TD><TD>ПТ</TD><TD>СБ</TD><TD>ВС</TD></TR>';	
	allWeeks = '';		
	for (i = 0; i < 6; i++)
	{
		buf = '';
	    for(j = 0; j < 7; j++)
	    {
			if(week[j + i * 7])
			{
				if(week[j + i * 7] != nowDate)
				{
					b = '<TD>' + week[j + i * 7] + '</TD>';
				}
				else
				{
					b = '<TD id="curdate">' + week[j + i * 7] + '</TD>';
				}
			}
			else
			{
				b = '<TD>&nbsp;</TD>';
			};
			buf = buf + b;
		};
		
		oneWeek = '<TR class="dateBlue">' + buf + '</TR>';
		allWeeks = allWeeks + oneWeek;
	};
	document.getElementById('calendar').innerHTML += allWeeks;
}

/**************************************************
*	Определение високосности года.
*	Параметры:
*		y - год
*		
**************************************************/

function isLeapYear(y)
{
	return(y % 4 == 0 && (y % 100 != 0 || y % 400 == 0));
}

/**************************************************
*	Показ по умолчанию одного из ролловер-блоков.
*	Параметры:
*		ths - текущий блок
*		
**************************************************/

function shRollBlock($ths)
{
/*	работать с названием класса*/
}

/**************************************************
*	Ролловер блоков.
*	Параметры:
*		ths - шапка текущего блока
*		
**************************************************/

function rollBlock($ths)
{
	
	var $p=$ths.parentNode;		//текущий блок
	var $pUpper=$p.parentNode;	//родитель ролловер-блоков
	var $ch=$pUpper.childNodes;	//все ролловер-блоки, дочерние к pUpper 

	$ths.style.cursor='pointer';

	for(var $i=0; $i<$ch.length; $i++) {
		if ($ch[$i]==$p) {
			if ($ch[$i].childNodes[1].style.display=='block') {$ch[$i].childNodes[1].style.display='none';}
			else {$ch[$i].childNodes[1].style.display='block';};
		}
		else {
			/*$ch[$i].childNodes[1].style.display='none';*/
		}
	};
}

/**************************************************
*	Скрытие выбранного элемента.
*	Параметры:
*		ths -  текущий элемент
**************************************************/
function hideElement($ths)
{

	$ths.style.display="none";

}