var Step = 1;
var interval = 20;    // IE - 15~20; FireFox - 60; Chrome - 20; Opera - 60;
                      // Ezek az értékek kb. 40%-os processzorterhelést okoznak. ( nálam, otthon :) - Intel Celeron 3 GHz CPU, 1GB RAM, XP SP3)
var minInterval  = 1;                  
var moving = 0;
var direction = -1;    // fel/balra
var filmStrip_Bottom = 0;
var filmStrip_Right = 0;
var timer;

var videoControls;

function InitMovie_Vert()
  {
    var FilmFrames = document.getElementById('FilmStripe').childNodes;
    var FilmFrame;
    var frameTop;
    var i;
    var navClient;
    
    navClient = navigator.userAgent.toUpperCase();
    if (navClient.indexOf('FIREFOX') != -1)
      {
        interval = 60;
      }
    else
      {
        if (navClient.indexOf('OPERA') != -1) interval = 40;  // Az Opera valahogy jobban kezeli a terhelést mint a FireFox.
      }
    for (i=FilmFrames.length-1; i>=0; i--)
      {
        FilmFrame = FilmFrames.item(i);
        if (FilmFrame.nodeName != 'DIV') continue;  // Mozilla - #text  (:
        frameTop = FilmFrame.offsetTop;
        FilmFrame.style.position = 'absolute';
        FilmFrame.style.top = frameTop + 'px';
        filmStrip_Bottom = Math.max(filmStrip_Bottom,frameTop + FilmFrame.scrollHeight);
      }
    document.getElementById('FilmStripe').style.width = '100%';
  }
  
function InitMovie_Horz()
  {
    var FilmFrames = document.getElementById('FilmStripe').childNodes;
    var FilmFrame;
    var frameLeft = 0;
    var i;
    var navClient;
    
    navClient = navigator.userAgent.toUpperCase();
    if (navClient.indexOf('FIREFOX') != -1)
      {
        interval = 60;
      }
    else
      {
        if (navClient.indexOf('OPERA') != -1) interval = 40;  // Az Opera valahogy jobban kezeli a terhelést mint a FireFox.
      }
    for (i=0; i<FilmFrames.length; i++)
      {
        FilmFrame = FilmFrames.item(i);
        if (FilmFrame.nodeName != 'DIV') continue;  // Mozilla - #text  (:
        FilmFrame.style.position = 'absolute';
        FilmFrame.style.left = frameLeft + 'px';
        frameLeft += FilmFrame.scrollWidth;
      }
    filmStrip_Right = frameLeft;
    document.getElementById('FilmStripe').style.width = '100%';
  }

function StepFrames_Vert()
  {
    var FilmFrames = document.getElementById('FilmStripe').childNodes;
    var FilmFrame;
    var frameTop;
    var frameBottom;
    var i;
    var insertPos = 0;
    var ScrollOutObj;
    
    for (i=0; i<FilmFrames.length; i++)
      {
        FilmFrame = FilmFrames.item(i);
        if (FilmFrame.nodeName != 'DIV') continue;  // Mozilla - #text  (:
        frameTop = FilmFrame.offsetTop + Step * direction;
        frameBottom = frameTop + FilmFrame.scrollHeight;
        FilmFrame.style.top = frameTop + 'px';
        if (direction == -1)
          {
            if (frameBottom <= 0) ScrollOutObj = FilmFrame;
            insertPos = Math.max(insertPos,frameBottom);
          }
        else
          {
            if (frameBottom >= filmStrip_Bottom) ScrollOutObj = FilmFrame;
            insertPos = Math.min(insertPos,frameTop - FilmFrame.scrollHeight);
          }
      }
    if (ScrollOutObj) ScrollOutObj.style.top = insertPos + 'px';
  }
  
function StepFrames_Horz()
  {
    var FilmFrames = document.getElementById('FilmStripe').childNodes;
    var FilmFrame;
    var frameLeft;
    var frameRight;
    var i;
    var insertPos = 0;
    var ScrollOutObj;
    
    for (i=0; i<FilmFrames.length; i++)
      {
        FilmFrame = FilmFrames.item(i);
        if (FilmFrame.nodeName != 'DIV') continue;  // Mozilla - #text  (:
        frameLeft = FilmFrame.offsetLeft + Step * direction;
        frameRight = frameLeft + FilmFrame.scrollWidth;
        FilmFrame.style.left = frameLeft + 'px';
        if (direction == -1)
          {
            if (frameRight <= 0) ScrollOutObj = FilmFrame;
            insertPos = Math.max(insertPos,frameRight);
          }
        else
          {
            if (frameRight >= filmStrip_Right) ScrollOutObj = FilmFrame;
            insertPos = Math.min(insertPos,frameLeft - FilmFrame.scrollWidth);
          }
      }
    if (ScrollOutObj) ScrollOutObj.style.left = insertPos + 'px';
  }
  
