/*
 * Основной файл javascript для www.emi-penza.ru / www.emi-penza.com
 * © ООО Пензенский завод «Электромехизмерение», www.emi-penza.ru / www.emi-penza.com
 */
//Проверка возможности использования flash компонентов
var flashEnabled = false;
if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) 
{
	for (i = 0; i < navigator.plugins.length; i++) 
	{
		if (navigator.plugins[i].name.indexOf("Flash") != -1) 
		{
			versionIndex = navigator.plugins[i].description.indexOf(".");
			var versionString = navigator.plugins[i].description.substring(versionIndex - 1, versionIndex);
			versionIndex = parseInt(versionString);
			if (versionIndex >= 9 || versionIndex < 5) 
				flashEnabled = true;
			break;
		}
	}
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE") >= 0 && navigator.userAgent.indexOf("Windows") >= 0) 
{
	document.write('<script language="VBScript"> \n');
	document.write('on error resume next \n');
	document.write('flashEnabled = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.9"))) \n');
	document.write('<' + '/' + 'script' + '> ');
};

// Инициализация
function init()
{
	// выход, если функция уже выполнялась
	if (arguments.callee.done) 
		return;
	// установка флага, чтобы функция не исполнялась дважды
	arguments.callee.done = true;
	
	// изменение id тела документа, чтобы изменились некоторые стили.
	document.body.id = "js";
	
	// подготовка меню
	if (typeof(thisBrowser) == 'undefined' || thisBrowser != "ie5") 
	{
		var menu = document.getElementById("menu");
		if (menu) 
		{
			list_items = menu.getElementsByTagName("li");
			for (i = 0; i < list_items.length; i++) 
			{
				li = list_items[i];
				uls = li.getElementsByTagName("ul");
				if (uls.length == 1) 
				{
					////добавление стрелочек к элементам меню
					span = document.createElement("span");
					span.innerHTML = "▼"
					a = li.getElementsByTagName("a")[0];
					a.appendChild(span);
					////устанавливаем ширину подменю не меньше ширины элемента меню
					uls[0].style.width = (li.offsetWidth - 1) + "px";
					//uls[0].getElementsByTagName("li")[0].style.width = (a.offsetWidth-30)+"px";
					////присваивание событий
					a.onmouseover = menu_expand_item;
					a.onmouseout = menu_collapse_item;
					a.onclick = submenu_closer;
					uls[0].onmouseover = menu_keep_item_expanded;
					uls[0].onmouseout = menu_collapse_item;
					
					//TODO: Добавить скрытие меню при нажатии на элемент (для исправления бага уже открытого меню при нажатии «назад»
					//for(i = 0; i<list_items.length; i++){
				
				}
			}
		}
	}
	
	// напечатать страницу...
	var print = document.getElementById("print");
	if (print) 
	{
		print.onclick = function()
		{
			window.print();
			_gaq.push(["_trackEvent", "pageEvent", "print", page]);
			return false;
		}
		print.style.display = 'block';
	}
	
	// блок «Поделиться ссылкой»
	var share = document.getElementById('share');
	var share_opener = document.getElementById('share_opener');
	var share_closer = document.getElementById('share_closer');
	if (share_opener && share && share_closer) 
	{
		share_opener.onclick = function()
		{
			share_opener.className = 'hidden';
			share.className = 'visible';
			var ta_first = null;
			for (ta_index in share_ta_array) 
			{
				ta = share_ta_array[ta_index];
				if (typeof(ta) == 'object') 
				{
					if (!ta_first) 
						ta_first = ta;
					ta.onclick();
					//fireEvent(ta,'click');
				}
			};
			if (ta_first) 
				ta_first.focus();
			
			_gaq.push(["_trackEvent", "pageEvent", "shareOpened", null]);
			return false;
		};
		
		share_ta_array = share.getElementsByTagName('textarea');
		share_ta_onclick = function()
		{
			this.select();
		}
		share_ta_oncopy = function()
		{
			_gaq.push(["_trackEvent", "pageEvent", "shareCopied", this.className]);
		}
		for (ta_index in share_ta_array) 
		{
			share_ta_array[ta_index].onclick = share_ta_onclick;
			share_ta_array[ta_index].oncopy = share_ta_oncopy;
		};
		
		share_closer.onclick = function(e, dontTrackEvent)
		{
			share_opener.className = '';
			share.className = '';
			if (!dontTrackEvent)
				_gaq.push(["_trackEvent", "pageEvent", "shareClosed", null]);
			return false;
		};
		share_closer.onclick(null, true);
		//fireEvent(share_closer,'click');
	}
	
	// Ссылка «изменения прайс-листа
	var rss_link_pricelist_changes = document.getElementById("rss_link_pricelist_changes");
	if (rss_link_pricelist_changes) 
	{
		rss_link_pricelist_changes.onclick = function()
		{
			_gaq.push(["_trackEvent", "pageEvent", "rss_link_pricelist_changes_clicked", page]);
			return true;
		}
	}
	
	//подготовка отдельных страниц
	if (typeof(page) !== 'undefined') 
	{
		if (page == "sitemap") 
			siteMapReady();
		else if (page == "contacts") 
			contactsReady();
		else if (page == "products_pricelist") 
			priceCatReady();
		else if (page == "products_pricelist_download") 
			downloadsReady();
	}
}

/*
 * ===================================
 * Работа с меню
 * ===================================
 */
var menu_expanded = true;
function menu_expand_item(e)
{
	menu_expanded = true;
	caller = null;
	if (navigator.userAgent.indexOf("irefox") > -1) 
	{
		caller = e.target;
	}
	else 
	{
		caller = window.event.srcElement;
	}
	
	if (caller.parentNode.tagName.toLowerCase() == "li") 
	{
		caller.parentNode.getElementsByTagName("ul")[0].className = "js";
	}
}

function menu_keep_item_expanded()
{
	menu_expanded = true;
}

function menu_collapse_item()
{
	menu_expanded = false;
	setTimeout(submenu_closer, 100);
	menu_expanded = false;
}

function submenu_closer()
{
	if (!menu_expanded && getElementsByClassName("js", document.getElementById("menu")).length) 
	{
		ul = getElementsByClassName("js", document.getElementById("menu"))[0].className = "";
	}
}

function printSWF(filename, w, h)
{
	document.write('<object data="' + filename + '" type="application/x-shockwave-flash" width="' + w + '" height="' + h + '"><param name="movie" value="' + filename + '" /><param name="quality" value="high" /></object>');
}


/*
 * ===================================
 * функция поиска элементов по имени класса
 * ===================================
 * name - имя класса
 * type - имя тэга - поиск только в определенных тэгах
 */
function getClass(name, type)
{
	var r = [];
	var re = new RegExp("(^| )" + name + "( |$)");
	
	var e = document.getElementsByTagName(type || "*");
	for (var i = 0, len = e.length; i < len; i++) 
		if (re.test(e[i].className)) 
			r.push(e[i]);
	
	return r;
}

function getElementsByClassName(classname, node)
{
	if (!node) 
		node = document.getElementsByTagName("body")[0];
	var a = [];
	var re = new RegExp('\\b' + classname + '\\b');
	var els = node.getElementsByTagName("*");
	for (var i = 0, j = els.length; i < j; i++) 
		if (re.test(els[i].className)) 
			a.push(els[i]);
	return a;
}

/*
 * ===================================
 * карта сайта
 * ===================================
 */
/*при загрузки DOM*/
function siteMapReady()
{
	/*делание «плюсиков» видимыми, прикрепление событий к ним*/
	var temp = getClass("smProductsShowGroup", "div");
	for (var key in temp) 
	{
		temp[key].className += " visible";
		temp2 = temp[key].getElementsByTagName("span");
		for (var key2 in temp2) 
		{
			temp2[key2].title = "Просмотр списка изделий этой категории (без перезагрузки страницы)";
			temp2[key2].onclick = smShowProductsList;
		}
	}
	/*добавление кнопочки «закрыть» всем спискам продукции*/
	var temp = document.getElementById("smProductsLists").getElementsByTagName("div");
	for (var key in temp) 
		temp[key].innerHTML = temp[key].innerHTML + '<span class="close" onclick="smHideProductsList()">×</span>';
	document.getElementById("smProductsLists").onclick = smHideProductsList;
}

/*функция показа всплывающего списка продукции*/
function smShowProductsList()
{
	container = document.getElementById("smProductsLists");
	container.className = "visible";
	//скрытие всех списокв
	temp = container.getElementsByTagName("div");
	for (var key in temp) 
		temp[key].className = "";
	//показывание и размещение текущено списка
	current = document.getElementById("smProduct" + this.className)
	current.className = "visible";
	current.style.left = (container.clientWidth - current.clientWidth) / 2 + "px";
	current.style.top = (container.clientHeight - current.clientHeight - 60) / 2 + "px";
	_gaq.push(["_trackEvent", "pageEvent", "sitemap_ProductListShown", this.className]);
}

/*функция закрытия всплывающего списка продукции*/
function smHideProductsList()
{
	document.getElementById("smProductsLists").className = "";
}

/*
 * ===================================
 * контактная информация
 * ===================================
 */
function contactsReady()
{
	initYandexMaps();
	
	// Кнопка «напечатать» внизу
	var contacts_prints_page_container = document.getElementById("contacts_prints_page");
	contacts_prints_page_container.style.display = 'block';
	var contacts_prints_page = null;
	if (contacts_prints_page_container)
		contacts_prints_page = contacts_prints_page_container.getElementsByTagName('a')[0];
	if (contacts_prints_page) 
	{
		contacts_prints_page.onclick = function()
		{
			window.print();
			_gaq.push(["_trackEvent", "pageEvent", "print", page]);
			return false;
		}
	}
}

/*
 * ===================================
 * скачать прайс-лист
 * ===================================
 */
/*при загрузки DOM*/
function downloadsReady()
{
	var downloadLinks = document.getElementById("download_types").getElementsByTagName("a");
	for (var i in downloadLinks) 
	{
		var downloadLink = downloadLinks[i];
		if (typeof downloadLink == 'object') 
			downloadLink.onclick = function()
			{
				_gaq.push(["_trackEvent", "pageEvent", "products_pricelist_download_FileDownloaded", this.getElementsByTagName("img")[0].getAttribute('alt')]);
				return true;
			};
	}
	document.getElementById("download_history_button").className = "visible";
	document.getElementById("download_history").className = "";
	document.getElementById("download_history_button").getElementsByTagName("span")[0].onclick = function()
	{
		document.getElementById("download_history_button").className = "";
		document.getElementById("download_history").className = "visible";
		_gaq.push(["_trackEvent", "pageEvent", "products_pricelist_download_HistoryShown", null]);
	}
}

/*
 * ===================================
 * прайс-лист/каталог
 * ===================================
 */
var regexp = /^#show(((\d*)[-])*(\d*))$/;
var show_arr;
var cat_arr = new Array();
var i;
var list_of_td_hrefs = new Array();

/*получение списка показываемых категорий из адреса*/
function getShowArrayFromHash()
{
	var lh = location.hash.toLowerCase();
	if (lh == '#shownone') 
		return new Array();
	var arr;
	if (arr = regexp.exec(lh)) 
	{
		return (arr[1].split('-'));
	}
	return cat_arr;
}

/*печать заголовка категории*/
function printCategory(title, categoryID)
{
	document.write('<h2 class="category clickable" id="title' + categoryID + '"><span onClick="showHideCategory(' + categoryID + ')"><em>' + title + '</em></span></h2>');
	cat_arr.push(categoryID);
	document.getElementById('title' + categoryID).getElementsByTagName('span')[0].title = "Щелкните, чтобы раскрыть категорию";
}

/*при запуске страницы*/
function priceCatReady()
{

	cat_arr = new Array();
	
	categoryHeaders = getClass('category', 'h2');
	for (i = 0; i < categoryHeaders.length; i++) 
		cat_arr.push(categoryHeaders[i].id.substring(9));
	
	
	if (page = "products_pricelist") 
	{
		KeyStartDetect();
		for (i = 0; i < cat_arr.length; i++) 
			if (cat_arr[i]) 
			{
				convertRowsToLinks('content' + cat_arr[i]);
			}
	}
	
	//show_arr=getShowArrayFromHash();
	/*for (i=0;i<show_arr.length;i++)
	
	 
	
	 
	
	 
	
	 if (show_arr[i])
	
	 
	
	 
	
	 
	
	 _showHideCategory(show_arr[i],false);
	
	 
	
	 
	
	 
	
	 document.getElementById('loader').style.display='none';
	
	 
	
	 
	
	 
	
	 document.getElementById('hider').style.display='block';
	
	 
	
	 
	
	 
	
	 update_go_up();	*/
	
}

/*показ/скрытие кнопки "наверх"*/
function update_go_up()
{
	if (show_arr.length == 0 || show_arr[0] == '') 
		document.getElementById('go_up').style.display = 'none';
	else 
		document.getElementById('go_up').style.display = 'inline';
}

/*действие кнопки «← назад»*/
function navigate_back()
{
	history.back();
	_gaq.push(["_trackEvent", "pageEvent", "link_back", page]);
	return false;
}

/*действие кнопки «↑ наверх»*/
function navigate_top()
{
	scroll(0, 0);
	_gaq.push(["_trackEvent", "pageEvent", "link_top", page]);
	return false;
}

/*показать/скрыть категорию*/
function showHideCategory(categoryID)
{
	_showHideCategory(categoryID, true);
}

function _showHideCategory(categoryID, updateAddress)
{
	if (updateAddress) 
	{
		var flag = false;
		for (i = 0; i < show_arr.length; i++) 
		{
			if (show_arr[i] == categoryID) 
			{
				flag = true;
				delete show_arr[i];
				break;
			}
		}
		if (!flag) 
			show_arr.push(categoryID);
		show_arr = show_arr.join(' ').replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' ').split(' ').sort();
		
		if (show_arr.length == cat_arr.length) 
			location.hash = "showAll";
		else if (show_arr.length == 0 || show_arr[0] == '') 
		{
			location.hash = "showNone";
		}
		else 
		{
			location.hash = "show" + show_arr.join('-');
		}
		update_go_up();
	}
	
	var cont = document.getElementById('content' + categoryID);
	var title = document.getElementById('title' + categoryID).getElementsByTagName('span')[0];
	if (cont.style.display == 'none') 
	{
		cont.style.display = 'block';
		title.className = 'visible';
		title.title = "Щелкните, чтобы свернуть категорию";
	}
	else 
	{
		cont.style.display = 'none';
		title.className = '';
		title.title = "Щелкните, чтобы раскрыть категорию";
	}
}

