// JavaScript Document

(function(jQuery) {
	jQuery.fn.figcarousel = function(settings) {
		
		var settings = jQuery.extend({
			list:				"carousel-images",
			accordion:			"accordion",
			slideWidth:			515,
			slideHeight:		515,
			startSlide:			1
		}, settings);
		// Caching the jQuery object with all elements matched
		var container = this; // This, in this context, refer to jQuery object
		var containerID = this.attr("id");
		var numChildren = jQuery('#'+containerID+' #'+settings.list+' li').length;
		var listWidth = settings.slideWidth*2;
		var slideIndex = 0;
		var paused = false;
		var timer;
		
		var endX = [0,-1*settings.slideWidth,-1*settings.slideWidth,0];
		var endY = [0,0,-1*settings.slideHeight,-1*settings.slideHeight];
		
		function _initialize(){
			jQuery('#'+containerID+' #'+settings.list).width(listWidth);
			if(settings.startSlide!=1){
				slideIndex = settings.startSlide-1;
			}
			_shift();
		}
		
		function _jumpto(index){
			if(index!=slideIndex){
				slideIndex = index;
				_shift();
			}
		}
		
		function _next(){
			if(!paused){
				if(slideIndex==(numChildren-1)){
					slideIndex = 0;
				} else {
					slideIndex++;
				}
				_shift();
			}
			return false;	
		}
		
		function _changeThumbs(){
			/*jQuery('#'+containerID+' #'+settings.info+' li.accordion').each(function(i){
				if(i==slideIndex){
					jQuery(this).addClass('active').animate({height:115});
				} else {
					jQuery(this).removeClass('active').animate({height:25});					
				}
			});*/
			jQuery("#accordion").accordion( 'activate' , slideIndex );
		}
		
		function _shift(){
			jQuery('#'+containerID+' #'+settings.list).stop().animate({left:endX[slideIndex]+'px', top:endY[slideIndex]+'px'},1000,'easeInOutQuint');
			_changeThumbs();
			if(!paused){
				_resetTime();
			}
		}
		
		function _resetTime(){
			clearTimeout(timer);
			timer = setTimeout(function(){
				_next();
			}, 5000);
		}
		
		function _playPause(){
			jQuery('#'+settings.accordion+' .pause').each(function(){
				if( !jQuery(this).hasClass('play') ){
					paused = true;
					jQuery(this).addClass('play');
					jQuery(this).animate({backgroundPosition: '(-14px 6px)'});
				} else {
					paused = false;
					_resetTime();
					jQuery(this).removeClass('play');
					jQuery(this).animate({backgroundPosition: '(0px 6px)'});
				}
			});
		}
		
		_initialize();
		jQuery('#'+settings.accordion+' h6').each(function(i){
			jQuery(this).click(function(){
				_jumpto(i);
			});
		});
		
		jQuery('#'+settings.accordion+' .pause').click(function(i){
			_playPause();
		});

	};
})(jQuery);