//setting for making slide strip
var defaultSlide = '0';
var originPosition = {};
var is_animating = 0;
var currentSlide;
var currentStripPosition = 0;
var currentStripSlide = '';
var centeringPoint = 0;
var rightScrollLimit = 0;
var initScroll = 0; //Activate initial scroll animation:1, no action:0
var slideWidth = 80;
var slidesAtOnce = 5;
var initScrollAmount = 1800; //1800; //Scroll amount for initial scrolling animation.
var slides = {};
var slideTotal = 0;
var sliderBreed = 3.57
var opzij = 740.5
var rectificatie = -0.1

function initShit()
{
	
defaultSlide = '0';
originPosition = {};
is_animating = 0;
currentSlide;
currentStripPosition = 0;
currentStripSlide = '';
centeringPoint = 0;
rightScrollLimit = 0;
initScroll = 0; //Activate initial scroll animation:1, no action:0
slideWidth =  101;
slidesAtOnce = 5;
initScrollAmount = 1800; //1800; //Scroll amount for initial scrolling animation.
slides = {};
slideTotal = 0;
sliderBreed = 3.6
opzij = 694.5
rectificatie = -0.1	
makeSlideStrip()
}

function makeSlideStrip() {

  var thumbs = document.getElementById('thumblist');
  //thumbs.style.left = "0px";
  var thumbsSize = thumbs.childNodes.length;
  
  for (var i = 0; i < thumbsSize; i++) {
    if (thumbs.childNodes[i].tagName == 'A') {
      slides[slideTotal] = thumbs.childNodes[i];
      slideTotal++;
    }
  }
  
  centeringPoint = Math.ceil(slidesAtOnce/2);

  var i = 0;
  for (var j = 0; j < slideTotal; j++) {
    
    if (i <= centeringPoint-1) {
      originPosition[slides[j].id] = 0;
    } else {
      if (i >= slideTotal-centeringPoint+1)  {
        originPosition[slides[j].id] = (slideTotal-slidesAtOnce)*slideWidth;
      } else {
        originPosition[slides[j].id] = (i-centeringPoint+1)*slideWidth;
      }
    }
    i++;
  }

  rightScrollLimit = -1*(slideTotal-slidesAtOnce)*slideWidth;

  animateSlide(0, 'right');
  var rightarrow = document.getElementById('rightarrow');

	var aantalin = Number(thumbsSize) - 1
	if(Number(aantalin) < 7)
	{
		rightarrow.onclick = null;
        rightarrow.className = '';
	} else {
		rightarrow.className = 'on';
        rightarrow.onclick = page_right;
		
	}
	

}

// Slide animation function
function slide(goal, id, go_left, cp) {
  // @author:colin@evilfork.net 

  var div = document.getElementById(id);
  var animation = {};

  animation.time = 0.75;  // in seconds
  animation.fps = 60;
  animation.goal = goal;
  origin = 0.0;
  animation.origin = Math.abs(origin);
    
  animation.frames = (animation.time * animation.fps) - 1.0;

  var current_frame = 0;
  var motions = Math.abs(animation.goal - animation.origin);
  function animate() {  
    var ease_right = function (t) { return (1 - Math.cos(t * Math.PI))/2.0; };
    var ease = ease_right;
    if (go_left == 1) {
      ease = function(t) { return 1.0 - ease_right(t); };
    }
                    
    var left = (ease(current_frame/animation.frames) * Math.abs(animation.goal - animation.origin)) - cp;
    left = (left < 0) ? 0 : left; // to avoid situation where we try to assign a value of -- #px to style.left
    if (!isNaN(left)) {
      div.style.left = '-' + left + 'px';
    }
        
    current_frame += 1;
    if (current_frame == animation.frames) {
      is_animating = 0;
      window.clearInterval(timeoutId)
    }
  }

  var timeoutId = window.setInterval(animate, animation.time/animation.fps * 1000);
}

//Get style property
function getStyle(element, cssProperty){
  var elem = document.getElementById(element);
  if(elem.currentStyle){
    return elem.currentStyle[cssProperty]; //IE
  } else{
    var style =  document.defaultView.getComputedStyle(elem, null); //firefox, Opera
    return style.getPropertyValue(cssProperty);
  }
}

