//
// МОДУЛЬ ДЛЯ РАБОТЫ С ПЛАВАЮЩИМИ ЭЛЕМЕНТАМИ УПРАВЛЕНИЯ
//

//     Ф-ия устанаваливает параметр слою(не зависимо от Браузера)
//▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
function L_SET(Name, Param, Val)
{
  if(navigator.appName.indexOf("Microsoft")!=-1) // IE
  {
    if(Val=='\'show\'') Val='\'visible\'';
    eval('document.all("'+Name+'").style.'+Param+'='+Val);
  }
  else                                           // NN
  {
    eval('document.'+Name+'.'+Param+'='+Val);
  }
}

//     Ф-ия возвращает параметр слоя(не зависимо от Браузера)
//▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
function L_GET(Name, Param)
{ if(navigator.appName.indexOf("Microsoft")!=-1) // IE
  {
    return eval('document.all("'+Name+'").style.'+Param);
  }
  else                                           // NN
  {
    return eval('document.'+Name+'.'+Param);
  }
}

var on=Array(-1,0,0,0,0); // флаги включенности всех подменю
var height=Array(-1,125,99,99,47); // высота всех подменю
//var top=134; // верхняя точка всех слоев

var step=Array(1,1); // шаг приращений
var stepK=Array(2.135, 2.135); // коеф. шага приращений
var stepN=Array(10,10); // сколько осталось шагов в текущ. сост.
var stepNDef=Array(10,10); // сколько осталось шагов в предыд. сост.
var y=Array(1,1);    // текущ. координата
var go=0;   // флаг, что уже двигаемся
var Time=0;

//     Ф-ия вычисляет высоту меню
//▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
function MenuHeight()
{
  H=20*4; // открытые верхние меню
  if(on[1]) H+=height[1];
  return H;
}

//     Ф-ия позиционирует лайерсы относит. окна
//▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
function PosLayer()
{
  var Pause, up, to/*куда двигаемся*/, from/*откуда двигаемся*/, step/*шаг приращений*/;
  Pause=40;

  if(document.body && !isNaN(document.body.scrollTop)) up=document.body.scrollTop;
  else                                                 up=top.pageYOffset;
  if(isNaN(up)) return;

  if(window.innerHeight) WndH=window.innerHeight;
  else                   WndH=document.body.clientHeight;

//  to=up+144;
  if(up<127) to=127; // 127 - отступ сверху
  else       to=up+127-100;

  // корректируем изменение, чтобы слои не вылазили за бласть страницы
  if(document.body)
  { // точим для IE
    if(to+MenuHeight()+90>=document.body.scrollHeight) // 80 - размер логотипа
    {
      to=document.body.scrollHeight-MenuHeight()-90;
    }
  }

  from=L_GET("mainmenu", "top"); /**/ from=parseInt(from, 10);
  if(from!=to)
  {
    step = Math.ceil( Math.abs( to - from ) / 6 );
    if(to<from) step=-step;
    // производим изменения
    from=L_GET("mainmenu", "top"); /**/ from=parseInt(from, 10);
    L_SET("mainmenu", "top", from+step);
  }
  setTimeout ("PosLayer();", Pause);
}

var left=-1; // смещение слоев относительно таблицы
var left2=187; // смещение слоев относительно таблицы
var left3=204; // смещение слоев относительно таблицы
var left4=-30; // смещение слоя ВВЕРХ относительно прав. края таблицы
var num=1; // кол-во слоев.

//     Ф-ия вычисляет, где должны находиться иконки "вверх и вниз"
//▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
function SetOffsets(type)
{
  if(window.innerHeight) WndH=window.innerHeight;
  else                   WndH=document.body.clientHeight;
  if(document.body && document.body.clientWidth) wWidth=document.body.clientWidth;
  else                                           wWidth=window.innerWidth;
  tWidth=774;
  if(wWidth<tWidth) wWidth=tWidth;
  dif=0; // для NN
  if(!document.body)
  {
    if(wWidth!=tWidth) dif=-8;
  }
  // корректируем слои меню
  L_SET("mainmenu", "visibility", '\'show\'');
  L_SET("mainmenu", "left", 1);
  // запускаем анимацию
  Time=new Date();
  if(type==1) PosLayer();
}

// ───────────────────────────── End of File ────────────────────────────────

