window.addEvent('domready', textsizer_init);

//initalise textsizer
function textsizer_init() {
  var body = $$('body')[0];

  //look for the cookie
  try {
    var fontSize = Cookie.read('fontSize');
  } 
  catch(e) {}

  //set font-size
  if(fontSize != 0){
    body.setStyle('font-size', fontSize);
    Cufon.refresh();
  }

  //hide/show msg
  $('smaller').addEvent('click', ts);
  $('bigger').addEvent('click', ts);
  $('default').addEvent('click', ts_reset);

  $('textsizer_msg').fade('hide');

  $('textsizer').addEvent('mouseover', function() {
    $('textsizer_msg').fade('in');
  });

  $('textsizer').addEvent('mouseout', function() {
    $('textsizer_msg').fade('out');
  });

}

//toggle font-size
function ts(e) {
  var action = $(e.target).id;
  var body = $$('body')[0];
  var fontSize = body.getStyle('font-size').substr(0,2);

  if(action=='smaller' && fontSize>14){
    fontSize--;
  }
  else if(action=='bigger' && fontSize<17){
    fontSize++;
  }
  
  //write cookie
  Cookie.write('fontSize', fontSize, {duration: 7}) 
  body.setStyle('font-size', fontSize);
  Cufon.refresh();
}

//reset font-size
function ts_reset() {
  var body = $$('body')[0];

  Cookie.write('fontSize', '14', {duration: 7}) 
  body.setStyle('font-size', '14');
  Cufon.refresh();
}

//initialise Big Slide
window.addEvent('domready', bigslide_init);
var slideTimer;
var slideFx;
var direction = 1;

function bigslide_init() {
  var bigslides = $$('.bigslide');

  for(i=0;i<bigslides.length;i++) {
    var backlink = new Element('a', {
      'id': 'back_'+bigslides[i].id,
      'href': 'javascript:void(0);', 
      'class': 'backlink',
      'events': {
        'click': moveSlide
      }
    });

    var forwardlink = new Element('a', {
      'id': 'forw_'+bigslides[i].id, 
      'href': 'javascript:void(0);',
      'class': 'forwardlink',
      'events': {
        'click': moveSlide
      }
    });

    backlink.inject(bigslides[i], 'top');
    forwardlink.inject(bigslides[i], 'top');

    var slideDiv = $$('#' + bigslides[i].id + ' .inside-slide');
    slideFx = new Fx.Tween(slideDiv[0], 50, 'px', 'chain', 800, 'sine:in:out');

    slideTimer = setTimeout('autoSlide(\''+bigslides[i].id+'\')', 10000);
  }
}

function autoSlide(id){
  slideDiv = $$('#' + id + ' .inside-slide');
  images = $$('#' + id + ' .ce_image');
  currentPosition = parseInt(slideDiv.getStyle('margin-left'));

  if(currentPosition == (images.length-1) * -735 || currentPosition == 0){
    direction*=-1;
  }

  switch(direction) {
    case 1:
      slideFx.start('margin-left', currentPosition+735);
      break;

    case -1:
      slideFx.start('margin-left', currentPosition-735);
      break;
  }
  slideFx.start('margin-left', currentPosition-735);

  slideTimer = setTimeout('autoSlide(\''+id+'\')', 10000);
}

function moveSlide(e) {
  args = e.target.id.split("_");
  slideDiv = $$('#' + args[1] + ' .inside-slide');
  images = $$('#' + args[1] + ' .ce_image');
  currentPosition = parseInt(slideDiv.getStyle('margin-left'));
  clearTimeout(slideTimer);

  switch(args[0]) {
    case 'back':
      if(currentPosition < 0) {
        slideFx.start('margin-left', currentPosition+735);
      }
      break;

    case 'forw':
      if(currentPosition > (images.length-1) * -735) {
        slideFx.start('margin-left', currentPosition-735);
      }
      break;
  }

  clearTimeout(slideTimer);
}

//initialise Small Slide
var smallSlideFx;
var smallDirection = 1;
var smallSlideTimer;

window.addEvent('domready', smallslide_init);

