﻿$(document).ready(function () {
    $(".slideshow").SlideShowManager();
});

jQuery.fn.SlideShowManager = function () {
    return this.each(function () {
        new SlideShow(this);
    });
};


function SlideShow(base) {
    var self = this;

    self.currentPosition = 0;
    self.slideWidth = 270;
    self.slides = $('.slide', base);
    self.numberOfSlides = this.slides.length;
    self.base = base;
    self.direction = 1;
    self.Timer = null;


    self.slides
    .wrapAll('<div class="slideInner"></div>')
    // Float left to display horizontally, readjust .slides width
	.css({
	    'float': 'left',
	    'width': self.slideWidth
	});

    $('.slidesContainer', base).css('overflow', 'hidden');
    $('.slideInner', base).css('width', self.slideWidth * self.numberOfSlides);


//  $('.slidesContainer', base).prepend('<div class="autoplayControl">PLAY</div>');
    $('.slidesContainer', base).prepend('<div class="autoplayControl"></div>');

    $(base)
  .prepend('<div class="leftControlH"><span class="leftControl">&nbsp;</span></div>')
  .append('<div class="rightControlH"><span class="rightControl">&nbsp;</span></div>');

    $('.leftControl', base).bind('click', $.proxy(self.onLeftControlClick, self));
    $('.rightControl', base).bind('click', $.proxy(self.onRightControlClick, self));
    $('.autoplayControl', base).bind('click', $.proxy(self.onAutoPlayControlClick, self));

    self.manageControls();
}

SlideShow.prototype.manageControls = function () {
    var self = this;
    if (self.currentPosition == 0) {
        $('.leftControl', self.base).hide();
        self.direction = +1;
    }
    else {
        $('.leftControl', self.base).show();
    }

    if (self.currentPosition == (self.numberOfSlides - 1)) {
        $('.rightControl', self.base).hide();
        self.direction = -1;
    }
    else {
        $('.rightControl', self.base).show();
    }
}

SlideShow.prototype.animate = function () {
    var self = this;
    $('.slideInner', self.base).animate({ 'marginLeft': self.slideWidth * (-self.currentPosition) });
}

SlideShow.prototype.onLeftControlClick = function () {
    //for( k in this)   console.log(k);
    var self = this;
    self.currentPosition--;
    self.manageControls();
    self.animate();
}

SlideShow.prototype.onRightControlClick = function () {
    //for( k in this)   console.log(k);
    var self = this;
    self.currentPosition++;
    self.manageControls();
    self.animate();
}

SlideShow.prototype.autoAnimate = function () {
    var self = this;
    if (self.direction == 1) {
        self.currentPosition++;
    }
    else {
        self.currentPosition = 0;
    }
    //for (k in o) console.log(k);
    self.manageControls();
    self.animate();
}

SlideShow.prototype.onAutoPlayControlClick = function () {
    var self = this;

    if (self.Timer == null) {
        self.Timer = window.setInterval(function () {
            self.autoAnimate();
        }
						, 4000);
//        $('.autoplayControl', self.base).html("STOP");
        $('.autoplayControl', self.base).html("");
    } else {
        window.clearInterval(self.Timer);
        self.Timer = null;
//        $('.autoplayControl', self.base).html("PLAY")
        $('.autoplayControl', self.base).html("")
    }
}
