function create_ajax(){
  if(window.XMLHttpRequest){
    return new XMLHttpRequest();
  } else if(window.ActiveXObject) {
    var _vr=['MSXML2.XMLHttp.5.0','MSXML2.XMLHttp.4.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
    for(var i=0;i<_vr.length;i++)
    try {
      var q=new ActiveXObject(_vr[i]);
      if(q!=undefined&&q!=null) return q;
    } catch(e){};
  };
  return undefined;
};

function addNewEvent(eve,func,obj) {
  obj=obj||document.documentElement||document.body;
  var oldEvent=obj[eve];
  if(!oldEvent) oldEvent=obj['on'+eve];
  if(obj.addEventListener)obj.addEventListener(eve,func,false);
  else if(obj.attachEvent) obj.attachEvent('on'+eve,func);
  else {
    if(typeof(oldEvent)=='function') obj['on'+eve]=function(e){
      var r=oldEvent(e);
      if(r===true||r==undefined||r===1)return func(e);
      else return false;
    };
    else obj['on'+eve]=func;
  };
};

$(document).ready(function(){$('code').each(function(){$(this).html($.trim($(this).html()));});
$('.lightbox').lightbox({fileLoadingImage:'/limages/loading.gif',fileBottomNavCloseImage:'/limages/closelabel.gif'});});

var actions = {
  tabs: [],
  current: null,
  _prev: '<a href="javascript:void(0)" class="a-back" title="Показать предыдущий товар"></a>',
  _next: '<a href="javascript:void(0)" class="a-next" title="Показать следующий товар"></a>',
  get: function(nm) {
    var s = document.cookie;
    var i = s.indexOf(nm+'=');
    if (i<0) return '';
    s = s.substr(i+nm.length+1);
    i = s.indexOf(';');
    return (i<0)?s:s.substr(0,i);
  },
  init: function() {
    var c = actions.get('actioncurrent');
    if (c) c = c.split(',');
    for (var i=0;i<actions.tabs.length;i++) {
      var cc = (i<c.length)?parseInt(c[i]):-1;
      actions.createTab(i,cc,actions.get('actionopened'));
    }
    addNewEvent('scroll',actions.updatePos,window);
    addNewEvent('resize',actions.updatePos,window);
  },
  createTab: function(idx,current,opened) {
    var tab = actions.tabs[idx];
    tab.opened = (opened==tab.id);
    tab.moving = false;
    tab.current = (current==0||current>0)?Math.min(current,tab.items.length-1):-1;
    tab.query = create_ajax();
    tab.mouseover = false;
    tab.loaded = false;
    tab.move = function() {
      tab.moving = true;
      var d = (tab.opened)?-10:10;
      var l = Math.max(-225,Math.min(0,parseInt(tab.ul.style.marginLeft)+d));
      tab.ul.style.marginLeft = l.toString()+'px';
      if (l>-225&&l<0) setTimeout(tab.move,20);
      else {
        tab.moving = false;
        tab.ul.firstChild.firstChild.title=((tab.opened)?'Скрыть акции ':'Показать акции ')+tab.name;
      }
    }
    tab.open = function() {
      if (actions.current&&actions.current!=tab) actions.current.close();
      tab.opened = true;
      tab.ul.style.zIndex = 80;
      actions.current = tab;
      document.cookie='actionopened='+tab.id+'; ';
      if (!tab.loaded) if (tab.current>-1) setTimeout(tab.update,0); else setTimeout(tab.next,0); else tab.timer = setTimeout(tab.next,5000);
      if (!tab.moving) setTimeout(tab.move,0);
    }
    tab.close = function() {
      if (tab.timer) { clearTimeout(tab.timer); tab.timer = 0; tab.query.abort(); }
      tab.opened = false;
      tab.ul.style.zIndex = tab.zIndex;
      document.cookie='actionopened=!; ';
      if (!tab.moving) setTimeout(tab.move,0);
    }
    tab.loader = function(s) {
      if (s) {
        if (tab.ul.lastChild.className=='a-loader') return;
        var d = document.createElement('li');
        d.className = 'a-loader';
        tab.ul.appendChild(d);
      } else if (tab.ul.lastChild.className=='a-loader') tab.ul.removeChild(tab.ul.lastChild);
    }
    tab.next = function() {
      tab.current++;
      if (tab.current>=tab.items.length) tab.current = 0;
      tab.loaded = false;
      tab.update();
    }
    tab.prev = function() {
      tab.current--;
      if (tab.current<0) tab.current = tab.items.length-1;
      tab.loaded = false;
      tab.update();
    }
    tab.update = function() {
      if (tab.timer) { clearTimeout(tab.timer); tab.timer = 0; tab.query.abort(); }
      var lbox=document.getElementById('lightbox');
      lbox=(lbox)?(lbox.style.display!='none'):false;
      if ((tab.mouseover&&tab.loaded)||lbox) { tab.timer = setTimeout(tab.update,5000); return; }
      if (tab.mouseover) tab.loader(true);
      tab.loaded = false;
      tab.query.onreadystatechange=function(){
        if(tab.query.readyState==4) {
          if(tab.query.status==200){
            if (tab.timer) { clearTimeout(tab.timer); tab.timer = 0; }
            tab.loader(false);
            tab.loaded = true;
            var data=document.createElement('LI');
            data.className='a-data';
            data.innerHTML=tab.query.responseText+((tab.items.length>1)?actions._prev+actions._next:'');
            var o=0;
            var ofn=function() {
              if(document.all) data.style.filter='alpha(Opacity='+o.toString()+')';
              else data.style.opacity=o/100;
              o+=10;
              if(o==10) {
                tab.ul.appendChild(data);
                if (tab.items.length>1) {
                  addNewEvent('click',tab.next,data.lastChild);
                  addNewEvent('click',tab.prev,data.lastChild.previousSibling);
                }
                var a=data.getElementsByTagName('A');
                $(data.getElementsByTagName('A')[0]).lightbox({fileLoadingImage:'/limages/loading.gif',fileBottomNavCloseImage:'/limages/closelabel.gif'});
                setTimeout(ofn,0);
              } else if(o>100)  {
                tab.ul.removeChild(tab.data);
                tab.data=data;
              } else setTimeout(ofn,50);
            }
            setTimeout(ofn,0);
            if (tab.items.length>1) tab.timer = setTimeout(tab.next,5000);
            var s = '';
            for (var i=0;i<actions.tabs.length;i++) s += ((i>0)?',':'')+actions.tabs[i].current;
            document.cookie='actioncurrent='+s+'; ';
          }
        }
      }
      tab.timer = setTimeout(tab.update,15000);
      tab.query.open('GET','/catalog/gaction.php?id='+tab.items[tab.current],true);
      tab.query.send(null);
    }
    tab.ul = document.createElement('UL');
    tab.ul.style.marginTop = (idx*100).toString()+'px';
    tab.ul.style.marginLeft = (opened==tab.id)?'-225px':'0';
    tab.zIndex = (80+actions.tabs.length-idx);
    tab.ul.style.zIndex = (opened==tab.id)?80:tab.zIndex;
    tab.ul.className = 'a-block' + (idx%2);
    tab.ul.innerHTML = '<li class="a-tab"><a href="javascript:void(0)" onclick="actions.switchTab('+idx.toString()+')" title="Показать акции '+tab.name+'"><i style="background-image:url(/items/icons/'+tab.id+'.gif)"></i><b></b></a></li><li class="a-data"></li>';
    tab.data = tab.ul.lastChild;
    addNewEvent('mouseover',function() { 
      if (tab.loaded&&tab.timer) { clearTimeout(tab.timer); tab.timer = 0; };
      tab.mouseover = true; 
    },tab.ul);
    addNewEvent('mouseout',function() { 
      if (tab.items&&tab.items.length>1&&tab.loaded&&!tab.timer) tab.timer = setTimeout(tab.next,5000);
      tab.mouseover = false; 
    },tab.ul);
    document.getElementById('content').appendChild(tab.ul);
    if (opened==tab.id) {
      actions.current = tab;
      setTimeout(tab.update,0);
    }
  },
  switchTab: function(idx) { 
    var tab = actions.tabs[idx];
    if (tab.opened) tab.close(); else tab.open();
  },
  updatePos: function() {
    if (actions.tabs.length==0) return;
    var y = self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
    y = Math.max(0,y-280).toString()+'px';
    for (var i=0;i<actions.tabs.length;i++) actions.tabs[i].ul.style.top = y;
  }
}
function create_actions() {
  if (actions.tabs.length>0) return;
  // Запросим список доступных акций
  var q = create_ajax();
  q.onreadystatechange=function(){
    if(q.readyState==4&&q.status==200){
      eval(q.responseText);
      // Создадим закладки акций
      if (actions.tabs.length>0) actions.init();
    };
  };
  q.open('GET','/catalog/gaction.php',true);
  q.send(null);
};
