	var sliderOneTurning = false,
		sliderTwoTurning = false,
		sliderThreeTurning = false,
		sliderTurning = false;

    function turnsliders() {
      var rand_time = 2000;
      setTimeout('$("#sliderOne").trigger("turn")', rand_time);
      rand_time += 2000;
      setTimeout('$("#sliderTwo").trigger("turn")', rand_time);
      rand_time += 2000;
      setTimeout('$("#sliderThree").trigger("turn")', rand_time);
      setTimeout('turnsliders()', slider_wait);
    }

	(function($) {
      jQuery.fn.sliderInf = function () {
        return this.each(
          function () {
            var wrapper = $('> div', this).css('overflow', 'hidden'),
              slider = wrapper.find('> ul'),
              items = slider.find('> li'),
              single = items.filter(':first'),
              singleWidth = single.outerWidth(true),
              visible = Math.ceil(wrapper.innerWidth() / singleWidth),
              currentPos = 1,
              currentPage = 1,
              maxItems = items.length,
              trimpx = 15;
              pages = Math.ceil(maxItems / visible);
                        
            if (maxItems > 1) {
              items.filter(':first').before(items.slice(-visible).clone().addClass('cloned'));
              items.filter(':last').after(items.slice(0,visible).clone().addClass('cloned'));
              items = slider.find('> li'); // reselect
              
              wrapper.scrollLeft(singleWidth * visible + trimpx);
              
              function turn(dir) {
            	var go = true;
            	
                if (arguments.length > 1) {
                  id = arguments[1];
                }
                
            	go = ( (!sliderOneTurning && (id == "sliderOne") )
            		|| (!sliderTwoTurning && (id == "sliderTwo") )
            		|| (!sliderThreeTurning && (id == "sliderThree") ) );
            	
            	if (go) {
	                var dir = dir < 0 ? -1 : 1,
	                  speed = 500,
	                  left = singleWidth * dir;

	                if (id == "sliderOne") {
	                  sliderOneTurning = true;
	                }
	                if (id == "sliderTwo") {
	                  sliderTwoTurning = true;
	                }
	                if (id == "sliderThree") {
	                  sliderThreeTurning = true;
	                }
	                
	                currentPage = Math.ceil((currentPos + dir) / visible);
	                currentPos += dir;
	                wrapper.filter(':not(:animated)').stop();
	                wrapper.filter(':not(:animated)').animate({
	                  scrollLeft : '+=' + left
	                }, speed, function () {
	                  if (currentPos <= (1 - visible)) {
	                    wrapper.scrollLeft(singleWidth * maxItems + trimpx);
	                    currentPage = pages;
	                    currentPos = (maxItems-visible)+1;
	                  } else if (currentPos >= (maxItems + 1)) {
	                    wrapper.scrollLeft(singleWidth * visible + trimpx);
	                    currentPage = 1;
	                    currentPos = 1;
	                  }
	                });

		            if (id == "sliderOne") {
		              setTimeout(function () { sliderOneTurning = false; },speed);
		            }
		            if (id == "sliderTwo") {
		              setTimeout(function () { sliderTwoTurning = false; },speed);
		            }
		            if (id == "sliderThree") {
		              setTimeout(function () { sliderThreeTurning = false; },speed);
		            }
                }
                return false;
              }
              
              wrapper.before('<div class="sliderButton"><a id="b'+this.id+'" class="back b'+this.id+'" href="#"><img alt="" src="images/slider/slider_pfeil_li.gif"></a></div>');
              wrapper.after('<div class="sliderButton"><a id="f'+this.id+'" class="forward f'+this.id+'" href="#"><img alt="" src="images/slider/slider_pfeil_re.gif"></a></div>');
      
              $('a.b'+this.id, this).click(function () {
            	  id = this.id.substring(1);
                  return turn(-1,id);
              });
      
              $('a.f'+this.id, this).click(function () {
            	  id = this.id.substring(1);
                  return turn(1,id);
              });
              
              $(this).bind('turn', function (event) {
                  turn(1,this.id);
              });
            } else {
              wrapper.before('<div class="sliderButton"></div>');
              wrapper.after('<div class="sliderButton"></div>');
            }
          }
        );
      };
    })(jQuery);
