var timer = false;
var current = false;
window.onload = function() {
	var menu = document.getElementById( 'mbg' );
	var imgArray = menu.getElementsByTagName( 'A' );
	for( var i = imgArray.length; i; i-- ) {
		var cC = imgArray[ i - 1 ];
		if( cC.parentNode.nodeName != 'SPAN' ) continue;
		attachHandler( cC );
	}
	voteLoad(null);
}

attachHandler = function( el ) {
	if( !el ) return false;
	var menu = el.parentNode.nextSibling;
	if( document.addEventListener ) {
		el.addEventListener( 'mouseover', function( ev ) { showSecondLevel( el, ev ) }, false );
		el.addEventListener( 'mouseout', function( ev ) { hide( el, ev ) }, false );
		if( menu && menu.nodeName == 'TABLE' ) {
			menu.addEventListener( 'mouseover', cancelHide, false );
			menu.addEventListener( 'mouseout', function( ev ) { hide( el, ev ) }, false );
		}
	} else {
		el.attachEvent( 'onmouseover', function() { showSecondLevel( el ) } );
		el.attachEvent( 'onmouseout', function() { hide( el ) } );
		if( menu && menu.nodeName == 'TABLE' ) {
			menu.attachEvent( 'onmouseover', cancelHide );
			menu.attachEvent( 'onmouseout', function( ev ) { hide( el ) } );
		}
	}
}

showSecondLevel = function( el, ev ) {
	ev = ev || window.event;
	stopPropagation( ev );

	if( current && current != el ) hideSecondLevel( current );
	cancelHide();
	
	var parent = el.parentNode;
	var menu = parent.nextSibling;
	
	if( menu && menu.nodeName == 'TABLE' ) {
		var left = getOffsetLeft( el );

		menu.className = 'second-wrap';
		if( left + menu.offsetWidth > document.body.offsetWidth - 30 ) {
			left = document.body.offsetWidth - menu.offsetWidth - 30;
		}	
		menu.style.left = left + 'px';
	}
	parent.className = 'active';
	current = el;
}

hide = function( el, ev ) {
	ev = ev || window.event;
	stopPropagation( ev );
	timer = window.setTimeout(
		function() {
			hideSecondLevel( el );
		}, 300
	);
}

cancelHide = function() {
	if( timer ) {
		window.clearTimeout( timer );
		timer = false;
	}
}

hideSecondLevel = function( el ) {
	var parent = el.parentNode;
	parent.className = 'passive';
	var menu = parent.nextSibling;
	if( menu && menu.nodeName == 'TABLE' ) {
		menu.className = 'hidden second-wrap';
	}
}


stopPropagation = function( ev ) {
	ev.stopPropagation ? ev.stopPropagation() : ev.cancelBubble = true;
}

getOffsetLeft = function( el ) {
	var result = 0;
	while( el ) {
		result += el.offsetLeft;
		el = el.offsetParent;
	}
	return result;
}
