var navigationTimer = null;

window.onload = init;
  
function init(){
  /* Outlinks */
  var outlinks = $$('a[rel=external]');
  for(var i=0; i < outlinks.length; i++){
    outlinks[i].writeAttribute('target','_blank');
  }
  
  var homeBlock = $('homeBlock');
  homeBlock.observe('click',loadStartsite);
  
  /* Navigation */
  var navigation = $$('div#navigation ul li');
  for(var i=0; i < navigation.length; i++){
    var elementCSS = '';
    switch(navigation[i].readAttribute('id')){
      case 'nav1':
        elementCSS = 'div#navigationKeller';
        break;
      case 'nav2':
        elementCSS = 'div#navigationErdgeschoss';
        break;
      case 'nav3':
        elementCSS = 'div#navigation1Stock';
        break;
      case 'nav4':
        elementCSS = 'div#navigationDachboden';
        break;
      case 'nav5':
        elementCSS = 'div#navigationGalerie';
    }
    navigation[i].observe('mouseover',showNavigation.bind(elementCSS));
    navigation[i].observe('mouseout',startHideTimeout.bind(elementCSS));
  }
  var navBoxes = $$('div.navigationBox');
  for(var i=0; i < navBoxes.length; i++){
    var elementID = 'div#' + navBoxes[i].readAttribute('id');
    navBoxes[i].observe('mouseover',clearNavTimeout);
    navBoxes[i].observe('mouseout',startHideTimeout.bind(elementID));
  }
}

function loadStartsite(event){
  window.location.href = '/index.php';
}

function showNavigation(event){
  /* hide all nav boxes */
  window.clearTimeout(navigationTimer);
  var allNavBoxes = $$('div.navigationBox');
  for(var i=0; i < allNavBoxes.length; i++){
    allNavBoxes[i].setStyle({
      display: 'none'
    });
  }
  var elementCSS = this;
  $$(elementCSS)[0].setStyle({
    display: 'inherit'
  });
}

function hideNavigation(elementCSS){
  $$(elementCSS)[0].setStyle({
    display: 'none'
  });
}

function startHideTimeout(event){
  var elementCSS = this;
  var functionString = 'hideNavigation("' + elementCSS + '")';
  navigationTimer = window.setTimeout(functionString,1000);
}

function clearNavTimeout(){
  window.clearTimeout(navigationTimer);
}
