acl = 2.5;
timePause = 25;
aSubMenu 		= null;
openState   		= false;
closeState   		= false;
mOverMenu 	= null;
mOverSubMenu	= null;

stateFlicker = 0;


//
//  Меню
//

// Мышь над пунктом меню 2
function overMenu(nid)  {	mOverMenu = nid;	}
// Мышь покидает пункт меню2
function outMenu()  	{	mOverMenu = null; 	}
// Мышь над пунктом меню 2
function overSubMenu(nid) 	{  mOverSubMenu = nid;	}
// Мышь покидает пункт меню2
function outSubMenu()  {	mOverSubMenu = null;	}
function canOpen() 
{
	if(aSubMenu != null || openState)				
		return false;	
	
	return true;						
}
function canClose()
{
	if (mOverMenu != null && aSubMenu == mOverMenu  )
		return false;
	if (mOverSubMenu != null )	
		return false;

	return true;						
}
// Открыть меню
function openSubMenu(nid, maxHeight)
{
	if(typeof openSubMenuTime != "undefined" && openSubMenuTime != null) 
		clearTimeout(openSubMenuTime);
	// Ждем, когда  закроется активное меню
	if (!canOpen())
	{ 
		openSubMenuTime = setTimeout("openSubMenu("+nid+", "+maxHeight+")", 500);
		return;
	}
	// Если фокус мішки ушел 
	if (mOverMenu != nid)
		return;
	var divSubMenu  = document.getElementById("SubMenu_" + nid);
	if(divSubMenu) 
	{
		openState = true;
		incHSubMenuTime = setTimeout("incHSubMenu("+ nid +", "+ maxHeight + ")"   ,  timePause) ;
	}	
}
function closeSubMenu(nid)
{
	// Если откріто меню над которім мішь - не давать закрівать
	if (!canClose()) 
	{
		closeSubMenuTime = setTimeout("closeSubMenu("+nid+")", 500);
		return;
	}	
	var divSubMenu  = document.getElementById("SubMenu_" + nid);
	if  (divSubMenu)
	{
		closeState = true;
		decHSubMenuTime = setTimeout("decHSubMenu("+ nid + ")"   ,  timePause) ;
	}	
}
// Разворачивание меню						
function incHSubMenu(nid, maxHeight)
{
	var divSubMenu  = document.getElementById("SubMenu_" + nid);
	var curHeight = Number(divSubMenu.style.height.substring(0,divSubMenu.style.height.length-2));
	curHeight += acl;
	if ( curHeight >  maxHeight)
	{
		divSubMenu.style.height = maxHeight + "px";
		openState = false;
		aSubMenu = nid;
		// Начинанаем закрівать 
		closeSubMenuTime = setTimeout("closeSubMenu("+ nid + ")"   ,  1000	) ;
	}
	else
	{
		divSubMenu.style.height = curHeight + "px";
		divSubMenu.style.visibility = 'visible';
		incHSubMenuTime = setTimeout("incHSubMenu("+ nid +", "+ maxHeight + ")"   ,  timePause) ;
	}
}
// Сворачивается меню
function decHSubMenu(nid)
{
	var divSubMenu  = document.getElementById("SubMenu_" + nid);
	var curHeight = Number(divSubMenu.style.height.substring(0,divSubMenu.style.height.length-2));
	curHeight -= acl;
	if ( curHeight  <  acl)
	{
		divSubMenu.style.height = "1px";
		closeState = false;
		aSubMenu = null;
	}
	else
	{
		divSubMenu.style.height = curHeight + "px";
		decHSubMenuTime = setTimeout("decHSubMenu("+ nid  + ")"   ,  timePause) ;
	}
	divSubMenu.style.visibility = 'hidden';
}

//
//
//

// Вернуть координаты элемента
function getElementPosition(elemID)
{
        var offsetTrail =  document.getElementById(elemID);
        var offsetLeft = 0;
        var offsetTop = 0;
        while (offsetTrail)
        {
                offsetLeft +=  offsetTrail.offsetLeft;
                offsetTop +=  offsetTrail.offsetTop;
                offsetTrail = offsetTrail.offsetParent;
        }
        if (navigator.userAgent.indexOf("Mac")  != -1 && typeof document.body.leftMargin != "undefined" )
        {
                offsetLeft +=  document.body.leftMargin;
                offsetTop +=  document.body.topMargin;
        }
        return {left:offsetLeft, top:offsetTop}
}

