﻿var Facebook = {};


Facebook.requestStreamPublishPermissions = function(callback)
{
	FB.login(callback, { 'perms': "publish_stream,read_stream,user_birthday,friends_birthday,user_education_history,friends_education_history,user_hometown,friends_hometown,user_likes,friends_likes,friends_online_presence" });
}


Facebook.onConnected = function()
{
	User.Loading();
	var session = FB.getSession();
	if (session != null)
	{

		var date = new Date(session.expires * 1000);
		var text = ""
			+ "User ID: " + session.uid
				+ "<br>Expires: " + date.toUTCString()
			+ "<br>Session Key: " + session.session_key.substring(0, 20) + '...'
			+ "<br>Secret: " + session.secret
			+ "<br>Sig: " + session.sig;

		var appId = getFacebookApplicationKey();
		$.cookie(appId + '_user', session.uid, { expires: 7, domain: 'tigigo.com', path: '/' });
		$.cookie(appId + '_session_key', session.session_key, { expires: 7, domain: 'tigigo.com', path: '/' });

		$("#session").html(text);

		// Don't "connect" in server side, if you're already connected to the same UID
		if (Facebook.currentUid == session.uid)
			return;

		Facebook.currentUid = session.uid;



		Api.getListAndCallback('/auth/facebook/connect?uid=' + session.uid + "&key=" + session.session_key, 'ClientUser', function(results)
		{
			NewsFeed.initialize(pageIdentifier, pageIdentifier);
			User.Update(results[0]);
			Products.updateProductsList(false);
		});
	}
	else
	{
		$("#session").html("Session is null");
	}


}
Facebook.onNotConnected = function()
{
	User.UpdateNoUser();
}


Facebook.Login = function()
{
	FB.login(Facebook.onConnected,
		{ perms: 'user_birthday,friends_birthday,user_education_history,friends_education_history,user_hometown,friends_hometown,user_likes,friends_likes,friends_online_presence' }
	);
}

Facebook.initialize = function()
{

	var tmout = setTimeout("Facebook.onNotConnected();", 20000);
	FB.getLoginStatus(function(response)
	{
		if (response.session)
		{
			clearTimeout(tmout);
			Facebook.onConnected();
		} else
		{
			clearTimeout(tmout);
			Facebook.onNotConnected();
		}
	});
}

var User = {};


User.info = null;


User.Loading = function()
{
	$(".personal-profile-connect").html("Loading User...&nbsp;&nbsp;&nbsp;<img src='images/icons/clique-loading.gif' />");
	$(".personal-profile-connect").show();
	$(".personal-profile").hide();
	$(".menu .username").html("Connecting");
}

User.Update = function(info)
{
	User.info = info;
	$(".personal-profile-connect").hide();
	$("#privacy-mode").val(info.PrivacyMode);
	$(".personal-profile").show();
	$("#privacy-mode").change(function()
	{
		var privacyMode = $("#privacy-mode").val();
		Api.invoke("/user/privacy?mode=" + privacyMode);
	});

	$(".personal-profile .profile-pic").show();
	$(".personal-profile .profile-pic").attr("src", info.SmallProfilePictureUrl);
	$(".personal-profile .name").html(info.FullName);
	$(".personal-profile .status").html(info.LastUserStatus);
	$(".menu .username").html(info.FullName);
}

User.UpdateNoUser = function()
{
	//$(".personal-profile .profile-pic").attr("src", "http://static.ak.fbcdn.net/pics/t_silhouette.gif");
	$(".personal-profile-connect").html("Shop with a personalized shopping community by connecting to Facebook:<br/><br/><a href='javascript:void(0)' onclick='Facebook.Login(); return false;'><img style='border: none' src='http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_medium_long.gif' alt='Connect' /></a><div style='text-align: left; font-size:11px; color: #606060; font-weight: normal'><br/>You can also connect with our example Facebook user:<br/><span style='width:100px;display:inline-block'>Facebook User:</span>tw4@tigigo.com<br/><span style='width:100px;display:inline-block'>Password:</span>tigigo2010</div>");
	$(".personal-profile-connect").show();
	$(".personal-profile").hide();
	$(".menu .username").html("Not Connected");
	$(".clique-loading").hide();
	$(".clique").hide();
}