/*прайслист — строки делаются кликабельными*/
function convertRowsToLinks(container)
{
	var table = document.getElementById(container);
	if (table) 
	{
		var rows = table.getElementsByTagName("tr");
		for (var i = 0; i < rows.length; i++) 
		{
			var links = rows[i].getElementsByTagName("a");
			if (links.length >= 1) 
			{
				rows[i].id = 'row' + list_of_td_hrefs.length++;
				list_of_td_hrefs[rows[i].id] = links[0].href;
				rows[i].onclick = pricelistRowClick;
				rows[i].onmouseover = new Function("highlight(this,true)");
				rows[i].onmouseout = new Function("highlight(this,false)");
				rows[i].className += " clickable";
			}
		}
	}
}

/*прайс-лист — изменение стиля строки при наведении мыши*/
function highlight(target, flag)
{
	if (flag) 
	{
		window.status = list_of_td_hrefs[target.id];
		target.className = "highlighted " + target.className;
	}
	else 
	{
		window.satus = '';
		for (key in list_of_td_hrefs) 
			if (document.getElementById(key).className.substr(0, 1) == 'h') 
				document.getElementById(key).className = document.getElementById(key).className.replace(/(\s)?highlighted(\s)?/, "");
	}
}

/*прайс-лист — нажатие на элемент строчки*/
function pricelistRowClick()
{
	navigateToURL(list_of_td_hrefs[this.id]);
	return false;
}

