
// Выпадающее текстовое меню.

// Высота линейки меню (нужно подогнать под размер шрифта)
var menuLineHeight = 25;
// Цвет основной линейки (выделенный)
var menuMainSelected = "#e1e3e8";
// Цвет основной линейки (не выделенный)
var menuMainNonSelected = "#9da1a8";
// Цвет выпадающего меню (выделенный)
var menuItemSelected = "#e1e3e8";
// Цвет выпадающего меню (не выделенный)
var menuItemNonSelected = "#e1e3e8";
// Цвет окантовки выпадающего меню
var menuBorderColor = "#e1e3e8";
// Цвет разделителя на основной линейке
var menuSeparatorColor = "#cbced4";
// Класс шрифта на основной линейке (ссылка)
var menuA1Class = "nav_main";
// Класс шрифта на выпадающем меню (ссылка)
var menuA2Class = "nav_main_item";
// -----------------------------------------------------------------------
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,nosubmenu) {
//начинает формировать div для кажого нового меню
  d.write('<div ID=menu',n,' style="z-index:99;top:53;position:absolute;visibility:hidden;" onMouseOver="showMenu(',n,');" onMouseOut="doMouseOut(',n,');">');
  if (nosubmenu==0) d.write('<table cellspacing=0 cellpadding=0 border=0 ><tr><td bgcolor=',menuBorderColor,' style="padding:10px;"><table border=0 cellspacing=0 cellpadding=0>');
}



function newMenu(name2,lnk,nosubmenu) {
//обрабатывает входной параметр, формирует массив названий 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,nosubmenu);
}

function endMenu(nosubmenu) {
//заканчиваем меню рисовать
  if (nosubmenu==0)  d.write('</table>');
d.write('</td></tr></table>');
 d.write('</div>');
 return false;
}

function dopMenuItemBlock() {
//заканчиваем меню рисовать
 d.write('</table></td><td valign="top" bgcolor=',menuBorderColor,'  style="padding:10px;"><table border=0 cellspacing=0 cellpadding=0>');
 return false;
}


function newMenuItem(lnk,hrf,txt2,target) {
//  re = / /gi;
//обрабатываем имя и таргет
  re = " ";
  txt=txt2.replace(re,"&nbsp;");
  txt="&nbsp;&nbsp;" + txt + "&nbsp;";
  currentSubDraw++;
  if ( target == null ) trg = "";
  else trg = "target="+target;



//рисуем содержимое меню
    if (hrf != null)
      d.write('<tr><td bgcolor=',menuItemNonSelected,' name=submenuTD',currentDraw,'_',currentSubDraw,
      ' onMouseOver="this.style.backgroundColor=\''+menuItemSelected+'\'"',
      ' onMouseOut="this.style.backgroundColor=\''+menuItemNonSelected+'\'"',
      ' onClick="',lnk,'"',
      ' valign=top style="padding:0px;"><a class=',menuA2Class,' href="',hrf,'" ',trg,'>',txt,'</a></td></tr>');
    else
      d.write('<tr><td bgcolor=',menuItemNonSelected,' name=submenuTD',currentDraw,'_',currentSubDraw,
      ' valign=top class=',menuA2Class,'>',txt,'</td></tr>');

return false;
}

function drawMenu() {
//рисуем 
  d.write("<table border=0 cellspacing=0 cellpadding=0 bgcolor=",menuMainNonSelected,"><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 bgcolor=",menuSeparatorColor," width=1><img src='' width=1 height=1></td>");
  d.write("<td width=1 valign='middle'><img src='/designe/menu_delimiter.jpg'></td>");
return false;
}


//dem
function drawMenuPart(n,txt,lnk) {
//основная строка меню
    d.write("<td class=",menuA1Class," height=",menuLineHeight," id=menuTD",n," onMouseOver='displayMenu(",n,",relPosXX(this),relPosYY(this));' onMouseOut='doMouseOut(",n,");'>");
    d.write("<nobr>&nbsp;<a href=",lnk," >");
    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;
    }
  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+'px';
    m.style.top=y+'px';
    m = d.getElementById("menuTD"+n);
    m.style.backgroundColor=menuMainSelected;
    m.className='nav_main1';
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;
    m.className='nav_main1';

return false;
}

function hideMenu(n) {
//прячет нужное меню
    m = d.getElementById("menu"+n);
    m.style.visibility='hidden';
    m = d.getElementById("menuTD"+n);
    m.style.backgroundColor=menuMainNonSelected;
    m.className='nav_main';

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);
}