// коррекция времени - ведущий ноль ставим 
function set2Number(value)
{
	var valueS = value.toString(); 
	if(valueS.length == 1)
  		return "0" + valueS;
	else	
  		return valueS;
}

// Получить дату в формате dd.mm.yyyy
function dateToString(d)
{
	return set2Number(d.getDate()) + "." + set2Number(d.getMonth() + 1) + "." + set2Number(d.getFullYear());	
}

// Время преобразовать в формат hh:mm:ss
function timeToString(d)
{
	return set2Number(d.getHours()) + ":" + set2Number(d.getMinutes()) + ":" + set2Number(d.getSeconds());	
}


// устананвливаем дату и время в левой части логотипа
function setLogoToday()
{
	var d = getCurDate();	
	var date = dateToString(d);
	// Возможно отказаться от innerHTML
	document.getElementById('date').innerHTML = date; 
}

//
// Версия броузера
//

function  getIEVersionNumber()
{
	var ua = navigator.userAgent;
	var MSIEOffset = ua.indexOf("MSIE ");
	if (MSIEOffset == -1)
	{
		return 0;
	}
	else
	{
		return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)))	;
	}
}
function isIE55min()
{
	var vIE = getIEVersionNumber();
	if (vIE > 0 && vIE >= 5.5)  
		return true;
	else
		return false;	
}

// 
// Установить прозрачность для элемента, значение в процентах 0..100
//

function setOpacity(elem, value)
{
	var elemID = document.getElementById(elem);
	if(elemID) 	{
	   (value > 100) ? value = 100 : (value < 0) ? value = 0 : false;		
	   if(isIE55min()) 	   {
	   	 elemID.filters.item("DXImageTransform.Microsoft.Alpha").opacity = value; 
	   }
	   else	   {
		 elemID.style.opacity = value / 100;;
	   }
	}
}

// 
// Установить прозрачность для элемента, значение в процентах 0..100
//

function getOpacity(elem)
{
	var opacity = -1;
	var elemID = document.getElementById(elem);

	if(elemID)	{
	   	if(isIE55min())	{
		   opacity = elemID.filters.item("DXImageTransform.Microsoft.Alpha").opacity 
		}
	   	else { 
			opacity = elemID.style.opacity*100; 
		}
	}
	
	return opacity;
}


//
// Изменить картинку
//
function changePerson(elem, elemURL, elemURLSign)
{
	if ($personsDay.length == 0) {
		return;
	}
	$personIndex++;
	if( $personIndex >= $personsDay.length ) $personIndex = 0;
	var elemID = document.getElementById(elem);
	if (elemID)
		elemID.src = $personsDay[$personIndex].img;	

	var elemURLID = document.getElementById(elemURL);
	if (elemURLID)
	{
		elemURLID.href = $personsDay[$personIndex].url;	
		elemURLID.title = $personsDay[$personIndex].fio;			
		elemURLID.alt = $personsDay[$personIndex].fio;			
	}

	var elemURLID = document.getElementById(elemURLSign);
	if (elemURLID)
	{
		elemURLID.href = $personsDay[$personIndex].url;	
		elemURLID.title = $personsDay[$personIndex].fio;			
	}
}

//
// Эффект затухания
//
function personsFlicker(elem)
{
	var elemID = document.getElementById(elem);
	var opacity = getOpacity(elem);
	if(opacity == 0) 
	{	
		stateFlicker = 0; 
	}
	else if (opacity == 98) 
	{
		changePerson("k5img", "urlMenuImgPersons", "urlSignPersons"); 
		stateFlicker = 1
	};
	
	
	(stateFlicker) ? opacity -= 2 : opacity += 2; 
	setOpacity(elem,opacity);
	setTimeout("personsFlicker('"+ elem+ "')", 75);
}

//
// Операции с текущей датой  - позволяют двигаться по архиву
//

function getCurDate()
{
	return $curDate;	
}

//
// AJAX-технология
//

// Смена тєга
function changeTag(tag)
{
	$tag = tag;
	routerContent();
}