//new Function("document.location.href='" + link[0].href + "'; return false;");

/*
 * Определение высоты окна браузера (для отображения/скрытия кнопки «наверх»
 * http://www.geekpedia.com/code100_Get-window-width-and-height.html
 */
function getWindowHeight()
{
	var y = 0;
	if (self.innerHeight) 
	{
		y = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight) 
	{
		y = document.documentElement.clientHeight;
	}
	else if (document.body) 
	{
		y = document.body.clientHeight;
	}
	return y;
}

/**
 * Кроссбраузерно вызывает событие у объекта (временно не используется)
 * @param {Object} obj
 * @param {Object} evt
 */
function fireEvent(obj, evt)
{

	var fireOnThis = obj;
	if (document.createEvent) 
	{
		var evObj = document.createEvent('MouseEvents');
		evObj.initEvent(evt, true, false);
		fireOnThis.dispatchEvent(evObj);
	}
	else if (document.createEventObject) 
	{
		fireOnThis.fireEvent('on' + evt);
	}
}

/**
 * Инициализация яндекс-карт
 */
function initYandexMaps()
{
	// Кнопка «Вернуть стандартый вид»
	var ResetViewButton = function (map, defaultCenter, defaultZoom) 
	{
		var rvb = new YMaps.ToolBarButton({caption: document.getElementById('lang_contacts_map_resetview').innerHTML}, {shown: false});

		YMaps.Events.observe(rvb, rvb.Events.Click, function () {
            map.setCenter(defaultCenter, defaultZoom, YMaps.MapType.MAP);
			map.closeBalloon();
        });
        YMaps.Events.observe(map, map.Events.BoundsChange, function(map)
        {
             if (defaultZoom == map.getZoom() && defaultCenter.equals(map.getCenter()))
                rvb.hide(); 
             else
                rvb.show(); 
        });
            
		return rvb;
	}
	
	// Карта всей Пензы
	setTimeout(function()
    {
        try 
        {
            var defaultCenter = new YMaps.GeoPoint(45, 53.198);
			var defaultZoom = 11;
			
			// Создает экземпляр карты и привязывает его к созданному контейнеру
            var map = new YMaps.Map(document.getElementById('contacts_yandexmap1'));
            
            // Добавляет панели инструментов на карту
            var toolBar = new YMaps.ToolBar([new YMaps.ToolBar.MoveButton(), new YMaps.ToolBar.MagnifierButton(), new ResetViewButton(map, defaultCenter, defaultZoom)]);
            map.addControl(toolBar);
			
            // Добавляет элемент масштабирования без всплывающих подсказок
            var zoomControl = new YMaps.SmallZoom();
            map.addControl(zoomControl);
            
			// Устанавливает начальные параметры отображения карты: центр карты, коэффициент масштабирования и тип (карта)
            map.setCenter(defaultCenter, defaultZoom, YMaps.MapType.MAP);
			
            // Добавления флажка
			var placemark = new YMaps.Placemark(new YMaps.GeoPoint(45.000487,53.217976), {style:'default#lightbluePoint', hideIcon: false, hasBalloon: false});
            map.addOverlay(placemark);
				                
            // Создание и добавление YMapsML-документа на карту
            //var ml = new YMaps.YMapsML('http://maps.yandex.ru/export/usermaps/ePoyZSjAXG7cQAbNogw00aQEnKKs7JMU/');
            //map.addOverlay(ml);
            
			// Пробки
            try 
            {
                var traffic = new YMaps.Traffic.Control();
                map.addControl(traffic);
            } 
            catch (e) 
			{
            };
        } 
        catch (e) 
        {
            var mapcontainer = document.getElementById("contacts_yandexmap_container");
            var map = document.getElementById("contacts_yandexmap1");
			var staticmaps = getElementsByClassName("contacts_yandexmap_printonly", mapcontainer);
			map.innerHTML = staticmaps[0].innerHTML;
            _gaq.push(["_trackEvent", "pageEvent", "error_yandexmaps", e.toString()]);
        }
    }, 1);
	
	// Прячет описания мест, если вторая карта не загрузилась как следует
	var hidePlacemarks = function()
	{
        var placemarks = getElementsByClassName("yandexmap_placemark", document);
        for (i in placemarks)
		{
            placemarks[i].style.display = 'none';
		} 
	}
	
	// Карта района
	setTimeout(function()
	{
		try 
		{
            var defaultCenter = new YMaps.GeoPoint(44.994624, 53.214281);
            var defaultZoom = 15;

			// Создает экземпляр карты и привязывает его к созданному контейнеру
			var map = new YMaps.Map(document.getElementById('contacts_yandexmap2'));
			
            // Добавляет панели инструментов на карту
            var toolBar = new YMaps.ToolBar([new YMaps.ToolBar.MoveButton(), new YMaps.ToolBar.MagnifierButton(), new ResetViewButton(map, defaultCenter, defaultZoom)]);
            map.addControl(toolBar);
            
            // Добавляет элемент масштабирования без всплывающих подсказок
            var zoomControl = new YMaps.SmallZoom();
            map.addControl(zoomControl);
			
			// Создание и добавление YMapsML-документа на карту
			var ml = new YMaps.YMapsML('http://maps.yandex.ru/export/usermaps/ePoyZSjAXG7cQAbNogw00aQEnKKs7JMU/');
			map.addOverlay(ml);
			
			// Обработчик успешной загрузки YMapsML
			YMaps.Events.observe(ml, ml.Events.Load, function(ml)
			{
				// Начальная инициализация карты
				map.setBounds(ml.view.boundedBy);
				
				// Устанавливает начальные параметры отображения карты: центр карты, коэффициент масштабирования и тип (карта)
                map.setCenter(defaultCenter, defaultZoom, YMaps.MapType.MAP);
				
				// Пробки
				try 
				{
					var traffic = new YMaps.Traffic.Control();
					map.addControl(traffic);
				} 
				catch (e) 
				{
				};
		    });
			// Обработчик неудачной загрузки YMapsML
			YMaps.Events.observe(ml, ml.Events.Fault, function(ml, error)
			{
	            var mapcontainer = document.getElementById("contacts_yandexmap_container");
	            var map = document.getElementById("contacts_yandexmap2");
	            var staticmaps = getElementsByClassName("contacts_yandexmap_printonly", mapcontainer);
	            map.innerHTML = staticmaps[1].innerHTML;
	            _gaq.push(["_trackEvent", "pageEvent", "error_yandexmaps_YMapsML", e.toString()]);
			});
		} 
		catch (e) 
		{
            var mapcontainer = document.getElementById("contacts_yandexmap_container");
            var map = document.getElementById("contacts_yandexmap2");
            var staticmaps = getElementsByClassName("contacts_yandexmap_printonly", mapcontainer);
            map.innerHTML = staticmaps[1].innerHTML;
            _gaq.push(["_trackEvent", "pageEvent", "error_yandexmaps", e.toString()]);
		}
	}, 1);
}

