/*------------------------------------------------------------------
	jquery.jContentFader.js 2009/05/28 Daniel Schneider, info@hd7b.de
	this file is part of the youexpress-cms
	copyright (c) 2009 HD7B-MEDIEN www.hd7b.de
  ----------------------------------------------------------------*/

jQuery.fn.jContentFader = function(options) {
  var settings = jQuery.extend(
    {fadeSpeed: 800, autoSpeed: 4500, startPos: 1}, options
  );
  
  var pos=settings.startPos;
  
  jContentFaderObj=$(this);  
  var slideObjects=$(".contentFader_slide");
  var numSlides=slideObjects.length;  
  slideObjects.hide(0); //hide slides on init
  createControls();
  showSlide(pos);
  
  function showSlide(pos){
    //hide active
    $(".contentFader_active")
    .removeClass("contentFader_active")
    .fadeOut(settings.fadeSpeed);
    //dehilite active control
    $(".contentFader_control_active").removeClass("contentFader_control_active");
    //show current
    $(".contentFader_slide")
    .eq(pos-1)
    .fadeIn(settings.fadeSpeed)
    .addClass("contentFader_active");
    //hilite active control    
    $("#contentFader_control_"+pos).addClass("contentFader_control_active");
  }
  
  function createControls(){
    //build and append controls
    var controlHtml='<div id="contentFader_controls">';
    controlHtml+='<div id="contentFader_control_prev"></div>';
    for(var i=1; i <= numSlides; i++){
      controlHtml+='<div id="contentFader_control_'+i+'" class="contentFader_control">'+i+'</div>';
    }
    controlHtml+='<div id="contentFader_control_next"></div>';
    controlHtml+='</div>';
    jContentFaderObj.append(controlHtml);
    //manage events
    $("#contentFader_control_prev").click(function(){
      clearInterval(contentFaderAuto);
      pos--;
      if(pos==0) pos=numSlides;
      showSlide(pos);
    });
    $("#contentFader_control_next").click(function(){
      clearInterval(contentFaderAuto);
      pos++;
      if(pos>numSlides) pos=1;
      showSlide(pos);
    });
    $(".contentFader_control").click(function(){
      clearInterval(contentFaderAuto);
      pos=parseInt($(this).html());
      showSlide(pos);
    });
  }
  
  contentFaderAuto=setInterval(function() {
    pos++;
    if(pos>numSlides) pos=1;
    showSlide(pos);
  }, settings.autoSpeed);  
  
};
