function menu_activate()
{
    Menu('ctl00_TopMenu');
}
function activateSecondNav(e)
{
	var SecondNavHolder = document.getElementById("SecondNavigation");
	var NavigationItems = SecondNavHolder.getElementsByTagName("li");
	for (i=0; i<NavigationItems.length; i++)
	{
		var Item = NavigationItems[i];
		Item.onclick = onclicker;
	}
}

function onclicker(e)
{
	var SecondNavHolder = document.getElementById("SecondNavigation");
	var NavigationItems = SecondNavHolder.getElementsByTagName("li");
	for (i=0; i<NavigationItems.length; i++)
	{
		NavigationItems[i].className = null;
	}
	this.className = 'Selected';
	var SecondNavContent = document.getElementById("BookmarksContent");
	var ContentItems = SecondNavContent.getElementsByTagName("div");
	for (i=0; i<ContentItems.length; i++)
	{
		var Item = ContentItems[i];
		if(Item.parentNode == SecondNavContent)
		{
			if(Item.id != this.id + '_content')
			{
				Item.Class = 'hidden';
				Item.className = 'hidden';
			}
			else
			{
				Item.Class = 'displayed';
				Item.className = 'displayed';
			}
		}
	}
}

function onloadOpenLevels() {
	if (window.location.hash.length > 1) {
		var hash = window.location.hash.substr(1,window.location.hash.length); 
		var hashArray = hash.split(";");
		for(i=0;i<hashArray.length;i++) {
			if(document.getElementById(hashArray[i]) && document.getElementById(hashArray[i]).className == 'toopen') 
				openLevel(hashArray[i]);
			hashPref = hashArray[i].substr(0,1);
			hashBody = hashArray[i].substr(1,hashArray[i].length);
			if( hashPref == "-" && document.getElementById(hashBody) && document.getElementById(hashBody).className == 'toclose') 
				openLevel(hashArray[i].substr(1,hashArray[i].length));
		}
	}
	
}

function openLevel (contentId)
{
	var Level = document.getElementById(contentId);
	var Item = document.getElementById(contentId + '_content');
	
	var r1 = "#"+contentId+";";
	var r2 = ";"+contentId+";";
	var r3 = "-"+contentId+";";
	var newLoc = window.location.href;
		
	if (Item != null && Item.className == 'hidden')
	{
		Item.Class = 'displayed opened';
		Item.className = 'displayed opened';
		Level.Class = 'toclose';
		Level.className = 'toclose';
		
		if (newLoc.indexOf(r3) > -1) {
			newLoc = newLoc.substr(0,newLoc.indexOf(r3)) + newLoc.substr(newLoc.indexOf(r3)+r3.length,newLoc.length);
			
		}		
		else if (newLoc.indexOf(r1) == -1 && newLoc.indexOf(r2) == -1) {
			var wlString = String(window.location);
			newLoc += (window.location.hash == '' && wlString.substr(wlString.length-1,wlString.length) != '#') ? "#" : "";
			newLoc += contentId + ";";
		}
	}
	else
	{
		Item.Class = 'hidden';
		Item.className = 'hidden';
		Level.Class = 'toopen';
		Level.className = 'toopen';
		
		if ( newLoc.indexOf('#') > -1 && ( newLoc.indexOf(r1) > -1 || newLoc.indexOf(r2) > -1 ) ) {
			newLoc = (newLoc.indexOf(r1) > -1) ? newLoc.substr(0,newLoc.indexOf(r1)) + "#" + newLoc.substr(newLoc.indexOf(r1)+r1.length,newLoc.length) : newLoc;
			newLoc = (newLoc.indexOf(r2) > -1) ? newLoc.substr(0,newLoc.indexOf(r2)) + ";" + newLoc.substr(newLoc.indexOf(r2)+r2.length,newLoc.length) : newLoc;
		}
		else if (newLoc.indexOf(r3) == -1) {
			newLoc += (newLoc.indexOf('#') > -1)? "" : "#";
			newLoc += r3;
		}
	}
	if (newLoc.substr(newLoc.length-1,1) == "#") newLoc += "n;";
	window.location.replace(newLoc);
}

