
// ELEMENT-ROTATION

var rotation = false;
var timeout;

function rotateText(idx, direction) {
  if (rotation) {
    return;
  }
  if (! (idx && direction)) {
    return;
  }
  var elem = document.getElementById(idx + '-text');
  if (! elem) {
      return;
  }
  var diff = 10;
  if (direction == 'forw') {
    diff = diff * -1;
  }
  var pos = parseInt(elem.style.left + diff);
  rotateElement(elem, direction, pos, diff);
}

function rotateElement(elem, direction, pos, diff) {
   if (timeout) {
     window.clearTimeout(timeout);
   }
    var elemWidth = getElementWidht(elem);
    var end = 21;
    if (direction == 'forw') {
      end = parseInt((elemWidth / 2)  -21) * -1;
      if (document.all) {
          //end += 35;
          end += 0;
      }
    }
    elem.style.left = pos + 'px';
    if (pos == end) {
      return;
    }
     var next = parseInt(pos + diff);
      if (direction == 'forw') {
         if (next <= end) {
           var next =  end;
         }
      } else {
         if (next >= end) {
           var next = end;
         }
      }  
     var func = function () {rotateElement(elem, direction, next, diff);};
     timeout = window.setTimeout(func, 10);
     return;
}

function getElementWidht(elem) {
  if (!elem) {
    return;
  }
  return elem.offsetWidth;
}


// FADING-CONTENT

var undefined;
var activeID = 'nav1';
var timeFadeIn;
var timeFadeOut;
var running = false;

var images = [];
for (var i=1; i<11; i++) {
    var img = new Image();
    img.src = '../bilder/these_'+ i +'.jpg';        
    images[i] = img;
}

function switchNext(idx) {
  if (running) {
    return;
  }
  if (! idx) {
     var pos = activeID.toString().replace(/^nav/,'');
     pos = parseFloat(pos) + 1;
     if (pos > 10) {
       return;
     }
     idx = "nav" + pos;  
  }   
  if (idx != activeID) {
    var activeElement = document.getElementById(activeID);
    activeElement.className = 'thesen-nav';
  }
  var lastIdPostFix = activeID.toString().replace(/^nav/,'');
  var idLastContent = 'thesen-' + lastIdPostFix;
  var idPostFix = idx.toString().replace(/^nav/,'');
  var idContent = 'thesen-' + idPostFix;
  activeElement = document.getElementById(idx);
  if (activeElement) {
    activeElement.className = 'thesen-nav active';
  }   
  activeID = idx;
  if (! images[idPostFix]) {
    return;
  }    
  cursorWait();
  var imgElem = document.getElementById(idContent + '-img');
  if (imgElem) {
     imgElem.src = images[idPostFix].src;      
  } 
  var func = function () { fadeImages(idContent, idLastContent) };
  if (! images[idPostFix].complete) {
    images[idPostFix].onload = func;
    return;
  } 
  func();
}

function fadeImages(idxActive, idxLast) {
  var returnFunc = function () {resetThesenText(idxLast)};
   fadeOut(idxLast, 1, returnFunc);
   fadeIn(idxActive, 0);
   cursorFinished();
}

function fadeIn(idx, opac,  returnFunc) {
  if (timeFadeIn) {
    window.clearTimeout(timeFadeIn);
  }
  if (opac == undefined) {
      return;
  }
  var elem = document.getElementById(idx);
  if (! elem) {
    reset;
  }
  running = true;
  elem.style.display = 'block';
  var opacGrenzwert = 1;
  if (elem.filters != undefined){
    var opacIE = parseFloat(opac) * 100;
    // IE
    elem.filters['Alpha']['opacity'] = opacIE;
    elem.filters['Alpha']['finishopacity'] = opacIE;
  } else {
    // Other
    elem.style.opacity = opac;
  }
  opac += 0.05;
  if (opac < opacGrenzwert) {
    var func = function () {fadeIn(idx, opac,  returnFunc)};
    timeFadeIn = window.setTimeout(func , 100);
    return;
  }
  elem.className = 'thesen-content thesen-active';
  if (returnFunc) {
    returnFunc();
  }
  running = false;
}    

function fadeOut(idx, opac, returnFunc) {
  if (timeFadeOut) {
    window.clearTimeout(timeFadeOut);
  }
  if (opac == undefined) {
      return;
  }
  var elem = document.getElementById(idx);
  if (! elem) {
    reset;
  }
  running = true;
  if (elem.filters != undefined){
    var opacIE = parseFloat(opac) * 100;
    // IE
    elem.filters['Alpha']['opacity'] = opacIE;
    elem.filters['Alpha']['finishopacity'] = opacIE;
  } else {
    // Other
    elem.style.opacity = opac;
  }
  opac -= 0.05;
  if (opac > 0) {
    var func = function () {fadeOut(idx, opac,  returnFunc)};
    timeFadeOut = window.setTimeout(func, 100);
    return;
  }
  elem.style.display = 'none';
  elem.className = 'thesen-content';
  if (returnFunc) {
    returnFunc();
  }
  running = false;
}

function resetThesenText(idx) {
  var elem = document.getElementById(idx + '-text');
  if (! elem) {
    reset;
  }
  elem.style.left = '21px';
  if (document.all) {
    elem.style.left = '35px';
  }
}

function cursorWait() {
  if (! document.getElementsByTagName('body').length){
    return;
  }
  document.getElementsByTagName('body')[0].style.cursor = 'wait';
}

function cursorFinished() {
  if (! document.getElementsByTagName('body').length){
    return;
  }
  document.getElementsByTagName('body')[0].style.cursor = 'auto';
}