// Формирование контента для меню по умолчанию
function defaultMenu(dateStr)
{
  // arg1 - тэг
  // arg2 - язык
  // arg3 - дата
  // arg4 - количество строк

  // Сегодня - список новостей. Широкоформатный.
  var query = "./fetch.php?query=getList" + "&arg1=NEWS" + "&arg2=" + $lang + "&arg3=" + dateStr + "&arg4=" + 3;

  // Загружаем документ
  var loadListNews = new net.ContentLoader(query, wideBlocks, "news");
  // История - список историй. Широкоформатный.

  query = "./fetch.php?query=getList" + "&arg1=HISTORY" + "&arg2=" + $lang + "&arg3=" + dateStr + "&arg4=" + 2;
  // Загружаем документ
  var loadListHistory = new net.ContentLoader(query, shortBlocks, "history");

  // Афоризмы. 4-количество
  query = "./fetch.php?query=getAforism&arg1=4";
  // Загружаем документ
  var loadListAforism = new net.ContentLoader(query, writeAforismXML, "aforism");
}

// фото личности дня
function personDay(dateStr)
{
 // arg1 - дата				
  var query   = "./fetch.php?query=getPersonDay" + "&arg1=" + dateStr;
  var pDayLoader = new net.ContentLoader(query, personDayXML);		
	
}

// родились
function born(dateStr)
{
  // arg1 - дата				
  var query   = "./fetch.php?query=getBorn" + "&arg1=" + dateStr;
  var bornLoader = new net.ContentLoader(query, writePersonsXML, "content");	
}				

// ушли
function death(dateStr)
{
  // arg1 - дата				
  var query   = "./fetch.php?query=getDeath" + "&arg1=" + dateStr;
  var bornLoader = new net.ContentLoader(query, writePersonsXML, "content");	
}

// круглые даты				
function bigdate(dateStr)
{
  // arg1 - дата				
  var query   = "./fetch.php?query=getBigDate" + "&arg1=" + dateStr;
  var bigDateLoader = new net.ContentLoader(query, writePersonsXML, "content");	
}

// Праздники
function prazdnik(dateStr)
{
  // arg1 - тэг
  // arg2 - язык
  // arg3 - дата
  var query = "./fetch.php?query=getPrazdnik" + "&arg1=PRAZDNIK" + "&arg2=" + $lang + "&arg3=" + dateStr;
  var loadPrazdnik = new net.ContentLoader(query, writeContent, "content");				
}				


// Формирование событий
function events(dateStr)
{
  // arg1 - тэг

  // arg3 - дата
  var query = "./fetch.php?query=getEvents" + "&arg1=GOROSKOP" + "&arg2=" + $lang + "&arg3=" + dateStr;
  var loadEvents = new net.ContentLoader(query, writeContent, "content");				
}				

// Формирование гороскопа
function zodiak(z,dateStr)
{
  var zd = z.getSignData();
  // arg1 - дата старта действия знака
  // arg2 - дата конца действия знака
  var query = "./fetch.php?query=getZodiak" + "&arg1=" + dateStr  + "&arg2=" + dateToString(zd.dateS) + "&arg3=" + dateToString(zd.dateE);
  var zodiakLoader = new net.ContentLoader(query, writePersonsXML, "content");	
}

// Установим знак зодиака 
function setZodiakPic(zd)
{
	var indexSign 	= zd.getSignIndex();
	var signImg 	= document.getElementById("k1img");
	if (signImg) {
			signImg.src = "/userfiles/Image/common/zodiak/" + indexSign + ".jpg"
	}
	
}

// Формирование гороскопа
function goroskop(dateStr)
{
  // arg1 - тэг
  // arg2 - язык
  // arg3 - дата
  var query = "./fetch.php?query=getGoroskop" + "&arg1=GOROSKOP" + "&arg2=" + $lang + "&arg3=" + dateStr;
  var loadGoroskop = new net.ContentLoader(query, writeContent, "content");				
}


// Формирование календаря
function imenini(dateStr)
{
  // arg1 - тэг
  // arg2 - язык
  // arg3 - дата
  var query = "./fetch.php?query=getImenini" + "&arg1=IMENINI" + "&arg2=" + $lang + "&arg3=" + dateStr;
  var loadImenini = new net.ContentLoader(query, writeContent, "content");				
}

// Формирование календаря
function calendar(dateStr)
{
  // arg1 - тэг
  // arg2 - язык
  // arg3 - дата
  var query = "./fetch.php?query=getCalendar" + "&arg1=CALENDAR" + "&arg2=" + $lang + "&arg3=" + dateStr;
  var loadCalendar = new net.ContentLoader(query, writeContent, "content");				
}