function getArgs() {
	var args = new Object();
	var query = location.search.substring(1); 
	var pairs = query.split("&"); 
	for(var i = 0; i < pairs.length; i++) {
		var pos = pairs[i].indexOf('='); 
		if (pos == -1) continue; 
		var argname = pairs[i].substring(0,pos); 
		var value = pairs[i].substring(pos+1); 
		value = decodeURIComponent(value); 
		args[argname] = value; 
	}
	return args; 
}

function openSubLevel (contentId)
{
	var Level = document.getElementById(contentId);
	var Item = document.getElementById(contentId + '_content');
	if (Item != null && Item.className == 'hidden')
	{
		Item.Class = 'displayed';
		Item.className = 'displayed';
	}
	else
	{
		Item.Class = 'hidden';
		Item.className = 'hidden';
	}
}

function openSectionContent (contentId)
{
	var SectionHeader = document.getElementById(contentId);
	var Section = document.getElementById(contentId + '_content');
	if (Section.className == 'hidden')
	{
		Section.Class = 'displayed opened';
		Section.className = 'displayed opened';
		SectionHeader.Class = 'toclose';
		SectionHeader.className = 'toclose';
	}
	else
	{
		Section.Class = 'hidden';
		Section.className = 'hidden';
		SectionHeader.Class = 'toopen';
		SectionHeader.className = 'toopen';
	}
}

