window.onload = function(){
  updateElements();
  startsignal = 1;
  if (window.load) load();
  if (window.playMovie) playMovie();
}

function updateElements(){
  var a = document.all ? document.all : document.getElementsByTagName('*');
  for (var i = 0; i < a.length; i++){
    if (a[i].className == "slidefont") changeOpac(a[i], '75');
    else if (a[i].className == "covermode") changeOpac(a[i], '70');
  }
}

function changeOpac(elem, opac){
  elem.style.opacity = (opac / 100);
  elem.style.MozOpacity = (opac / 100);
  elem.style.KhtmlOpacity = (opac / 100);
  elem.style.filter = "alpha(opacity=" + opac + ")";
}

function divToggle(elem){
  if ($(elem)){
    $(elem).toggle();
    if ($(elem + '_link')) $(elem + '_link').hide();
  }
}

var hovershow;
function hoverMapdot(Hotelname, Event){
  var obj = document.getElementById('mapdot-info');
  clearTimeout(hovershow);
  var yscroll = document.body.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop;
  var xscroll = document.body.scrollLeft ? document.body.scrollLeft : document.documentElement.scrollLeft;
  obj.style.top  = (parseInt(Event.clientY) + 10) + yscroll + 'px';
  obj.style.left = (parseInt(Event.clientX) + 15) + xscroll + 'px';
  obj.innerHTML = Hotelname;
  obj.style.visibility = 'visible';
  hovershow = setTimeout("document.getElementById('mapdot-info').style.visibility = 'hidden'", 1500);
}

function mapOverlay(cmd){
  var engineform = document.getElementById('maxengine');
  var offset = 10;
  var yheight =  document.body.scrollHeight + 50;
  if (cmd == 'close'){
    if (engineform){
      engineform.hotel_id.style.visibility = 'visible';
      engineform.adults.style.visibility = 'visible';
      engineform.day.style.visibility = 'visible';
      engineform.month.style.visibility = 'visible';
      engineform.nights.style.visibility = 'visible';
    }
    document.getElementById('mapset').style.visibility = 'hidden';
    document.getElementById('mapholder').style.visibility = 'hidden';
  }
  else if (cmd == 'open'){
    document.getElementById('mapset').style.top = offset + 'px';
    document.getElementById('mapholder').style.height = yheight + 'px';
    if (engineform){
      engineform.hotel_id.style.visibility = 'hidden';
      engineform.adults.style.visibility = 'hidden';
      engineform.day.style.visibility = 'hidden';
      engineform.month.style.visibility = 'hidden';
      engineform.nights.style.visibility = 'hidden';
    }
    document.getElementById('mapset').style.visibility = 'visible';
    document.getElementById('mapholder').style.visibility = 'visible';
    document.documentElement.scrollTop = 0;
  }
}