// Очистка контента - div + атрибут 
function cleanContent()
{
	var contentDIVs = document.getElementsByTagName("div");
	// Контент заключен в блоки div
	for(var i=contentDIVs.length; i >= 0; i--)	{
		var el = contentDIVs[i];
		if (el && el.getAttribute("content")) {
			// удаляем только те теги, которіе содержат атрибут контента
			el.parentNode.removeChild(el);
		}
	}
}

// Получим данные календаря, именин, событий и т.д.
function writeContent()
{
	var xText = this.req.responseText;
	if (xText)	{
		var elContent = document.getElementById(this.parentParam);

		var div = document.createElement("div");
		div.setAttribute("content", true);
		div.innerHTML = xText;
		elContent.appendChild(div);				
	}
}

// Выводим данные - функция универсальная, для крупніх дат, родились, ушли
function writePersonsXML()
{
	//alert(this.req.responseText);
	var xmlDoc = this.req.responseXML;

	// получим все строки
	if (xmlDoc) {
		var elToday = xmlDoc.getElementsByTagName("today")[0];
		
		var elContent = document.getElementById("content");
		
		for (var i=0; i < elToday.childNodes.length; i++)	{
			var elPerson = elToday.childNodes[i];
			if (elPerson && elPerson.nodeName == "person")	{
				// Сохраним все теги в обєкте		
				var nodes = new Object();				
				for (var n=0; n < elPerson.childNodes.length; n++)
				{
					if (elPerson.childNodes[n].nodeType == 1) {
						(elPerson.childNodes[n].hasChildNodes())  ?	value = elPerson.childNodes[n].firstChild.data
																  : value = null;			
						nodes[elPerson.childNodes[n].nodeName] = value;
					}
				}
				// Идентификаторы
				var id 		= nodes.id;
				var fiocyr	= nodes.fiocyr;
				var fiolat	= nodes.fiolat;
				var imgid 	= nodes.imgid;
				// Дата рождения	
				var dayborn 	= nodes.dayborn;
				var monthborn 	= nodes.monthborn;
				var yearborn 	= nodes.yearborn;
				// Дата смерти
				var daydeath 	= nodes.daydeath;
				var monthdeath 	= nodes.monthdeath;
				var yeardeath 	= nodes.yeardeath;
				// Если не ноль, то признак родился (умер) + слоко лет прошло.
				var frmborn    = nodes.frmborn;							
				var frmdeath   = nodes.frmdeath;															
				// Описание
				var data = nodes.data;
				
				(imgid) ? imgsrc = "http://persons-info.com/userfiles/image/photo/" + imgid + ".gif" 
						: imgsrc = "http://persons-info.com/userfiles/image/photo/0.jpg";
				
				life = dayborn + "." + monthborn + "." + yearborn + "&nbsp;-&nbsp;" + daydeath + "." + monthdeath + "." + yeardeath;
				
				(frmborn != 0 && (frmborn % 5 == 0)) ?  message = frmborn +" лет со дня рождения" 
													 : 	(frmdeath != 0 && (frmdeath % 5 == 0)) ? message = frmdeath +" лет со дня смерти" 
													 										   :  message = null; 
												
				var htmlPersons = 	"<table id='persons' class='person' border=o cellspacing=0 width=100%><tr>" +
									"<td class='personFoto'>";
				if (message) htmlPersons += ("<span class='personMessage'>" + message  + "</span><br>");
				
				htmlPersons +=	"<a class='personLink' href='http://persons-info.com/index.php?pid="+ id + "'>" +
								"<img width=60 height=60 src='" + imgsrc +"' border=0><br>"+ 
								fiocyr + "<br><span class='personLife'>" + life + "</span></td>" +
								"<td class='personText'>" + data + 
								"<a class='personLinkMarker' href='http://persons-info.com/index.php?pid="+ id +"' >&nbsp;дальше</a>" +
								"</td>" +
								"</tr></table>";
				
				var div = document.createElement("div");
				div.setAttribute("content", true);
				div.className = "person";
				div.innerHTML = htmlPersons;
				elContent.appendChild(div);	
			}
		}
	}	
}

