var pressed = false;
var prevPos = 0;
var distance = 0;

function sliderIni() {
	
	var pages = $('#slides .slide').size();
	var i = 0;
	var positions = [];
	var slidesOffset = 0;
	var navDirection = '';
	arrowLeftHref = 0;
	arrowRightHref = 0;
	
	function mainMenu() {
		$("#main-menu li a").click(function() {
			setSlide($(this).parents("li").index());
			return false;
		});
	}
	
	function navArrows() {
		$('#arrow-left, #arrow-right').click(function() {
			if (!($(this).hasClass('not-available'))) {
				setSlide($(this).attr('href'));
			}
			return false;
		});
	}
	
	function activeLogo() {
		$('#logo').click(function() {
			setSlide(0);
			return false;
		});
	}
	
	function setSlide(newSlideIndex) {
		if (newSlideIndex >= 0 && newSlideIndex < pages) {

			$('#slides .current-slide').removeClass('current-slide');
			$('#slides .slide:eq('+newSlideIndex+')').addClass('current-slide');
			$('#slides').animate({ 'left': positions[newSlideIndex]}, 'fast');
			// arrows functionality
			newSlideIndex = parseInt(newSlideIndex);
			arrowLeftHref = newSlideIndex - 1;
			arrowRightHref = newSlideIndex + 1;
			$('#arrow-left').attr('href', arrowLeftHref);
			$('#arrow-right').attr('href', arrowRightHref).removeClass('not-available');

			$('#main-menu li a.current-page').removeClass('current-page');
			$('#main-menu li:eq('+newSlideIndex+') a').addClass('current-page');
		} else {
			$('#slides').animate({ 'left': positions[$('#slides .current-slide').index()]}, 'fast');
		}
		
 		if (newSlideIndex == pages - 1) {
			$('#arrow-right').addClass('not-available');
		} else {
			$('#arrow-right').removeClass('not-available');
		}
		
 		if (newSlideIndex == 0) {
			$('#arrow-left').addClass('not-available');
		} else {
			$('#arrow-left').removeClass('not-available');			
		}
	}
	
	// set sizes
	///////////////////////////////////////////////
	newWidth = $(window).width();
	if(newWidth < 320) {
		newWidth = 320;	
	}
	slidesWrapperWidth = newWidth-newWidth*0.3;
	if (slidesWrapperWidth > 1100) {
		slidesWrapperWidth = 1100;
	}
	if (slidesWrapperWidth < 750) {
		slidesWrapperWidth = 750;
	}
	slidesWidth = slidesWrapperWidth * pages;
	$('#content').css('width', newWidth+'px');
	$('#slides-wrapper').css('width', slidesWrapperWidth+'px');
	$('#slides').css('width', slidesWidth+'px');
	$('#slides .slide').css('width', slidesWrapperWidth+'px');
	
	while (i<pages) {
		positions[i] = slidesOffset;
		slidesOffset = slidesOffset - slidesWrapperWidth;
		i++;
	}

	//////////////////////////////////////////////
	$('.move').live('mousedown', function(evt) {
		pressed = true;
		evt.preventDefault();
		// next string only for iPhone/iPad/Android
		//var someTouch = evt.originalEvent.touches[0] || evt.originalEvent.changedTouches[0];
		startPosition = evt.pageX;
		currentSlidesPos = parseInt($('#slides').css('left'));
		$("span#startPosition").html(startPosition);
		
		$('.move').live('mousemove', function(someEvent) {
			$("span#newPosition").html(someEvent.pageX);
			$("span#prevPosition").html(prevPos);
						
			if (someEvent.pageX > prevPos) {
				$("span#direction").html('right');
				newSlidesPos = currentSlidesPos + (someEvent.pageX - startPosition);
			} if (someEvent.pageX == prevPos) {
				$("span#direction").html('none');
				newSlidesPos = currentSlidesPos + (someEvent.pageX - startPosition);
			} else if (someEvent.pageX < prevPos) {
				$("span#direction").html('left');
				newSlidesPos = currentSlidesPos + (someEvent.pageX - startPosition);
			}
			
			$("span#newSlidesPos").html(newSlidesPos);
			$('#slides').css('left', newSlidesPos+'px');
			
			prevPos = someEvent.pageX;
		});
		
		$('.move').live('mouseup', function(someEvent) {
			$('.move').die('mousemove mouseup');
			
			distance = startPosition - someEvent.pageX;
			
			if (distance < 0) {
				navDirection = 'prev';	
			} else if (distance > 0) {
				navDirection = 'next';	
			}
			
			distance = Math.abs(distance);
			
			if (distance < newWidth*0.1) {
				$('#slides').animate({ 'left': currentSlidesPos+"px" }, 'fast');
			} else {
				
				if (navDirection == 'next') {
					newSlideIndex = $('#slides .current-slide').index() + 1;
				} else if (navDirection == 'prev') {
					newSlideIndex = $('#slides .current-slide').index() - 1;
				}
				
				setSlide(newSlideIndex);
			}
		});
	});
	
	mainMenu();
	navArrows();
	activeLogo();

	function getKey(key){
		if ( key == null ) {
			keycode = event.keyCode;
			// To Mozilla
		} else {
			keycode = key.keyCode;
		}
		// Return the key in lower case form
		return keycode;
	}
	
	$(document).keydown(function (eh) {
		var key = getKey(eh);
		if(key == 39) {
			setSlide($('#slides .slide.current-slide').index()+1);
		} else if (key == 37) {
			setSlide($('#slides .slide.current-slide').index()-1);
		}
	});
	
	$( document ).live( "swipeleft", function( event){
		setSlide($('#slides .slide.current-slide').index()+1);
	});
	
	$( document ).live( "swiperight", function( event){
		setSlide($('#slides .slide.current-slide').index()-1);
	});
}

$(document).ready(function() {
	if ($('body').hasClass('home')) {
		sliderIni();
	}
});

$(window).resize(function() { 
	if ($('body').hasClass('home')) {
		sliderIni();
	}
});

