var contentPagerItems  = new Array();
var contentPagerImages = new Array();

function registerPager()
{
  var node = getNode('content-pager');
  if (!node)
    return;

  var items = node.getElementsByTagName('A');

  contentPagerItems = new Array();
  for (var i = 0, j = items.length; i < j; ++i)
    contentPagerItems[contentPagerItems.length] = items[i];
} // end func registerPager


function loadTeaser(e, idx)
{
  var eventSrc = window.event ? window.event.srcElement : e.currentTarget;
  eventSrc.blur();

  with (window.event ? window.event.srcElement : e.currentTarget) {
    blur();
  }
  for (i = 0, j = contentPagerItems.length; i < j; ++i)
    contentPagerItems[i].className = i == idx ? 'selected' : '';
  getNode('teaser').src = contentPagerImages[idx];

  return false;
} // end func loadTeaser


function initThumbnails(thumbsWidth)
{
  var gallery = getNode('gallery');
  var galleryWidth = 600;
  if (hasClassName(gallery, 'wide'))
    galleryWidth += 350;

  if (thumbsWidth < galleryWidth)
    return;


  var thumbnailBox  = getNode('thumbnailBox');
  var thumbnailBar  = getNode('thumbnailBar');
  var thumbnails    = getNode('thumbnails');

  with (thumbnailBox) {
    style.cssFloat   = 'left';
//    style.height     = '68px';
    style.styleFloat = 'left';
    style.width      = (galleryWidth - 72) + 'px';
  }

  with (thumbnailBar) {
    style.overflow = 'hidden';
    style.position = 'relative';
//    style.height   = '68px';
    style.width    = (galleryWidth - 72) + 'px';
  }

  with (thumbnails) {
    style.left     = '0px';
    style.position = 'absolute';
    style.top      = '0px';
    style.width    = thumbsWidth + 'px';
  }

  var rightButton = document.createElement('img');
  with (rightButton) {
    alt              = '»';
    id               = 'thumbnailButtonRight';
    src              = '/img/arrow.right.gif'
    style.cssFloat   = 'right';
    style.cursor     = 'pointer';
    style.styleFloat = 'right';
    style.width      = '36px';
    style.height     = '68px';
  }
  gallery.insertBefore(rightButton, thumbnailBox);
  registerEvent(rightButton, 'mouseover', function() {ma_move('thumbnailBar', 'thumbnails', 10, 0);});
  registerEvent(rightButton, 'mouseout', function() {ma_stop('thumbnailBar', 'thumbnails');});

  var leftButton = document.createElement('img');
  with (leftButton) {
    alt              = '«';
    id               = 'thumbnailButtonLeft';
    src              = '/img/arrow.left.gif'
    style.cssFloat   = 'left';
    style.cursor     = 'pointer';
    style.styleFloat = 'left';
    style.width      = '36px';
    style.height     = '68px';
  }
  gallery.insertBefore(leftButton, thumbnailBox);
  registerEvent(leftButton, 'mouseover', function() {ma_move('thumbnailBar', 'thumbnails', -10, 0);});
  registerEvent(leftButton, 'mouseout', function() {ma_stop('thumbnailBar', 'thumbnails');});
} // end func loadTeaser

ma_speed = 100;


function roomLoader(event, nodeId, languageId)
{
  if (AjaxRequest.getXmlHttpRequest() == null)
    return true;

  var eventSrc = window.event ? window.event.srcElement.parentNode : event.currentTarget;
  eventSrc.blur();

  var siblings = getNode('thumbnails').getElementsByTagName('A');
  for (var i = 0, j = siblings.length; i < j; ++i)
    siblings[i].className = '';
  eventSrc.className = 'selected';

  AjaxRequest.get(
    {
      'url':        '/roomLoader.php?nodeId=' + nodeId + '&lang=' + languageId,
      'onSuccess':  processLoaderResult
    }
  );

  return false;
} // end func roomLoader


function processLoaderResult(request)
{
  try {
    eval('var result = ' + request.xmlHttpRequest.responseText);
  } catch (e) {
    alert(e);
    return false;
  }

  // background-image
  if (result.bgImage != null)
    document.getElementsByTagName('HTML')[0].style.backgroundImage = 'url(' + result.bgImage + ')';

  // background-color
  if (result.bgColor != null) {
    getNode('teaser-content').style.backgroundColor = result.bgColor;
    getNode('info-content').style.backgroundColor   = result.bgColor;
  }

  // teaser
  getNode('teaser-file').src = result.images[0];

  // image left
  if (result.imgLeft)
    getNode('info-image-left').src = result.imgLeft;

  // image right
  if (result.imgRight)
    getNode('info-image-right').src = result.imgRight;

  // image header
  if (result.imgHeader) {
    if (!getNode('header-segment')) {
      var n = document.createElement('IMG');
      n.className = 'pngBehavior';
      n.id = 'header-segment';
      n.width = 350;
      n.height = 80;
      getNode('header').appendChild(n);
    }
    getNode('header-segment').src = result.imgHeader;
    getNode('header-segment').style.visibility = 'visible';
  } else if (getNode('header-segment')) {
    getNode('header-segment').style.visibility = 'hidden';
  }

  // title
  document.title = document.title.replace(/» [^»]+?$/, '» ' + result.title);

  // contents
  getNode('room-box-icons').innerHTML       = result.icons.replace(/(?:\\r|\\n)+/g, '\n');
  getNode('teaser-content').innerHTML       = '<h2>' + result.heading + '</h2>\n' + result.teaser.replace(/(?:\\r|\\n)+/g, '\n');
  getNode('info-content-left').innerHTML    = result.intro.replace(/(?:\\r|\\n)+/g, '\n');
  getNode('info-content-center').innerHTML  = result.body.replace(/(?:\\r|\\n)+/g, '\n');
  getNode('logo-content').innerHTML         = result.logoBar.replace(/(?:\\r|\\n)+/g, '\n');
  if (result.logoWidth > 0)
    initLogos(result.logoWidth);

  var sel, i;
  if (sel = getNode('roomtype')) {
    for (i = 0, j = sel.options.length; i < j; ++i) {
      if (sel.options[i].innerHTML == result.room_no) {
        sel.selectedIndex = i;
        break;
      };
    }
  }

  // flash header
  var n;
  if (n = getNode('header-flash-wrapper'))
    n.parentNode.removeChild(n);
  if (result.movieHeader) {
    n = document.createElement('DIV');
    n.id = 'header-flash-wrapper2';
    n.width = 350;
    n.height = 80;
    n.style.zIndex = 10000;
    getNode('body').appendChild(n);

    var so = new SWFObject(result.movieHeader, 'header-flash', 350, 80, 8);
    so.addParam('menu', false);
    so.addParam('wmode', 'transparent');
    so.write('header-flash-wrapper2');
  }


  setTargets(getNode('teaser-content'));
  setTargets(getNode('info-content-left'));
  setTargets(getNode('info-content-center'));
  setTargets(getNode('logo-content'));
} // end func processLoaderResult

