// Выпадающее текстовое меню.

// Высота линейки меню (нужно подогнать под размер шрифта)
var menuLineHeight = 22;
// Цвет основной линейки (выделенный)
var menuMainSelected = "#EFDFAE";
// Цвет основной линейки (не выделенный)
var menuMainNonSelected = "#EFDFAE";
// Цвет выпадающего меню (выделенный)
var menuItemSelected = "#E7D7A5";
// Цвет выпадающего меню (не выделенный)
var menuItemNonSelected = "#E7D7A5";
// Цвет окантовки выпадающего меню
var menuBorderColor = "#D3A457";
// Цвет разделителя на основной линейке
var menuSeparatorColor = "#D3A457";
// Класс шрифта на основной линейке (ссылка)
var menuA1Class = "nav_main";
// Класс шрифта на выпадающем меню (ссылка)
var menuA2Class = "nav_main_item";
// Класс фона меню
var menuA3Class = "nav_background";
// Класс рамки
var menuA4Class = "nav_border";
// Класс разделителей
var menuA5Class = "nav_separator";


// -----------------------------------------------------------------------
var currentDraw = 0;
var currentSubDraw = 0;

var menuHeaders = new Array();
var menuLinks   = new Array();

d=document;

var breakHideAll = null;
var timerRunning = false;




function drawDivTop(n) {
//начинает формировать div для кажого нового меню
  d.write('<div ID=menu',n,' style="z-index:99;top:53;position:absolute;visibility:hidden;" onMouseOver="showMenu(',n,');" onMouseOut="doMouseOut(',n,');">');
  d.write('<table cellspacing=0 cellpadding=0 border=0><tr><td class=',menuA4Class,'><table border=0 cellspacing=0 cellpadding=3>');
}



function newMenu(name2,lnk) {
//обрабатывает входной параметр, формирует массив названий menuHeaders и линков  menuLinks
//и создает div для кажого нового меню (функция drawDivTop)
  if ( !lnk ) lnk = "#";
  currentSubDraw = 0;
  currentDraw++;
//  re2 = / /gi;
  re2 = " ";
  name = name2.replace(re2,"&nbsp;");
  menuHeaders[currentDraw] = "&nbsp;" + name + "&nbsp;";
  menuLinks[currentDraw] = lnk;
  drawDivTop(currentDraw);
}

function endMenu() {
//заканчиваем меню рисовать
 d.write('</table></td></tr></table>');
 d.write('</div>');
 return false;
}



function newMenuItem(lnk,hrf,txt2,target) {
//  re = / /gi;
//обрабатываем имя и таргет
  re = " ";
  txt=txt2.replace(re,"&nbsp;");
  txt="&nbsp;" + txt + "&nbsp;";
  currentSubDraw++;
  if ( target == null ) trg = "";
  else trg = "target="+target;



//рисуем содержимое меню
    if (hrf != null)
      d.write('<tr><td border=0 class="',menuA3Class,' ',menuA4Class,'" name=submenuTD',currentDraw,'_',currentSubDraw,
//    ' onMouseOver="this.style.backgroundColor=\''+menuItemSelected+'\'"',
//    ' onMouseOut="this.style.backgroundColor=\''+menuItemNonSelected+'\'"',
      ' onClick="',lnk,'"',
      ' valign=top><a class=',menuA2Class,' href="',hrf,'" ',trg,'>',txt,'</a></td></tr>');
    else
      d.write('<tr><td border=0 class="',menuA3Class,' ',menuA4Class,'" name=submenuTD',currentDraw,'_',currentSubDraw,
      ' valign=top class=',menuA2Class,'>',txt,'</td></tr>');

return false;
}

function drawMenu() {
//рисуем 
  d.write("<table border=0 cellspacing=0 cellpadding=0 class=",menuA3Class,"><tr>");
  for( var i = 1; i <= currentDraw; i++ ) {
    if ( i != 1 ) drawMenuSeparator();
    drawMenuPart(i,menuHeaders[i],menuLinks[i]);
  }
  d.write("</tr></table>");
return false;
}


function drawMenuSeparator() {
//разделитель меню
  d.write("<td class=",menuA5Class," width=1><img src='' width=1 height=1></td>");
return false;
}

function drawMenuPart(n,txt,lnk) {
//основная строка меню
    d.write("<td id=menuTD",n," onMouseOver='displayMenu(",n,",relPosXX(this),relPosYY(this));' onMouseOut='doMouseOut(",n,");'>");
    d.write("<nobr>&nbsp;<a href=",lnk," class=",menuA1Class,">");
    d.write(txt,"</a>&nbsp;</nobr>");
    d.write("</td>");
return false;
}

function relPosXX(elem) {
//расчет позиции всплывающего меню
    var pos=elem.offsetLeft;
    while ( elem.offsetParent != null ) 
    {
      elem=elem.offsetParent;
      pos+=elem.offsetLeft;
      if ( elem.tagName == 'BODY' ) break;
    }
	var elem = document.getElementById('center_div');
    var pos1 = elem.offsetLeft;
	pos -= pos1;

	return pos;
}

function relPosYY(elem) {
    var pos=elem.offsetTop + menuLineHeight;
    while ( elem.offsetParent != null ) {
      elem=elem.offsetParent;
      pos+=elem.offsetTop;
      if ( elem.tagName == 'BODY' ) break;
    }
  return pos;
}




function displayMenu(n,x,y) {
//показывает меню в нужном месте
	doMouseOver(n);
    m = d.getElementById("menu"+n);
    m.style.visibility='visible';
    m.style.left=x;
    m.style.top=y;
    m = d.getElementById("menuTD"+n);
//    m.style.backgroundColor=menuMainSelected;
return false;
}


function showMenu(n) {
//не дает меню исчезнуть
	doMouseOver(n);
    m = d.getElementById("menu"+n);
    m.style.visibility='visible';
    m = d.getElementById("menuTD"+n);
//    m.style.backgroundColor=menuMainSelected;
return false;
}

function hideMenu(n) {
//прячет нужное меню
    m = d.getElementById("menu"+n);
    m.style.visibility='hidden';
    m = d.getElementById("menuTD"+n);
//    m.style.backgroundColor=menuMainNonSelected;
return false;
}

function hideMenuall(n) {
//прячет все меню
  for( var i = 1; i <= currentDraw; i++ ) {
	hideMenu(i);
	}
return false;
}


function doMouseOut(n) {
//задержка перед исчезновением меню
        breakHideAll =  setTimeout('hideMenuall(1)', 300);
        timerRunning = true;
return false;
}

function doMouseOver(n){
//Очищает таймер и не дает убрать слоя
        if (timerRunning) clearTimeout(breakHideAll);
	hideMenuall(n);
}