function Menu(id)
{
	var timer;

	function onovermenu(elem)
	{
		/*Hide all root LI elements to prevent the situation when two or more root LIsts stay opened. It can occur because of clearTimeout and wrong related target definition (depends on browser).*/
		var liElems = document.getElementById(id).getElementsByTagName('li');
			for (i=0; i<liElems.length; i++)
			{
				onoutmenu(liElems[i], "level_over");
			}
		/*end*/
		elem.className += " " + elem.className + "_over";
	}	
	function onoutmenu(elem, classSubstr)
	{
		if (!classSubstr)
		{
			var classSubstr = "_over"; 
		}
		if(elem.className.indexOf(classSubstr) != -1)
			elem.className = elem.className.substr(0, elem.className.indexOf(" "));
	}
	function mouseHandler(e)
	{
		if (!e) e = window.event;
		var relTarget = (e.toElement)? e.toElement : e.relatedTarget;
		var self = this;
		if (e.type == 'mouseover')
		{
			/*clearTimeout to prevent hiding if user goes back to menu during timeout*/
			clearTimeout(timer);
			onovermenu(self);
		}
		else if (e.type == 'mouseout')
		{
			/*timeout starts if related target isn't root menu or menu levels*/
			if (relTarget && relTarget.id && relTarget.id.indexOf('ctl00_TopMenu') == -1 || relTarget && !relTarget.id && relTarget.className.indexOf('level') == -1)
			{
				timer = window.setTimeout(function(){onoutmenu(self);}, 500);
			}
			/*otherwise - standard handler*/
			else
			{
				onoutmenu(self);
			}
		}	
	}

    function specHide(elem)
    {
        var hider = document.createElement("div");
        hider.style.width = 0;
        hider.style.height = 0;
        hider.style.overflow = "hidden";
        elem.parentNode.replaceChild(hider,elem);
        hider.appendChild(elem);
        elem.style.display = "block";
    }
    function deHide(elem)
    {
        elem.style.display = "";
        elem.parentNode.parentNode.replaceChild(elem,elem.parentNode);
    }
	function menuLinks(rootElem)
	{
		var menuLinks = rootElem.childNodes[i].getElementsByTagName('a');
		for (j=0; j< menuLinks.length; j++)
		{
			menuLinks[j].className = "menu-level-link";
		}
	}
    function activateTwoLevel2(elem)
    {
        elem.className = "two-level-second";
		elem.style.display = "block";
		var maxWidth = 0;
		for (var i = 0; i < elem.childNodes.length; i++)
	        if (elem.childNodes[i].nodeName.toLowerCase() == 'li')
            {
                var liElem = elem.childNodes[i];
                liElem.className = "two-level-second";
				maxWidth = maxWidth < liElem.getElementsByTagName("a")[0].offsetWidth ? liElem.getElementsByTagName("a")[0].offsetWidth : maxWidth;
		        liElem.onmouseover = mouseHandler;
		        liElem.onmouseout = mouseHandler;
		    }
		elem.style.display = "";
		maxWidth+=12;
		elem.style.width = maxWidth + "px";
		return maxWidth;
    }
    function activateTwoLevel1(elem, rootElem)
    {
        elem.className = "two-level-first";
        for (var i = 0; i < elem.childNodes.length; i++)
	        if (elem.childNodes[i].nodeName.toLowerCase() == 'li')
	        {
		        var liElem = elem.childNodes[i];
		        var aElem = liElem.getElementsByTagName("a")[0];
                var transpBg = document.createElement("div");
                transpBg.className = "two-level-first-bg";
                liElem.insertBefore(transpBg,liElem.firstChild);
		        liElem.className = "two-level-first"
		        liElem.onmouseover = mouseHandler;
		        liElem.onmouseout = mouseHandler;
		        if (liElem.getElementsByTagName("ul").length > 0)
		        {
		            var childUl = liElem.getElementsByTagName("ul")[0];
		            var maxWidth = activateTwoLevel2(childUl);
		            var subMenuBg = document.createElement("div");
                    subMenuBg.className = "two-level-second-bg";
					subMenuBg.style.width = maxWidth + 5 + "px";
                    childUl.style.display = "block";
                    subMenuBg.style.height = liElem.getElementsByTagName("ul")[0].offsetHeight + 2 + "px";
                    childUl.style.display = "";
                    liElem.appendChild(subMenuBg);
		        }
				var aElemHeight = aElem.offsetHeight;
				aElem.style.display = "inline-block";
				aElem.style.paddingTop = (liElem.offsetHeight - aElemHeight) / 2 + "px";
		        aElem.style.paddingBottom = aElem.style.paddingTop;
				aElem.style.height = aElemHeight + "px";
				
		    }
		activateBg(elem, rootElem);
    }
    function activateSingleLevel1(elem, rootElem)
    {
        elem.className = "one-level-item";
        for (var i = 0; i < elem.childNodes.length; i++)
	        if (elem.childNodes[i].nodeName.toLowerCase() == 'li')
	        {
		        var liElem = elem.childNodes[i];
                liElem.className = "one-level-item";
		        liElem.onmouseover = mouseHandler;
		        liElem.onmouseout = mouseHandler;
               
		    }
		activateBg(elem, rootElem);
    }
    function activateTwoLevel(rootElem)
    {
        var childUl = rootElem.getElementsByTagName("ul")[0];
        specHide(childUl);
        rootElem.onmouseover = mouseHandler;
        rootElem.onmouseout = mouseHandler;
        activateTwoLevel1(childUl, rootElem);
        deHide(childUl);        
    }
    function activateSingleLevel(rootElem)
    {
        var childUl = rootElem.getElementsByTagName("ul")[0];
        specHide(childUl);
        rootElem.onmouseover = mouseHandler;
        rootElem.onmouseout = mouseHandler;
        activateSingleLevel1(childUl, rootElem);
        deHide(childUl);        
    }
	function activateNoLevel(rootElem)
    {
        var childUl = rootElem.getElementsByTagName("a")[0];
        rootElem.onmouseover = mouseHandler;
        rootElem.onmouseout = mouseHandler; 
    }
	var rootElem;
	if (!document.getElementById(id))
	{
		return;
	}
	if (document.getElementById(id).nodeName.toLowerCase() != 'ul')
	{
	    if (document.getElementById(id).getElementsByTagName("ul")[0])
		{
		    rootElem = document.getElementById(id).getElementsByTagName("ul")[0];
		}
		else
		{
		    return;
		}
	}
	else
	    rootElem = document.getElementById(id);
	var i = 0;
	for (i = 0; i < rootElem.childNodes.length; i++)
	{
		if(rootElem.childNodes[i].className == 'two-level')
		{	
			menuLinks(rootElem);
			activateTwoLevel(rootElem.childNodes[i]);
		}
		else if(rootElem.childNodes[i].className == 'one-level')
		{
			menuLinks(rootElem);
			activateSingleLevel(rootElem.childNodes[i]);
		}
		else if (rootElem.childNodes[i].className == 'no-level')
		{
			menuLinks(rootElem);
			activateNoLevel(rootElem.childNodes[i]);
		}
	}
	return;
}

