/* ******************************************************************************
  JavaScript scroller Transition controller
	
 	Copyright (c) 2008 David Turner (davidturner.info)
 	Date: 30/07/2008	 
		 
****************************************************************************** */
var scrller_transitionDuration = 500;
var scrller_transitionDelay = 8000;

jQuery(document).ready(function(){

	
	
	jQuery('div.scrollerWidget').each(function(v,ob_scrollerWidget){
		
		
		setTimeout ( function(){
			var title = jQuery(ob_scrollerWidget).find('.scrollItem.selected .featTitles');
			jQuery(title).animate({'margin-bottom':-jQuery(title).outerHeight()},{duration:250});		
			//console.log('fade');
		}, scrller_transitionDelay/2.5 );
		
		if(jQuery(ob_scrollerWidget).find('.scrollItem').size()>2 ){
			//wms_setupPrevScrollItem(ob_scrollerWidget);
		};
		
		
		var current = jQuery(ob_scrollerWidget).find('div.pagination li.selected').prevAll('li').size();

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

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

		//events`
		jQuery(ob_scrollerWidget).find('div.scrollerWidget_nav div.pagination li a').click( function(event){ wms_scrollerWidgetSelect(event,ob_scrollerWidget,jQuery(this).html())} ).css('outline','none');		
		jQuery(ob_scrollerWidget).find('div.scrollerWidget_nav div.controls a.prev').click( function(event){ wms_scrollerWidgetSelect(event,ob_scrollerWidget,'prev')} ).css('outline','none');
		jQuery(ob_scrollerWidget).find('div.scrollerWidget_nav div.controls a.next').click( function(event){ wms_scrollerWidgetSelect(event,ob_scrollerWidget,'next')} ).css('outline','none');
		
		
		//set up video play
		jQuery(ob_scrollerWidget).find('div.scrollItem a.PluginContainer.dontFlash').click(function(event){
			event.preventDefault();
			if(jQuery(ob_scrollerWidget).find('div.controls').hasClass('autoplay')){
				//console.log('hold pause');
				jQuery(ob_scrollerWidget).find('div.controls a.playPause').addClass('pause').addClass('holdPause');
			}
			jQuery(this).wms_pluginMedia({play:true});
			jQuery(ob_scrollerWidget).find('div.scrollItem.selected .featTitles').hide();
		});
		jQuery(ob_scrollerWidget).find('div.scrollItem.vid .featTitles').click(function(event){
			event.preventDefault();
			if(jQuery(ob_scrollerWidget).find('div.controls').hasClass('autoplay')){
				//console.log('hold pause');
				jQuery(ob_scrollerWidget).find('div.controls a.playPause').addClass('pause').addClass('holdPause');
			}
			jQuery(this).parent().find('a.PluginContainer.dontFlash').wms_pluginMedia({play:true});
			jQuery(ob_scrollerWidget).find('div.scrollItem.selected .featTitles').hide();
		});
		
	if( jQuery(ob_scrollerWidget).find('div.controls').hasClass('autoplay')){
		//console.log('auto play on');
		//add play/pause button
		jQuery(ob_scrollerWidget).find('div.controls a.prev').after('<a class="playPause pause" href="#">Pause</a>');
		
		if( !jQuery(ob_scrollerWidget).find('div.controls').hasClass('pause'))jQuery(ob_scrollerWidget).find('div.controls a.playPause').removeClass('pause');
		
		jQuery(ob_scrollerWidget).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_scrollerWidget).find('div.controls').addClass('pause').addClass('holdPause');
				}else{
					// set button state to pause
					jQuery(this).addClass('pause').addClass('holdPause');
					//play slideshow
					jQuery(ob_scrollerWidget).find('div.controls').removeClass('pause').removeClass('holdPause');
				}
			}).css('outline','none');

		
		wms_scrollerWidgetAutoPlay(ob_scrollerWidget,scrller_transitionDelay);
		
	}
		
	
	});
	
});

function wms_scrollerWidgetAutoPlay(obWidget,delay){
		//console.info(obWidget);
		jQuery(this).oneTime(delay, function(){
																				 
			if(jQuery(obWidget).hasClass('delay')){
				jQuery(obWidget).removeClass('delay');
				wms_scrollerWidgetAutoPlay(obWidget,delay);
			}else{
				if(!jQuery(obWidget).hasClass('transitioning') && !jQuery(obWidget).find('div.controls a.playPause').hasClass('pause')){	
					 wms_scrollerWidgetSelect('auto',obWidget,'next');
				}
				wms_scrollerWidgetAutoPlay(obWidget,delay);
			}
																				 
		});

}