// Left and right arrows
function page_left() {
  var amount = (sliderBreed - 0.01) * (slideWidth+rectificatie);  
//var amount = opzij;
  animateSlide(amount, 'left');
}

function page_right(evnt) { 
  var amount = sliderBreed * (slideWidth+rectificatie);  
//var amount = opzij;
  animateSlide(amount, 'right');
}

// Animate the strip
function animateSlide(amount,dir) {
  var thumblist = document.getElementById('thumblist');
  var rightarrow = document.getElementById('rightarrow');
  var leftarrow = document.getElementById('leftarrow');
  var currentStripPosition = parseInt(getStyle('thumblist','left'));
  var motionDistance;
    
  if (amount == slideWidth ) {
    motionDistance = slideWidth;
  } else {
    motionDistance = amount;
  }
  
  function aToggle(state,aDir) {
    if (state == 'on') {
      if (aDir =='right') {
        rightarrow.className = 'on';
        rightarrow.onclick = page_right;
      } else {
        leftarrow.className = 'on';
        leftarrow.onclick = page_left;
      }
    } else {
      if (aDir =='right') {
        rightarrow.onclick = null;
        rightarrow.className = ''; 
      } else {
        leftarrow.onclick = null;
        leftarrow.className = '';
      }
    }
  }
  
  function arrowChange(rP) {
    if (rP >= rightScrollLimit) {
      aToggle('on','right');
    }
    if (rP <= rightScrollLimit) {
      aToggle('off','right');
    }
    if (rP <= slideWidth) {
      aToggle('on','left');
    }
    if (rP >= 0) {
      aToggle('off','left');
    }
  }
      
  if (dir == 'right' && is_animating == 0) {
    is_animating = 1;
    slide(motionDistance, 'thumblist', 0, currentStripPosition);
    arrowChange(currentStripPosition-motionDistance);
  } else if (dir == 'left' && is_animating == 0) {
    is_animating = 1;
    rightStripPosition = currentStripPosition + motionDistance;
    slide(motionDistance, 'thumblist', 1, rightStripPosition);
    arrowChange(currentStripPosition + motionDistance);
  }
}

// Centering selected item
function centeringSelectedSlide(slideName) {
  var currentStripPosition = parseInt(getStyle('thumblist','left'));
  var dir = 'left';
  var originpoint = Math.abs(currentStripPosition);
  if (originpoint <= originPosition[slideName]) {
    dir = 'right';
  }
  var motionValue = Math.abs(originPosition[slideName] - originpoint);

  animateSlide(motionValue, dir);
}

function initMotion() {
  var thumblist = document.getElementById('thumblist');
  thumblist.style.left = '-' + initScrollAmount + 'px';
  animateSlide(initScrollAmount,'left');
}


// Toggles tip preview and proper button URL
function showPreview(slideId) {
  var oldSlide = document.getElementById('entry_' + currentSlide);
  var oldSlideThumb = document.getElementById('thumb_' + currentSlide);
  currentSlide = slideId;
  var currSlide = document.getElementById('entry_' + slideId);
  var currSlideThumb = document.getElementById('thumb_' + slideId);
  
  if (oldSlide) {
    oldSlide.className = 'hidden';
    oldSlideThumb.className = '';
  }
  currSlide.className = '';
  currSlideThumb.className = 'selected';

  centeringSelectedSlide('thumb_' + slideId);
}

// Chooses an tip randomly to show on pageload, or displays the one indicated by #name=
function show_selected_searchtip() {
  var hash = window.location.hash;
  if (hash.length) {
    slideNamepreview = document.getElementById('previewContainer');
    currentSlide = defaultSlide;
    animateSlide(originPosition[currentSlide],'right');
    showPreview(currentSlide);
  }
  else if (defaultSlide != 0) {
    currentSlide = defaultSlide;
    animateSlide(originPosition[currentSlide],'right');
    showPreview(currentSlide);
    return;
  }
  if (initScroll == 1) {
    initMotion();
  }
}
