var SliderClass=function(c){
  var config={
    cpp:3,
    addWidth:10,
    page:1,
    auto:false,
    obj:null,
    next:null,
    back:null,
    slide:null,
    elem:null,
    pitems:null,
    pacss:null,
    pdcss:null,
    easing:'swing' //'easeInOutBack'
  };
  $.extend(true,config,c);
  
  var tout=false;

  var next=config.next;
  var back=config.back;
  var slide=config.slide;

  var cpp=config.cpp;
  var p=config.page;
  var c=config.elem.length;
  var max=Math.ceil(c/cpp);
  var width=slide.width()+config.addWidth;

  var panim=function(i){};

  var animSlide=function()
  {
    slide.stop(true,false).animate({scrollLeft:(p-1)*width},{easing:config.easing,duration:'slow'});
    panim(p);
  };

  var moveNext=function(){
    p++;
    if (p==max+1)
    {
      p=1;
    }
    animSlide();
  };
  var moveBack=function(){
    p--;
    if (p==0)
    {
      p=max;
    }
    animSlide();
  };
  
  var play=function()
  {
	  if (!tout)
	  {
		  tout=setInterval(moveNext,config.auto*1000);
	  }
  }
  
  var stop=function()
  {
	  if (tout)
	  {
		  clearInterval(tout)
		  tout=false;
	  }	  
  }

  next.click(moveNext);
  back.click(moveBack);
  if (config.pitems)
  {
    panim=function(i)
    {
      $(config.pitems[i-1]).addClass(config.pacss).removeClass(config.pdcss).siblings().removeClass(config.pacss).addClass(config.pdcss);
    }
    panim(p);
    config.pitems.each(function(i){
      var obj=$(this);
      obj.click(function(){
        p=i+1;
        animSlide();
      });
    });
  }
  
  if (config.auto)
  {
	  config.obj.mouseenter(function(){
		 stop(); 
	  }).mouseleave(function(){
		 play();
	  });
	  play();
  }
};

