

var LEFT=0;
var RIGHT=0;
var TOP=0;
var WIDTH_IMG = 100;
var HEIGHT_IMG = 94;
var PREFIX_IMG="http://suvenirlogo.ru/images/catalog/icon_";

var PREFIX_LINK="";
var PREFIX_SCRIPT="/";
var BGRND_COLOR="#ffffff";
var LIGHT_COLOR="#C7BCCF";
var SIDE_BGRD_COLOR="#C7BCCF";
var TOP_Z_INDEX=5;
var SCROLL_TYPE=0;
var SCROLL_SPEED=2;
var USE_ACCELERATOR=true;
var ALWAYS_SCROLL = true;
var HORIZ_POSITION = true;
var SIZE_PUPER = 0;
var LOOP_IMAGES = true;

function startSP()
{
  new ScrolliPuper().startSP();
};

var ScrolliPuper=function()
{
  this.startSP=function()
   {
      ai();
       C();
      if(USE_ACCELERATOR)
      {
        id('scrollipuper').onmouseover=M;
        id('scrollipuper').onmousemove=M;
        id('scrollipuper').onmouseout=F;
       }
       setInterval(aD,200);
      };

      function ai()
      {
         width=SIZE_PUPER;
         height=SIZE_PUPER;
         if(SIZE_PUPER<=0)
         {
           width=document.body.clientWidth;
           height=document.body.clientHeight;
         }
         n=HORIZ_POSITION?Math.ceil(width/WIDTH_IMG)+1:Math.ceil(height/HEIGHT_IMG)+1; //если полоса горизонтальная, то количество картинок в один момент:
         w=HORIZ_POSITION?width:height; //общий размер полосы
      };

      function aD()
      {
        if(SIZE_PUPER<=0)
        {
          if(width!=document.body.clientWidth||height!=document.body.clientHeight)//если высота или ширина клиентской части была изменена
          {
             ai();
             av=0;
             C();
           }
         }
       };

      function ag(url) //функция отправки данных
      {
        var l;
        if(window.XMLHttpRequest)
        {
          l=new XMLHttpRequest();
        }
        else if(window.ActiveXObject)
        {
          l=new ActiveXObject("Microsoft.XMLHTTP");
        }
        l.open("GET",url,true);
        return l;
       };



       function C() //функция коннекта
       {
         if(B)return;
         B=true;
         if(!f)idnum++;
         else idnum--;

        if(idnum>COUNT_ID)idnum-=COUNT_ID; //если прошли все варианты конекта, то начинаем идти назад
        if(idnum<=0)idnum+=COUNT_ID;     //если не прошли, идем вперед

        l=ag(PREFIX_SCRIPT+"test.php?page="+idnum.toString()); //вызывваем функцию создание объекта xml и отправки данных, в ответ получаем объкт xml

        l.onreadystatechange=al; //назначаем функцию следящую за статусом
        l.send(null); // разрываем соеденение
       };

  var B=false;
  var pause= !ALWAYS_SCROLL;
  var idnum=0;
  var aH=navigator.userAgent.toLowerCase().indexOf("msie")> -1;
  var width;
  var height;
  var n;
  var av=0;
  var m=new Array();
  var Y;
  var G=1;
  var V=SCROLL_SPEED;
  var w;

     function al() //функция получающая ответ от сервера
     {
       try  //следим за исключенями
       {
         if(l.readyState==4)
         {
            if(l.status==200)//если достучались до скрипта
            {
              var ao=l.responseXML.getElementsByTagName("i"); //получаем строчку, и готовим для дальнейшей обработки
              for(var i=0;i<ao.length;i++)
              {
                if(ao[i]==null||ao[i].childNodes==null||ao[i].childNodes[0]==null)continue;
                var A=ao[i].childNodes[0].firstChild.nodeValue+"_SPRT_"+ao[i].childNodes[1].firstChild.nodeValue;
                if(ao[i].childNodes[2])A+="_SPRT_"+ao[i].childNodes[2].firstChild.nodeValue;m[m.length]=A;
              }
              B=false; //Говорим,что В нет.00
              if(av==0) //если af еще не вызывалось, или вызывалось уже после af(), aD(), то:
              {
                if(m.length<n*COUNT_LINES)C();else af(); //если картинок хватит, чтобы заполнить всю полосу, то вызываем af(), если нет, спрашиваем у сервера еще.
              }
            }
            else //короче если скрипт вернул не ОК
            {
               B=false;
               ax("AJAX status = "+l.status);
            }
          }
        }catch(ex)//если возникло исключение, то пишем его в ех и запускам ае(), говорим,что В нет.
        {
          B=false;ae(ex);
        }
      };


    function ae(ad)
    {
      C();
      if(!(typeof console=='undefined'))console.error(ad);
    };

    function ax(ad)
    {
     if(!(typeof console=='undefined'))console.warn(ad);
    };


    function aB(ad)
    {
     if(!(typeof console=='undefined'))console.info(ad);
    };

    function log(ad)
    {
      if(!(typeof console=='undefined'))console.log(ad);
    };

    var c=0;
    Array.prototype.aI=function()
    {
      var aq=new Array();
      for(var i=this.length-1;i>=0;i--)
      {
        aq[this.length-1-i]=this[i];
      }
      for(var i=aq.length-1;i>=0;i--)
      {
        this[i]=aq[i];
      }
     };

     function aa()
     {
        if(LOOP_IMAGES)
        {
         m.splice(0,1);
         if(m.length<=COUNT_LINES*3)C();
        }
     };

     function ar(j,i) //строим i-тую картинку в j-том ряду.
     {
        var A;
        try
        {
          var t=HORIZ_POSITION?j*HEIGHT_IMG:j*WIDTH_IMG;
          var r=HORIZ_POSITION?i*WIDTH_IMG-WIDTH_IMG:i*HEIGHT_IMG-HEIGHT_IMG;
          var Z=v("div",{id:"divimg"+j.toString()+i.toString(),style:HORIZ_POSITION?"position:absolute;top:"+t+"px; right:"+r+"px;":"position:absolute; left:"+t+"px; bottom:"+r+"px;"});
          var an="";
          var at="";
          var ap="";
          if(m.length>0)
          {
            A=m[c];
            if(!LOOP_IMAGES)if(!f)c--;
            else c++;
            if(c<0)c+=m.length;
            else if(c>=m.length)c-=m.length;
            var I=A.indexOf("_SPRT_",0);
            var T=A.indexOf("_SPRT_",I+1);
            an=PREFIX_IMG+A.substring(0,I);
            if(T!= -1){at=PREFIX_LINK+A.substring(I+6,T);
            ap=A.substring(T+6);
          }
          else
          {
            at=PREFIX_LINK+A.substring(I+6);
            ap="";
          }
          aa();
         }
         widthcart=WIDTH_IMG-14;
         var aA=v("img",{id:"img"+j.toString()+i.toString(),src:an,width:widthcart,height:HEIGHT_IMG,border:"0px"});
         var d=4;
         if(aH)d=0;
         var az=v("div",{id:"selimg"+j.toString()+i.toString(),style:"position:absolute; top:0px; left:0px; width:"+(widthcart-d).toString()+"px; height:"+(HEIGHT_IMG-d).toString()+"px; border-style:double; border-width:2px; border-color:"+LIGHT_COLOR+";display:none;"});
         Z.onmouseover=aw;
         Z.onmouseout=ay;
         var aj=v("a",{id:"aimg"+j.toString()+i.toString(),href:at+'/7/',title:ap});
         aj.appendChild(aA);
         aj.appendChild(az);
         Z.appendChild(aj);
        // alert(j+'-'+i);
         id('mather').appendChild(Z);
       }catch(ex)
       {
         ae(ex);
       }
    };

    function aw(e)
    {
     if(Y)Y.style.display="none";
     Y=id("sel"+this.id.substring(3));
     Y.style.display="";
    };

    function ay(e)
    {
      id("sel"+this.id.substring(3)).style.display="none";
    };

    function af()
    {
      av=1;
      var div=HORIZ_POSITION?v("div",{id:"mather",style:"position:relative; top:"+TOP+"px; left:"+LEFT+"px; width: 100%; height:"+(COUNT_LINES)*HEIGHT_IMG+"px; background:"+BGRND_COLOR+"; z-Index:"+TOP_Z_INDEX+";"}):v("div",{id:"mather",style:"position:relative; top:"+TOP+"px; left:"+LEFT+"px; height:"+height+"px; width:"+(COUNT_LINES)*WIDTH_IMG+"px; background:"+BGRND_COLOR+"; z-Index:"+TOP_Z_INDEX+";"});
      var aE=id("scrollipuper");
      while(aE.hasChildNodes())//пока у нашего дива есть дочерние элементы(очищаем полосу прокрутки)
      {
        aE.removeChild(aE.firstChild); //удаляем следующий дочерний элемент
      }
      aE.appendChild(div); //помещаем созданнай нами див, на страницу
      for(var j=0;j<COUNT_LINES;j++) //крутим для каждой линии нашей полосы
      {
        for(var i=0;i<(LOOP_IMAGES?n:m.length);i++)// если LOOP_IMAGES, то крутим до числа картинок в одной линии, если нет, то до размера массива с ссылками.
        {
           ar(j,i);//строим для нашей позиции картинку
        }
      }
      var aG=HORIZ_POSITION?v("div",{id:"left",style:"position:absolute; top:0px; left:-"+LEFT+"px; width:"+LEFT+"px; height:"+COUNT_LINES*HEIGHT_IMG+"px; background:"+SIDE_BGRD_COLOR+"; z-Index:"+TOP_Z_INDEX+";"}):v("div",{id:"left",style:"position:absolute; left:0px; top:"+TOP+"px; height:"+TOP+"px; width:"+COUNT_LINES*WIDTH_IMG+"px; background:red; z-Index:"+TOP_Z_INDEX+";"});
      var aF=HORIZ_POSITION?v("div",{id:"right",style:"position:absolute; top:0px; right:-"+RIGHT+"px; width:"+RIGHT+"px; height:"+COUNT_LINES*HEIGHT_IMG+"px; background:"+SIDE_BGRD_COLOR+"; z-Index:"+TOP_Z_INDEX+";"}):v("div",{id:"right",style:"position:absolute; left:0px; bottom:-"+BOTTOM+"px; height:"+BOTTOM+"px; width:"+COUNT_LINES*WIDTH_IMG+"px; background:red; z-Index:"+TOP_Z_INDEX+";"});
      D();
    };


    function id(name)
    {
      return document.getElementById(name);
    };

    function add(as,aC)
    {
      id(aC).appendChild(as);
    };

    function ah()
    {
      if(typeof SCROLL_SPEED=='undefined')return;
      V=SCROLL_SPEED;G=1;pause=true;
    };



    function F()//выход мыши с полосы
    {
      if(typeof SCROLL_SPEED=='undefined')return;
      V=SCROLL_SPEED;
      G=1;
      pause=ALWAYS_SCROLL?false:true;
    };




    function U(d,s)
    {
      G=d;
      V=s;
      pause=false;
      if(SCROLL_TYPE==0)f=true;
      else f=false;
     };

     function X()
     {
       U(1,SCROLL_SPEED);
     };

     function R()
     {
       U(1,SCROLL_SPEED*10);
     };

     function P()
     {
       U(3,SCROLL_SPEED*10);
     };

     function L(d,s)
     {
       G=d;
       V=s;
       pause=false;
       if(SCROLL_TYPE==0)f=false;else f=true;
     };


     function Q()
     {
       L(1,SCROLL_SPEED);
     };

     function O()
     {
       L(1,SCROLL_SPEED*10);
     };

     function K()
     {
       L(3,SCROLL_SPEED*10);
     };

     function ab()
     {
       if(!pause)
       {
         for(var j=0;j<COUNT_LINES;j++)
        {
          for(var i=0;i<(LOOP_IMAGES?n:m.length);i++)
          {
            if(HORIZ_POSITION)am("img"+j.toString()+i.toString(),j);
            else ac("img"+j.toString()+i.toString(),j);
           }
         }
        }
        D();
      };






      function M(e) //ФУНКЦИЯ срабатывающая при наведении мыши
      {
        if(typeof HORIZ_POSITION=='undefined')return;
        var k;
        if(e)
        {
          if(typeof(e.pageX)=='number')k=HORIZ_POSITION?e.pageX:e.pageY;else k=HORIZ_POSITION?e.clientX:e.clientY;
        }else
        {
          e=window.event;
          if(HORIZ_POSITION)
          {
            k=e.clientX;
            if(document.documentElement&&(document.documentElement.scrollTop||document.documentElement.scrollLeft))k+=document.documentElement.scrollLeft;
            else if(document.body&&(document.body.scrollTop||document.body.scrollLeft))k+=document.body.scrollLeft;
          }else
          {
            k=e.clientY;
            if(document.documentElement&&(document.documentElement.scrollTop||document.documentElement.scrollLeft))k+=document.documentElement.scrollTop;
            else if(document.body&&(document.body.scrollTop||document.body.scrollLeft))k+=document.body.scrollTop;
           }
         }
         if(HORIZ_POSITION)
         {
           if(k>=LEFT)
           {
             if(k<=w*0.15+LEFT)P();
             else if(k<=w*0.30+LEFT)R();
             else if(k<=w*0.45+LEFT)X();
             else if(k<=w*0.55+LEFT)ah();
             else if(k<=w*0.70+LEFT)Q();
             else if(k<=w*0.85+LEFT)O();
             else if(k<=w+LEFT)K();
             else F();
           }else F();
         }else
         {
           if(k>=TOP)
           {
             if(k<=w*0.15+TOP)P();
             else if(k<=w*0.30+TOP)R();
             else if(k<=w*0.45+TOP)X();
             else if(k<=w*0.55+TOP)ah();
             else if(k<=w*0.70+TOP)Q();
             else if(k<=w*0.85+TOP)O();
             else if(k<=w+TOP)K();
             else F();
           }else F();
         }
     };






     function H(o)
     {
        if(!LOOP_IMAGES)return;
        if(typeof m[c]=='undefined')return;
        try
        {
          var A=m[c];
          if(!LOOP_IMAGES)
          if(!f)c--;
          else c++;
          if(c<0)c+=m.length;
          else if(c>=m.length)c-=m.length;
          var I=A.indexOf("_SPRT_",0);
          var T=A.indexOf("_SPRT_",I+1);
          //id(o).src=IMG_DIR+A.substring(0,I)+IMG_TYPE;
          id(o).src=PREFIX_IMG+A.substring(0,I);
          if(T!= -1)
          {
           id("a"+o).href=A.substring(I+6,T)+'/7/';
           id("a"+o).title=A.substring(T+6);
          }else
          {
            id("a"+o).href=A.substring(I+6)+'/7/';
            id("a"+o).title="";
          }
          aa();
        }catch(ex)
        {
          ae(ex);
        }

      };

     var f=false;

     function ac(o,type)
     {
       var div=id("div"+o);
       if(!div)return;
       var J=div.style.bottom;
       var g=parseInt(J.substring(0,J.length-2));
       if((SCROLL_TYPE!=0&& !f)||(SCROLL_TYPE==0&&f))
       {
         g-=G;
         if(g< -HEIGHT_IMG)
         {
           g+=(LOOP_IMAGES?n:m.length)*HEIGHT_IMG;H(o);div.style.display='none';
         }
         else if(div.style.display=='none')div.style.display='';
       }else
       {
         g+=G;
         if(g>height)
         {
           g-=(LOOP_IMAGES?n:m.length)*HEIGHT_IMG;H(o);
           div.style.display='none';
         }else if(div.style.display=='none')div.style.display='';
       }
       div.style.bottom=g.toString()+"px";
     };

    function am(o,type)
    {
      var div=id("div"+o);
      if(!div)return;
      var J=div.style.right;
      var g=parseInt(J.substring(0,J.length-2));
      if((SCROLL_TYPE!=0&& !f)||(SCROLL_TYPE==0&&f))
      {
        g-=G;
        if(g< -WIDTH_IMG)
        {
          g+=(LOOP_IMAGES?n:m.length)*WIDTH_IMG;H(o);
          div.style.display='none';
         }else if(g<=width&&div.style.display=='none')div.style.display='';
       }else
       {
         g+=G;
         if(g>width)
         {
           g-=(LOOP_IMAGES?n:m.length)*WIDTH_IMG;H(o);
           div.style.display='none';
         }else if(g>= -WIDTH_IMG&&div.style.display=='none')div.style.display='';
        }
        div.style.right=g.toString()+"px";
      };

     var ak;

     function D()
     {
       if(ak)clearTimeout(ak); //если таймаут уже устанвлен, то очищаем его
       ak=setTimeout(ab,100/V); //если не установлен, ставим на функцию ab()
     }
 };



 function v(name,attributes)
 {
   var as=document.createElement(name);
   if(typeof attributes=='object')
   {
     for(var i in attributes)
     {
        as.setAttribute(i,attributes[i]);
        if(i.toLowerCase()=='class')
        {
          as.className=attributes[i];
        }else if(i.toLowerCase()=='style')
        {
          as.style.cssText=attributes[i];
         }
       }
     }
     for(var i=2;i<arguments.length;i++)
     {
       var au=arguments[i];
       if(typeof au=='string')
       {
         au=document.createTextNode(au)
        };
        as.appendChild(au);
      }
      return as;
  }
