var AnimationSpeed = 1;
var MovingProcess = false;
/*
function include(filename) {
	var head = document.getElementsByTagName('head')[0];
	script = document.createElement('script');
	script.src = filename;
	script.type = 'text/javascript';
	head.appendChild(script)
}
*/

// Функция получения слоя по его идентификатору
function getLayer(layerID){
 //DOM1
  if(document.getElementById) return document.getElementById(layerID)
 //MSIE4
  if(document.all) return document.all[layerID]
 //Netscape 4
  if(document.layers) return document.layers[layerID]
 //неподдерживаемый браузер
  return null
}

function incObjectHeight(id){
	obj = getLayer(id);
	obj.style.height = Number(obj.clientHeight) + 20 + "px";
//	alert (obj.id + " - " + obj.clientHeight + " - " + obj.scrollHeight);
	if (obj.clientHeight < obj.scrollHeight) setTimeout ("incObjectHeight('"+obj.id+"')",AnimationSpeed);
	else obj.style.height = "auto";
	}

function decObjectHeight(id){
	obj = getLayer(id);
	var height = Number(obj.clientHeight) - 20;
//	alert (obj.id + " - " + obj.clientHeight);
	if (height > 0) {obj.style.height = height + "px"; setTimeout ("decObjectHeight('"+obj.id+"')",AnimationSpeed);}
	else {obj.style.height = "0px"; obj.style.display = "none";}
	}

// Функция для отображения или скрытия нескольких слоев, по их идентификаторам
function ShowOrHideElementByID() {
	for(var i=0;i<arguments.length;i++) {
		whichEl = getLayer(arguments[i]);
		if (whichEl ) {
			if ( whichEl.style.display != "block") {
				whichEl.style.height = "0px";
				whichEl.style.display = "block";
//				alert (whichEl.scrollHeight);
				if (whichEl.clientHeight < whichEl.scrollHeight)  setTimeout ("incObjectHeight('"+whichEl.id+"')",AnimationSpeed);
				else whichEl.style.height = "auto";
				}
			else {
				whichEl.style.height = whichEl.scrollHeight+"px";
//				alert (whichEl.id + " - " + whichEl.clientHeight);
				if (whichEl.clientHeight > 0)  setTimeout ("decObjectHeight('"+whichEl.id+"')",AnimationSpeed);
				else whichEl.style.display = "none";
				}
			}
    	}
	}

//Функция для изменения картинок в заголовках раздлов
function changeHeaderImage (imageID,imageSRC1,imageSRC2) {
	whichEl = getLayer(imageID);
	if (whichEl.src.search(imageSRC1) != -1) whichEl.src = whichEl.src.replace(imageSRC1,imageSRC2);
	else whichEl.src = whichEl.src.replace(imageSRC2,imageSRC1);
	}

//Функции управления подвалами
function showFooter() {
	whichEl = getLayer('footer');
	if (whichEl.style.display != "block") whichEl.style.display = "block" //ShowOrHideElementByID('footer');
	}
function showFooterR2() {
	whichEl = getLayer('r2_footer');
	if (whichEl.style.display != "block") whichEl.style.display = "block" //ShowOrHideElementByID('footer');
	else whichEl.style.display = "none";
	}

//Функция отображения слогана
function showSlogan() {
	whichEl = getLayer('slogan');
	if (whichEl.style.display != "block") whichEl.style.display = "block" //ShowOrHideElementByID('footer');
	else whichEl.style.display = "none";
	whichEl.style.top = '450px';
	contactsScroll();
	}

//Функция создания объекта для запросов к серверу
function getXmlHttp() {
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
      xmlhttp = false;
    }
  }
 
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}

