/* ******************************************************************************
  JavaScript Gallery Transition controller
	
 	Copyright (c) 2008 David Turner (davidturner.info)
 	Date: 30/07/2008	 
		 
****************************************************************************** */
var transitionDuration = 500;
var transitionDelay = 5000;

jQuery(document).ready(function(){
	
	jQuery('div.galleryWidget').each(function(v,ob_galleryWidget){

		var current = jQuery(ob_galleryWidget).find('div.pagination li.selected').prevAll('li').size();

		//set all items to active
		jQuery(ob_galleryWidget).find('div.scrollItem').addClass('active');
		//set left offset
		obCurrent = jQuery(ob_galleryWidget).find('div.scrollItem')[current];

		jQuery(ob_galleryWidget).find('div.scrollContainer').css('left',-jQuery(obCurrent).position()['left']+'px');

		//events`
		jQuery(ob_galleryWidget).find('div.galleryWidget_nav div.pagination li a').click( function(event){ __galleryWidgetSelect(event,ob_galleryWidget,jQuery(this).html())} ).css('outline','none');		
		jQuery(ob_galleryWidget).find('div.galleryWidget_nav div.controls a.prev').click( function(event){ __galleryWidgetSelect(event,ob_galleryWidget,'prev')} ).css('outline','none');
		jQuery(ob_galleryWidget).find('div.galleryWidget_nav div.controls a.next').click( function(event){ __galleryWidgetSelect(event,ob_galleryWidget,'next')} ).css('outline','none');
		
		
	if( jQuery(ob_galleryWidget).find('div.controls').hasClass('autoplay')){
		//console.log('auto play on');
		//add play/pause button
		jQuery(ob_galleryWidget).find('div.controls a.prev').after('<a class="playPause pause" href="#">Pause</a>');
		
		if( !jQuery(ob_galleryWidget).find('div.controls').hasClass('pause'))jQuery(ob_galleryWidget).find('div.controls a.playPause').removeClass('pause');
		
		jQuery(ob_galleryWidget).find('div.controls a.playPause').click( 
			function(event){ 
				event.preventDefault();
				if(jQuery(this).hasClass('pause')){
					// set button state to play
					jQuery(this).removeClass('pause');
					//pause slideshow
					jQuery(ob_galleryWidget).find('div.controls').addClass('pause');
				}else{
					// set button state to pause
					jQuery(this).addClass('pause');
					//play slideshow
					jQuery(ob_galleryWidget).find('div.controls').removeClass('pause');
				}
			}).css('outline','none');

		
		__galleryWidgetAutoPlay(ob_galleryWidget,transitionDelay);
		
	}
		
	
	});
	
});

function __galleryWidgetAutoPlay(ob,delay){
	
		if(jQuery(ob).hasClass('delay')){
			jQuery(this).oneTime(delay, function() {
				jQuery(ob).removeClass('delay')
				__galleryWidgetAutoPlay(ob,delay);
			});			
		}else{
			//console.log(jQuery('div.controls a.playPause').attr('class');
			//console.log(jQuery('div.controls a.playPause').attr('class'));
			jQuery(this).oneTime(delay, function() {
				if(!jQuery(ob).hasClass('transitioning') && !jQuery(ob).find('div.controls a.playPause').hasClass('pause')){	
					 __galleryWidgetSelect('auto',ob,'next');
				}
				__galleryWidgetAutoPlay(ob,delay);
			});			
		}

}

function __galleryWidgetSelect(event,galleryWidget,request){

	if(event != "auto"){
		event.preventDefault();
		jQuery(galleryWidget).addClass('delay');		
	}
	
			
		var current = jQuery(galleryWidget).find('div.pagination li.selected').prevAll('li').size()+1;
		var total = jQuery(galleryWidget).find('div.pagination li').size();
		request = request+"";
		switch(request)
		{
			
			case 'next':
				if(current < total){
					request = current+1;	
				}else{
					request = 1;	
				}
			break;
			
			case 'prev':
				if(current > 1){
					request = current-1;
				}else{
					request = total;
				}
			break;
			
			default:
				if(request.match(/^[0-9]+/)){
					request = request.match(/^[0-9]+/)[0]*1;
				}
			break;
		}
		
		//console.log(current+' ==> '+request);
		/*
		// show/hide prev button
		if(request==1){
			jQuery(galleryWidget).find('div.galleryWidget_nav a.prev').removeClass('active');
		}else{
			jQuery(galleryWidget).find('div.galleryWidget_nav a.prev').addClass('active');
		}
		
		// show/hide next button
		if(request>=jQuery(galleryWidget).find('div.scrollItem').size()){
			jQuery(galleryWidget).find('div.galleryWidget_nav a.next').removeClass('active');
		}else{
			jQuery(galleryWidget).find('div.galleryWidget_nav a.next').addClass('active');
		}
		*/
		
		if(!jQuery(galleryWidget).hasClass('transitioning') && !jQuery(jQuery(galleryWidget).find('div.pagination li')[request-1]).hasClass('selected')){
				
				jQuery(this).addClass('transitioning');
				jQuery(galleryWidget).find('div.pagination li.selected').removeClass('selected');
				jQuery(jQuery(galleryWidget).find('div.pagination li')[request-1]).addClass('selected');
				jQuery(galleryWidget).find('div.galleryWidget_nav .current').html(''+request);
				//console.log(request);	
				//var OB = jQuery(jQuery(galleryWidget).find('div.scrollItem')[request-1]).position()['left'];
				//console.info($(OB));
				
				if(jQuery(galleryWidget).hasClass('fade')){
					jQuery(galleryWidget).find('div.scrollItem').fadeOut(transitionDuration,function()
						{ 
							jQuery(galleryWidget).find('div.scrollContainer').css({'left':'-'+jQuery(jQuery(galleryWidget).find('div.scrollItem.item_'+request+'')).position()['left']+'px'})
						}
					).fadeIn(transitionDuration);
				}else{
					jQuery(galleryWidget).find('div.scrollContainer').animate(
						{'left':'-'+jQuery(jQuery(galleryWidget).find('div.scrollItem.item_'+request+'')).position()['left']+'px'},
						300
					).removeClass('transitioning');
				}
			
	
			//jQuery('#FeatureLinksScroll').animate({'left':'-'+newPos+'px'});
		}


}
