// pageTransitions written by Ben Beckford 21/05/2010

var animSpeed = 800;
var animTransition = "easeInOutCubic";
var loaded = 0;
var pageMover = '';
var imageMover = '';
var newPage = '';
var homePageHeight = 0;
var pageResizeSpeed = 500;
var pageResizeDelay = 300;
var pageResizeTransition = "easeInOutQuart";
var onHomepage = true;


function parseURL(url) {
	//console.log("parseURL: " + url);
	if(url == "")
	{
	}
}

function deepLinkInit()
{
	$.address.init(function(event) {
		//console.log("init: " + $('[rel=address:' + event.value + ']').attr('href'));
	}).change(function(event) {
		//console.log("change - event.value: " + event.value);
	}).externalChange(function(event) {
		//console.log('externalChange: "' + event.value + '"');
		if(event.value == "/" || event.value == "#" || event.value == "" || event.value == "/home")
		{
			backToOrig();
		}
		else
		{
			var pageNum = event.value.split("/");
			pageNum = pageNum[pageNum.length-1];
			
			transPage({path:'page.htm?cpi_id=' + pageNum});
		}
	});
}

function transPage(params)
{
	pageMover = $('.pageMover');
	imageMover = $('.imageMover');
	newPage = $('#newPage');
	homePageHeight = $('#origPage').height();
	
	var deepPath = params.path.split("=");
	deepPath = deepPath[deepPath.length-1];
	$.address.value(deepPath);
	
	$('#newPage').load(params.path + ' #pageContent', function() {
		loadComplete();			
	});
	
	$('#newImage').load(params.path + ' .headerImageInner', function() {
		loadComplete();
	});
	
	$.get(params.path, function(data) {
		
		//$('body').css("background-image", "url(http://dev.chriscurddesign.co.uk/mcginleygroup/p/" + getBackgroundImage(data) + ")");
		loadComplete();
		
		$('body').css("background-image", "url(" + getBackgroundImage(data) + ")");
		var bgColor = getBackgroundColor(data);
		
		if(bgColor == null || bgColor == "" || bgColor == "undefined")
		{
			$('body').css("background-repeat", "repeat");
		}
		else
		{
			$('body').css("background-color", bgColor);
		}
		
		
	});
	
}

function loadComplete()
{
	loaded++;
	
	if(loaded == 3)
	{
		$('#newPage').append('<div class="backButton"><a href="javascript:backToOrig();">Back</a></div>');
		showNewPage();
	}
}

function showNewPage()
{
	
	pageMover.stop().animate(
		{marginLeft: -980},
		{duration: animSpeed,
		easing: animTransition});
		
	imageMover.stop().animate(
		{marginTop: -72},
		{duration: animSpeed,
		easing: animTransition});
		
	resizePage($('#newPage').height(), pageResizeDelay);
	
	onHomepage = false;
	
}

function backToOrig()
{
	if(onHomepage == false)
	{
		
		pageMover = $('.pageMover');
		imageMover = $('.imageMover');
		newPage = $('#newPage');
			
		pageMover.stop().animate(
			{marginLeft: 0},
			{duration: animSpeed,
			easing: animTransition});
			
			
		imageMover.stop().animate(
			{marginTop: 0},
			{duration: animSpeed,
			easing: animTransition});
			
		$('body').css("background-image", "url(style/images/homepage_background.jpg)");
		$('body').css("background-repeat", "repeat-x");
		$('body').css("background-color", "#000");
		
		resizePage(homePageHeight, 0);
			
		loaded = 0;
		onHomepage = true;
		$.address.value("home");
	}
}

function getBackgroundImage(data)
{
	
	var regex = /body.*background=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?/;
	var result = regex.exec(data);
	if (result.length > 1) {
		var background = result[1];
		return(background);
	}
	else {
		//no result
	}
	
}

function getBackgroundColor(data)
{
	var regex = /body.*background-color=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?/;
	var result = regex.exec(data);
	if (result != null && result.length > 1) {
		var background = result[1];
		return(background);
	}
	else {
		return(null);
	}
	
}

function resizePage(newHeight, newDelay)
{
	$('.container').stop().delay(newDelay).animate(
		{height: newHeight},
		{duration: pageResizeSpeed,
		easing: pageResizeTransition});
}
