window.addEvent('domready', function() {
  //hmenu
  $('hmenu_1').addEvent('mouseover', function(){GenHrefBackground(1,true);});
  $('hmenu_1').addEvent('mouseout', function(){GenHrefBackground(1,false);});
  $('hmenu_2').addEvent('mouseover', function(){GenHrefBackground(2,true);});
  $('hmenu_2').addEvent('mouseout', function(){GenHrefBackground(2,false);});
  $('hmenu_3').addEvent('mouseover', function(){GenHrefBackground(3,true);});
  $('hmenu_3').addEvent('mouseout', function(){GenHrefBackground(3,false);});
  $('hmenu_4').addEvent('mouseover', function(){GenHrefBackground(4,true);});
  $('hmenu_4').addEvent('mouseout', function(){GenHrefBackground(4,false);});
  $('hmenu_5').addEvent('mouseover', function(){GenHrefBackground(5,true);});
  $('hmenu_5').addEvent('mouseout', function(){GenHrefBackground(5,false);});
  //marquee
  if (document.getElementsByTagName('H1')[0].innerHTML=='Электротовары')
  {
    mtMarquee = new Fx.Tween('runner', {duration: 15000});
    RunMarquee();
  }
  //search link
  $('search_submit').addEvent('click', function(){$('search').submit(); return false;});
  //catalogue
  //var destroy = function(){return ReDrawCatalogue(this);}
  //var boundDestroy = destroy.bind(this);
  //$$('a.menuitem','a.menusub').addEvent('click', boundDestroy);
  $$('a.menuitem','a.menusub').addEvent('click', function(){return ReDrawCatalogue(this);});
  $$('.switcher').addEvent('click', function(){return Switcher(this);});
});

var MenuHoverArray = new Array();
      MenuHoverArray ={
        1: ["hmenu_1", "but1_kat_r.gif", "but_cap_r_r.gif", null, null],
        2: ["hmenu_2", "but2_chay_r.gif", "but_cap_r_r.gif", null, null],
        3: ["hmenu_3", "but3_inf_r.gif", "but_cap_r_r.gif", null, null],
        4: ["hmenu_4", "but5_prok_r.gif", "but_cap_r_r.gif", null, null],
        5: ["hmenu_5", "but6_cont_r.gif", "but_cap_r_r.gif", null, null]};
var myRE=/([a-z0-9_\.]+)$/;
var signRE=/([a-z_\.]+)$/;
var bgRE=/menulight|menudark/;

//генерит имги при ховерах для горизонтального меню
function GenHrefBackground(SenderID,HoverDirection)
{
  if ((!HoverDirection) && (!MenuHoverArray[SenderID][3])) return false;
  if (HoverDirection)
  {
    //кэширование src имгов (для неактивных пунктов меню)
    ImgSrcLeft=getFirst(getObject(MenuHoverArray[SenderID][0])).src;
    tmpLeft=myRE.exec(ImgSrcLeft);
    MenuHoverArray[SenderID][3]=tmpLeft[0];
    ImgSrcRight=getNext(getFirst(getObject(MenuHoverArray[SenderID][0]))).src;
    tmpRight=myRE.exec(ImgSrcRight);
    MenuHoverArray[SenderID][4]=tmpRight[0];
    //замена src имгов
    getFirst(getObject(MenuHoverArray[SenderID][0])).src='/_img_base/'+MenuHoverArray[SenderID][1];
    getNext(getFirst(getObject(MenuHoverArray[SenderID][0]))).src='/_img_base/'+MenuHoverArray[SenderID][2];
  }
  else
  {
    //замена src имгов на кэшированные
    getFirst(getObject(MenuHoverArray[SenderID][0])).src='/_img_base/'+MenuHoverArray[SenderID][3];
    getNext(getFirst(getObject(MenuHoverArray[SenderID][0]))).src='/_img_base/'+MenuHoverArray[SenderID][4];
  }
}

//бегущая строка
function RunMarquee()
{
  var tmpWidth=document.getElementsByTagName('body')[0].clientWidth-222-205;
  mtMarquee.start('right', tmpWidth+'px;');
}

//отрисовка каталога в js
function ReDrawCatalogue(targetObj)
{
  //сразу убираем фокус
  targetObj.blur();
  //получаем имг на знаке
  tmpImg=signRE.exec(getFirst(targetObj).src);
  //-----------------------------------------------------------------если точка-
  //сразу переходим по линку, без js-обработки
  if ((tmpImg[0]=='dot.gif') || (tmpImg[0]=='dot_small.gif')) return true;
  //---------------------если нет - запускаем аякс-обработку и возвращаем false-
  //добываем цвет стартового линка
  tmpBG=bgRE.exec(targetObj.className);
  //запоминаем targetObj
  var funcObj = arguments.callee;
  funcObj.targetObj = targetObj;
  //задаем стартовый урль в зависимости от цвета полоски
  if (tmpBG=='menulight') var url=targetObj.href+'?ajax=1&colour=1';
  else var url=targetObj.href+'?ajax=1';
  //делаем реквест
  sendRequest(url, ContinueReDraw, ProcessAjaxError);
  return false;
}

