/*------------------------------------------------------------------------------------------------*\
| Скрипт выполняет циклическую подгрузку информации из внешнего php-скрипта и прокручивает её по   |
| горизонтали                                                                                      |
| <div style="width:100%;" id='ozonContent'></div> - В это подгружаем наши блоки                   |
|                                                                                                  |
+--[Примерная структура PHP-скрипта]---------------------------------------------------------------+
|                                                                                                  |
| header("Content-type: text/plain; charset=UTF-8");            # Указываем кодировку UTF-8        |
| header("Cache-Control: no-store, no-cache, must-revalidate");                                    |
| header("Cache-Control: post-check=0, pre-check=0", false);                                       |
|                                                                                                  |
| $width1 = 0;                        # Ширина наружного div'a                                     |
| $width2 = $_POST['width'];          # Ширина внутренего div'а. Задается чтобы текст не дергался  | 
|                                                                                                  |
|  # || - разделитель. По нему разбиваем строку в массив                                           |
| $string = "<div style='WIDTH:{$width1}px; OVERFLOW:hidden; FLOAT:right;'>".                      |
|              "<div style='WIDTH:{$width2}px'>бла-бла-бла-бабла :)</div>".                        |
|           "</div>||".                                                                            |
|           "<div style='WIDTH:{$width1}px; OVERFLOW:hidden; FLOAT:right;'>".                      |
|              "<div style='WIDTH:{$width2}px'>бла-бла-бла-бабла :)</div>".                        |
|           "</div>"                                                                               |
|                                                                                                  |
| #Не забываем перекодировать выводимые данные в windows-1251                                      |
| iconv("WINDOWS-1251", "UTF-8", $string);                                                         |
|                                                                                  Заболотнев Илья |
|                                                                                          2009 г. |
\*------------------------------------------------------------------------------------------------*/
add = 3;                                        // Сколько книг сначала загружаем?
nextLoad = 2000;                                // Задержка между подгрузкой новых узлов
move = 'run';

windowOnLoad = window.onload;
window.onload = function()
{ 
   DIVwidth = document.getElementById('ozonContent').clientWidth/add;
   DIVwidth = Math.floor(DIVwidth);             // Расчитываем ширину каждого подгружаемого блока
   if(windowOnLoad) windowOnLoad();
   addBlocks();                                 // После загрузки страницы сразу же подгружаем блоки
   
   document.getElementById('topBlock').onmouseover = function(){move = 'stop';}
   document.getElementById('topBlock').onmouseout = function(){move = 'run';}
}
function createXMLHttp()                        // Создание объекта XMLHttp
{
   if(typeof XMLHttpRequest != "undefined") // для браузеров аля Mozilla
   { 
      return new XMLHttpRequest();
   } 
   else if(window.ActiveXObject) // для Internet Explorer (all versions)
   { 
      var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",
                       "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp",
                       "Microsoft.XMLHttp"];
      for (var i = 0; i < aVersions.length; i++) 
      {
         try 
         {
            var oXmlHttp = new ActiveXObject(aVersions[i]);
            return oXmlHttp;
         } 
         catch (oError) {}
      }
      throw new Error("Невозможно создать объект XMLHttp.");
   }
}
function addBlocks()                            // Подгрузка блоков
{ 
   loElement = document.getElementById('ozonContent'); // Контейнер, в который подгружаем

   if(!loElement)                               // Если контейнера почему-то нет
   {
      setTimeout('addBlocks()',100);            // То пробуем через 100 мс
      return;
   }
   var oXmlHttp = createXMLHttp();
   oXmlHttp.open('POST','http://www.smartcat.ru/inc/main/ozon.php', false);
   oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   oXmlHttp.send('add=' + add + '&width=' + DIVwidth + '&name=' + name + '&page=' + page + '&phraseId=' + phraseId);

   if(oXmlHttp.status == 200) 
   {
      Blocks = oXmlHttp.responseText.split("||");
      countBlocks = Blocks.length;              // Количество полученых блоков
      if(countBlocks < add) add = countBlocks;  // Если получили недостаточно блоков, то опускаем планку
      //alert(add);
      for(k=0;k<add;k++)
      {
         loElement.innerHTML += Blocks[k];      // Добавляю блок
         loElement.childNodes.item(k).style.width = DIVwidth + 'px'; // Задаю ему ширину
      }
      if(add < countBlocks)                     // Получили больше блоков, чем умещается
      {
         loElement.innerHTML += Blocks[k++];    // Добавляю скрытый блок, который будет показан
         fChild = document.getElementById("ozonContent").firstChild;    // Первая книга
         lChild = document.getElementById("ozonContent").lastChild;     // Последняя книга
         setTimeout('rotator('+DIVwidth+')',nextLoad);// Сжатие последнего блока и появление нового
      }
      
   }
}
function rotator(width)                         // Сжатие последнего блока и появление нового
{
   if(move == 'stop' && width == DIVwidth)
   {
      //alert(move);
      setTimeout('rotator('+DIVwidth+')', nextLoad);
      return true;
   }
   var width = width-10;                        // Уменьшаю ширину первого блока
   if(width<0)                                  // Отрицательная ширина не допустима
      width=0;

   fChild.style.width = width + 'px';           // Уменьшаем ширину убираемого блока
   lChild.style.width = DIVwidth - width + 'px';// Увеличиваем ширину появляющего блока
   
   if(width > 0)                                // Не совсем скукожили?
      setTimeout('rotator('+width+')', 20);     // Значит скукоживаем дальше
   else
   {
      if(k >= countBlocks) k = 0;               // Если перебрали все книги, то начинаем с нулевой
      loElement.innerHTML += Blocks[k++];
      fChild = document.getElementById("ozonContent").firstChild; // Первая книга
      document.getElementById("ozonContent").removeChild(fChild); // Иначе удаляем скрытый блок
      fChild = document.getElementById("ozonContent").firstChild; // Первая книга
      lChild = document.getElementById("ozonContent").lastChild;  // Последняя книга
      setTimeout('rotator('+DIVwidth+')', nextLoad);
   }
}