// Формирование блоков афоризмов
function writeAforismXML()
{
	//alert(this.req.responseText);
	var xmlDoc = this.req.responseXML;

	// получим все строки
	if (xmlDoc) {
		var elToday = xmlDoc.getElementsByTagName("today")[0];
		
		// Вставим сплитер в контент
		var elContent = document.getElementById(this.parentParam);
		
		// Включим сплиттер
		if (elToday.childNodes.length > 0)
		{
			var elSplitter = document.getElementById(this.parentParam + "Split");
			if(elSplitter)
				elSplitter.style.display = "block";
		}
		var elContentL = document.getElementById(this.parentParam + "L");
		var elContentR = document.getElementById(this.parentParam + "R");

		// Сторона, куда віводить новости: 0-лево, 1-право
		var side = true;		
		
		for (var i=0; i < elToday.childNodes.length; i++)	{
			var elAforism = elToday.childNodes[i];
			if (elAforism && elAforism.nodeName == "aforism")	{
				// Сохраним все данніе личности в обїекте
				var nodes = new Object();				
				for (var n=0; n < elAforism.childNodes.length; n++)
				{
					if (elAforism.childNodes[n].nodeType == 1) {
						(elAforism.childNodes[n].hasChildNodes())  ? value = elAforism.childNodes[n].firstChild.data
																   : value = null;			
						nodes[elAforism.childNodes[n].nodeName] = value;
					}
				}
				// Идентификаторы
				var id 		= nodes.id;
				var fiocyr	= nodes.fiocyr;
				var personid = nodes.personid;
				// Текст
				var data = nodes.data;
				// Вставляем афоризм
				var div = document.createElement("div");
				if (div) {
					div.setAttribute("content", true);
					(side) ? elContentL.appendChild(div) : elContentR.appendChild(div);
					side = !side;
					div.className = "shortBlock"
					div.id = "block" + id;
					(personid) ? addquery = "?personid=" + personid : addquery = "/";
					
					// Вставляем подгтовленній єлемент блока	
					var innerHTML = "<a class='aforismBlock' title='Сайт афоризмов и историй: http://persons-aforism.ru' " +
									" target='_blank' href='http://persons-aforism.ru" + addquery  +  "' >" +  data + "</a>";
					if (fiocyr){
						innerHTML += 
						"<br><a class='aforismLinkMarker' target='_blank' title='Смотрите подробную информацию о личности: " + fiocyr +
						"'   href='http://persons-info.com/index.php?cmd=searchline&srch_tab=194&lang=ru&searchstr=" + 
						fiocyr + "&searchq=1'>" + fiocyr + "&nbsp;<span class='markerBlock'>справка</span>&nbsp;" +  "</a>";
					}
						
					div.innerHTML = innerHTML; 
				}	
			}	
		}
	}	
}

// Заполняем журнал личностями
function personDayXML()
{
	var xmlDoc = this.req.responseXML;

	// получим все строки
	if (xmlDoc) {
		var elToday = xmlDoc.getElementsByTagName("today")[0];

		for (var i=0; i < elToday.childNodes.length; i++)	{
			var elPerson = elToday.childNodes[i];
			
			if (elPerson && elPerson.nodeName == "person")	{
				// Сохраним все данніе личности в обїекте
				var nodes = new Object();				
				for (var n=0; n < elPerson.childNodes.length; n++)
				{
					if (elPerson.childNodes[n].nodeType == 1) {
						(elPerson.childNodes[n].hasChildNodes())  ? value = elPerson.childNodes[n].firstChild.data
																   : value = null;			
						nodes[elPerson.childNodes[n].nodeName] = value;
					}
				}
				// Идентификаторы
				var id 		= nodes.id;
				var fiocyr	= nodes.fiocyr;
				var fiolat	= nodes.fiolat;
				var imgid 	= nodes.imgid;
				
				(imgid) ? imgsrc = "http://persons-info.com/userfiles/image/photo/" + imgid + ".gif" 
						: imgsrc = "http://persons-info.com/userfiles/image/photo/0.jpg";
			

				var $ind = $personsDay.length;
				$personsDay[$ind] = new Object();
				$personsDay[$ind].img = imgsrc;
				$personsDay[$ind].url = "http://persons-info.com/index.php?pid=" + id;
				$personsDay[$ind].fio = fiocyr;
			
			}
		}
	}	
}

