/**
 * @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 : 5000;
	var clickDelay = cfg.clickDelay ? cfg.clickDelay : 1000;	

	
	var slides = $('.slide',this);
 	var len = slides.length;
 	$('.slide',this).each( function(idx){
		if ( idx > 0 ) $(this).hide();
			var seqB = $('<div>'+(idx+1)+'</div>');
			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)

