var dataCallStore = [];
var script_url = "data/";
var page_url = '';
var pageData = false;
var gallery_url = false;
var doingDataCall = false;

/////////////////////////////
//DATA CALL FUNC
/////////////////////////////

function processPageCall()
{
	if(page_url && page_url != '')
	{
		//if the page current being viewed is not a gallery of sort
		if(dataCallStore[page_url] == undefined)
		{
			doingDataCall = true;
			
			//if datacall has not been requested before
			var call = page_url;
			if(gallery_url)
			{
				//we add the gallery url so that the image
				//in focus in the html will the image which
				//represents the gallery uri
				call += "/"+gallery_url;
			}
			
			//update mode switch 
			updateModeSwitch(call);
			
			//prepend site url and script
			call = site_url + script_url + call;
			
			//reset page, without render function straight after
			debug(deeplinkDebug, "do data call: "+call);
			resetPage(false);
			
			//get new data
		    $.getJSON(call, 
		    	function(data)
		    	{
		    		onDataReponse(data);
		    	}
		    );
		}
		else
		{
			//if data already in data stroe
			debug(deeplinkDebug, "already got data");
			
			//store current page request data
			pageData = dataCallStore[page_url];
			
			//reset page, with render function straight after
			resetPage(true);
		}
	}
}

function onDataReponse(data)
{
	doingDataCall = false;
	if(data != null)
	{
		if(gallery_url && data.current != null)
		{
			//if the deeplink was a gallery deeplink
			//therefore the full link was not in the menu
			if((data.current.type == "gallery" || data.current.type == "videolist"))
			{
				//if the returned data is a gallery of sorts
				//then store data in the gallery url
				var tmp_url = page_url;
				page_url = (data.current.full_uri).replace(site_url, '');
			}
			else
			{
				//else the gallery segment was invalid
				//update uri
				updateAddress(page_url);
			}
		}

		//if not a gallery call
		//store data
		refreshPageData(data);
		
		//store current page request data
		pageData = dataCallStore[page_url];
		
		//render page suing requets data
		renderRequestData();
	}
}

function isGalleryDataCall()
{
	if(gallery_url)
	{
		return true;
	}
	return false;
}

function refreshPageData(data)
{
	if(page_url[page_url.length-1] == "/")
	{
		page_url = page_url.substr(0, page_url.length-1);
	}
	debug(deeplinkDebug, "store current page request data: "+page_url);
	dataCallStore[page_url] = data; 
}

function createModeSwitch()
{
	var modes = ["flash", "html", "mobile"];
	var modeLinks = ["View Flash Version", "Standard Site", "View Mobile Version"];
	for(var i=0; i < modes.length; i++)
	{
		var modeEle = $('#set'+modes[i]);
		if(modeEle.size() > 0)
		{
			modeEle.prev().after('&nbsp;|&nbsp;');
			modeEle.html('<a href="'+site_url+'set'+modes[i]+'/'+segs.join('/')+'">'+modeLinks[i]+'</a>');
		}
	}
}

function updateModeSwitch(url)
{
	var modes = ["flash", "html", "mobile"];
	for(var i=0; i < modes.length; i++)
	{
		var modeEle = $('#set'+modes[i]+' a');
		if(modeEle.size() > 0)
		{
			var href = site_url+'set'+modes[i]+'/'+url;
			modeEle.attr('href', href);
		}
	}
}



