(function($){
	function DMNavigation(el){
		
		
		var el = $(el);
		var deck = el.find('.slidedeck').slidedeck();
		var prev = el.find('.sd-node-previous');
		var next = el.find('.sd-node-next');
		var primaryNav = el.find('.sd-node-nav-primary').prependTo($('#body-container'));
		var primaryNavLinks = primaryNav.find('a.sd-node-nav-link');
		//primaryNavs = $(primaryNavs);
		if(typeof(debug)=="function" ){ debug("\n primaryNav "+primaryNavLinks[0]+" / "+primaryNavLinks[0]+"\n"); }
		
		var updateActive = function(activeSlide){
			if(deck.options.cycle == false){
				if(activeSlide == 1){
					prev.addClass('disabled');
					next.removeClass('disabled');
				}
				if(activeSlide == deck.slides.length){
					next.addClass('disabled');
					prev.removeClass('disabled');
				}
			}
			primaryNavLinks.removeClass('active');
			$(primaryNavLinks[activeSlide - 1]).addClass('active');
		};
		
		var oldNext = deck.next;
		deck.next = function(params){
			var nextSlide = Math.min(deck.slides.length,(deck.current + 1));
			if(deck.options.cycle === true){
				if(deck.current + 1 > deck.slides.length){
					nextSlide = 1;
				}
			}
			
			oldNext(params);
			updateActive(nextSlide);
		};
		var oldPrev = deck.prev;
		deck.prev = function(params){
			var prevSlide = Math.max(1,(deck.current - 1));
			if(deck.options.cycle === true){
				if(deck.current - 1 < 1){
					prevSlide = deck.slides.length;
				}
			}
			
			oldPrev(params);
			updateActive(prevSlide);
		};
		var oldGoTo = deck.goTo;
		deck.goTo = function(ind, params){
			oldGoTo(ind, params);
			updateActive(Math.min(deck.slides.length,Math.max(1,ind)));
		};
		
		
		// Adrien Tractr
		//el.find('.sd-node-nav-link').bind('click', function(event){
		primaryNavLinks.bind('click', function(event){

			event.preventDefault();

			var action = this.href.split('#')[1]; // get str after #
			if(typeof(debug)=="function" ){ debug("action "+action); }
			
			
			switch(action){
				case "previous":
				  deck.pauseAutoPlay = true;
					deck.prev();
				break;
				case "next":
				  deck.pauseAutoPlay = true;
					deck.next();
				break;
				case "play-pause":
				  if(typeof(debug)=="function" ){ debug("deck.pauseAutoPlay : "+deck.pauseAutoPlay); }
				  if(deck.pauseAutoPlay == true){
					   deck.pauseAutoPlay = false;
					   if(typeof(debug)=="function" ){ debug(this+" hasClass('play') "+$(this).hasClass('play') ); }
					   $(this).removeClass('pause').addClass('play');
					   if(typeof(debug)=="function" ){ debug(this+" hasClass('play') "+$(this).hasClass('play') ); }
					}else{
             			deck.pauseAutoPlay = true;
			             if(typeof(debug)=="function" ){ debug(this+" hasClass('pause') "+$(this).hasClass('pause') ); }
			             $(this).removeClass('play').addClass('pause');
			             if(typeof(debug)=="function" ){ debug(this+" hasClass('pause') "+$(this).hasClass('pause') ); }
			        }
				break;
				default:
				  deck.pauseAutoPlay = true;
					deck.goTo(action);
				break;
			}
			if( deck.pauseAutoPlay == true ){ primaryNav.find('.sd-nav-play-pause').removeClass('play').addClass('pause'); }
		});
		
		$(primaryNavLinks[0]).addClass('active');
		
		return true;
	};
	
	$(document).ready(function(){
		for(var i=0, decks=$('.slidedeck_frame.skin-DM'); i<decks.length; i++) {
			var thisDeck = decks[i];
			
			if(typeof(thisDeck.SlideDeck_skinDMNavigation) == 'undefined') {
				thisDeck.SlideDeck_skinDMNavigation = DMNavigation(thisDeck);
			}
            

            for(var z=0, slides = $(thisDeck).find('dd.slide .sd-node-container'); z<slides.length; z++){
                var thisSlide = $(slides[z]);
                var slideWidth = thisSlide.innerWidth();
                
                if(thisSlide.find('.sd-node-image').length){
                    thisSlide.find('.sd-node-content').css({
                        width: Math.floor((slideWidth - 320)) + "px"
                    });
                } else {
                    thisSlide.find('.sd-node-content').css({
                        width: Math.floor(slideWidth * 0.9) + "px"
                    });
                }
            }
		}
	});
})(jQuery);
