/*
 * Subject to copyright.
 *
 * Web Development - LOOKsystems Limited
 * mailto:info@looksystems.ltd.uk
 * http://www.looksystems.ltd.uk
 *
 */
	var PAGE_WITH_BIG_IMAGE_ID	= 3;
	var PAGE_WITH_BACKGROUND	= 4;
	var SPEED_OF_PAGE_ROTATE	= 5000;
	var SPEED_OF_ANIMATION		= 1250;
	
	var globalPageElements 			= new Array();
	var globalNextPageId 			= 0;
	
	jQuery.preloadImages = function(images)
	{
		var count =  images.length;
		var loaded = 0;
		var date = new Date();
		var startLoad = date.getTime(); 
	  
		for(var i = 0; i < images.length; i++)
		{
			jQuery("<img>")
			.load(function() {
				++loaded;
				if (loaded == count) {
					var now = new Date();
					var preloadedTime = parseInt(now.getTime()) - parseInt(startLoad);
					if (preloadedTime < 0) preloadedTime = 0;
					window.setTimeout(
						function () {makeCrossFadeAnimation();},
						(preloadedTime > SPEED_OF_PAGE_ROTATE)
							? 0
							: (SPEED_OF_PAGE_ROTATE - preloadedTime)
					);
				}
			})
			.attr("src", images[i]);
		}
	}
	
	$(document).ready(
		function(){
			init();
			cycle();
		}
	);
	
	function init()
	{
		var pageElement 	= new Array();
		var images			= new Array();
		var captions		= new Array();
		var captionsText	= new Array();
		
		images[0] 	= './assets/jpg/pg1_image1.jpg';
		images[1] 	= './assets/jpg/pg1_image2.jpg';
		images[2]	= './assets/jpg/pg1_image3.jpg';
		captions[0]	= './assets/gif/captions/pg1_cap.gif';
		captionsText[0]	= 'Urban extension to Plymouth, Sherford, UK';
		
		pageElement['images'] 		= images;
		pageElement['captions']		= captions;	
		pageElement['captionsText']	= captionsText;
		globalPageElements[0]		= pageElement;
		
		
		var pageElement 	= new Array();
		var images			= new Array();
		var captions		= new Array();
		var captionsText	= new Array();
		
		images[0] 	= './assets/jpg/pg2_image1.jpg';
		images[1] 	= './assets/jpg/pg2_image2.jpg';
		captions[0]	= './assets/gif/captions/pg2_cap.gif';
		captionsText[0]	= 'Urban extension to Truro at Highertown, Cornwall, UK';
		
		pageElement['images'] 	= images;
		pageElement['captions']	= captions;	
		pageElement['captionsText']	= captionsText;
		globalPageElements[1]	= pageElement;
		
		
		var pageElement 	= new Array();
		var images			= new Array();
		var captions		= new Array();
		var captionsText	= new Array();
		
		images[0] 	= './assets/jpg/pg3_image1.jpg';
		images[1] 	= './assets/jpg/pg3_image2.jpg';
		images[2] 	= './assets/jpg/pg3_image3.jpg';
		captions[0]	= './assets/gif/captions/pg3_cap.gif';
		captionsText[0]	= 'Wherrytown, Penzance. Residential Urban Design.';
		
		pageElement['images'] 	= images;
		pageElement['captions']	= captions;	
		pageElement['captionsText']	= captionsText;
		globalPageElements[2]	= pageElement;
				
		
		var pageElement 	= new Array();
		var images			= new Array();
		var captions		= new Array();
		var captionsText	= new Array();
		
		images[0] 	= './assets/jpg/pg4_image.jpg';
		captions[0]	= './assets/gif/captions/pg4_cap.gif';
		captionsText[0]	= 'Porthtowan, Sensitive seafront development.';
		
		pageElement['images'] 	= images;
		pageElement['captions']	= captions;	
		pageElement['captionsText']	= captionsText;
		globalPageElements[3]	= pageElement;
					
		
		var pageElement 	= new Array();
		var images			= new Array();
		var captions		= new Array();
		var captionsText	= new Array();
		
		images[0] 	= './assets/jpg/pg5_image1.jpg';
		images[1] 	= './assets/jpg/pg5_big.jpg';
		captions[0]	= './assets/gif/captions/pg5_cap.gif';
		captionsText[0]	= 'Porthtowan, Sensitive seafront development.';
		
		pageElement['images'] 	= images;
		pageElement['captions']	= captions;	
		pageElement['captionsText']	= captionsText;
		globalPageElements[4]	= pageElement;
		
		
		var pageElement 	= new Array();
		var images			= new Array();
		var captions		= new Array();
		var captionsText	= new Array();
		
		images[0] 	= './assets/jpg/pg6_image1.jpg';
		images[1] 	= './assets/jpg/pg6_image2.jpg';
		images[2] 	= './assets/jpg/pg6_image3.jpg';
		captions[0]	= './assets/gif/captions/pg6_cap.gif';
		captionsText[0]	= 'Landscape Planning. Haven Design Center, Landscape and Visual Impact. Assessment in an AONB.';
		
		pageElement['images'] 	= images;
		pageElement['captions']	= captions;	
		pageElement['captionsText']	= captionsText;
		globalPageElements[5]	= pageElement;
		
		
		var pageElement 	= new Array();
		var images			= new Array();
		var captions		= new Array();
		var captionsText	= new Array();
		
		images[0] 	= './assets/jpg/pg7_image1.jpg';
		images[1] 	= './assets/jpg/pg7_image2.jpg';
		captions[0]	= './assets/gif/captions/pg7_cap.gif';
		captionsText[0] = 'Winning design for new drug and alchol rehabilitation centre at Bosence Farm, Cornwall, UK';
		
		pageElement['images'] 	= images;
		pageElement['captions']	= captions;	
		pageElement['captionsText']	= captionsText;
		globalPageElements[6]	= pageElement;
		
		
		var pageElement 	= new Array();
		var images			= new Array();
		var captions		= new Array();
		var captionsText	= new Array();
		
		images[0] 	= './assets/jpg/pg8_image1.jpg';
		images[1] 	= './assets/jpg/pg8_image2.jpg';
		images[2] 	= './assets/jpg/pg8_image3.jpg';
		captions[0]	= './assets/gif/captions/pg8_cap1.gif';
		captions[1]	= './assets/gif/captions/pg8_cap2.gif';
		captions[2]	= './assets/gif/captions/pg8_cap3.gif';
		captionsText[0] = 'Gate design for historic archway';
		captionsText[1] = 'Cleat bench design for waterfront development';
		captionsText[2] = 'Bespoke bollard design for maritime location';
		
		pageElement['images'] 	= images;
		pageElement['captions']	= captions;	
		pageElement['captionsText']	= captionsText;
		globalPageElements[7]	= pageElement;
	}
	
	function cycle()
	{
		var pageElement = globalPageElements[globalNextPageId];
		$.preloadImages(pageElement['images']);
	}
	
	function makeCrossFadeAnimation()
	{
		next();
	}
	
	function next()
	{
		var pageElement = globalPageElements[globalNextPageId];
		
		var page = $('#page');
		var destination = 
			page
				.clone(true)
				.attr('id', 'clone')
				.prependTo('body')
				.css('left', page.offset().left + 'px');
		
		if (globalNextPageId == PAGE_WITH_BACKGROUND) {
			page.css('background', 'url(./assets/jpg/pg5_big.jpg)'); 
		} else {
			page.css('background', '#FFF');
		}
		
		if (globalNextPageId == PAGE_WITH_BIG_IMAGE_ID) {
			page.find('#images >ul').addClass('tall');
		} else {
			page.find('#images >ul').removeClass();
		}
		
		page.find('#images > ul').empty();
		
		var li 	= null;
		var images = pageElement['images'];
		
		for (var i = 0; i < images.length; i++) {
			if (
				(globalNextPageId != PAGE_WITH_BACKGROUND)
				|| (images.length != (i + 1))
			) {
				li = $('<li></li>').append($('<img src="'+images[i]+'"/>'));
			
				if ((i + 1) == images.length) {
					li.addClass('last');
				}
				
				page.find('#images > ul').append(li);
			}
		}
		
		page.find('#images > p').remove();
		
		var captions 		= pageElement['captions'];
		var captionsText	= pageElement['captionsText'];
		var p = null;	
		for (var i = captions.length - 1; i >= 0; --i) {
			p = $('<p>' + captionsText[i] + '</p>').css('backgroundImage', 'url('+captions[i]+')');
			
			if (captions.length > 1) {
				p.addClass(
					((i + 1) == captions.length)
						? 'caption last'
						: 'caption'
				);
			} 
			
			page.find('#images > ul').after(p);
		}
		
		markMenuPointAsSelected(page);
		nextPageId();
		
		destination.animate(
			{'opacity': 0},
			
			SPEED_OF_ANIMATION,
			
			function () {
				$('#clone').remove();
				cycle();
			}
		);
	}
	
	function markMenuPointAsSelected(page)
	{
		page.find('#header > ul > li').removeClass();
		
		if (globalNextPageId < 2) {
			page.find('#master_planning').parent().attr('class', 'select');
		} else if ((globalNextPageId > 1) && (globalNextPageId < 4)) {
			page.find('#urban_design').parent().attr('class', 'select');
		} else if ((globalNextPageId > 3) && (globalNextPageId < 7)) {
			page.find('#landscape_architecture').parent().attr('class', 'select');
		} else {
			page.find('#product_design').parent().attr('class', 'select');
		}
	}
	
	function nextPageId()
	{
		globalNextPageId++;
		
		if (globalPageElements.length == globalNextPageId)
			globalNextPageId = 0;

	}