
var pages = [
	'/location/',
	'/seeds/',
	'/planting/',
	'/irrigation/',
	'/harvest/',
	'/cooling/',
	'/delivery/',
	'/chopwashbag/',
	'/supermarket/',
	'/ready/'];
			
var bgWidth 			= 2208;
var homepageStartOffset = 750;

var pageUrl 			= $(document).url();

var viewportWidth 		= null;
var viewportHeight 		= null;
var homepageWidth 		= null;
var wrapper 			= null;
var homepage 			= null;

////// binding /////////////////////

$(document).bind('hash:change', function( e, hash ){

	var pos = getArrayPosition( pages, hash );

	if ( pos !== false )
	{
		$('#wrapper').trigger( 'siteScroll.goTo', pos );
	}
	else if ( hash == '/home/' || hash == '' )
	{
		goHome();
	}
	
});


/////// setup ///////////////////////

// called once only, on initial load

function setup()
{
	wrapper = $("#wrapper");
			
	viewportHeight = $('body').height();
	viewportWidth = $('body').width();
	homepageWidth = calulateHomepageWidth();
	
	setUpFooter();
	
	wrapper.bind( 'siteScroll.keyUp', function( e, direction ){
		if ( direction == 'right') goNext();
		if ( direction == 'left') goPrev();
	});
	
	// deal with link clicks
	$('a:not(.popmeup):not(.download):not(.ignore)').live('click', function(){
		
		if ( $(this).is(':internal') && ! wrapper.is(":animated") )
		{
			var url = $(this).url();
			
			if ( $(this).attr('href') !== '#' )
			{ 
				pageUrl.attr( 'hash', url.attr('path') );
				return false;
			}
		}
		else if ( wrapper.is(":animated") )
		{
			return false;
		}
		return true;
	});
	
	$('a.ignore').live( 'click', function(){ return false; });
	
	loadHomepage();
	
	//jump to the bookmarked page, if required
	if ( pageUrl.attr('hash') && pageUrl.attr('hash') != '/home/' )
	{
		homepage.css({marginLeft: '-'+(homepageWidth)+'px'})
	}

	refreshSizes();
	initPopupPages();
	
	wrapper.siteScroll({
			pages : pages,
			outer : '#content_outer',
			inner : '#content',
			bgUnitWidth : bgWidth,
			speed : 1500,
			onFinishGoTo : function(){
				$('body').attr('class', pageUrl.hashSegment(0) );
				setToolTips();
				$('.flashwrapper').fadeIn();
			},
			onContentLoaded : function()
			{
				initPageContent( pageUrl.hashSegment(0) );
			}
		});
		
		$(window).resize(function(){
			refreshSizes();
		});
		
		initPageContent( pageUrl.hashSegment(0) );
			
	$.observeUrl(); // watch the URL fragment for updates
	
	$('a[href=#]').live('click',function(){
		return false;
	});
}

function initPopupPages()
{
	$('a.popmeup').live('click',function(){
		if ( $(this).hasClass('current') )
		{
			$('#popuppage').hide();
			$(this).removeClass('current');
		}
		else
		{
			showPage( $(this).attr('href') );
		}
		return false;
	});
	
	$('#pup_header a.close').live('click', function(){
		$(this).parents('#popuppage').hide();
		$('#footer a.current, #homepage_tabs a.current').removeClass('current');
		return false;
	});
}

function showPage( page )
{	
	$('#pup_content').load( page+' #contentpage', function(){
		
		var pop = $('#popuppage');
		
		pop.css('top', (( viewportHeight - pop.height() ) /2)+'px' );
		pop.css('left', (( viewportWidth - pop.width() ) /2)+'px' );
				
		$('a.popmeup.current').removeClass('current');
		$('a.popmeup[href='+page+']').addClass('current');
		
		pop.show();		
	});
}

function setUpFooter()
{
	var footerTop = viewportHeight > 680 ? viewportHeight : 680;
	
	$('#footer').css('top',(footerTop-107)+'px' );
	
	$('#rightfield').css('left',(viewportWidth-$('#rightfield').width())+'px' );
}

function setUpNav()
{	
	$('#nav').width(homepage.width());
	$('#nav').css('paddingLeft', ((viewportWidth - 960)/2)+'px' );

	if ( parseInt(homepage.css('marginLeft').replace(/px/, '')) < 0 )
	{
		homepage.css('marginLeft', (-1 * homepageWidth)+'px' );
	}
}

function refreshSizes()
{
	viewportHeight = $('body').height();
	viewportWidth = $('body').width();
	homepageWidth = calulateHomepageWidth();
		
	setUpFooter();

	var homepage = $('#homepage');

	homepage.width(homepageWidth);
	homepage.height(viewportHeight);
	
	$("#main_wrapper").width( homepageWidth+viewportWidth );
	
	setUpNav();
}

function initPageContent( page )
{
	$('.flashwrapper').hide();
}

function goHome()
{
	if ( ! $('.location_content').size() )
	{
		// $('#wrapper').one( 'siteScroll.finishedGoTo', function(){
		// 	$('#homepage').animate({marginLeft: 0}, 1000);
		// });
		
		$('#wrapper').trigger( 'siteScroll.goTo', 0 );
	}
	else
	{
		$('#homepage').animate({marginLeft: 0}, 1000);
	}
}

function loadHomepage()
{
	homepage = $('<div id="homepage"></div>');
	$('#main_wrapper').prepend(homepage);
	
	homepage.width(homepageWidth);
	homepage.height(viewportHeight);
	
	$('#content_outer').width( viewportWidth );
	$('#wrapper').width( viewportWidth );
	
	homepage.load('home.php #content_inner', function(){
		
		$('a#go, a.go').click(function(){
			$('#homepage').animate({marginLeft: '-'+(homepageWidth)+'px'}, 1000);
			
			$(document).trigger('hash:unwatch');
			
			pageUrl.attr( 'hash', '/location/' );
			
			return false;
		});
		
		initPageContent( 'home' );
	});
}


function setToolTips()
{
	$('a[rel=moreinfo]').each(function(){
		
		var text = $(this).attr('alt');
		
		$(this).qtip({
		   content: text,
			position: {
	     		corner: {
	        		target: 'bottomMiddle',
	        		tooltip: 'bottomMiddle'
	    		},
				adjust : { y: -16 }
			},
	 		style: { 
	     		tip: 'bottomMiddle',
				border: { 
					width: 6,
					radius: 6,
					color: '#ffcb05'
				}
	  		}
		});
	});

}


///////// setup 

$(function(){ setup(); });

///// helper functions

function calulateHomepageWidth()
{
	var homepageWidth = ((bgWidth - viewportWidth)/2) + homepageStartOffset;
	
	if ( homepageWidth < viewportWidth )
	{
		homepageWidth = homepageWidth + bgWidth;
	}

	return homepageWidth;
}

function getArrayPosition( theArray, item )
{
    for ( var i=0; i<theArray.length; i++ )
	{ 
       if ( theArray[i] == item ) return i;
    }
	return false;
}

////////////////


if ( pageUrl.segment(0) )
{
	location.href = pageUrl.attr('base')+'/#/'+pageUrl.segment(0)+'/';
}

currentItem = null;

