function getMappingObject(flash,html) {
	return {
		flashPath: flash,
		htmlPath: html
	}
}

// HTML -> Flash routes
var htmlToFlashMappings = [
	getMappingObject('home',''),	// home page
	getMappingObject('about/clients','clients'), // clients
	getMappingObject('about/awards','awards'), // awards
	getMappingObject('about/process','process'), // process
	getMappingObject('services','services'), // services
	getMappingObject('portfolio','portfolio'), // portfolio
	getMappingObject('news','news'), // news
	getMappingObject('careers','careers'), // careers
	getMappingObject('contact','contact') // contact
];

// Flash -> HTML routes
var flashToHtmlMappings = [
getMappingObject('home',''), // home page
getMappingObject('about',''), // about page
getMappingObject('about/overview',''),
getMappingObject('about/clients','clients'), // clients
getMappingObject('about/awards','awards'), // awards
getMappingObject('about/process','process'), // process
getMappingObject('services','services'), // services
getMappingObject('services/design','services'),
getMappingObject('services/development','services'),
getMappingObject('services/marketing','services'),
getMappingObject('services/animation','services'),
getMappingObject('services/video','services'),
getMappingObject('services/print','services'),
getMappingObject('portfolio','portfolio'), // portfolio
getMappingObject('portfolio/all','portfolio'),
getMappingObject('portfolio/interactive','portfolio'),
getMappingObject('portfolio/print','portfolio'),
getMappingObject('portfolio/animation','portfolio'),
getMappingObject('portfolio/applications','portfolio'),
getMappingObject('news','news'), // news
getMappingObject('news/headlines','news'),
getMappingObject('careers','careers'), // careers
getMappingObject('careers/job-openings','careers'),
getMappingObject('contact','contact') // contact
]; 

// android redirect
if(navigator.userAgent.toLowerCase().indexOf("android") > -1) var isAndroid = true;
if(swfobject.hasFlashPlayerVersion("10") && !isAndroid) handleFlash(); else handleHTML();

function handleFlash() {
	var params = {
		quality: "high",
		scale: "noscale",
		wmode: "direct",
		allowscriptaccess: "always",
		bgcolor: "#000000",
		base: "/flash/"
	};
	var flashvars = {
		siteXML: "xml/site.xml"
	};
	var attributes = {
		id: "flashcontent",
		name: "flashcontent"
	};
	document.write('<style type="text/css">body {background-image: none;}</style>');
	swfobject.embedSWF("/flash/main.swf", "flashcontent", "1680", "1050", "10.0.0", "expressInstall.swf", flashvars, params, attributes);
	parseURLToDeeplink();
	swffit.fit("flashcontent", 900, 600);
}

function parseURLToDeeplink() {
	// check for valid flash deeplink first
	var targetDeeplink = document.location.hash.substr(2, document.location.hash.length - 2);
	for(i = 0; i < flashToHtmlMappings.length; i++) if(flashToHtmlMappings[i].flashPath == targetDeeplink) return; // if we're already deeplinked, don't change the hash
	for(i = 0; i < htmlToFlashMappings.length; i++) if(htmlToFlashMappings[i].htmlPath == document.location.pathname.split('/')[1]) document.location.hash = "#/"+htmlToFlashMappings[i].flashPath; // send flash users to relevant deeplink
}

function handleHTML() {
	parseDeeplinkToURL();
}

function parseDeeplinkToURL() {
	// if there's a valid flash deeplink, see if it corresponds to the URL; otherwise send the user to the right place
	var targetDeeplink = document.location.hash.substr(2, document.location.hash.length - 2);
	for(i = 0; i < flashToHtmlMappings.length; i++) {
		if(flashToHtmlMappings[i].flashPath == targetDeeplink) {
			if(document.location.pathname.split('/')[1] != flashToHtmlMappings[i].htmlPath)
				document.location = '/'+flashToHtmlMappings[i].htmlPath;
		}
	}
}
