function addStyleSheet(url)
{
  // Создаём элемент LINK/STYLE и добавляем в документ
  var style;
  if (typeof url == 'undefined')
  {
    style = document.createElement('style');
  }
  else
  {
    style = document.createElement('link');
    style.rel = 'stylesheet';
    style.type = 'text/css';
    style.href = url;
  }
  document.getElementsByTagName('head')[0].appendChild(style);

  // Находим новый стиль в коллекции styleSheets
  style = document.styleSheets[document.styleSheets.length - 1];

  // Делаем объект совместимыми с W3C DOM2 (для IE)
  return StyleSheet_makeCompatible(style);
}

function StyleSheet_makeCompatible(style)
{
  // Mozilla не даёт доступа к cssRules до загрузки стиля
  try
  {
    style.cssRules;
  }
  catch (e)
  {
    return style;
  }

  // Создаём CSSStyleSheet.cssRules
  if (typeof style.cssRules == 'undefined' && typeof style.rules != 'undefined')
    style.cssRules = style.rules;

  // Создаём CSSStyleSheet.insertRule и CSSStyleSheet.deleteRule
  if (typeof style.insertRule == 'undefined' && typeof style.addRule != 'undefined')
    style.insertRule = StyleSheet_insertRule;
  if (typeof style.deleteRule == 'undefined' && typeof style.removeRule != 'undefined')
    style.deleteRule = style.removeRule;

  // Проверяем, существуют ли все нужные свойства
  if (typeof style.cssRules == 'undefined' || typeof style.insertRule == 'undefined'
      || typeof style.deleteRule == 'undefined')
    return null;
  else
    return style;
}

function StyleSheet_insertRule(rule, index)
{
  // Выделяем селектор и стиль из параметра
  if (rule.match(/^([^{]+)\{(.*)\}\s*$/))
  {
    this.addRule(RegExp.$1, RegExp.$2, index);
    return index;
  }
  throw "Syntax error in CSS rule to be added";
}

createDOMLoadedEvent(initOnDOMLoaded);
function initOnDOMLoaded(){
	var menu = document.getElementById("main_menu");
	kids = menu.childNodes;
	for(var i=0; i<kids.length; i++){
		if(kids[i].tagName!=='LI'){
			continue;
		}
		if(kids[i].className.lastIndexOf(' selected')!==-1){
			top.document.selected_element = kids[i];
			
			sum_menu_search = kids[i].childNodes;
			for(var k=0; k<sum_menu_search.length; k++){
				if(sum_menu_search[k].tagName!=='UL'){
					continue;
				}
				if(sum_menu_search[k].className=='submenu'){
					top.document.selected_submenu = sum_menu_search[k];
					sum_menu_search[k].style.display = "block";
					break;
				}
			}
		}
	}
	if(top.document.selected_submenu==undefined){
		return;	
	}
	for(var i=0; i<kids.length; i++){
		if(
			(kids[i].tagName!=='LI')||
			(kids[i]==top.document.selected_element)
		){
			continue;
		}
		addHandler(kids[i],'mouseover',function(e){top.document.selected_submenu.style.display="none"; return!1;});	
		addHandler(kids[i],'mouseout',function(e){top.document.selected_submenu.style.display="block"; return!1;});	
	}
	var style = addStyleSheet();
	style.insertRule('.selected .submenu{display:block;}', style.cssRules.length);
}