var is_initialized = false;

function ensure_init(callback) {
	if(!window.api_key) {
		window.alert("api_key is not set");
		}if(window.is_initialized) {
		callback();
	} else {
		FB_RequireFeatures(["XFBML", "CanvasUtil"], function() {
	 	//FB.Facebook.init(api_key, "http://scottspeed.zooomusa.com/xd_receiver.php");
		FB.Facebook.init(api_key, "http://www.travispastrana.com/xd_receiver.php");
		//FB.Facebook.init(api_key, "https://74.213.174.186:8443/sitepreview/http/scottspeed.com/xd_receiver.php");
		window.is_initialized = true;
		callback();
	});
	}
}

function facebook_onload(already_logged_into_facebook) {
	ensure_init(function() {
		FB.Facebook.get_sessionState().waitUntilReady(function(session) {
		var is_now_logged_into_facebook = session ? true : false;
		if (is_now_logged_into_facebook == already_logged_into_facebook) {
		return;
		}
	});
});
}

function facebook_button_onclick() {
	ensure_init(function() {
		FB.Facebook.get_sessionState().waitUntilReady(function() {
		var user = FB.Facebook.apiClient.get_session() ?
		FB.Facebook.apiClient.get_session().uid :
		null;
		if (!user) {
		return;
		}else{
			userAvailable(user);
		}
	});
});
}

function login(actionHint) {
	useActionHint = "true";
	if(useActionHint == "true"){
		if(BrowserDetect.browser == "Safari"){
			actionHint = false;
		}
	}else{
		actionHint = false;
	}
	ensure_init(function() {
		FB.Facebook.get_sessionState().waitUntilReady(function() {
		session_is_ready();
	});
	FB.Connect.requireSession(actionHint);
});
}

function logout() {
	FB.Connect.logout(function() {
	loggedOut();
	});
}

function session_is_ready() {
	var user = FB.Facebook.apiClient.get_session() ? FB.Facebook.apiClient.get_session().uid : null;
	if (!user) {
	return;
	}
	loggedIn(user);
}

function getData(uid) {
	var sequencer = new FB.BatchSequencer();
	var fields = new Array("pic_square", "first_name", "last_name", "affiliations");
	var pendingFriendsResult = FB.Facebook.apiClient.friends_get(null, sequencer);
	var pendingProfileResult = FB.Facebook.apiClient.users_getInfo([uid], fields, sequencer);sequencer.execute(function() {
	dataReady(pendingProfileResult.result[0], pendingFriendsResult.result,uid);
});
}

function publishStory(feedID, uid, comment, sitename, siteurl, posttitle,introText,postlink, postimage, bigimg, synopsis) {
	var target_id=new Array();
	var template_data = {
			"comment":comment,
			"sitename": sitename,
			"siteurl": siteurl,
			"posttitle":posttitle,
			"postlink":postlink,
			"postimage": postimage,
			"bigimg": bigimg,
			"synopsis": synopsis,
			"images":[{'src':postimage,
 	'href':postlink}]
			};
	FB.Connect.showFeedDialog(feedID, template_data,target_id,introText,null);
}