// Вывод блока во всю ширину 
function wideBlocks()
{
	//alert(this.req.responseText);
	var xmlDoc = this.req.responseXML;
	// получим все строки
	if (xmlDoc)
		var elDocRoot = xmlDoc.getElementsByTagName("getlist")[0];
	// выполним перебор строк
	if (elDocRoot){
		// this.parentParam - блок куда нужно вставить
		var elContent = document.getElementById(this.parentParam);
		
		// Включим сплиттер
		if (elDocRoot.childNodes.length > 0)
		{
			 var elSplitter =	document.getElementById(this.parentParam + "Split");
			 if (elSplitter) 
				elSplitter.style.display = "block";
		}
		for(var i=0; i < elDocRoot.childNodes.length; i++)	{
			var elRow = elDocRoot.childNodes[i];
			// нашли строку - шагаем по строке
			if (elRow.nodeName == "row") {
				var id, description, length;
				// находим нужные значения
				for(var j=0; j < elRow.childNodes.length; j++) {
					if (elRow.childNodes[j].nodeName == "id") {
						id = elRow.childNodes[j].firstChild.data;
					}
					if (elRow.childNodes[j].nodeName == "description") {
						description = elRow.childNodes[j].firstChild.data;
						// определим длину контента, если ноль - не нужно разворачивать
						var attrs = elRow.childNodes[j].attributes;
						length = attrs.getNamedItem("length").value;
					}
				}
				var div = document.createElement("div");
				div.setAttribute("content", true);
				div.className = "wideBlock"
				div.id = "block" + id;
				// Вставляем подгтовленній єлемент блока		 
				div.innerHTML = description;
				if(length > 1)
				 div.innerHTML += markerBlockOpen(id);
				elContent.appendChild(div);				 
			}	
		}
	}	
}



// Вывод блока в две колонки 
function shortBlocks()
{
	//alert(this.req.responseText);
	var xmlDoc = this.req.responseXML;
	// получим все строки
	if (xmlDoc)
		var elDocRoot = xmlDoc.getElementsByTagName("getlist")[0];
	// выполним перебор строк
	if (elDocRoot){
		// Вставим сплитер в контент
		var elContent = document.getElementById(this.parentParam);
		
		// Включим сплиттер
		if (elDocRoot.childNodes.length > 0)
		{
			var elSplitter = document.getElementById(this.parentParam + "Split");
			if(elSplitter)
				elSplitter.style.display = "block";
		}
		var elContentL = document.getElementById(this.parentParam + "L");
		var elContentR = document.getElementById(this.parentParam + "R");

		// Сторона, куда віводить новости: 0-лево, 1-право
		var side = true;
		
		for(var i=0; i < elDocRoot.childNodes.length; i++)	{
			var elRow = elDocRoot.childNodes[i];
			// нашли строку - шагаем по строке
			if (elRow.nodeName == "row") {
				var id, description, length;
				// находим нужные значения
				for(var j=0; j < elRow.childNodes.length; j++) {
					if (elRow.childNodes[j].nodeName == "id") {
						id = elRow.childNodes[j].firstChild.data;
					}
					if (elRow.childNodes[j].nodeName == "description") {
						description = elRow.childNodes[j].firstChild.data;
						// определим длину контента, если ноль - не нужно разворачивать
						var attrs = elRow.childNodes[j].attributes;
						length = attrs.getNamedItem("length").value;
					}
				}
				var div = document.createElement("div");
				div.setAttribute("content", true);
				if (div) {
					(side) ? elContentL.appendChild(div) : elContentR.appendChild(div);
					side = !side;
					div.className = "shortBlock"
					div.id = "block" + id;
					// Вставляем подгтовленній єлемент блока		 
					div.innerHTML = description;
					if (length > 5)
						div.innerHTML += markerBlockOpen(id);
						
				}	
			}	
		}
	}	
}

// Маркер для открітия блока
function markerBlockOpen(id)
{
	var marker = "<span class='markerBlock' " +	
				 "onMouseOver='this.style.cursor=\"pointer\"' onMouseOut='this.style.cursor=\"default\"' " +
				 "onClick='blockView(" + id + ");'>&nbsp;дальше&nbsp;</span>";					 
	return marker;			 
}
// Маркер для закрітия блока
function markerBlockClose(id)
{
	var marker = "<div class='markerBlock' " +	
				 "onMouseOver='this.style.cursor=\"pointer\"' onMouseOut='this.style.cursor=\"default\"' " +
				 "onClick='blockClose(" + id + ");'>назад</div>";					 
	return marker;			 
}
// Загрузим данніе для просмотра блока
function blockView(id)
{
	var elemId = document.getElementById("block" + id);
	if (elemId){
		elemId.style.borderBottom = "#CB2322 solid 1px";
		elemId.style.borderTop = "#CB2322 solid 1px";
		elemId.style.cursor = 'wait';
		// выполнение запроса в фоне
		var blockContent = new net.ContentLoader('fetch.php?query=openBlock&arg1='+ id + '&arg2=' + $lang, blockOpen, id);
	}
}