function InitMovie()
  {
    InitMovie_Vert();
  }
  
function StepFrames()
  {
    StepFrames_Vert();
  }
  
function StartMovie()
  {
    if (moving) return;
    moving = 1;
    timer = window.setInterval("StepFrames()",interval);
  }
  
function StopMovie()
  {
    if (!moving) return;
    moving = 0;
    window.clearInterval(timer);
  }
  
function SlideUpward()
  {
    direction = -1;
    StartMovie();
  }

function SlideDownward()
  {
    direction = 1;
    StartMovie();
  }
  
function SpeedUp()
  {
    var originalState = moving;
    
    StopMovie();
    if (interval > minInterval)
      {
        interval = Math.max(minInterval,Math.round(interval / 2)) ;
      }
    else
      {
        Step += 1;
      }
    if (originalState) StartMovie();
  }
  
function SlowDown()
  {
    var originalState = moving;
    
    StopMovie();
    if (Step > 1)
      {
        Step -= 1;
      }
    else
      {
        interval += Math.max(1,Math.round(interval / 2));
      }
    if (originalState) StartMovie();
  }
  
function preloadImages_Horz()
  {
    videoControls = new Array(5);
    
    videoControls[0] = new Array(2);
    videoControls[0][0] = new Image;
    videoControls[0][0].src = 'images/videocontrols/vcr_left.jpg';
    videoControls[0][1] = new Image;
    videoControls[0][1].src = 'images/videocontrols/vcr_left_push.jpg';
    
    videoControls[1] = new Array(2);
    videoControls[1][0] = new Image;
    videoControls[1][0].src = 'images/videocontrols/vcr_right.jpg';
    videoControls[1][1] = new Image;
    videoControls[1][1].src = 'images/videocontrols/vcr_right_push.jpg';
    
    videoControls[2] = new Array(2);
    videoControls[2][0] = new Image;
    videoControls[2][0].src = 'images/videocontrols/vcr_pause.jpg';
    videoControls[2][1] = new Image;
    videoControls[2][1].src = 'images/videocontrols/vcr_pause_push.jpg';
    
    videoControls[3] = new Array(2);
    videoControls[3][0] = new Image;
    videoControls[3][0].src = 'images/videocontrols/vcr_speedup.jpg';
    videoControls[3][1] = new Image;
    videoControls[3][1].src = 'images/videocontrols/vcr_speedup_push.jpg';
    
    videoControls[4] = new Array(2);
    videoControls[4][0] = new Image;
    videoControls[4][0].src = 'images/videocontrols/vcr_slowdown.jpg';
    videoControls[4][1] = new Image;
    videoControls[4][1].src = 'images/videocontrols/vcr_slowdown_push.jpg';
  }
  
function preloadImages_Vert()
  {
    videoControls = new Array(5);
    
    videoControls[0] = new Array(2);
    videoControls[0][0] = new Image;
    videoControls[0][0].src = 'images/videocontrols/vcr_up.jpg';
    videoControls[0][1] = new Image;
    videoControls[0][1].src = 'images/videocontrols/vcr_up_push.jpg';
    
    videoControls[1] = new Array(2);
    videoControls[1][0] = new Image;
    videoControls[1][0].src = 'images/videocontrols/vcr_down.jpg';
    videoControls[1][1] = new Image;
    videoControls[1][1].src = 'images/videocontrols/vcr_down_push.jpg';
    
    videoControls[2] = new Array(2);
    videoControls[2][0] = new Image;
    videoControls[2][0].src = 'images/videocontrols/vcr_pause.jpg';
    videoControls[2][1] = new Image;
    videoControls[2][1].src = 'images/videocontrols/vcr_pause_push.jpg';
    
    videoControls[3] = new Array(2);
    videoControls[3][0] = new Image;
    videoControls[3][0].src = 'images/videocontrols/vcr_speedup.jpg';
    videoControls[3][1] = new Image;
    videoControls[3][1].src = 'images/videocontrols/vcr_speedup_push.jpg';
    
    videoControls[4] = new Array(2);
    videoControls[4][0] = new Image;
    videoControls[4][0].src = 'images/videocontrols/vcr_slowdown.jpg';
    videoControls[4][1] = new Image;
    videoControls[4][1].src = 'images/videocontrols/vcr_slowdown_push.jpg';
  }  
  
function preloadImages()
  {
    preloadImages_Vert();
  }
