$(document).ready(function() {

   $("#waterwheel-carousel-horizon").waterwheelCarousel({
            startingWaveSeparation: 0,
            centerOffset: 10,
            startingItemSeparation: 120,
            itemSeparationFactor: .5,
            flankingItems: 2,
            itemDecreaseFactor: .75,
            opacityDecreaseFactor: 1,
            movedToCenter: function($newCenterItem){
                $newCenterItem.siblings('.caption').css('display','block');
            },
            movingFromCenter: function($oldCenterItem){
                $oldCenterItem.siblings('.caption').css('display','none');
            }
            
        });

    $('.slider').each(function() {
		    var thisSlider = $(this);
		    var panelWidth = thisSlider.width();
		    var panels = thisSlider.children('ul');				
		    var noChildren = panels.children('li').length;
		    var check = '-'+((noChildren-1) * panelWidth)+'px';
    		var timeOut = null; //will be used further down;
    		
		    $('.navRight', thisSlider).live('click', function() {
		     clearInterval(timeOut);
			    if(thisSlider.data('transition') !== 'true'){
		            thisSlider.data('transition', 'true');
			        if(panels.css('left') === check) {
			            panels.children('li:last').clone().prependTo(panels);  
			            panels.css('left', '0px');
			            var pos = '-='+panelWidth+'px';
			            panels.animate({'left': pos}, 500, function(){
			                panels.children('li').eq(0).remove();
			                panels.css('left', 0);
			                thisSlider.data('transition', 'false');
			            });	
			        }else{
			            var pos = '-='+panelWidth+'px';
			            panels.animate({'left': pos}, 500, function(){
			            thisSlider.data('transition', 'false');
			            });	
			        }
			    }
			    timeOut = setInterval(function(){
		           $('.navRight', thisSlider).trigger('click')
		        },5500);
			    return false;
		    });

		    $('.navLeft', thisSlider).live('click', function() {
		        clearInterval(timeOut);
		        if(thisSlider.data('transition') !== 'true'){
		            thisSlider.data('transition', 'true');
			        if(panels.css('left') === '0px') {
			          panels.children('li').eq(0).clone().appendTo(panels);  
			          panels.css('left', '-'+noChildren * panelWidth+'px');
    				  
			          var pos = '+='+panelWidth+'px';
			          panels.animate({'left': pos}, 500, function(){
			            panels.children('li:last').remove();
			            thisSlider.data('transition', 'false');
			          });
			        }else{    
			            var pos = '+='+panelWidth+'px';
			            panels.animate({'left': pos}, 500, function(){
			                thisSlider.data('transition', 'false');
			            });
			        }
			    }
			    timeOut = setInterval(function(){
		           $('.navRight', thisSlider).trigger('click')
		        },5500);
			    return false;
		    });
		        timeOut = setInterval(function(){
		           $('.navRight', thisSlider).trigger('click')
		        },5500);
	    });
	    
	    $('.scroller').each(function(){
	        var thisScroller = $(this);
		    var panels = thisScroller.children('ul');				
		    var noChildren = panels.children('li').length;
		    var panelWidth = panels.children('li').width();
		    var numShown = 3;
		    var paused = false;
    		var timeOut = null; //will be used further down;
	        var buttons = thisScroller.siblings('.buttons');
	        var check = '-'+((noChildren-numShown) * panelWidth)+'px';
	        	        	
	        buttons.children('.pause').bind('click', function(){
	            if(paused=== false){
	                clearInterval(timeOut);
	                paused = true;
	                $(this).addClass('play');
	            }else{
	                timeOut = setInterval(function(){
		               buttons.children('.scrollRight').trigger('click')
		            },4500);
		            paused = false;
		            $(this).removeClass('play');
	            }
	        });	
	        	        
	        buttons.children('.scrollRight').bind('click', function() {
		     clearInterval(timeOut);
			    if(thisScroller.data('transition') !== 'true'){
		            thisScroller.data('transition', 'true');
			        if(panels.css('left') === check) {
			            panels.children('li:last').clone().prependTo(panels);  
			            panels.css('left', '0px');
			            var pos = '-='+panelWidth+'px';
			            panels.animate({'left': pos}, 500, function(){
			                panels.children('li').eq(0).remove();
			                panels.css('left', 0);
			                thisScroller.data('transition', 'false');
			            });	
			        }else{
			            var pos = '-='+panelWidth+'px';
			            panels.animate({'left': pos}, 500, function(){
			            thisScroller.data('transition', 'false');
			            });	
			        }
			    }
			    if(paused === false){
			        timeOut = setInterval(function(){
		               buttons.children('.scrollRight').trigger('click')
		            },4500);
		        }
			    return false;
		    });

		    buttons.children('.scrollLeft').bind('click', function() {
		        clearInterval(timeOut);
		        if(thisScroller.data('transition') !== 'true'){
		            thisScroller.data('transition', 'true');
			        if(panels.css('left') === '0px') {
			          panels.children('li').eq(0).clone().appendTo(panels);  
			          panels.css('left', '-'+(noChildren-numShown+1) * panelWidth+'px');
    				  
			          var pos = '+='+panelWidth+'px';
			          panels.animate({'left': pos}, 500, function(){
			            panels.children('li:last').remove();
			            thisScroller.data('transition', 'false');
			          });
			        }else{    
			            var pos = '+='+panelWidth+'px';
			            panels.animate({'left': pos}, 500, function(){
			                thisScroller.data('transition', 'false');
			            });
			        }
			    }
			    if(paused === false){
			        timeOut = setInterval(function(){
		               buttons.children('.scrollRight').trigger('click')
		            },4500);
		        }
		    });
		    
		    timeOut = setInterval(function(){
		       buttons.children('.scrollRight').trigger('click')
		    },4500);
	        
	    });
	    

	    
	    $('.media-gallery').each(function(){
	        var gallery = $(this);
	        var viewPane = gallery.find('.view').eq(0);
	        var contentPane = gallery.find('.content').eq(0);
	        var thumbs = viewPane.children('.thumbs');
	        var currentArticle = 0;
	        var captionClass = "";
	        var captionClosed = false;
	        
	        viewPane.append('<a class="navLeft">Prev</a><a class="navRight">Next</a>');
	        
	        	        
	        viewPane.fadeIn(1000, function(){
	         $(this).addClass('active').siblings().remove();
	        });
	                
	        gallery.children('.gallery-tabs').remove();
	        	        
	        $('.thumbs').each(function(){
            var $thumbs = $(this);
            var thumbsItems = $thumbs.children('ul');
            var buttons = $thumbs.children('a');
            var thumbImages = thumbsItems.children('li').children('img');
            var numItems = thumbsItems.children('li').length;
            
            if(numItems * 63 <= 542){
                buttons.addClass('disabled');
                buttons.bind('click', function(){ return false; });
            }else{
                buttons.bind('click', function(){
                    var $button = $(this);
                    if($button.attr('class') === 'prev'){
                        buttons.filter('.next').removeClass('disabled');
                        thumbsItems.animate({'left': '+=45px'}, 200, function(){
                            if($(this).css('left') === '0px'){ // we're at the first element
                                $button.addClass('disabled');
                           }
                        });
                    } else if($button.attr('class') === 'next'){
                        buttons.filter('.prev').removeClass('disabled');
                        thumbsItems.animate({'left': '-=45px'}, 200, function(){
                            var maxScroll = ((6 - numItems) * 45) + 'px';
                            if(maxScroll === $(this).css('left')){
                                $button.addClass('disabled');
                            }
                        });
                    }
                    
                    return false;
                });
            }
            
            var navLeft = viewPane.find('.navLeft');
	        var navRight = viewPane.find('.navRight');
	        
	        navLeft.bind('click', function(){
	            var thumbToClick = ((currentArticle - 1) === -1) ? numItems-1 : currentArticle - 1;
	            thumbImages.eq(thumbToClick).trigger('click');
	        });
	        
	        navRight.bind('click', function(){
	            var thumbToClick = ((currentArticle + 1) === numItems) ? 0 : currentArticle + 1;
	            thumbImages.eq(thumbToClick).trigger('click');
	        });
                        
            thumbImages.each(function(index){
                var eleNo = index;
                $(this).bind('click', function(){
                    currentArticle = eleNo;
                    var item = $(this);
                    thumbImages.removeClass('active');
                    item.addClass('active');
                    if(item.attr('data-image') !== undefined){ //if were in the image section
                    var contentStr = '<img src="' + item.attr('data-image') + '" alt="'+item.attr('alt')+'" title="'+item.attr('alt')+'" />';
                    
                    if (captionClosed === true){
                        captionClass="closed"
                    }else{
                        captionClass= "";
                    }
                    
                    if(item.attr('alt') !== undefined && item.attr('alt') !== ''){
                        contentStr += '<p class="caption '+captionClass+'"><span>'+item.attr('alt')+'</span><a href="#" class="'+captionClass+'">Show captions</a></p>';
                    }
                    
                    contentPane.html(contentStr);
                    
                    $('.caption').children('a').bind('click', function(event){
                        event.preventDefault();
                        var self = $(this);
                        var caption = self.parent('.caption');
                        console.log(caption.text());
                        if(self.hasClass('closed')){
                            self.removeClass('closed');
                            captionClosed = false;
                            caption.animate({'width': '570px'}, {queue:false, duration:800, complete:function(){
                               caption.children('span').fadeIn(200);
                            }});   
                        }else{
                            self.addClass('closed');
                            captionClosed = true;
                            caption.children('span').fadeOut(200, function(){
                                caption.animate({'width': '0'}, {queue:false, duration:800});
                            });
                        }
                    });
                        
                    }
                });
            });
            
            thumbImages.eq(0).trigger('click');
            
        });
	        
	    });
    });
    
    