function smallslide_init() {
  var smallslides = $$('.bilder_slide');

  for(i=0;i<smallslides.length;i++) {
    var backlink = new Element('a', {
      'id': 'back',
      'href': 'javascript:void(0);', 
      'class': 'backlink',
      'events': {
        'click': moveSmallSlide
      }
    });

    var forwardlink = new Element('a', {
      'id': 'forw', 
      'href': 'javascript:void(0);',
      'class': 'forwardlink',
      'events': {
        'click': moveSmallSlide
      }
    });

    var smallSlideDiv = $$('.inside-bilder_slide .value');
    smallSlideFx = new Fx.Tween(smallSlideDiv[0], 50, 'px', 'chain', 100, 'sine:in:out');    

    backlink.inject(smallslides[i], 'top');
    forwardlink.inject(smallslides[i], 'bottom');

    smallSlideTimer = setTimeout('smallAutoSlide()', 5000);    
  }
}

function moveSmallSlide(e) {
  smallSlideDiv = $$('.inside-bilder_slide .value');
  smallImages = $$('.inside-bilder_slide .image');
  if(smallImages.length == 0) {
    smallImages = $$('.inside-bilder_slide .ce_image');  
  }

  smallCurrentPosition = parseInt(smallSlideDiv.getStyle('margin-left'));
  clearTimeout(smallSlideTimer);

  switch(e.target.id) {
    case 'back':
      if(smallCurrentPosition < 0) {
        smallSlideFx.start('margin-left', smallCurrentPosition+214);
      }
      break;

    case 'forw':
      if(smallCurrentPosition > (smallImages.length-3) * -214) {
        smallSlideFx.start('margin-left', smallCurrentPosition-214);
      }
      break;
  }
}

function smallAutoSlide(){
  smallSlideDiv = $$('.inside-bilder_slide .value');
  smallImages = $$('.inside-bilder_slide .image');
  if(smallImages.length == 0) {
    smallImages = $$('.inside-bilder_slide .ce_image');  
  }

  smallCurrentPosition = parseInt(smallSlideDiv.getStyle('margin-left'));

  if(smallImages.length <=3){
    clearTimeout(smallSlideTimer);
    return;
  }

  if(smallCurrentPosition == (smallImages.length-3) * -214 || smallCurrentPosition == 0){
    smallDirection*=-1;
  }

  switch(smallDirection) {
    case 1:
      smallSlideFx.start('margin-left', smallCurrentPosition+214);
      break;

    case -1:
      smallSlideFx.start('margin-left', smallCurrentPosition-214);
      break;
  }
  smallSlideFx.start('margin-left', smallCurrentPosition-214);

  smallSlideTimer = setTimeout('smallAutoSlide()', 5000);
}

//initialise tabs
window.addEvent('domready', tabs_init);
var tabs;
var tabsFx = new Array();
var tabsHeight = new Array();

function tabs_init() {
  tabs = $$('.tab');
  var selector;

  for(i=0; i<tabs.length; i++) {

    tabsFx[i] = new Fx.Tween(tabs[i], {
      unit: 'px',
      duration: 500}
    );

    tabsHeight[i] = tabs[i].getStyle('height');

    selector = $('select-'+tabs[i].id)
    selector.addEvent('click', tabClick);

    if(!selector.hasClass('choosen')){
      tabsFx[i].start('height', 0);
    }
  }
}

function tabClick(e) {
  var tab = tabs.indexOf($(e.target.id.slice(7)));
  var choosenLi = $$('#'+e.target.parentNode.parentNode.id+' a.choosen');
  
  for(i=0; i<choosenLi.length; i++) {
    tabsFx[tabs.indexOf($(choosenLi[i].id.slice(7)))].start('height', 0);
    $(choosenLi[i]).removeClass('choosen');
  }

  e.target.addClass('choosen');

  setTimeout('openTab('+tab+')', 500);
}

function openTab(tab) {
  tabsFx[tab].start('height', tabsHeight[tab]);
}

//initialise Buchungsformular

window.addEvent('domready', form_init);
function form_init() {
  var appartementSelect = $$('select[name=Appartement] option');
  if(appartementSelect.length != 0) {
    var expression = /\d{1,2}/;
    var appartementNr = expression.exec(document.URL);
    try {
      appartementSelect[appartementNr-1].setProperty('selected', 'selected');
    }
    catch(e){}
  }
}
