﻿/***/
var util = {
	getWindowHeight: function() {
		var windowHeight=0;
		if (typeof(window.innerHeight)=='number')
			windowHeight=window.innerHeight;
		else
			if (document.documentElement&&document.documentElement.clientHeight)
				windowHeight=document.documentElement.clientHeight;
		else
			if (document.body&&document.body.clientHeight)
				windowHeight=document.body.clientHeight;
		return windowHeight-6;
	}
}

/*
 * menu
 */
popupmenu = (function() {
	var _hnd;
	var _activeNode;

	function startHide(ev) {
		_hnd = setTimeout(hideActive, 500);
	};
	
	function hideActive() {
		if(_activeNode){
			_activeNode.setStyle('display','none');
			_activeNode = null;
		}
	};
	
	function clrTimeout() {
		if(_hnd) {
			clearTimeout(_hnd);
			_hnd = null;
		}
	};
	
	function show(ev) {
	    ev = new Event(ev);
	    var node = $(ev.target).getParent().getElement('div');
		if(_activeNode!=node)
			hideActive();
		clrTimeout();
		if(node) {
			_activeNode = node;
			node.setStyle('display','block');
		}
	};
		
	return {
		init: function(id) {
		/* because of bugs in mootools selectors, i need to specify exact path to nodes */
			$(id).getElements('span>div>ul>li>a').addEvents(
				{'mouseleave': startHide, 'mouseenter': show}
			);
			$(id).getElements('li div.menu-wrap').addEvents(
				{ 'mouseleave': startHide, 'mouseenter': clrTimeout }
			);
		}
	};
})();

/*
* lang dropdown
*/
langselect = (function() {
	var _hnd;
	var _activeNode;
	var _listNodeId;

	function startHide(ev) {
		_hnd = setTimeout(hideActive, 500);
	};

	function hideActive() {
		if (_activeNode) {
			_activeNode.setStyle('display', 'none');
			_activeNode = null;
		}
	};

	function clrTimeout() {
		if (_hnd) {
			clearTimeout(_hnd);
			_hnd = null;
		}
	};

	function show(ev) {
		ev = new Event(ev);
		ev.stop();
		var node = $(_listNodeId);
		if (_activeNode != node)
			hideActive();
		clrTimeout();
		if (node) {
			_activeNode = node;
			node.setStyle('display', 'block');
		}
	};

	function setLanguage(ev) {
		ev = new Event(ev);
		var node = ev.target;
		if (node.tagName == 'IMG')
			node = node.parentNode;
		if (node.tagName != 'A')
			node = node.getElement('IMG').getParent();
		var lang = node.className.substr('langid-'.length);
		if (lang) {
			document.cookie = 'lang=' + lang + ';path=/; expires=' + (new Date(Date.UTC(2049, 1, 1)).toGMTString());
			window.location.href = document.location.href;
		}
		ev.stop();
	};

	return {
		init: function(activationNodeId, listNodeId) {
			/* because of bugs in mootools selectors, i need to specify exact path to nodes */
			$(activationNodeId).addEvents(
				{ 'mouseleave': startHide, 'mouseenter': show, 'click': function(ev) { new Event(ev).stop(); } }
			);
			$(listNodeId).addEvents(
				{ 'mouseleave': startHide, 'mouseenter': clrTimeout, 'click': setLanguage }
			);
			_listNodeId = listNodeId;
		}
	};
})();



/*
 * footer positioning by alistapart.com
 */
function setFooter() {
	if (document.getElementById) {
		var windowHeight=util.getWindowHeight();
		if (windowHeight>0) {
			var contentHeight=$('pagecontent').offsetHeight;
			var footerElement=$('footer');
			var footerHeight=footerElement.offsetHeight;
			if (windowHeight-(contentHeight+footerHeight)>=0) {
				footerElement.style.position='relative';
				footerElement.style.top=(windowHeight-(contentHeight+footerHeight))+'px';
			} else {
				footerElement.style.position='static';
			}
		}
	}
}

window.addEvent('domready', function() {
	popupmenu.init('leftMenu');
	langselect.init('lang-select', 'lang-dropdown-outer');

	$$('input.resetField').addEvent('focus', function(ev) {
		ev = new Event(ev).target;
		if (ev.value == ev.defaultValue)
			ev.value = '';
	})
	.addEvent('blur', function(ev) {
		ev = new Event(ev).target;
		if (ev.value == '')
			ev.value = ev.defaultValue;
	});
	setFooter();
});
window.addEvent('resize', setFooter);
window.onload = function() { setFooter(); }
