/*Автозапуск*/
if (window.addEventListener)
	addEventListener('load', Init, false);
else if (window.attachEvent)
	attachEvent('onload', Init);



/*now = new Date; 
dayName = new Array ("Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"); 
monName = new Array ("01","02","03","04","05","06","07","08","09","10","11","12"); 
currentDay = dayName[now.getDay()];
month = monName[now.getMonth()]; 
day = now.getDate(); 
year = now.getYear(); 
if (document.layers) 
{
	year +=1900;
}
postDateAddOn= ".";
*/

/*Начальная инициализация. Выполняется после того, как страница полностью загружена*/
function Init() {
	quotes();
}

/*function initArray()
{
	this.length = initArray.arguments.length
	for (var i=0;i<this.length;i++)
	  this[i+1] = initArray.arguments[i]
} 

function writeLastMod()
{
	var MOYArray = new initArray(".01", ".02", ".03", ".04", ".05", ".06", ".07", ".08",".09", ".10", ".11", ".12");
	var LastModDate = new Date(document.lastModified);
	document.write("<span style='font-family: Arial,Verdana,Sans-Serif; font-weight: 500; font-size: 11px; color:#000066;'>");
	document.write(" Последнее обновление: ");
	document.write(LastModDate.getDate());
	document.write(MOYArray[(LastModDate.getMonth()+1)]);
	document.write(".");
	document.write(LastModDate.getYear());
	document.write("." + "&nbsp;");
}*/

function newImage(path) 
{ 
	var image = new Image(); 
	image.src = path; 
	return image; 
};

function popimage(imagesrc,winwidth,winheight)
{
	var img1 = new Image(); 
	popwin=window.open("","",'width='+100+',height='+100+',')
	img1.onload = function(){showImage(img1, imagesrc, popwin);}
	img1.src = imagesrc; 
};

function showImage(img1, imagesrc, popwin)
{
	var ix= img1.width+40;
	var iy= img1.height+80;
	var look='width='+ix+',height='+iy+','
	popwin.resizeTo(ix, iy);
	popwin.document.open()
	popwin.document.write('<body><img src="'+imagesrc+'"></body>')
	popwin.document.close()
};

/*Скрипт конвертирует скобки и создает висячую пунктуацию внутри блоков P*/
function quotes()
{
	var ptags = document.getElementsByTagName("p");
	
	for (var x = 0; x < ptags.length; x++) {
		/*Заменяем левые кавычки*/
		//ptags[x].innerHTML = ptags[x].innerHTML.replace(/^"(?=\S)|"(?=[^\s\.,><])/gim, "«");
		ptags[x].innerHTML = ptags[x].innerHTML.replace(/\s«/gim, "<span class='ensp'> </span><span class='laquo'>&laquo;</span>");
		ptags[x].innerHTML = ptags[x].innerHTML.replace(/^«/gim, "<span class='laquo'>&laquo;</span>");
		/*Заменяем правые кавычки*/
		//ptags[x].innerHTML = ptags[x].innerHTML.replace(/"(?=\s|$|,|\.)/gi, "&raquo;");
		/*левые скобки*/
		ptags[x].innerHTML = ptags[x].innerHTML.replace(/\s\(/gim, "<span class='ensp'> </span><span class='labr'>(</span>");

	}
}

/*скрипты, касающиеся левого меню*/
var menuData = 
	["root", "", [
		["Главная", "index.html"],
		["Новости", "news.html", [
			["Архив новостей", "newsa.html"]
		]],
		["Центры ОВД", "filial.html"],
		["Доска почета", "doska.html"],
		["Профориентация", "prof.html" , [
			["Учебные заведения", "prof1.html" , [
				["МГТУ ГА", "mgtuga.html"],
				["СПб ГУ ГА", "spbguga.html"],
				["УВАУ ГА", "uwauga.html"],
				["КАТК ГА", "krasnoyar.html"],
				["СПб АТУ ГА", "spbatuga.html"],
				["РАТК ГА", "ratkga.html"],
			]],				
			["Локальные акты", "prof2.html"],
			["Консультации", "prof3.html"],
			["Языковая подготовка", "lang.html", [
				["Формат тестов", "lang1.html"],
				["Примеры", "lang2.html"],
				["Уровень подготовки", "lang3.html"]
			]],
		]],
		["Закупки", "tender.html", [
			["Текущие", "tender1.html"],
			["Завершенные", "tender2.html"],
		]],
		["Услуги", "tarif.html"],
		["Документы", "docs.html"],
		["Контакты", "contacts.html"],
		["Ссылки", "links.html"]
	]];


/*создает меню, рекурсивная функция. Рендерит (генерирует html) переданый элемент меню. Не рендерится элемент с названием root
	element - текущий элемент
	element[0] должен содержать название пункта меню
	element[1] должен содержать адрес ссылки для пункта меню
	element[3] может сожержать вложенные элементы, а может и отсутствовать*/
var Menu = function(element) {
	var Children = [];   //Список дочерних элементов

	var Style = "MenuItem";
	//текущий элемент выбран, если он открыт, либо если в его детях есть открытый элемент
	// такми образом выбранными становятся все родительские элементы открытого элемента
	var isSelected = false;

	//определяем, что элемент открыт. т.е. адрес страницы соответствует элементу
	if (document.URL.indexOf(element[1])>=0) {
		Style += " SelectedItem";
		isSelected = true;
	}
	
	
	var Value = "";
	if (element[2] && element[2].length && element[2].length > 0) {
		for (var i in element[2]) {
			//Вот здесь рекурсивное заполнение
			Children[Children.length] = Menu(element[2][i]);
			Value += Children[Children.length-1].Value;
			//Становится истиной после достижения открытого элемента на следующем уровне
			// таким образом текущий элемент становится выбранным
			isSelected = Children[Children.length-1].isSelected || isSelected;
		}
		Style += " HasChild";
	}
	
	if (Style.indexOf("HasChild")>=0 && isSelected) Style += " Folded";
	//Создаем HTML для корневого элемента
	if (element[0] == "root") Value = "<div class='MenuLevel'>" + Value + "</div></div>"
	//и для всех остальных элементов
	else {
		var Element = "<div class='" + Style + "'><a class='"+ Style +"' href='" + element[1] + "'>" +  element[0] + "</a>" + "</div>";
		//здесь рендерится текущий элемент и, если там что-то выбрано, рендерится и уровень ниже
		if (isSelected) Value = Element + "<div class='MenuLevel'>" + Value + "</div>";
		//алгоритму не известно в этот момент, выбран ли какой то элемент на текущем уровне
		// поэтому нужно генериповать свой код всегда, а уже наверху рекурсии, когда весь уровень будет собран,
		// принимается решение, рендерить ли его
		else Value = Element;
	}

	return {
		isSelected : isSelected,
		Value: Value,
		Children: Children
	};
}
	

function WriteMenu()
{
  document.write(Menu(menuData).Value);
} 