var startsignal = 0;
var global_image = -1;
var slideshow = new Class({
  initialize: function(element, data, delay, slider){
    this.element = element;
    this.data = data;
    this.delay = delay;
    this.slider = slider;
    this.currentItem = 0;
    this.lastItem = 0;
    this.maxItem = 0;
    this.init = 1;
    this.timelock = 1;
    this.slideElements = Array();
    for(i = 0; i < data.length; i++){
      var currentImg = document.createElement('div');
      currentImg.style.position = "absolute";
      if (data[i][2]){
        var articleLink = document.createElement('a');
        articleLink.href = data[i][2];
        var showImg = document.createElement('img');
        showImg.style.border = "none";
        showImg.style.width = "944px";
        showImg.style.height = "292px";
        showImg.src = data[i][0];
        articleLink.appendChild(showImg);
        currentImg.appendChild(articleLink);
      }
      else{
        var showImg = document.createElement('img');
        showImg.style.border = "none";
        showImg.style.width = "944px";
        showImg.style.height = "292px";
        showImg.src = data[i][0];
        currentImg.appendChild(showImg);
      }
      element.appendChild(currentImg);
      currentImg.currentOpacity = new Fx.Tween(currentImg, {property: 'opacity', duration: 2000});
      currentImg.setStyle('opacity', 0);
      this.slideElements[parseInt(i)] = currentImg;
    }
    this.maxItem = data.length - 1;
    // white line
    var overlay = document.createElement('div');
    overlay.style.position = "absolute";
    overlay.style.backgroundColor = "#FFF";
    overlay.style.width = "944px";
    overlay.style.height = "2px";
    overlay.style.marginTop = "240px";
    overlay.style.overflow = "hidden";
    element.appendChild(overlay);
    // overlay color
    var overlay = document.createElement('div');
    overlay.style.position = "absolute";
    overlay.style.backgroundColor = "#888";
    overlay.style.width = "944px";
    overlay.style.height = "50px";
    overlay.style.marginTop = "242px";
    overlay.className = "slidefont";
    element.appendChild(overlay);
    // start slideshow
    this.startSlideShow();
  },
  startSlideShow: function(){
    if (this.init == 1){
      this.lastItem = this.maxItem;
      this.currentItem = 0;
      this.init = 0;
      this.slideElements[parseInt(this.currentItem)].setStyle('opacity', 1);
      if (!this.slider) this.showInfoSlideShow();
    }
    if (this.data.length > 1){
      if (startsignal) this.nextSlideShow();
      else setTimeout(this.startSlideShow.bind(this), 100);
    }
  },
  nextSlideShow: function(){
      if ((!this.timelock) || ((global_image > -1) && (global_image != this.currentItem))){
      clearTimeout(this.timelockTimer);
      this.timelock = 1;
      this.lastItem = this.currentItem;
      this.currentItem = (this.currentItem < this.maxItem) ? this.currentItem + 1 : 0;
      if (global_image > -1){
        if (global_image != this.lastItem){
          if (global_image < this.lastItem) this.reverse_image = 1;
          this.currentItem = global_image;
        }
        global_image = -1;
      }
      if (!this.slider) this.hideInfoSlideShow(); 
      this.doSlideShow();
    }
    else {
      if (this.timelock){
        if (this.timelock == 1){
          this.timelock = 2;
          this.timelockTimer = setTimeout(this.breakTimelock.bind(this), (this.delay - 2200));
        }
        if ((global_image > -1) && (global_image != this.currentItem)){
          clearTimeout(this.timelockTimer);
          this.timelock = 0;
        }
      }
      setTimeout(this.nextSlideShow.bind(this), 200);
    }
  },
  breakTimelock: function(){ this.timelock = 0; },
  doSlideShow: function(){
    if ((this.currentItem != 0) && (!this.reverse_image)){
      this.slideElements[parseInt(this.currentItem)].currentOpacity.removeEvents('complete');
      this.slideElements[parseInt(this.currentItem)].currentOpacity.addEvent('complete', function(){ this.slideElements[parseInt(this.lastItem)].setStyle('opacity', 0); }.bind(this));
      this.slideElements[parseInt(this.currentItem)].currentOpacity.start(0,1);
    }
    else{
      this.reverse_image = 0;
      this.slideElements[parseInt(this.currentItem)].setStyle('opacity', 1);
      this.slideElements[parseInt(this.lastItem)].currentOpacity.start(1,0);
    }
    if (!this.slider) setTimeout(this.showInfoSlideShow.bind(this), 1000);
    setTimeout(this.nextSlideShow.bind(this), 2200);
  },
  showInfoSlideShow: function(){
    if (this.slideInfo) this.element.removeChild(this.slideInfo);
    this.slideInfo = document.createElement('div');
    this.slideInfo.style.position = "absolute";
    this.slideInfo.style.width = "944px";
    this.slideInfo.style.marginTop = "258px";
    this.slideInfo.style.marginLeft = "15px";
    this.slideInfo.className = "headerslidefont";
    this.slideInfo.currentOpacity = new Fx.Tween(this.slideInfo, {property: 'opacity', duration: 1000});
    this.slideInfo.setStyle('opacity', 0);
    if (this.data[this.currentItem][2]){
      var imgText = document.createElement('a');
      imgText.innerHTML = this.data[this.currentItem][1];
      imgText.href = this.data[this.currentItem][2];
      imgText.className = "bannerslidelink";
      this.slideInfo.appendChild(imgText);
    }
    else this.slideInfo.innerHTML = this.data[this.currentItem][1];
    this.element.appendChild(this.slideInfo);
    this.slideInfo.currentOpacity.start(0,1);
  },
  hideInfoSlideShow: function(){ this.slideInfo.currentOpacity.start(1,0); 
}
});

function slideshow_load(image_id){
  global_image = image_id;
}

function initSlider(){
  var colWidth = 130;
  var viewSize = 7;
  var processing = 0;
  var currentCol = viewSize;
  var folioChange = new Fx.Tween('slider-folio', {duration: 800});
  var columns = $$('div.slider-col');
  folioChange.addEvent('complete', function(){ processing = 0; });
  $('slider-prev').addEvent('click', function(){
    if ((!processing) && (currentCol > viewSize)){
      processing = 1;
      currentCol -= 1;
      var x = ((currentCol - viewSize) * -colWidth);
      folioChange.start('left', x);
    }
  });
  $('slider-next').addEvent('click', function(){
    if ((!processing) && (currentCol < columns.length)){
      processing = 1;
      currentCol += 1;
      var x = ((currentCol - viewSize) * -colWidth);
      folioChange.start('left', x);
    }
  });
}

