var FacebookConnection = function(p) {
	
	var canPost = false;
	var wasLoggedIn = false;
	var isLoaded = false;

	FacebookConnection.poster = this;
	
	var tag = document.createElement( "script" );
		tag.setAttribute( "type","text/javascript" );
		tag.async = true;
		tag.src = document.location.protocol +'//connect.facebook.net/en_US/all.js';
		
		document.getElementById('fb-root').appendChild( tag );
	
	window.fbAsyncInit = function() {
		isLoaded = true;
		FB.init({ appId: '238070632889452',
					status: true,
					cookie: true,
					xfbml: true });
		initPost(p);
	}
	//this.post = function( {txt:"", link:"", img:""}, onSucess, onError, onDeny ){
	function initPost(post){
		login( post );
	}
	
	function login( pst ){
		var p = pst;
		FB.getLoginStatus( function( response ) {
			if ( response.session ) {
				
				//save Uid
				saveUidToAvatarPref( response.session.uid )
				
				//user is already logged in
				wasLoggedIn = true;
				makePost( p, wasLoggedIn );
				
				// logged in and connected user, someone you know
			} else {
				//not logged in
				newLogin( p, wasLoggedIn );
			}
		});
	}

	function newLogin( pt, wLI ){
		var pp = pt;
		var wasLogged = wLI;
		
		FB.login( function( response ) {
			if (response.session) {
				if ( response.perms ) {
					
					//save Uid
					saveUidToAvatarPref( response.session.uid )
					
					makePost( pp, wasLogged );
				  // user is logged in and granted some permissions.
				  // perms is a comma separated list of granted permissions
				} else {  
					//reportError( "FACEBOOK_NO_PERMISSIONS" );
				  // user is logged in, but did not grant any permissions
				  //alert( "case 2" );
				}
			} else {
				//reportError( "FACEBOOK_NOT_LOGGED_IN" );
				// user is not logged in
				//alert( "case 3" );
			}
		}, {perms:'read_stream,publish_stream,offline_access,user_groups'});
	}
	

	
	function makePost( post, wLI ){
		FB.api( "/me/feed", 'POST', post, function( response ){
			 if ( !response || response.error ) {
				//reportError( "FACEBOOK_POST_ERROR" );
				//alert( "post failed" );
				//post just failed, no response
				//connection breakdown maybe
				
			 } else {
			 	
				//succes!
			}
			
			if	( !wLI ) {
				logout();
			}
		});
	}

	function logout(){
		//FB.logout(function( response ) {});
	};
	
	this.toString = function(){
		return "[Object FacebookConnetion]";
	};
	
	this.getIsLoaded = function(){
		return isLoaded;
	};
	
	function saveUidToAvatarPref(uid){
		connectToFacebookSuccess(uid);
	}
}
