/**
* @cfg.seqEl: sequence container
*/
(function($){
$.fn.slide = function( cfg )
{
var seqEl = $(cfg.seqEl).eq(0);
var timer_id;
var currentSlide;
var currentIdx = 0;
var seqButtons = [];
var interval = cfg.interval ? cfg.interval : 4000;
var clickDelay = cfg.clickDelay ? cfg.clickDelay : 11000;
var slides = $('.slide',this);
var len = slides.length;
$('.slide',this).each( function(idx){
if ( idx > 0 ) $(this).hide();
var seqB = $('
'+(idx+1)+'
');
seqB.addClass('seq-b');
if ( idx == 0 ) seqB.addClass('active');
seqEl.append(seqB);
seqButtons.push(seqB);
seqB.click(onSequenceClick);
seqB.attr("seqid",idx);
});
currentSlide = slides.eq(0);
// setActive(0);
startSlide();
function startSlide()
{
timer_id = setTimeout(transition,interval);
}
function transition()
{
currentIdx++;
setActive(currentIdx,2500,cfg.interval);
if ( currentIdx == (len-1) ) currentIdx = -1;
}
function setActive(activeIdx,fadeDelay,slideDelay)
{
currentSlide.fadeOut(fadeDelay);
currentSlide = $(slides.get(activeIdx));
currentSlide.fadeIn(fadeDelay);
if ( slideDelay ) timer_id = setTimeout(startSlide,slideDelay);
else startSlide()
$(seqButtons).each(function(idx){
if( idx == activeIdx ) this.addClass('active');
else this.removeClass('active');
});
}
function onSequenceClick(evt)
{
clearTimeout(timer_id);
var t = $(evt.target);
seqIdx = t.attr('seqid');
setActive(seqIdx,-1,clickDelay);
currentIdx = seqIdx;
if ( currentIdx == (len-1) ) currentIdx = -1;
// console.log(evt)evt.target.attr('seqid'));
}
}
})(jQuery)