/*Попытка определения места открытия ссылки (используется там, где href заменено на onclick). */
function navigateToURL(address)
{
	var target = ''
	if (CTRL || SHIFT) 
		target = '_blank';
	if (target == '') 
		window.location = address;
	else 
		window.open(address, target);
	CTRL = false;
	SHIFT = false;
	ALT = false;
}

/*Слежение за нажатиями CTRL, SHIFT, ALT
 Источник — http://www.beansoftware.com/ASP.NET-Tutorials/Examples/Shift-Ctrl-Alt-Detect.aspx
 */
var CTRL = false;
var SHIFT = false;
var ALT = false;
var CHAR_CODE = -1;
function KeyStartDetect()
{
	document.onkeydown = KeyDownHandler;
	document.onkeyup = KeyUpHandler;
}

function KeyDownHandler(e)
{
	var x = '';
	if (document.all) 
	{
		var evnt = window.event;
		x = evnt.keyCode;
	}
	else 
	{
		x = e.keyCode;
	}
	DetectKeys(x, true);
}

function KeyUpHandler(e)
{
	var x = '';
	if (document.all) 
	{
		var evnt = window.event;
		x = evnt.keyCode;
	}
	else 
	{
		x = e.keyCode;
	}
	DetectKeys(x, false);
}

