var fields = null;
var  myObject;
var FB_APP_ID = '138072979625048';
var FB_logged_in = "false";
var FB_object_liked = "false"
var FB_like_counter = "0";
var FB_LIKE_APPID = "";
var FB_id = "";
var FB_name = "";
var FB_first_name = "";
var FB_last_name = "";
var FB_link = "";
var FB_username = "";
var FB_gender = "";
var FB_email = "";	
var FB_Object_ID = "";
var FB_accessToken = "";
var FB_permissions = 'email,read_stream,publish_stream,user_about_me,user_online_presence,friends_about_me,user_likes,offline_access';

function initFacebook()
{
	FB.init({
		appId  : FB_APP_ID,
		status : true, // check login status
		cookie : true, // enable cookies to allow the server to access the session
		xfbml  : true  // parse XFBML
	});
	FB.provide("UIServer.Methods",
		{ 'permissions.request' : { size : {width: 575, height: 300}, 
			url: 'connect/uiserver.php',
			transform : FB.UIServer.genericTransform }
        } 
	);
}
function requestPermissions()
{
	if(FB)
	{
		FB.ui({method: "permissions.request", "perms": FB_permissions});	
	}
}
function login()
{
	// sample events to respond to
		FB.Event.subscribe('auth.login', function(response) {
				FB_logged_in = "true";
				requestPermissions();
				FB_accessToken = FB._session.access_token;
				getFBUserInfo();
		});
		
		FB.Event.subscribe('auth.logout', function(response) {
			clearFB();
			////sendToFlash();
		});
		
	try {
		FB.login(function(response) {
		  if(response.session) {
			  FB_logged_in = "true";
			  getFBUserInfo();
				if(response.perms) {
					// user is logged in and granted some permissions, perms is a comma separated list of granted permissions
				}else {
				// user is logged in, but did not grant any permissions
				}
		  }else {
				// user is not logged in
				FB_logged_in = "false";
				//sendToFlash();
		  }
		}, {perms:FB_permissions});
	}catch(e) {
		return "Error in login, please try again later!";
		clearFB();
		//sendToFlash();
	}	
}
function clearFB()
{
	FB_logged_in = "false";
	FB_object_liked = "false"
	FB_like_counter = "0";
	FB_LIKE_APPID = "";
	FB_id = "";
	FB_name = "";
	FB_first_name = "";
	FB_last_name = "";
	FB_link = "";
	FB_username = "";
	FB_gender = "";
	FB_email = "";	
	FB_Object_ID = "";
	FB_accessToken = "";	
}
function logout()
{
	try {
		FB.logout(function(response) {
			// user is now logged out
				//window.document["main_fla"].SetVariable("FB_logged_in", "false" );
				clearFB();
				//sendToFlash();
		});
	}catch(e) {
				//window.document["main_fla"].SetVariable("FB_logged_in", "false" );
				clearFB();
				//sendToFlash();
	}
}
//function getFlashMovie(movieName) {
//	var isIE = navigator.appName.indexOf("Microsoft") != -1;
//	return (isIE) ? window[movieName] : document[movieName];
//}
function checkFBStatus() 
{
	if(FB != null)
	{
		if (FB._session) {
				// logged in and connected user, someone you know
				//window.document["main_fla"].SetVariable("FB_logged_in", "true" );
				FB_logged_in = "true";
				FB_accessToken = FB._session.access_token;
				getFBUserInfo();
			}else {
				// no user session available, someone you dont know
				//window.document["main_fla"].SetVariable("FB_logged_in", "false" );
				clearFB();
				//sendToFlash();
			}	
	}else
	{
				//window.document["main_fla"].SetVariable("FB_logged_in", "false" );
				clearFB();
				//sendToFlash();
	}
}
function getFBUserInfo()
{
	if(FB_logged_in == "true") {
		FB.api("/me",
			function(response){ 
				if(response) {
					FB_id = response.id;
					FB_name = response.name;
					FB_first_name = response.first_name;
					FB_last_name = response.last_name;
					FB_link = response.link;
					FB_username = response.username;
					FB_gender = response.gender;
					FB_email = response.email;
					FB_logged_in = "true";
					//sendToFlash();
				}else {
					clearFB();
				}
			}
		);
	}else {
		clearFB();
	}
}
function getIDByNameCallback(response)
{
	if(response)
	{
		FB_Object_ID = response.id + "";	
	}
}
function getIDByName(name)
{
	if(FB)
	{
		FB.api('/' + name, getIDByNameCallback);	
	}
}
function onLikeCheckResponse(response)
{
	// Iterate and check against your id
	for (var i=0; i<response.data.length; i++)
	{
		if (response.data[i].id==getFBCurrentUserID())
		{
			FB_object_liked = "true";
			return true;
		}
	}
	FB_object_liked = "false";
	return false;
}
function checkLikeCounterCallback(response)
{
	if(response && response.likes)
	{
		FB_like_counter = response.likes.count + "";
	}
	else
	{
		FB_like_counter = "0";
	}
}
function checkLikeCounter(objectID)
{
	if(FB)
	{
		FB.api(objectID, checkLikeCounterCallback);	
	}
	else
	{
		FB_like_counter = "0";
	}
}
function getFBCurrentUserID()
{
	return FB != null && FB._session ? FB._session.uid : null;
}
function onFBLikeResponse(response)
{
	if(response && response.likes)
	{
		onLikeCheckResponse(response.likes);
	}
	if(FB_object_liked == "false")
	{
		FB.api(FB_Object_ID + '/likes', 'post',
			function(result) {      
				getPostLikeInfo(FB_Object_ID);
			}
		);
	}
	else
	{	
		FB.api(FB_Object_ID + '/likes', 'delete',
			function(result) {      
				getPostLikeInfo(FB_Object_ID);
			}
		);
	}
}
function fbLike(objectID)
{
	if(FB_logged_in == "true")
	{
		FB_Object_ID = objectID;
		FB.api(FB_Object_ID, onFBLikeResponse);	
	}else {
		login();	
	}
}
function getPostLikeInfo(objectID)
{
	FB_Object_ID = objectID;
	FB_like_counter = "0";
	FB_object_liked = "false";
	if(FB)
	{
		FB.api(objectID, function(response) {
			if(response && response.likes)
			{
				FB_like_counter = response.likes.count + "";
				if(FB_logged_in == "true")
				{
					for (var i=0; i<response.likes.data.length; i++)
					{
						if (response.likes.data[i].id==getFBCurrentUserID())
						{
							FB_object_liked = "true";
							break;
						}
					}
				}
				//sendToFlash();
			}
			else
			{
				//sendToFlash();
			}
		});	
	}else {
		//sendToFlash();	
	}
}
function share(method, name, description, link, picture, to, caption, message) {
	if(FB_logged_in == "true")
	{
		FB.ui({
			"method": method, 
			"display": "popup",
			"name": name, 
			"description": description, 
			"link": link, 
			"picture": picture,
			"message" : message,
			"caption" : caption,
			"to": to}, function(response) {}
		); 	
	}else {
		login();	
	}
}
function post(wallID, name, description, link, picture) {
	if(FB_logged_in == "true") {
		var json = {"name": name, "description": description, "link": link, "picture": picture};
		FB.api("/" + wallID + "/feed", "POST", json,
			function(response){ 
				/*if (!response || response.error) {
					alert('Error occured');   
				} else {    
					alert('Published to stream - you might want to delete it now!');   
				} */
			}
		);
	}else {
		login();	
	}
}
//function sendToFlash()
//{
	//getFlashMovie("main_fla").sendTextToFlash(FB_logged_in + "/" + FB_name + "/" + FB_like_counter + "/" + FB_object_liked);
//}

///////////////////twitter

	function tweetPopup(twtTitle, twtUrl) 
	{
		
		var maxLength = 140 - (twtUrl.length + 1);
		
		if (twtTitle.length > maxLength) {
		
		twtTitle = twtTitle.substr(0, (maxLength - 3))+'...';
		
		}
		
		var twtLink = 'http://twitter.com/home?status='+encodeURIComponent(twtTitle + ' ' + twtUrl);
		
		document.write('<a href="'+twtLink+'" target="_blank"'+'><img src="tweetthis.gif"  border="0" alt="Tweet This!" /'+'><'+'/a>');
	}
	

