var currentTop = 0;
var minTop;
var per_page = 10;
var scrollSpeed = 1;
var maxScrollSpeed = 10;
var scroller;
var innerElement;
var currentSlideNum = 1;

$(document).ready(function()
{
	wm_scrollers();	
	wm_project_slides();
	$(document).pngFix();
	Cufon.replace('#navigation', {hover: true});
});

var wm_project_slides = function()
{
	var numSlides = $('.project-slide').length;
	//console.log(numSlides);
	if(numSlides)
	{
		var numString = numSlides < 10 ? '0'+numSlides : numSlides;
		$('#slide-count').html(numString);
		
		currentSlide = $('.project-slide').first();
		
		$('.project-slide').each(function()
		{
			if(!$(this).is('#text-slide')) {
				$(this).css('left',940);
				$(this).css('display','block');
			}
		});
		
		$('#nextSlide').click(function()
		{
			var n = currentSlide.next('.project-slide');
			if(n.length){
				currentSlide.animate({left:-940},750,'easeOutCirc');
				n.animate({left:0},750,'easeOutCirc');
				currentSlide = n;
				currentSlideNum++;
				var numString = currentSlideNum < 10 ? '0'+currentSlideNum : currentSlideNum;
				$('#slide-current').html(numString);
			}
		});
		$('#prevSlide').click(function()
		{
			var n = currentSlide.prev('.project-slide');
			if(n.length){
				currentSlide.animate({left:940},750,'easeOutCirc');
				n.animate({left:0},750,'easeOutCirc');
				currentSlide = n;
				currentSlideNum--;
				var numString = currentSlideNum < 10 ? '0'+currentSlideNum : currentSlideNum;
				$('#slide-current').html(numString);
			}
		});
		
	}
}

var wm_scrollers = function()
{
	// adds scroll buttons to top/bottom of content area
	scroller = $('#scroller');
	if(scroller.length) // if the page scrolls
	{
		innerElement = scroller.children().first();
		var id = innerElement.attr('id');
		var h = innerElement.height();
		var sh = scroller.height();
		//console.log(h);
		scroller.css('overflow','hidden'); // hide browser scrollbar
		if(h > sh) // check we need to add it at all
		{
			var scrollerHTML = '<div id="scroll_up"><a href="javascript:;"><img src="/images/up-arrow.png" alt="Scroll up"/></a></div>';
			scrollerHTML += '<div id="scroll_down"><a href="javascript:;"><img src="/images/down-arrow.png" alt="Scroll down"/></a></div>';
			scroller.append(scrollerHTML); //insert the scrollbar html
		}
		if(id == 'news')
		{
			// add loading text..
			scroller.append('<div id="loading-more"><p>Loading more...</p></div>');
			
			// work out the minimum top value based on the number of articles
			minTop = -(($('.news-item').length - 1) * 251) + 20;
			
			// hide pagination
			$('#pagination').hide();
			
			// mouse wheel
			/*
			$('#news').mousewheel(function(delta)
			{
				if(delta > 0)
				{
					// scroll up
				}
			});
			*/
			// news specific scrolling on click
			$('#scroll_down a').click(function()
			{
				if($('#scroll_up').is(':hidden')) currentTop -= 231;
				else currentTop -= 251;
				
				if(currentTop >= minTop) {
					$('#news').animate({top:currentTop},500,'easeOutCirc');
				}
				if(currentTop == minTop)
				{
					$('#scroll_down').fadeOut();
				}
				if(currentTop == -231)
				{
					$('#scroll_up').fadeIn();
				}
				
				if(currentTop == (minTop + 251))
				{
					//$('#loading-more').fadeIn();
					var uri = $('#news').hasClass('sketchbook') ? 'more_sketchbooks':'more_news';
					$.post('/ajax/'+ uri +'/'+per_page,{ ajax:true },function(data)
					{
						//$('#loading-more').fadeOut();
						per_page += 10;
						//console.log(per_page);
						$('#news').append(data);
						minTop = -(($('.news-item').length - 1) * 251) + 20;
					})
				}
			});
			
			$('#scroll_up a').click(function()
			{
				if(currentTop == -231) currentTop += 231;
				else currentTop += 251;
				
				if(currentTop <= 0) {
					$('#news').animate({top:currentTop},500,'easeOutCirc');
				}
				if(currentTop == 0)
				{
					$('#scroll_up').fadeOut();
				}
				if(currentTop == (minTop + 251))
				{
					$('#scroll_down').fadeIn();
				}
			});	
		}
		else {
			// standard rollover scrolling
			minTop = scroller.height() - innerElement.height() - 30;
			//console.log(minTop);
			$('#scroll_down a').hover(function()
			{
				scroll_down();
			},function()
			{
				clearTimeout(downTimer);
				stop_scrolling_down();
			});
			
			$('#scroll_up a').hover(function()
			{
				scroll_up();
			},function()
			{
				clearTimeout(upTimer);
				stop_scrolling_up();
			});
		}		
	}
}

var scroll_down = function()
{
	var n = parseInt(innerElement.css('top')) - scrollSpeed;
	//console.log(n);
	if(n < 0) {
		$('#scroll_up').fadeIn();
	}
	if(n <= minTop)
	{
		$('#scroll_down').fadeOut();
		innerElement.css('top',minTop);
	}
	if(n > minTop) {
		innerElement.css('top',n);
		if(scrollSpeed < maxScrollSpeed) scrollSpeed++;
		downTimer = setTimeout('scroll_down()',20);
	}
		
}

var stop_scrolling_down = function()
{
	var c = parseInt(innerElement.css('top'));
	var n = c - scrollSpeed;
	//console.log(n);
	if(scrollSpeed > 1 && c < minTop) {
		innerElement.css('top',n);
		scrollSpeed -= 1;
		setTimeout('stop_scrolling_down()',20);
	}	 else {
		scrollSpeed = 1;
	}
}

var scroll_up = function()
{
	var n = parseInt(innerElement.css('top')) + scrollSpeed;
	//console.log(n);
	if(n > minTop) {
		$('#scroll_down').fadeIn();
	}
	if(n >= 0) {
		$('#scroll_up').fadeOut();
		innerElement.css('top',0);
	}
	if(n < 0) {
		innerElement.css('top',n);
		if(scrollSpeed < maxScrollSpeed) scrollSpeed++;
		upTimer = setTimeout('scroll_up()',20);
	}	
}

var stop_scrolling_up = function()
{
	var c = parseInt(innerElement.css('top'));
	var n = c + scrollSpeed;
	//console.log(n);
	if(scrollSpeed > 1 && c > 0) {
		innerElement.css('top',n);
		scrollSpeed -= 1;
		setTimeout('stop_scrolling_up()',20);
	}	else {
			scrollSpeed = 1;
		}	
}