function preloadImages()
{
  for (var i = 0, j = preloads.length; i < j; ++i) {
/*
    var img = document.createElement('IMG');
    with (img.style) {
     position = 'absolute';
     left     = '-1000px';
     top      = '-1000px';
    }
*/
//    document.body.appendChild(img);
    var img = new Image();
    img.src = preloads[i];
//    document.body.removeChild(img);
  }
} // end func preloadImages


function teaserLoader(event, nodeId, idx, lang, toggle)
{
  if (AjaxRequest.getXmlHttpRequest() == null)
    return true;

  var eventSrc = window.event ? window.event.srcElement.parentNode : event.currentTarget;
  eventSrc.blur();

  if (toggle == true) {
    var siblings = getNode('thumbnails').getElementsByTagName('A');
    for (var i = 0, j = siblings.length; i < j; ++i)
      siblings[i].className = '';
    eventSrc.className = 'selected';
  }

  AjaxRequest.get(
    {
      'url':        '/teaserLoader.php?nodeId=' + nodeId + '&lang=' + lang + '&idx=' + idx,
      'onSuccess':  processTeaserLoaderResult
    }
  );

  return false;
} // end func teaserLoader


function processTeaserLoaderResult(request)
{
  try {
    eval('var result = ' + request.xmlHttpRequest.responseText);
  } catch (e) {
    alert(e);
    return false;
  }

  // teaser
  var teaser, wrapper;
  if (teaser = getNode('teaser-file')) {
    teaser.src = result.teaser;
  } else if (wrapper = getNode('teaser-flash-wrapper')) {
    var container = getNode('teaser-image');
    container.removeChild(wrapper);
    var img = document.createElement('IMG');
    img.id = 'teaser-file';
    img.width = 600;
    img.height = 400;
    img.src = result.teaser;
    container.appendChild(img);
  }

  var imageNext = getNode('feature-image-next');

  if (imageNext) {
    if (result.nextImage == null) {
      imageNext.parentNode.removeChild(imageNext);
    } else {
      imageNext.innerHTML = result.nextImage
    }
  }
} // end func processTeaserLoaderResult


function initLogos(thumbsWidth)
{
  if (thumbsWidth < 930)
    return;

  var gallery       = getNode('logo-items');
  var thumbnailBox  = getNode('logo-box');
  var thumbnailBar  = getNode('logo-bar');
  var thumbnails    = getNode('logo-content');

  with (thumbnailBox) {
    style.cssFloat   = 'left';
//    style.height     = '68px';
    style.styleFloat = 'left';
    style.width      = '858px';
  }

  with (thumbnailBar) {
    style.overflow = 'hidden';
    style.position = 'relative';
    style.height   = '74px';
    style.width    = '858px';
  }

  with (thumbnails) {
    style.left     = '0px';
    style.position = 'absolute';
    style.top      = '15px';
    style.width    = thumbsWidth + 'px';
  }

  var rightButton = document.createElement('img');
  with (rightButton) {
    alt = '»';
    id  = 'logo-button-right';
    src = '/img/arrow.right.gif'
  }
  gallery.insertBefore(rightButton, thumbnailBox);
  registerEvent(rightButton, 'mouseover', function() {ma_move('logo-bar', 'logo-content', 10, 0);});
  registerEvent(rightButton, 'mouseout', function() {ma_stop('logo-bar', 'logo-content');});

  var leftButton = document.createElement('img');
  with (leftButton) {
    alt              = '«';
    id               = 'logo-button-left';
    src              = '/img/arrow.left.gif'
    style.cssFloat   = 'left';
    style.cursor     = 'pointer';
    style.styleFloat = 'left';
    style.width      = '36px';
    style.height     = '68px';
  }
  gallery.insertBefore(leftButton, thumbnailBox);
  registerEvent(leftButton, 'mouseover', function() {ma_move('logo-bar', 'logo-content', -10, 0);});
  registerEvent(leftButton, 'mouseout', function() {ma_stop('logo-bar', 'logo-content');});
} // end func initLogos


function toggleFontSize()
{
  document.body.style.fontSize = (parseInt(document.body.style.fontSize) == 12 ? 14 : 12) + 'px';
  return false;
} // end func toggleFontSize

function printPreview(uri)
{
  window.open(uri + '?print');
  return false;
} // end func printPreview
