$(document).ready(function() {
	imageMarkup();
	initAbout();
	$("#next,#prev").click(function() {        
        return scroll($(this).attr('id'));        
    });
	$(document.documentElement).keyup(function (event) { //keyboard shortcuts
		if (event.keyCode == 74) { //next
			return scroll('next');
		} else if (event.keyCode == 75) { //prev
			return scroll('prev');
		} else if (event.keyCode == 84) { //top
			return scroll('top');
		} else if (event.keyCode == 27) { //about
			$('body').toggleClass('about');
			sizeAbout();
			return false;
		}
	});
	$(".scrolltoanchor").click(function() {
		return scroll('top');
	});

	$(window).scroll(function () {
		colorize();
	});
	$(window).resize(function() {
		sizeAbout();
	});
	browser();
	hires();
	externalLinks();
	$('body').addClass('initialized');
});

function imageMarkup () {
	$('.screens img').wrap('<div />').wrap('<div class="clipper" />');
	$('.screens img').each( function () {
		//$(this).parent().parent().parent().css('background', 'url('+$(this).attr('src')+') top left no-repeat');
		$(this).parent().parent().parent().css('background-image', 'url('+$(this).attr('src')+')');
	});
}

function initAbout() {
	$('footer > div > h1').wrapInner('<a href="#" />').click(function () {
		$('body').toggleClass('about');
		sizeAbout();
		return false;
	});
}

function sizeAbout () {
	if ($('body').hasClass('about')) {
		$('body').css('padding-top', $('footer > div').innerHeight()+'px');
		$('footer').css('margin-bottom', '-'+$('footer > div').innerHeight()+'px');
	} else {
		$('body').css('padding-top', '0');
		$('footer').css('margin-bottom', '0');
	}
	return false;
}


function scroll(direction) {
	var goto, i,
		positions = [],
		here = window.pageYOffset,
		collection = $('.main article');
	if (direction == 'top') {
		goto = 0;
	} else {
		collection.each(function() {
			positions.push(parseInt($(this).offset()['top'],10));
		});
		if (direction == 'next') {
			for (i = 0; i < positions.length; i++) {
				if (positions[i] > here) { goto = positions[i]; break; }
			}
		}
		if (direction == 'prev') {
			for (i = positions.length-1; i >= 0; i--) {
				if (positions[i] < here) { goto = positions[i]; break; }
			}
		}
	}
	if (goto || (goto==0)) {
		$('html,body').animate({scrollTop: goto}, 162);
	}
	return false;
}


function colorize() {
	var i,
		positions = [],
		here = window.pageYOffset,
		collection = $('.main article');
	collection.each(function() {
		positions.push(parseInt($(this).offset()['top'],10));
	});
	clearColor();
	for(i = 0; i < positions.length; i++) {
		if (here >= positions[i]) { clearColor(); $('body').addClass(collection.get(i).id); }
	}
	return false;
}

function clearColor() {
	var i,
		collection = $('.main article');
	for(i = 0; i < collection.length; i++) {
		$('body').removeClass(collection.get(i).id);
	}
}

function hires() {
	if ($('.hires').css('font-size') == "1px") {
		var els = $(".hires").get();
		for (var i = 0; i < els.length; i++) {
			var src = els[i].src
			src = src.replace(".png", "@2x.png");
			els[i].src = src;
		}
	}
}

function browser() {
	var uagent = navigator.userAgent.toLowerCase(),
		deviceFF = "firefox",
		deviceIpad = "ipad",
		deviceIphone = "iphone";
	if (uagent.search(deviceFF) > -1) $('body').addClass(deviceFF);
	if (uagent.search(deviceIpad) > -1) $('body').addClass(deviceIpad);
	if (uagent.search(deviceIphone) > -1) $('body').addClass(deviceIphone);
}

function externalLinks() {
	jQuery("a[rel*='external']").each(function(){
		jQuery(this).attr("target", "_blank");
	});
}

