var g_isSliding = false;
var g_wasPlaying = false;

var g_TimeLabel = null;
var g_lastDisplayedTimeMs = -1000;
var g_layoutIgnoreTimeChange = false;

var g_layoutTimeSlider = null;
var g_layoutVolumeSlider = null;
var g_layoutCurrentSlide = -1;

var g_layoutLogoCode = '<img src="NCSR1.bmp" border="0" alt="Image">';

var g_slidesOffset = 0;

var isIE = false;

if (document.all)
  isIE = true;

function layout_init()
{
}

function s(id)
{
  if (isNS4)
    return eval('document.' + id);
  else
    return document.getElementById(id).style;
}

function o(id)
{
  if (isNS4)
    return s(id);
  return document.getElementById(id);
}

function layout_getSlideForTime(msTime)
{
  var newSlideNr = -1;
  for (var i=0; i<g_thumbCount-1; ++i)
  {
      // alert("checking between " + parent.g_thumbEntries[i].timeStamp + " and " + parent.g_thumbEntries[i+1].timeStamp);
      if (msTime >= g_thumbEntries[i].timeStamp &&
          msTime < g_thumbEntries[i+1].timeStamp)
      {
        newSlideNr = i;
      }
  }
  if (newSlideNr == -1)
  {
    if (msTime < g_thumbEntries[0].timeStamp)
      newSlideNr = 0;
    else
      newSlideNr = g_thumbCount - 1;
  }

  return newSlideNr;
}

function layout_onPlay()
{
  control_playPause();
}

function layout_onMute()
{
  control_mute();
}

function layout_onHome()
{
  control_seekTime(0);
}

function layout_onBack()
{
  var currentSlide = layout_getCurrentSlide();
  if (currentSlide > 0)
    control_seekTime(g_thumbEntries[currentSlide - 1].timeStamp);
  else
    layout_onHome();
}

function layout_onEnd()
{
  control_seekTime(g_mediaDurations[0]);
}

function layout_onForward()
{
  var currentSlide = layout_getCurrentSlide();
  if (currentSlide < g_thumbCount - 1)
    control_seekTime(g_thumbEntries[currentSlide + 1].timeStamp);
  else
    layout_onEnd();
}

function layout_getSlide(timeMs)
{
  var slideNr = -1;
  for (var i=0; i<g_thumbCount-1; ++i)
  {
    if ((timeMs >= g_thumbEntries[i].timeStamp &&
        timeMs < g_thumbEntries[i+1].timeStamp) ||
	  (i == 0 && timeMs < g_thumbEntries[i+1].timeStamp))
      slideNr = i;
  }
  if (slideNr == -1)
    slideNr = g_thumbCount-1;
  return slideNr;
}

function layout_getCurrentSlide()
{
  var timeMs = control_getTimeMs();
  return layout_getSlide(timeMs);
}


function layout_onResize()
{
  // Resizing mechanism.
  // How much space do we need for the header contents, excluding margins?
  // This is also the width for the media player.
  var headerWidth = 300; // minimum width
  if (g_hasVideo)
  {
    if (g_videoWidth > headerWidth)
      headerWidth = g_videoWidth;
  }
  if (g_hasStillImage)
  {
    if (g_stillImageWidth > headerWidth)
      headerWidth = g_stillImageWidth;
  }

  // How much space do we have horizontally?
  var height;
  if (!isIE)
    height = window.innerHeight - 20;
  else
    height = document.body.offsetHeight - 20;

  // We need 28 pixels for the Media Player status bar
  // Minimum 130 pixels plus margin for the info panels
  var hasLogo = (g_layoutLogoCode != '') ? true : false;
  var logoHeight = hasLogo ? 50 : 0;

  var margin = 9;
  s('logoDiv').width = headerWidth + 12;
  s('titleDiv').width = headerWidth + 12;
  s('infoDiv').width = headerWidth + 12;
  var titleTop = margin + (hasLogo ? logoHeight + margin : 0);
  s('titleDiv').top = titleTop;
  s('infoDiv').top = titleTop + 25;

  var playerTop = titleTop + 50 + 25;
  var playerHeight = 28;
  var playerDelta = 0;
  var playerWidth = 300;
  if (g_hasStillImage)
  {
    playerDelta += g_stillImageHeight;
    playerHeight += g_stillImageHeight;
    playerWidth = headerWidth;
  }
  else if (g_hasVideo)
  {
    playerHeight += g_videoHeight;
    playerWidth = g_videoWidth;
  }

  s('playerDiv').width = headerWidth + 12;
  s('playerDiv').height = playerHeight + 12;
  s('masterPlayerDiv').width = playerWidth;
  if (g_hasStillImage)
  {
    s('stillImageDiv').width = headerWidth;
    s('stillImageDiv').height = g_stillImageHeight;
  }

  g_slidesOffset = headerWidth + 12 + 2*margin;
}

