var debug = false;
if (location.href.indexOf("www.netigo.local") >= 0)
{
	debug = true;
}

var messages = "";

/**
 * Writes a Messages to the Debugging-Window
 *
 * @param string msg Debugging-Message
 */
function writeDebugger(msg)
{
	messages += msg + '\n';
	var elem = document.getElementById('msg');
	if (elem)
	{
		elem.value += msg;
		elem.value += '\n';
	}
	else if (debug)
	{
		console.log(msg);
	}
}

function fbGetDummyUser() {
	response = {
		id:"1234567890987654321",
		name:"FB_Dummy Tester",
		first_name:"FB_Dummy",
		last_name:"Tester",
		link:"http://www.facebook.com/profile.php?id=1234567890987654321",
		hometown:{id:"9876543210123456789", name:"Someplace"},
		location:{id:"9876543210123456789", name:"Somewhere, Neverland"},
		gender:"male",
		email:"test@netigo.de",
		timezone:2,
		locale:"de_DE",
		updated_time:"2011-04-15T14:34:51+0000"
	}
	
	response.error = false;
	response.perms = facebook_perms;
	response.status = 'connected';
	return response;
}

function getSWF() {
	return document.getElementById('website');
}

function fbUpdateSWF(response) {
	swf = getSWF();
    if (response == null) {
		writeDebugger('null');
        swf.fbResponseChange(null);
    } else {
		writeDebugger(FB.JSON.stringify(response));
        swf.fbResponseChange(FB.JSON.stringify(response));
    }
}

function fbEmbeddedInFB() {
	if (debug) {
		//value = confirm("fbEmbeddedInFB?");
		value = false;
	} else {
		value = Facebook_Gateway.embedded();
	}
	writeDebugger('fbEmbeddedInFB: ' + value);
	return value;
}

function fbGetUser() {
	writeDebugger('fbGetUser...');
	if (debug) {
		//value = confirm("is user logged in?");
		value = true;
		if (value) {
			fbGetUserHandler(fbGetDummyUser());
		} else {
			fbGetUserHandler(null);
		}
	} else {
		Facebook_Gateway.getUser("me", fbGetUserHandler);
	}
}

function fbGetUserHandler(response) {
	if(response && !response.error && response.email){
		fbUpdateSWF(response);
	} else {
		fbUpdateSWF(null);
	}
}

function fbLogin() {
	writeDebugger('fbLogin...');
	if (debug) {
		// value = confirm("login success?");
		value = true;
		if (value) {
			fbGetUserHandler(fbGetDummyUser());
		} else {
			fbGetUserHandler(null);
		}
	} else {
		Facebook_Gateway.dialogLogin(facebook_perms, fbLoginHandler);
	}
}

function fbLoginHandler(response) {
	if (response.authResponse && response.status == 'connected') {
		FB.api(
			'/me', 
			function(response)
			{
				if(response && response.email){
					fbUpdateSWF(response);
				}else{
					fbUpdateSWF(null);
				}
			}
		);
	}else{
		fbUpdateSWF(null);
	}
}

function fbLogout() {
    FB.logout(fbLogoutHandler);
}

function fbLogoutHandler(response) {
	fbUpdateSWF(null);
}

function fbSessionChange() {
	FB.Event.subscribe('auth.sessionChange', function(response) {
		//fbUpdateSWF(response.session);
	});
}

/*

function fb_addEventListener(event) {
    FB.Event.subscribe(event, function(response) {
        getSwf().handleJsEvent(event,FB.JSON.stringify(response));
    });
}

function fb_getSession() {
    session = FB.getSession();
    return FB.JSON.stringify(session);
}

function fb_getLoginStatus() {
    FB.getLoginStatus(function(response) {
    if (response.session) {
        fbUpdateSWF(response.session);
    } else {
        fbUpdateSWF(null);
    }
    });
}

function fbUpdateSWF(session, extendedPermissions) {
    swf = getSwf();
    extendedPermissions = (extendedPermissions==null)
                        ? ''
                        : extendedPermissions;

    if (session == null) {
        swf.sessionChange(null);
    } else {
        swf.sessionChange(FB.JSON.stringify(session),
                          FB.JSON.stringify(extendedPermissions.split(',')));
    }
}
*/
