var dropmenu = document.createElement("div"); //создаём тэг div куда поместим подменю
var over_head = false; // переменные для определения, держит ли
var over_menu = false; // пользователь мышку на главном или выпавшем меню или нет

// отличная функция, определяющая точные координаты элемента, независимо в каком тэге находится меню. Работает во всех браузерах.
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
// возвращает левую и верхнюю позицию в массиве
return [curleft,curtop];
}

function ns_menushow(menu_head, string_params) { // функция показа меню
var positions = findPos(menu_head); //получаем точную координату элемента
var left = positions[0] - 1; // присваеваем координату переменной left
var top = positions[1] + menu_head.offsetHeight + 1; // присваеваем координату переменной top, но добавляем высоту горизонтального меню.
var params = string_params.split('|'); // делим строку с параметрами напункты меню
var html = "";
for (i=0; i < params.length; i++){ // в цикле делим пункты меню
title = params[i].split('='); // на заголовки и адреса и генерируем ссылки
html += "<a href='" + title[1] + "'>" + title[0] + "";
}
document.body.appendChild(dropmenu); // помещаем div на страницу
dropmenu.innerHTML = html; // помещаем в него ссылки
dropmenu.style.left = left + "px"; // задаём левую позицию
dropmenu.style.top = top + "px"; // задаём верхнюю позицию
dropmenu.id = 'ns_dropmenu'; // называем
over_head = true; // а здесь говорим: курсор находится на заголовке меню
}

dropmenu.onmouseover = function(){ // если наводим курсор на выпавшее меню
over_menu = true;
}




dropmenu.onmouseout = function(){ // если убираем курсор с выпавшего меню
over_menu = false;
//var tim = setTimeout("ns_clear()", 1500); // через полторы минуты запускаем функцию удаления выпадающего меню
var tim = setTimeout("ns_clear()", 1); // через полторы минуты запускаем функцию удаления выпадающего меню
}




var tim;
function ns_clear(){
var dropmenu = document.getElementById('ns_dropmenu');
if(!over_menu && !over_head && dropmenu){
// если курсора нет ни на главном меню ни на выпадающем и вообще существует выпадающее меню, то удаляем его.
document.body.removeChild(dropmenu);
clearTimeout(tim);
}
}




function ns_menuhide(){ // если убираем курсор с главного меню
over_head = false;
var tim = setTimeout("ns_clear()", 1500); // через полторы минуты запускаем функцию удаления выпадающего меню
}