function activateBg(elem, rootElem)
{
	var elemBg = document.createElement("div");
	var els = elem.getElementsByTagName('li');
	var elsCount = elem.getElementsByTagName('li').length;
	var liHeight;
	for (i=0; i<els.length; i++)
	{	
		if (els[i].getElementsByTagName('ul').length >= 1)
		{
			elsCount -= els[i].getElementsByTagName('li').length;
		}
	}
	if (!window.getComputedStyle)
	{
		liHeight = parseInt(els[0].currentStyle.height);
	}
	else 
	{
		liStyle = window.getComputedStyle(els[0], "");
		liHeight = parseInt(liStyle.getPropertyValue("height"));
	}
	elemBg.className = elem.className + "-transp-bg";
	elemBg.style.height = elsCount * liHeight + "px";
	rootElem.appendChild(elemBg);
}
function ChangeURLbySelect(selectID,param)
{
	var URLstring = window.location.href;
	if (URLstring)
	{
		var re = new RegExp(param,"ig");
		if (re.test(URLstring.substring(URLstring.indexOf("?")+1, URLstring.length)))
		{
			firstpart = URLstring.substring(0, (URLstring.indexOf(param))-1);
			lastpart = URLstring.substring(URLstring.indexOf(param)+1+param.length);
			if ((lastpart.indexOf("&")+1)==0)
				URLstring = firstpart;
			else
				URLstring = firstpart + lastpart.substring(lastpart.indexOf("&"));
		}
		else
		{
			if ((URLstring.indexOf("?")+1)==0)
				URLstring = URLstring+"?";
		}
		if (URLstring.substr(URLstring.length-2,1)=="?")
			URLstring=URLstring+param+"="+document.getElementById(selectID).options[document.getElementById(selectID).selectedIndex].value;
		else
			URLstring=URLstring+"&"+param+"="+document.getElementById(selectID).options[document.getElementById(selectID).selectedIndex].value;
		return URLstring;
	}
}

function FromTo(selectID,param)
{
	var SelectFromNumber = (document.getElementById('SelectFrom').options[document.getElementById('SelectFrom').selectedIndex].value != "") ? document.getElementById('SelectFrom').options[document.getElementById('SelectFrom').selectedIndex].value : document.getElementById('SelectFrom').options[1].value;

	var SelectToNumber = (document.getElementById('SelectTo').options[document.getElementById('SelectTo').selectedIndex].value != "") ? document.getElementById('SelectTo').options[document.getElementById('SelectTo').selectedIndex].value : document.getElementById('SelectTo').options[document.getElementById('SelectTo').options.length-1].value;

	if (SelectFromNumber <= SelectToNumber) self.location=ChangeURLbySelect(selectID,param);
	else
	{
		if (selectID == 'SelectTo') document.getElementById('SelectTo').options[document.getElementById('SelectFrom').selectedIndex].selected = true;
		else document.getElementById('SelectFrom').options[document.getElementById('SelectTo').selectedIndex].selected = true;
		self.location=ChangeURLbySelect(selectID,param);
	}
}

function ShowVersions(SelectID)
{
var DivsContainer = document.getElementById("divs");
var Versions = DivsContainer.getElementsByTagName("div");
	document.getElementById(document.getElementById(SelectID).options[document.getElementById(SelectID).selectedIndex].value).style.display='';
	for (var i = 0; i<Versions.length; i++ )
	{
		if (document.getElementById(SelectID).options[document.getElementById(SelectID).selectedIndex].value != Versions[i].id)
		document.getElementById(Versions[i].id).style.display='none';
	}
}

function SelectGoToUrl(SelectID)
{
	self.location = document.getElementById(SelectID).options[document.getElementById(SelectID).selectedIndex].value;
}

function ReturnRandomNum(n)
{
	var today = new Date();
	var num= Math.floor(today.getMilliseconds()/1000 * n)+1;
	return num;
}