// Откроем блок для просмотра
function blockOpen()
{
	var id = this.parentParam;
	var elemId = document.getElementById("block" + id);
	if (elemId)
	{
	  $cacheBlocks[id] = elemId.innerHTML;
	  elemId.innerHTML = markerBlockClose(id) + this.req.responseText + "<div style='height: 10px;'>&nbsp;</div>" + markerBlockClose(id); 	
	  elemId.style.cursor = "default";
	}
}

// Закроем блок - краткий просмотр
function blockClose(id)
{
   var elemId = document.getElementById("block" +id);
   if (elemId)
   {
	  elemId.innerHTML = "";
	  elemId.style.borderBottom = "red solid 0px";
	  elemId.style.borderTop = "red solid 0px";	
	  elemId.style.heigth = "0px";
	  elemId.style.heigth = "auto";
	  elemId.innerHTML = $cacheBlocks[id];
		// Correaction active link - set passive 
	  elemId = document.getElementById('marker' + id);
	  if (elemId)
	  {
		  elemId.className = "markerBlock";
	  }
   }
}


//
// Знаки зодиака
//

function zodiakData(date)
{
    // Дата зодиака
	this.date = date;	
	
	// Описание знаков
	this.signs = [ 
		 
		 {name:"Водолей", 	dstart:"21", mstart:"01", dend:"20", mend:"02"},
		 {name:"Рыбы", 		dstart:"21", mstart:"02", dend:"20", mend:"03"},		 
		 {name:"Овен", 		dstart:"21", mstart:"03", dend:"20", mend:"04"},		  
		 {name:"Телец", 	dstart:"21", mstart:"04", dend:"20", mend:"05"},
		 {name:"Близнецы", 	dstart:"21", mstart:"05", dend:"21", mend:"06"},
		 {name:"Рак", 		dstart:"22", mstart:"06", dend:"22", mend:"07"},
		 {name:"Лев", 		dstart:"23", mstart:"07", dend:"23", mend:"08"},		 
		 {name:"Дева", 		dstart:"24", mstart:"08", dend:"23", mend:"09"},		  
		 {name:"Весы", 		dstart:"24", mstart:"09", dend:"23", mend:"10"},
		 {name:"Скорпион", 	dstart:"24", mstart:"10", dend:"22", mend:"11"},
		 {name:"Стрелец", 	dstart:"23", mstart:"11", dend:"21", mend:"12"},		 
		 {name:"Козерог", 	dstart:"22", mstart:"12", dend:"20", mend:"01"}];

	// Дата начала действия знака зодиака
	this.getDateStart = function(iSign)
	{
		var y = this.date.getFullYear(), m =  this.date.getMonth(), d = this.date.getDate() ;
		var startSign = new Date( ((iSign == 11 && m == 0 && d <= 20 ) ? y - 1 : y), this.signs[iSign].mstart - 1, this.signs[iSign].dstart);
		return startSign;
			
		
	}

	// Дата конца действия знака зодиака
	this.getDateEnd = function(iSign)
	{
		var y = this.date.getFullYear(), m =  this.date.getMonth(), d = this.date.getDate() ;		
		endSign = new Date( ((iSign == 11 && m == 11 && d >= 22 ) ? y + 1 : y), this.signs[iSign].mend - 1, this.signs[iSign].dend)
		return  endSign;
	}

	// Индекс знака для заданной даты
	this.getSignIndex = function()	{
		with(this) {
			for(var index=0; index<signs.length; index++) 	{
				if (date >= getDateStart(index) && date <=  getDateEnd(index)) {
					break;
				}
			}
		}

		return index;
	}

	// Получить данные по знаку
	this.getSignData= function()
	{
		var iSign = this.getSignIndex()	;
		var signData = new Object();
		signData.name = this.signs[iSign].name;
		signData.dateS = this.getDateStart(iSign);
		signData.dateE = this.getDateEnd(iSign);
		
		return signData;
	}
	
	// Получить имя знака
	this.getSignName = function() 	{
	
		with(this)		{
			return signs[getSignIndex(this.date)].name;
		}
	}
}

/*<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">*/