function wms_ScrollerWidget_stopVideos(scrollerWidget){
	//console.log('remove vids');
	jQuery(scrollerWidget).find('.scrollItem .PluginContainer.Video').wms_pluginMediaReset();
	jQuery(scrollerWidget).find('.scrollItem .featTitles').show();
}


function wms_scrollerWidgetSelect(str_event,scrollerWidget,request){

						
	// add delay and remove default event when click request
	if(str_event != "auto"){
		jQuery(scrollerWidget).addClass('delay');
		str_event.preventDefault();
	}	
			
	// find current and next scroller item
	var current = jQuery(scrollerWidget).find('div.pagination li.selected').prevAll('li').size()+1;
	var total = jQuery(scrollerWidget).find('div.pagination li').size();
	request = request+"";  // make sure it is a string
	
	setTimeout ( function(){
		var title = jQuery(scrollerWidget).find('.scrollItem.selected .featTitles');
		jQuery(title).animate({'margin-bottom':-jQuery(title).outerHeight()},{duration:250});		
		//console.log('fade');
	}, scrller_transitionDelay/2.5 );
	
	// set request item number
	switch(request)
	{
		
		case 'next':
			if(current < total){
				request = current+1;	
			}else{
				request = 1;	
			}
			wms_setupNextScrollItem(scrollerWidget);
		break;
		
		case 'prev':
			if(current > 1){
				request = current-1;
			}else{
				request = total;
			}
			wms_setupPrevScrollItem(scrollerWidget);
		break;
		
		default:
			if(request.match(/^[0-9]+/)){
				request = request.match(/^[0-9]+/)[0]*1;
			}
		break;
	}
	
	if(!jQuery(scrollerWidget).hasClass('transitioning') && !jQuery(jQuery(scrollerWidget).find('div.pagination li')[request-1]).hasClass('selected')){
		
		//
		jQuery(this).addClass('transitioning');
		jQuery(scrollerWidget).find('div.pagination li.selected').removeClass('selected');
		jQuery(jQuery(scrollerWidget).find('div.pagination li')[request-1]).addClass('selected');
		jQuery(scrollerWidget).find('div.scrollerWidget_nav .current').html(''+request);
		jQuery(scrollerWidget).find('div.scrollItem.selected').removeClass('selected');
		
		if(jQuery(scrollerWidget).hasClass('fade')){
			jQuery(scrollerWidget).find('div.scrollItem').fadeOut(scrller_transitionDuration,function()
				{ 
					jQuery(scrollerWidget).find('div.scrollContainer').css({'left':'-'+jQuery(jQuery(scrollerWidget).find('div.scrollItem.item_'+request+'')).position()['left']+'px'})
				}
			).fadeIn(scrller_transitionDuration,function(){wms_ScrollerWidget_stopVideos(scrollerWidget);  });
		}else{
			jQuery(scrollerWidget).find('div.scrollContainer').animate(
				{'left':'-'+jQuery(jQuery(scrollerWidget).find('div.scrollItem.item_'+request+'')).position()['left']+'px'},
				scrller_transitionDuration,
				function(){wms_ScrollerWidget_stopVideos(scrollerWidget);  }
			).removeClass('transitioning');			
		}
		jQuery(scrollerWidget).find('div.scrollItem.item_'+request+'').addClass('selected');

	}
}


function wms_setupPrevScrollItem(scrollerWidget){
	//console.log('prev setup');
	if(jQuery(scrollerWidget).find('.scrollContainer .scrollItem.selected').first().prevAll().size()<1){
		
		jQuery(scrollerWidget).find('.scrollContainer')
			.first()
			.prepend( jQuery(scrollerWidget).find('.scrollContainer .scrollItem').last() )
			.css({'left':'-'+jQuery(scrollerWidget).find('.scrollContainer .scrollItem.selected').first().position()['left']+'px'});
			
	}
}

function wms_setupNextScrollItem(scrollerWidget){
	jQuery('div.scrollItem .featTitles').css({'margin-bottom':0});
	if(jQuery(scrollerWidget).find('.scrollContainer .scrollItem.selected').first().nextAll().size()<1){
		
		jQuery(scrollerWidget).find('.scrollContainer')
			.first()
			.append( jQuery(scrollerWidget).find('.scrollContainer .scrollItem').first() )
			.css({'left':'-'+jQuery(scrollerWidget).find('.scrollContainer .scrollItem.selected').first().position()['left']+'px'});
			
	}
}

