// Global Namespace
var CAREFLIGHT = window.CAREFLIGHT || {};

// Project Subnamespace
CAREFLIGHT = CAREFLIGHT || {};

// Local namespace
CAREFLIGHT.Site = {};

(function () {
	
	var $space = CAREFLIGHT,
		$self = this;

	$self.utils = {
		init: function(obj) {
			
			jQuery(document).ready(function() {
				
				if (jQuery('#slidedeck').length != 0) { 
					SD();
				}
				
				if (jQuery('#news').length != 0) {
					jQuery("#news").carouFredSel({
							direction: "up",
							items: {
								height: 90,
								visible: 4,
								pauseOnHover: true
							},
							scroll: {
								items: 1,
								pauseOnHover: true,
								onAfter: function() {
									jQuery("#news").trigger('mouseover');
								}
							},
							auto: {
								pauseDuration: 5000	
							}
						});
					
				}

			});
			
		}
	};
	
	var SD = function() {
		
		var autoInterval;
		var container = jQuery('#feature');
		
		var slidedeck = jQuery('#slidedeck').slidedeck({
			activeCorner: false,
			autoPlay: true,
			autoPlayInterval: 5000,
			cycle: true
		})
		
		var updateActive = function(activeSlide){
			slidedeckNavigation.parent().removeClass('active');
			jQuery('#slideination .arrow').animate({ 
				left: (activeSlide - 1) * 46
			}, 250 );
	
			jQuery(slidedeckNavigation[activeSlide]).parent().addClass('active'); // nav is offset by 1
		};
		
	
		var oldNext = slidedeck.next;
		slidedeck.next = function(params){
			var nextSlide = Math.min(slidedeck.slides.length,(slidedeck.current + 1));
			if(slidedeck.options.cycle === true){
				if(slidedeck.current + 1 > slidedeck.slides.length){
					nextSlide = 1;
				}
			}
			oldNext(params);
			updateActive(nextSlide);
		};
		
		var oldPrev = slidedeck.prev;
		slidedeck.prev = function(params){
			var prevSlide = Math.max(1,(slidedeck.current - 1));
			if(slidedeck.options.cycle === true){
				if(slidedeck.current - 1 < 1){
					prevSlide = slidedeck.slides.length;
				}
			}
			
			oldPrev(params);
			updateActive(prevSlide);
		};
	
		var oldGoTo = slidedeck.goTo;
		slidedeck.goTo = function(ind, params){
			oldGoTo(ind, params);
			updateActive(Math.min(slidedeck.slides.length,Math.max(1,ind)));
		};
		
		var slidedeckNavigation = container.find('#slideination a');
	
		slidedeckNavigation.bind('click', function(event){
			
			event.preventDefault();
	
			var action = this.href.split('#')[1];
			
			slidedeck.pauseAutoPlay = true;
			
			switch(action){
				case "previous":
					slidedeck.prev();
				break;
				case "next":
					slidedeck.next();
				break;
				default:
					slidedeck.goTo(Number(action)+1);
				break;
				
			}
			
			if (autoInterval != null) {
				clearTimeout(autoInterval);
			}			
			
			autoInterval = setTimeout(function() {
				slidedeck.pauseAutoPlay = false;
				clearTimeout(autoInterval);
			}, 2500);
						
		});
	
	};
	
	$self.utils.init($self);
	
}).call(CAREFLIGHT.Site);
