var sliderTimeoutID = -1;
var slideNumber = 0;
var sliderTimeout = -1;
var containerWidth = 700;
var nextSlideNumber = -1;
var startZeit = new Date();
var b = 0;
var c = containerWidth;
var d = 750;
var timeoutid = -1;
var result;
var slideDivs = new Array();

function preloadSlides() {
  document.Vorladen = new Array();
  for(var i = 0; i < headerResources.length; i++) {
    document.Vorladen[i] = new Image();
    document.Vorladen[i].src = headerResources[i].path;
  }
}

function buildSliderButtons() {
  document.getElementById('slider_extension_links').innerHTML = '';
  for(var i = 0; i < slideDivs.length; i++) {
    if(i == slideNumber) {      
      document.getElementById('slider_extension_links').innerHTML += '<img width="10" height="10" src="../projects/HumboldtInnovation/static/images/slider_quad_active.gif" style="margin-left:8px;" />';
    } else {
      document.getElementById('slider_extension_links').innerHTML += '<a class="slideLink" href="javascript:changeSlide(' + i + ')"><img width="10" height="10" src="../projects/HumboldtInnovation/static/images/slider_quad.gif" border="0" /></a>';
    }
  }
}

function buildSlideDivs() {
  for(i = 0; i < headerResources.length; i++) {
    var tempDiv = new Object();
    tempDiv = document.createElement('div');
    tempDiv.setAttribute('id', 'slide_' + i);
    tempDiv.style.position = 'absolute';
    
    var tempImg = new Image();
    tempImg.src = headerResources[i].path;
    
    var sliderEmptyText = false;
      var sliderText = headerResources[i].text;
    
    sliderText = sliderText.replace(/<br\s*\/*>/g, '');
    sliderText = sliderText.replace(/\s/g, '');
    
    if(sliderText == ''){
      sliderEmptyText = true;
    }
    
    if(!sliderEmptyText){
      var tempText = document.createElement('div');
      tempText.innerHTML = headerResources[i].text;
      tempText.style.position = 'absolute';
      
      if(headerResources[i].x != -1){
        tempText.style.left = headerResources[i].x;
      } else {
        tempText.style.left = 577;
      }  
      if(headerResources[i].y != -1){  
        tempText.style.top = headerResources[i].y;
      } else {
        tempText.stlye.top = 111;
      }
      tempDiv.appendChild(tempText);
    }
    tempDiv.appendChild(tempImg);
    slideDivs[i] = tempDiv;
  }
}

function rebuildSlides(direction) {
  
  if(direction > 0) {
    document.getElementById('slider_animation').removeChild(
      document.getElementById('slider_animation').firstChild
    ); 
  } else if(direction < 0) {
    document.getElementById('slider_animation').removeChild(
      document.getElementById('slider_animation').lastChild
    );
  }
  
  if(slideDivs.length == 1 ) {
    // nothing todo
  } else if (slideDivs.length == 2) {
    if(direction > 0) {
      document.getElementById('slider_animation').appendChild(
        slideDivs[getNextSlideNumber(1)].cloneNode(true)
      );
    } else if(direction < 0) {
      document.getElementById('slider_animation').insertBefore(
        slideDivs[getNextSlideNumber(-1)].cloneNode(true),
        document.getElementById('slider_animation').firstChild
      );
    }
  
  } else if (slideDivs.length > 2 ) {
    if(direction > 0) {
      document.getElementById('slider_animation').appendChild(
        slideDivs[getNextSlideNumber(1)]
      );
    } else if(direction < 0) {
      document.getElementById('slider_animation').insertBefore(
        slideDivs[getNextSlideNumber(-1)],
        document.getElementById('slider_animation').firstChild
      );
    }
  }
  
  document.getElementById('slider_animation').childNodes[0].style.left = -700;
  document.getElementById('slider_animation').childNodes[1].style.left = 0;
  document.getElementById('slider_animation').childNodes[2].style.left = 700;
  document.getElementById('slider_animation').style.left = 0;
    
}

function bla(difference) {
  if(difference > 0) {
    
    for(i = 0; i <= difference; i++) {
      
    }
    
  } else if(difference < 0) {
    
    for(i = 0; i <= difference; i++) {
      
    }
    
  }
}

function activateEnhancedSlider() {
  buildSlideDivs();
  
  var sliderAnimationDiv = document.createElement('div');
  sliderAnimationDiv.setAttribute('id', 'slider_animation');
  sliderAnimationDiv.style.left = 0;
  
  document.getElementById('slider_content').innerHTML = '';
  
  if(slideDivs.length == 1) {
    
    sliderAnimationDiv.appendChild(slideDivs[0]);
  
  } else if (slideDivs.length == 2) {
    
    sliderAnimationDiv.appendChild(
      slideDivs[1].cloneNode(true)
    );
    sliderAnimationDiv.firstChild.style.left = -containerWidth;
    
    slideDivs[0].style.left = 0;
    sliderAnimationDiv.appendChild(slideDivs[0]);
    
    slideDivs[1].style.left = containerWidth;
    sliderAnimationDiv.appendChild(slideDivs[1]);
    
    document.getElementById('slider_left').style.visibility = 'visible';
    document.getElementById('slider_right').style.visibility = 'visible';
    
    sliderTimeoutID = window.setTimeout('nextSlide()', headerResources[slideNumber].duration * 1000);
    
  } else if (slideDivs.length > 2 ) {
    
    slideDivs[slideDivs.length-1].style.left = -containerWidth;
    sliderAnimationDiv.appendChild(slideDivs[slideDivs.length-1]);
    
    slideDivs[0].style.left = 0;
    sliderAnimationDiv.appendChild(slideDivs[0]);
    
    slideDivs[1].style.left = containerWidth;
    sliderAnimationDiv.appendChild(slideDivs[1]);
    
    document.getElementById('slider_left').style.visibility = 'visible';      
    document.getElementById('slider_right').style.visibility = 'visible';
    
    sliderTimeoutID = window.setTimeout('nextSlide()', headerResources[slideNumber].duration * 1000);
  }

  document.getElementById('slider_content').appendChild(sliderAnimationDiv);
  buildSliderButtons();
    
}

function getNextSlideNumber(direction) {
  var result = slideNumber;
  if(direction > 0) {
    if( ((result + direction) % headerResources.length ) == 0) {
      result = 0
    } else {
      result += direction;
    }
  } else if(direction < 0) {
    if((result+direction) == -1) {
      result = headerResources.length -1;
    } else {
      result += direction;
    }
  }
  return result;
}

function updateSlides(direction) {
  slideNumber = getNextSlideNumber(direction);
  if(direction > 0) {
    c = containerWidth;
  } else if(direction < 0) {
    c = -containerWidth;
  } else if(direction == 0) {
    // TODO
  }
  animation(1, b, c, d);
}

function nextSlide() {
    if(headerResources.length > 0 && timeoutid == -1) {
      window.clearTimeout(sliderTimeoutID);
      startZeit = new Date();
      updateSlides(1);
    }
}

function prevSlide() {
    if(headerResources.length > 0 && timeoutid == -1) {
      window.clearTimeout(sliderTimeoutID);
      startZeit = new Date();
      updateSlides(-1);
    }       
}

function changeSlide(slideNr) {
  if(timeoutid == -1) {
    if(slideNr == getNextSlideNumber(1)) {
      nextSlide();
    } else if(slideNr == getNextSlideNumber(-1)) {
      prevSlide();
    } else {
      var difference = slideNr - (slideNumber+1);
      
    }
    //updateSlides(0);
  }
}

function resetAnimationValues() {
  c = containerWidth;
}

function easeInOutQuad(t, b, c, d) {    
  if ((t/=d/2) < 1) return c/2*t*t + b;
  return -c/2 * ((--t)*(t-2) - 1) + b;
} 

function animation(t, b, c, d) {    
    var dauer = new Date();
    dauer = dauer.getTime() - startZeit.getTime();
    
    if(dauer <= d ) {
      result = easeInOutQuad(dauer, b, c, d);
        document.getElementById('slider_animation').style.left =  -result;
        timeoutid = window.setTimeout('animation(' + dauer + ',' + b + ',' + c + ',' + d + ')', 10);
    } else {
      window.clearTimeout(timeoutid);
      timeoutid = -1;
      document.getElementById('slider_animation').style.left = containerWidth;
      sliderTimeoutID = window.setTimeout('nextSlide()', headerResources[slideNumber].duration * 1000);
      if(c > 0 ) {
        rebuildSlides(1);
      } else {
        rebuildSlides(-1);
      }
      buildSliderButtons();
    }
}

$(document).ready( function() {
    $(".tooltipTrigger").tooltip();
});