function DetectKeys(KeyCode, IsKeyDown)
{
	if (KeyCode == '16') 
		SHIFT = IsKeyDown;
	else if (KeyCode == '17') 
		CTRL = IsKeyDown;
	else if (KeyCode == '18') 
		ALT = IsKeyDown;
	else 
	{
		if (IsKeyDown) 
			CHAR_CODE = KeyCode;
		else 
			CHAR_CODE = -1;
	}
}

// Вызов инициализирующей функции (© Dean Edwards/Matthias Miller/John Resig)
/* для Mozilla Firefox/Opera 9 */
if (document.addEventListener) 
{
	document.addEventListener("DOMContentLoaded", init, false);
}

/* для Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
 document.write("<script id=\"__ie_onload\" defer=\"defer\" src=\"javascript:void(0)\"><\/script>");
 var script = document.getElementById("__ie_onload");
 script.onreadystatechange = function() {
 if (this.readyState == "complete") {
 init(); // вызываем обработчик для onload
 }
 };
 /*@end @*/
/* для Safari */
if (/WebKit/i.test(navigator.userAgent)) 
{ // условие для Safari
	var _timer = setInterval(function()
	{
		if (/loaded|complete/.test(document.readyState)) 
		{
			clearInterval(_timer);
			init(); // вызываем обработчик для onload
		}
	}, 10);
}
/* для остальных браузеров */
window.onload = init;

