(function($) {
	var showThumbs = true;
	
	if (sgitin.isMobileDevice && !sgitin.isIpad) {
		showThumbs = false;
	}
	
	if (showThumbs) {
		$('html').addClass('show-thumbs');
	}
	
	$(function() {
		var scrollContainer = $('#footer div.sc_menu_wrapper');
		var scroll = $('div.sc_menu', scrollContainer);
		var supersize = $('#supersize');
		var slideshowImageContainers = $('a', supersize);
		var slideshowImages = $('img', slideshowImageContainers);
		
		// Set options for slideshow
		$.fn.supersized.options = {
			startwidth: 4,  
			startheight: 3,
			vertical_center: 0,
			slideshow: 1,
			navigation: 1,
			transition: 1, //0-None, 1-Fade, 2-slide top, 3-slide right, 4-slide bottom, 5-slide left
			pause_hover: 0,
			slide_counter: 0,
			slide_captions: 0,
			slide_interval: 8000
		};
			
		if (scroll.length && showThumbs) {
			initSlideshow();
			initThumbs();
		} else {
			initSlideshow();
		}
		
		// Initialize slideshow	
		function initSlideshow() {
			supersize.supersized();
			
			// Preload slideshow images
			supersize.preloadImages({
				delay: 500,
				debugLevel : 2
			});
			
			// Show the next slide when the current one is clicked
			$('a', supersize).click(function(){
				nextslide();
			});
			
			// Add keyboard navigation
			$(document).keyup(function(event) {
				event.preventDefault();
				
				var keyCode = event.which;
				var arrow = { left: 37, right: 39 };
	    		
				switch (keyCode) {
					case arrow.left:
						prevslide();
						break;
					case arrow.right:
						nextslide();
						break;
				}	
			});
		}
		
		function initThumbs() {
			scrollContainer.show();
			
			// Enable thumbnail scrolling
			var lastThumb = scroll.find('a:last-child');
			var scrollContainerOffset = scrollContainer.offset().left;
			var scrollContainerWidth = scrollContainer.width();
			var scrollContentWidth = lastThumb.offset().left + lastThumb.outerWidth() - scrollContainerOffset;
			var mouseMoveOffset = 25;
			
			scroll.width(scrollContentWidth);
			
			var coeff = (scrollContentWidth - scrollContainerWidth) / scrollContainerWidth;
			var scrollOffset;
			var currentPageX;
			
			log('Scroll Container Width: ' + scrollContainerWidth);
			log('Scroll Container Offset: ' + scrollContainerOffset);
			log('Scroll Content Width: ' + scrollContentWidth);
			log('Coefficient: ' + coeff);
			
			scrollContainer.mouseenter(function(e) {
				log('Scroll Container :: MouseEnter');
				var mouseEnterPageX = e.pageX;
				var offsetEnabled = true;
				scrollContainer.bind("mousemove", function(e) {
					currentPageX = e.pageX;
					if (!offsetEnabled || currentPageX > mouseEnterPageX + mouseMoveOffset || currentPageX < mouseEnterPageX - mouseMoveOffset) {
						var mouseOffset =  currentPageX - scrollContainerOffset;
						scrollOffset = mouseOffset * coeff;
						offsetEnabled = false;
						
						scrollContainer.scrollLeft(scrollOffset);
						log('MouseMove :: Current Page X: ' + currentPageX);
						log('MouseMove :: Mouse Offset: ' + mouseOffset);
						log('MouseMove :: Destination X: ' + scrollOffset);
						log('-------------------------------------------');
					}
				});
			});
			
			scrollContainer.mouseleave(function() {
				log('Scroll Container :: MouseLeave');
				scrollContainer.unbind("mousemove");
			});
			
			// Enable touch-based scrolling for iPads
			if (sgitin.isMobileDevice) {
				var scrollElem = scroll[0];
				scrollElem.addEventListener('touchmove', function(event) {
					event.preventDefault();
				});
				
				var iScroller = new iScroll(scrollElem, {
					hScrollbar : false,
					vScrollbar : false
				});
			}
			
			// Switch to the designated slide when a thumbnail is clicked
			$('a', scroll).click(function(){
				var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
				var index = parseInt($('a', scroll).index($(this))) + 1;
				var currentslide = $('a.activeslide', supersize);
				var nextslide =  $("a:nth-child(" + index + ")", supersize);
				var prevslide =  nextslide.prev().length ? nextslide.prev() : $('a:last', supersize);
				var nextslideImg = nextslide.find('img');
				
				nextslideImg.trigger("show");
				currentslide.removeClass('activeslide');
				
				$('a.prevslide', supersize).removeClass('prevslide');
				
				prevslide.addClass('prevslide');
				nextslide.hide().addClass('activeslide');
				
				if (options.transition == 0){
					nextslide.show(); $.inAnimation = false;
				}
				if (options.transition == 1){
					nextslide.fadeIn(750, function(){ $.inAnimation = false; });
				}
				
				supersize.resizenow();
			});
		}
	});
})(jQuery);