function ShowCaseStudies()
{
	var SelectIndustry = document.getElementById("SelectIndustry");
	var SelectProduct = document.getElementById("SelectProduct");
	var SelectCountry = document.getElementById("SelectCountry");
	var SelectFrom = document.getElementById("SelectFrom");
	var SelectTo = document.getElementById("SelectTo");
//	var KeyWords = document.forms['CaseStudiesForm'].KeyWords;
	var URLstring = window.location.href;
	URLstring = "http://www.abbyy.ru/CaseStudies/?";
	if (SelectIndustry.options[SelectIndustry.selectedIndex].value != ""){
		URLstring += "industry="+SelectIndustry.options[SelectIndustry.selectedIndex].value;}
	if (SelectProduct.options[SelectProduct.selectedIndex].value != ""){
		URLstring += "&product="+SelectProduct.options[SelectProduct.selectedIndex].value;}
	if (SelectCountry.options[SelectCountry.selectedIndex].value != ""){
		URLstring += "&country="+SelectCountry.options[SelectCountry.selectedIndex].value;}
	if (SelectFrom.options[SelectFrom.selectedIndex].value != ""){
		URLstring += "&from="+SelectFrom.options[SelectFrom.selectedIndex].value;}
	if (SelectTo.options[SelectTo.selectedIndex].value != ""){
		URLstring += "&to="+SelectTo.options[SelectTo.selectedIndex].value;}
//	if (KeyWords.value != ""){
//		URLstring += "&words="+KeyWords.value;}
	return URLstring;
}

function doSection (secNum)
{
	if (document.getElementById(secNum).style.display=="none"){document.getElementById(secNum).style.display=""}
	else{document.getElementById(secNum).style.display="none"}
}

function printPage(id)
{
	if(id)
	{
			try
			{
				document.getElementById(id).style.display = "none";
				window.print();
			}
			catch (err)
			{
				return false;
			}
	}

}

// Станции метро - подчеркивание
function showUnderline (el_coords) 
{
	//определить переменные
	var el_pos;
	var el_id = document.getElementById("metro_underline");
	// если не получили координаты - возврат из скрипта
	if (!el_coords) {return}		
	// разделить координаты текст в коорд. и добавить в массив el_pos
	el_pos=el_coords.split(","); 
	// сделать элементу добавление к стилю координат	
	el_id.style.top = el_pos[3]+"px";
	el_id.style.left = el_pos[0]+"px";
	el_id.style.width = (el_pos[2]-el_pos[0])+"px"; 	 
};
function hideUnderline () 
{
	// обнулить элементу положение в стиле	
	var el_id = document.getElementById("metro_underline");
	el_id.style.top = "0px";
	el_id.style.left = "0px";
	el_id.style.width = "0px"; 
};

function regionSelector_activate()
{
	RegionSelector('RegionList');
}

function RegionSelector(id)
{
	var timer;
	var selector;

	if (!document.getElementById(id))
	{
		return;
	}
	else
	{
		selector = document.getElementById(id);
		selector.onmouseover = showRegionList;
		selector.onmouseout = hideRegionList;
	}

	function showRegionList()
	{
		if (timer)
		{
			clearTimeout(timer);
		}
		if (this.className.indexOf('_over') == -1)
		{
			this.className += ' ' + this.className + '_over';
		}
	}

	function hideRegionList()
	{
		if (this.className.indexOf('_over') != -1)
		{
			var list = this;

			timer = window.setTimeout(function(){list.className = list.className.substr(0, list.className.indexOf(' '));}, 500);
		}
	}
}

function headerSearch_activate()
{
	if (!document.getElementById('SearchText'))
	{
		return;
	}
	else
	{
		var elem = document.getElementById('SearchText');
		elem.className = 'inactive';
		elem.onfocus = onFocusHandler;
		elem.onblur = onBlurHandler;
	}

	function onFocusHandler()
	{
		if (this.value == this.defaultValue)
		{
			this.value=''; 
			this.className='active';
		}			
	}

	function onBlurHandler()
	{
		if (this.value == '')
		{
			this.value = this.defaultValue;
			this.className='inactive';
		}
	}
}