function ContinueReDraw(answer, flag)
{
  var funcObj = arguments.callee;
  funcObj.container = funcObj.container || document.createElement('DIV');
  var targetObj=ReDrawCatalogue.targetObj;
  if ((flag) && (answer[0]==0))
  {
    alert("error");
    return;
  }
  //-----------------------------------общее для остальных вариантов обработок:-
  //покраска линка
  resetInactive($$('a.inactive'));
  if (targetObj.className=='menuitem cat') targetObj.className='menuitem cat inactive';
  if (targetObj.className=='menusub menudark cat') targetObj.className='menusub menudark cat inactive';
  if (targetObj.className=='menusub menulight cat') targetObj.className='menusub menulight cat inactive';
  //определяем paddingLeft вызывающего элемента
  var tmpPaddingLeft=Any2Int(targetObj.style.paddingLeft,0);
  //-----------------------------------------------------------------если минус-
  if (!flag)
  {
    //удаляем из dom-дерева все дочерние ветви
    var currObj=getNext(targetObj);
    var currPaddingLeft=tmpPaddingLeft+1;
    while (currPaddingLeft>tmpPaddingLeft)
    {
      //обработка для 1 уровня и декоративных элементов
      if (((currObj.className=='menutop menubars cat') || (currObj.className=='menubottom menubars cat')) && (tmpPaddingLeft==0))
        killIt=true;
      else currPaddingLeft=Any2Int(currObj.style.paddingLeft,0);
      if ((currPaddingLeft>tmpPaddingLeft) || killIt)
      {
        currObjDeleted=currObj;
        currObj=getNext(currObj);
        currObjDeleted.parentNode.removeChild(currObjDeleted);
      }
      killIt=false;
    }

    if (tmpPaddingLeft != 0) RestoreStripes(targetObj); //перекраска саб-пунктов в полосочку
    //замена знака на линке
    getFirst(targetObj).src=getFirst(targetObj).src.replace('minus','plus');
    //заменяем href
    targetObj.href=targetObj.href.replace(/1\/$/g, '');
    //пририсовываем заголовок в h1
    document.getElementsByTagName('H1')[0].innerHTML='Каталог товаров';
    //очищаем контент-поле
    $('content').innerHTML="";
  }
  //------------------------------------------------------------------если плюс-
  else
  {
    //здесь ответ уже содержит готовый html-код куска каталога
    var tmpAnswer=answer[0].replace(/^\s+/g, '');
    tmpAnswer=tmpAnswer.replace(/\s*\n+\s*/g, '');
    funcObj.container.innerHTML=tmpAnswer;
    beforeObj=getNext(targetObj);
    var tmpLength=funcObj.container.childNodes.length-1;//убиваем menuspace
    for (i=0;i<tmpLength;i++) getParent(targetObj).insertBefore(funcObj.container.childNodes[0], beforeObj);
    $$('a.menuitem','a.menusub').removeEvents();
    $$('a.menuitem','a.menusub').addEvent('click', function(){return ReDrawCatalogue(this);});
    //замена знака на линке
    getFirst(targetObj).src=getFirst(targetObj).src.replace('plus','minus');
    //заменяем href
    targetObj.href=targetObj.href+'1/';
    //--перерисовка полосочек ниже по каталогу
    if (tmpPaddingLeft != 0) RestoreStripes(getPrev(beforeObj)); //перекраска саб-пунктов в полосочку
    //пририсовываем заголовок в h1
    document.getElementsByTagName('H1')[0].innerHTML=targetObj.title;
    //заполнить данными аякса контент-поле
    $('content').innerHTML=answer[1];
  }
}

function ProcessAjaxError(errText)
{
  alert(errText);
}

function resetInactive(objArray)
{
  for (i=0; i<objArray.length; i++)
  {
    if (objArray[i].className=='menuitem cat inactive') objArray[i].className='menuitem cat';
    if (objArray[i].className=='menusub menudark cat inactive') objArray[i].className='menusub menudark cat';
    if (objArray[i].className=='menusub menulight cat inactive') objArray[i].className='menusub menulight cat';
  }
}

//восстанавливает очередность полосочек на линках
function RestoreStripes(targetObj)
{
  var tmpClassBGColor=bgRE.exec(targetObj.className);
  currObj=getNext(targetObj);
  var currClassBGColor=bgRE.exec(currObj.className);
  currPaddingLeft=1;
  while (currPaddingLeft!=0)
  {
    if (escape(currClassBGColor) != escape(tmpClassBGColor)) break;
    if (currClassBGColor=='menulight')
    {
      tmpClassBGColor='menudark';
      currObj.className=currObj.className.replace('menulight','menudark');
    }
    else
    {
      tmpClassBGColor='menulight';
      currObj.className=currObj.className.replace('menudark','menulight');
    }
    currObj=getNext(currObj);
    currClassBGColor=bgRE.exec(currObj.className);
    currPaddingLeft=Any2Int(currObj.style.paddingLeft,0);
  }
}

function Switcher(senderObj)
{
  senderObj.blur();
  var targetObj=getObject(senderObj.id+'_target');
  if (targetObj)
  {
    if (targetObj.style.display=='block') targetObj.style.display='none';
    else targetObj.style.display='block';
  }
  return false;
}