/**
 * JS for the FCB Slideshow
 *
 * @created 2010/06/08 by Riccardo C.
 * @copyright (c) 2010 by BTD Newmedia GmbH 
 */
/**
 * -----------------------------
 * # Javascript File for BTD Group GmbH
 * #
 * # @copy BTD Gruppe GmbH 2010
 * -----------------------------
 */
 
// Set Variables
var slideWidth = 385;
var currentPosition = 0;
var numberOfSlides = 0;
var count = 0;
var slideshow = null;

/**
 * Create a Slideshow Effect
 * 
 * @param numberOfSlides int
 */
function galerieInterval(numberOfSlides) {
  
    // Set the currentPosition
    currentPosition = counter(currentPosition, numberOfSlides);
    nextSlide(currentPosition, numberOfSlides);
}

/**
 * Set the next Slide
 *
 * @param currentPosition int, numberOfSlides int
 */
function nextSlide(currentPosition, numberOfSlides){
  
    manageControls(currentPosition, numberOfSlides);
    // Move slideInner using margin-left
    $('.fcbSlider .images').animate({
        'marginLeft' : slideWidth*(-currentPosition)
    });
    
    $('.navigation ul li a').each(function(ev){
        if($(this).attr('rel') == currentPosition){
            $(this).addClass('active');
        }else {
            $(this).removeClass('active');
        }
    }
    );
}

/**
 * Set the CurrentPosition
 *
 * @param count int, numberOfSlides int
 * @return count int
 */
function counter(count, numberOfSlides){
    count++;
    if(count >= numberOfSlides){
        count = 0;
    }
    return count;
}
  
/**
 * Hides and Shows controls depending on currentPosition
 *
 * @param position int, numberOfSlides int
 */
function manageControls(position, numberOfSlides){
    // Hide left arrow if position is first slide
    if(position==0){ $('#leftControl').hide(); $('#leftControlArrow').show(); } else{ $('#leftControl').show();$('#leftControlArrow').hide(); }
    // Hide right arrow if position is last slide
    if(position==numberOfSlides-1){ $('#rightControl').hide(); $('#rightControlArrow').show(); } else{ $('#rightControl').show();$('#rightControlArrow').hide();}
}

$(document).ready(function(){
    
    // Set the Slider NavPosition 
    var tmp = 0;
    
    tmp = $('.fcbSlider .navigation ul li').length;
    
    $('.fcbSlider .navigation ul').css({
        'width' : (tmp*19), //breite eines punktes * anzahl der punkte
        'right' : '30px'
    });
    
    $('.fcbSlider .navigation #leftControl').css({
        'right' : (20) + (tmp*19)
    });
    $('.fcbSlider .navigation #leftControlArrow').css({
        'right' : (20) + (tmp*19)
    });
    
  // Set the Slides and count it
  var slides = $('.fcbSlider .images img');
  numberOfSlides = slides.length;

  // Remove scrollbar in JS
  $('.fcbSlider .images').css('overflow', 'visible');
    
  // Set #slideInner width equal to total width of all slides
  $('.fcbSlider .images').css('width', slideWidth * numberOfSlides);

  // Insert controls in the DOM
  //$('.fcbSlider .navigation')
  //  .prepend('<span class="control" id="leftControl" title="Zur&uuml;ck"></span>')
  // .append('<span class="control" id="rightControl" title="N&auml;chstes"></span>');

  // Hide left arrow control on first load
  //manageControls(currentPosition, numberOfSlides);
  
  // Create a Slideshow - Effect
  slideshow = window.setInterval('galerieInterval('+numberOfSlides+')', 5000);
  
  // Create event listeners for .controls clicks
  $('.control')
    .bind('click', function(){
        if($(this).attr('id') =='leftControlArrow'){return;}
        if($(this).attr('id') =='rightControlArrow'){return;}
        
      // Terminate Interval
        window.clearInterval(slideshow);
        
        // Determine new position
        currentPosition = ($(this).attr('id')=='rightControl') ? parseInt(currentPosition)+1 : parseInt(currentPosition)-1;
      
      // Set next Slide
      nextSlide(currentPosition, numberOfSlides);
      // Start a Slideshow - Effect - again
      slideshow = window.setInterval('galerieInterval('+numberOfSlides+')', 5000);
  });
  
  $('.fcbSlider .navigation ul li a').click(function(){
    // Terminate Interval
      window.clearInterval(slideshow);
    
    currentPosition = $(this).attr('rel');
    nextSlide(currentPosition, numberOfSlides);
    
    // Start a Slideshow - Effect - again
    slideshow = window.setInterval('galerieInterval('+numberOfSlides+')', 5000); 
  });
  
}); 

