// transfer2thealps core
var core = (function(){
  var dontRun = false;
	
	return {
	  init: function(){
		  this.runDisplay();
			Event.observe(window, "resize", this.runDisplay.bindAsEventListener(this));
		},
		
		showMenu: function(){
			var nav = $('nav');
		  var els = nav.select('a');
			els.each(function(el){
				if(el.hasClassName('on')) return;
			  el = $(el);
				//el.style.marginTop = nav.getHeight() + 'px';
				el.style.visibility = 'visible';
				//new Effect.MarginTop(el, { margin: 0, duration: 0.3 });
			});
		},
		
		runDisplay: function(){
			//this.showMenu();
			
			this.ls = $('left-slide');
			this.rs = $('right-slide');
		  if(dontRun || !this.ls || !this.rs) return;
			var globalWidth = window.innerWidth? window.innerWidth : document.documentElement.clientWidth,
			    globalHeight = window.innerHeight? window.innerHeight : document.documentElement.clientHeight;
			var topMarker = $('ib-content'),
			    lheight = $('instant-booking-plugin').getHeight(),
					ltop = Position.cumulativeOffset(topMarker)[1],
					lwidth = (globalWidth - 760) / 2;
			
			if((globalWidth != document.width) && !document.all) lwidth -= 10;
					
      var s = this.ls.style;
			s.visibility = 'visible';
			s.top = ltop + 'px';
			//s.width = lwidth + 'px';
			s.height = lheight + 'px';
						
      var rightMarker = $('main'),
			    rheight = globalHeight - Position.cumulativeOffset(rightMarker)[1] +20,
					rtop = Position.cumulativeOffset(rightMarker)[1],
					rwidth = (globalWidth - 760) / 2;
					
			if((globalWidth != document.width) && !document.all) rwidth -= 10;
			
			var s = this.rs.style;
			s.visibility = 'visible';
			s.top = rtop + 'px';
			//s.width = rwidth + 'px';
			s.height = rheight + 'px';
			
			new Effect.Width(this.ls, { width: lwidth, duration: 0.3 });
			new Effect.Width(this.rs, { width: rwidth, duration: 0.3 });
			
		}
	}
})();

Effect.Width = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({
      from: 0,
			to: 1,
			width: 0
    }, arguments[1] || { });
    this.start(options);
  },
  setup: function() {
    this.originalWidth = this.element.getStyle('width');
  },
  update: function(position) {
    //alert(this.options.to +', '+ position + ', ' + (this.options.to  * position));
    this.element.setStyle({
      width: (this.options.width  * position) + 'px'
    });
  }
});

Effect.MarginTop = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({
      from: 1,
			to: 0,
			margin: 0
    }, arguments[1] || { });
    this.start(options);
  },
  setup: function() {
    this.originalMargin = parseInt(this.element.getStyle('marginTop'));
  },
  update: function(position) {
    this.element.setStyle({
      marginTop: (position * this.originalMargin) + 'px'
    });
  }
});

Event.observe(window, "load", core.init.bindAsEventListener(core));