var defaultDescription = '';
var descriptionHolder;

function getElementsByTagNames(list,obj)
{
	if (!obj) var obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i=0;i<tagNames.length;i++)
	{
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j=0;j<tags.length;j++)
		{
			resultArray.push(tags[j]);
		}
	}
	var testNode = resultArray[0];
	if (testNode.sourceIndex)
	{
		resultArray.sort(function (a,b) {
				return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition)
	{
		resultArray.sort(function (a,b) {
				return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}

// library for cross-browser event management
evt = {

	// attach event
	add : function(obj, evType, fn, useCapture) {
		// Opera hack
		if (window.opera && (obj == window)) {
			obj = document;
		}
		
		if (obj.addEventListener){
			obj.addEventListener(evType, fn, useCapture);
			return true;
		} else if (obj.attachEvent){
			var r = obj.attachEvent("on"+evType, fn);
			return r;
		} else {
			return false;
		}
	},
	
	// remove event
	remove : function(obj, evType, fn, useCapture) {
		// Opera hack
		if (window.opera && (obj == window)) {
			obj = document;
		}
		
		if (obj.removeEventListener) {
			obj.removeEventListener(evType, fn, useCapture);
			return true;
		} else if (obj.detachEvent) {
			var r = obj.detachEvent("on"+evType, fn);
			return r;
		} else {
			return false;
		}
	},
	
	// fix for IE event model
	fix : function(e) {
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.target == 'undefined') e.target = e.srcElement;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		if ((typeof e.which == 'undefined') && e.keyCode) e.which = e.keyCode;

		// thanx to KKL2401 for preventDefault hack
		if (!e.preventDefault) e.preventDefault = function() {
			e.returnValue = false;
		}

		return e;
	}

}	

function initMenu() {
	
	descriptionHolder = document.getElementById('description' + activeItemIndex);

	for (itemIndex = 1; itemIndex <= itemsCount; itemIndex++) {

		var actualItem = document.getElementById('item' + itemIndex);

		if (activeSubitemIndex > 0){
			var itemHeader = actualItem.getElementsByTagName('h2')[0];
			itemHeader.className = 'subselect';
		}

		if (itemIndex == activeItemIndex) {
			
			var subitemsCount = actualItem.getElementsByTagName('h3').length;
			
			var itemHeader = actualItem.getElementsByTagName('h2')[0];
			var itemHeaderLink = itemHeader.getElementsByTagName('a')[0];
			
			defaultDescription = itemHeader.getElementsByTagName('span')[0].innerHTML;
			
			itemHeaderLink.title = defaultDescription;
			itemHeaderLink.className = 'item0';
			evt.add(itemHeaderLink, 'mousemove', changeDescription);
			evt.add(itemHeaderLink, 'mouseout', setDefaultDescription);
			
		
			actualItem.className = 'selected';				
			
			for (f = 1; f <= subitemsCount; f++) {
				var actualSubitem = document.getElementById('subitem' + itemIndex + '-' + f);

				var subitemHeaderLink = actualSubitem.getElementsByTagName('a')[0];					
				descriptionContent = actualSubitem.getElementsByTagName('span')[0].innerHTML;

				subitemHeaderLink.title = descriptionContent;
				subitemHeaderLink.className = 'item' + f;
				evt.add(subitemHeaderLink, 'mousemove', changeDescription);
				evt.add(subitemHeaderLink, 'mouseout', setDefaultDescription);				
				
				if (f == activeSubitemIndex) {
					actualSubitem.className = 'selected';						
					defaultDescription = descriptionContent;
				}
			}
			
			descriptionHolder.className = 'description-sel';
			descriptionHolder.innerHTML = defaultDescription;
			
		}
	
	}
	
	function changeDescription(e) {
		e = evt.fix(e);
		var obj = (e.currentTarget) ? e.currentTarget : e.target;
		descriptionHolder.innerHTML = obj.title;
		if (obj.className == 'item' + activeSubitemIndex) {
			descriptionHolder.className = 'description-sel';
		}
		else {
			descriptionHolder.className = 'description';
		}
	}
	
	function setDefaultDescription() {
		descriptionHolder.innerHTML = defaultDescription;
		descriptionHolder.className = 'description-sel';
	}

}

function rewriteLanguageLinks() {

	var domain = 'sk';
	
	var divs = document.getElementsByTagName('div');
	var found = false;
	
	for (var j = 0; j < divs.length; j++)
	{
		if (divs[j].className == 'menu_lang') {
			headDiv = divs[j];
			found = true;
		}
	}
	
	currentUrl = result = window.location + '';
	
	endOfDomain = result.indexOf('.' + domain) + 2 + domain.length;
	result = result.substring(endOfDomain);
	endOfLanguagePart = result.indexOf('/') + 1;
	
	lastPart = result.substring(endOfLanguagePart);
	
	if (found) {
		var languageLinks = headDiv.getElementsByTagName('a');
		
		for (var j = 0; j < languageLinks.length; j++)
		{
			result = languageLinks[j].href;
			languageUrl = result;
			
			endOfDomain = result.indexOf('.' + domain);
			
			if (endOfDomain > 0) {
				endOfDomain += 2 + domain.length;
				result = result.substring(endOfDomain);
				endOfLanguagePart = result.indexOf('/') + 1;
	
				languageUrl = languageUrl.substring(0, endOfDomain + endOfLanguagePart);			
				languageLinks[j].href = languageUrl + lastPart;
			}
			
		}		
	}
}