//Функция получение данных с сервера
function getSomeData(xmlFileName,idActiveItem,idContainerMenu,idContainerData,idGallery) {

    var xmlHttp;
	xmlHttp = getXmlHttp();
			/*

			if(oXml.readyState!=4) return; // запрос не выполнен 
			
			  switch(oXml.status){
				case 0: case 200:  // запрос выполнен 
				  break;
				case 408: case 504: // запрос превысил время ожидания 
				  // код 
				  break;
				default: // ошибка запроса 
				  // код
				  return; // возможно, вы захотите выйти 
				  break;
			  }

				*/

	xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
            var xmlDoc = xmlHttp.responseXML.documentElement;
            var dataArray = xmlDoc.getElementsByTagName("entry");
            objMenu = document.getElementById(idContainerMenu);
            objData = document.getElementById(idContainerData);
			objMenu.innerHTML = "";
			var subMenu = "";

	            for (var i = 0; i < dataArray.length; i++) {
				var idCurrentItem = xmlDoc.getElementsByTagName("id")[i].childNodes[0].nodeValue;

				//Проверка активного или пассивного меню
				if ( idCurrentItem == idActiveItem) {

					// Если пункт меню скрытый, то не отображаем его, на отображение данных это не влияет
					if (xmlDoc.getElementsByTagName("visible")[i].childNodes[0].nodeValue.toUpperCase() == 'YES') {
						//Отображение текстового пункта меню или картинки
						if (xmlDoc.getElementsByTagName("image")[i].childNodes[0].nodeValue.toUpperCase() == 'YES') {
							objMenu.innerHTML = objMenu.innerHTML	+ '<img src="' 
																	+ xmlDoc.getElementsByTagName("image_active")[i].childNodes[0].nodeValue 
																	+ '" title="' 
																	+ xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue
																	+'" atl="'
																	+ xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue
																	+ '"><br>';
							}
						else objMenu.innerHTML = objMenu.innerHTML + xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue + '<br>';

						//Формирование подменю, если это необходимо
						var submenuName ="";
						var subMenuArray = xmlDoc.getElementsByTagName("submenu")[i].getElementsByTagName("link");
						for (var j = 0; j < subMenuArray.length; j++) {
							//Ссылка или наименование подраздела
							if (xmlDoc.getElementsByTagName("submenu_active")[j].childNodes[0].nodeValue == 1)
								submenuName = '<strong>' + xmlDoc.getElementsByTagName("submenu_name")[j].childNodes[0].nodeValue + '</strong>';
							else submenuName = xmlDoc.getElementsByTagName("submenu_name")[j].childNodes[0].nodeValue;
							//Разделитель
							if (subMenu != "") subMenu = subMenu +" | ";
							//Накопление раздело в подменю
							subMenu = subMenu + '<a href="#" onclick="getSomeData(\''
										+ xmlFileName + '\','
										+ idCurrentItem +',\''
										+ idContainerMenu + '\',\'' 
										+ idContainerData + '\','
										+ xmlDoc.getElementsByTagName("submenu_gallery")[j].childNodes[0].nodeValue + '); return false;">'
										+ submenuName
										+ '</a>';
							}
						//if (subMenu != "") objMenu.innerHTML = objMenu.innerHTML + '<div id="submenu">' + subMenu + '</div>';
						}
					//Отображение данных. Данные разбиты на блоки, поскольку в FireFox существует ограничение на размер данных
					//objData.innerHTML = xmlDoc.getElementsByTagName("data")[i].childNodes[0].nodeValue;
					var dataPart = "";
					var dataPartArray = xmlDoc.getElementsByTagName("data")[i].getElementsByTagName("data_part");
					for (var j = 0; j < dataPartArray.length; j++) {
						dataPart = dataPart + xmlDoc.getElementsByTagName("data")[i].getElementsByTagName("data_part")[j].childNodes[0].nodeValue;
						}
					objData.innerHTML = dataPart;
					}
				else {
					// Если пункт меню скрытый, то не отображаем его, на отображение данных это не влияет
					if (xmlDoc.getElementsByTagName("visible")[i].childNodes[0].nodeValue.toUpperCase() == 'YES') {
						//Отображение текстового пункта меню или картинки
						if (xmlDoc.getElementsByTagName("image")[i].childNodes[0].nodeValue.toUpperCase() == 'YES') {
							objMenu.innerHTML = objMenu.innerHTML + '<a href="#" onclick="getSomeData(\''
										+ xmlFileName + '\','
										+ idCurrentItem +',\''
										+ idContainerMenu + '\',\'' 
										+ idContainerData + '\'); return false;"><img src="' 
										+ xmlDoc.getElementsByTagName("image_passive")[i].childNodes[0].nodeValue 
										+ '" title="' 
										+  xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue
										+'" atl="'
										+ xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue
										+ '"></a><br>';
							}
						else objMenu.innerHTML = objMenu.innerHTML + '<a href="#" onclick="getSomeData(\''
										+ xmlFileName + '\','
										+ idCurrentItem +',\''
										+ idContainerMenu + '\',\'' 
										+ idContainerData + '\',-1); return false;">' 
										+ xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue + '</a><br>';
						}
					}
            	}
			if (subMenu != "") objMenu.innerHTML = objMenu.innerHTML + '<div id="submenu">' + subMenu + '</div>';
			}
    	}
 
	var currentRequest = 'data/read_data.php' + '?xml=' + xmlFileName + "&menu=" + idActiveItem;
	if (idGallery) currentRequest += '&gallery=' + idGallery;
//	alert (currentRequest);
	xmlHttp.open('GET', currentRequest, true);



	objData = document.getElementById(idContainerData);
	objData.innerHTML = '<img src="images/loading.gif" style="border:none">';
//	xmlHttp.open('GET',xmlFileName, true);
    xmlHttp.send(null);
}

//Перемещение контактов, в зависимости от положения скрола
function moveObjectLeft(id){
	obj = getLayer(id);
	if (obj.offsetLeft < 1690) {
		obj.style.left = Number(obj.offsetLeft) + 30 + "px";
		setTimeout ("moveObjectLeft('"+obj.id+"')",AnimationSpeed);
		}
	else MovingProcess = false;
	}

function moveObjectRight(id){
	obj = getLayer(id);
	if (obj.offsetLeft > 820) {
		obj.style.left = Number(obj.offsetLeft) - 30 + "px";
		setTimeout ("moveObjectRight('"+obj.id+"')",AnimationSpeed);
		}
	else MovingProcess = false;
	}

function truebody() {
	return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
	}


function contactsScroll(){

	if (window.opera) {scrollPageY = pageYOffset; scrollPageX = pageXOffset; }
	else {scrollPageY =truebody().scrollTop; scrollPageX =truebody().scrollLeft; } 
	
	if (!MovingProcess) {
		if (scrollPageX > 500) {
			whichEl = getLayer('contacts');
			if (whichEl.offsetLeft < 1690)  {MovingProcess = true; setTimeout ("moveObjectLeft('"+whichEl.id+"')",AnimationSpeed); }
			}
		else {
			whichEl = getLayer('contacts');
			if (whichEl.offsetLeft > 820)  {MovingProcess = true; setTimeout ("moveObjectRight('"+whichEl.id+"')",AnimationSpeed); }
			}
		}

	whichEl = getLayer('slogan');
	if ((truebody().clientHeight + scrollPageY) > (whichEl.clientHeight + 450)) {
		whichEl.style.top= truebody().clientHeight + scrollPageY - whichEl.clientHeight - 20  + "px";//truebody().scrollTop + 250 + "px";
		}
}


