// reset the default easing equation
$.easing.def = "easeOutCirc";

$(document).ready(function() {
	// grab the parent div
	var allSlides = $("#slider");
	// set up all the individual variables
	var sliderLeft = $("#sliderLeft", allSlides),
		sliderRight = $("#sliderRight", allSlides),
		sliderNav = $("a.sliderNav", allSlides),
		totalSlides = $('div.sliderContents', allSlides).length;
		
	sliderNav.css('opacity','0');	
	sliderNav.live('mouseover mouseout', function(event) {
		if (event.type == 'mouseover') {
			$(this).fadeTo(200, 1);	
		} else {
			$(this).fadeTo(200, 0.6);
		}
	});
	
	// fade in initially
	
	$('div.sliderContents.active', allSlides).fadeIn(500, function() {
		sliderNav.animate({opacity: 0.6}, 200)
	});
	
	sliderLeft.live('click', function(event) {
		event.preventDefault();
		// fade navigation links and trigger the move
		sliderRight.fadeTo(100, 0);
		sliderLeft.fadeTo(100, 0, function() {
			// grab the current slide
			var currentSlide = $('div.sliderContents.active', allSlides);
			// grab the previous slide
			if(currentSlide.hasClass('first')) {
				/* move forward to the last slide
				var prevSlide = $('div.sliderContents.last', allSlides),
					displacement = $('div.sliderContents.last', allSlides).css('left');
				var displacement = displacement.substr(0, displacement.length-2);
				prevSlide.addClass('active');
				currentSlide.removeClass('active');
				$('div.sliderContents', allSlides).animate({
					left: '-='+displacement
				}, 950, function() {
					sliderNav.fadeTo(100, 0.6);
				}); */
			
				var prevSlide = $('div.sliderContents.last', allSlides);
				
				prevSlide.addClass('active');
				currentSlide.removeClass('active')
					.fadeOut(400, function() {
					prevSlide.fadeIn(400, function() {
						sliderNav.fadeTo(100, 0.6);
					});
				});
			} else {
				/* move backward normally
				var prevSlide = currentSlide.prev('div.sliderContents').addClass('active');
				currentSlide.removeClass('active');
				$('div.sliderContents', allSlides).animate({
					left: '+=968'
				}, 650, function() {
					sliderNav.fadeTo(100, 0.6);
				}); */
			
				var prevSlide = currentSlide.prev('div.sliderContents');
				
				prevSlide.addClass('active');
				currentSlide.removeClass('active')
					.fadeOut(400, function() {
					prevSlide.fadeIn(400, function() {
						sliderNav.fadeTo(100, 0.6);
					});
				});
			}
		});
	});
	
	sliderRight.live('click', function(event) {
		event.preventDefault();
		// fade navigation links and trigger the move
		sliderLeft.fadeTo(100, 0);
		sliderRight.fadeTo(100, 0, function() { 
			// grab the current slide
			var currentSlide = $('div.sliderContents.active', allSlides);
			// grab the previous slide
			if(currentSlide.hasClass('last')) {
				/* move back to the first slide
				var nextSlide = $('div.sliderContents.first', allSlides),
					displacement = $('div.sliderContents.first', allSlides).css('left');
				var displacement = displacement.substr(0, displacement.length-2);
				var displacement = parseInt(displacement)*(-1);
				nextSlide.addClass('active');
				currentSlide.removeClass('active');
				$('div.sliderContents', allSlides).animate({
					left: '+='+displacement
				}, 950, function() {
					sliderNav.fadeTo(100, 0.6);
				});*/
				
				var nextSlide = $('div.sliderContents.first', allSlides);
				
				nextSlide.addClass('active');
				currentSlide.removeClass('active')
					.fadeOut(400, function() {
					nextSlide.fadeIn(400, function() {
						sliderNav.fadeTo(100, 0.6);
					});
				});
				
				
			} else {
				/* move forward normally
				var nextSlide = currentSlide.next('div.sliderContents').addClass('active');
				currentSlide.removeClass('active');
				$('div.sliderContents', allSlides).animate({
					left: '-=968'
				}, 650, function() {
					sliderNav.fadeTo(100, 0.6);
				});*/
				
				var nextSlide = currentSlide.next('div.sliderContents');
				
				nextSlide.addClass('active');
				currentSlide.removeClass('active')
					.fadeOut(400, function() {
					nextSlide.fadeIn(400, function() {
						sliderNav.fadeTo(100, 0.6);
					});
				});
			}
			
		});
	});
});
