

(
	function() {
		var e = document.createElement('script');
		e.src = document.location.protocol + '//connect.facebook.net/fr_FR/all.js';
		e.async = true;
		document.getElementById('fb-root').appendChild(e);
	} ( )
);
	

window.fbAsyncInit = function() {
	FB.init({
	  appId   : FACEBOOK_APPID,
	  status  : true,
	  cookie  : true,
	  xfbml   : true
	});
};


function sendFacebookInvitationRequest(likeWindowCallback) {
	
	if(typeof likeWindowCallback == 'undefined') {
		likeWindowCallback = true;	
	}
	
	FB.ui({
		method: 'apprequests',
		message: "Rejoins-moi sur Dino Gaïa et affronte les autres joueurs dans des combats sans pitié ! Découvre également les mystères et les quêtes cachées de la Terre des dinosaures !",
		//message: 'En invitant des amis à jouer à Dino Gaïa, tu peux gagner plein d\'émeraudes (la monnaie du jeu) très facilement ! Dès qu\'un ami passera un niveau, tu gagneras 25 émeraudes et 50 à chaque bonus d\'émeraudes obtenu par un de tes amis !',
		title: 'Invite tes amis et gagne des émeraudes !',
	},
	function (response) {
		// Invitations envoyées
		if (response && response.request_ids) {
			var request_ids_join = response.request_ids.join(',');
			
			new Ajax.Request('membre_invitations_facebook_save.php5',
			{
				method:'post',
				parameters: {request_ids: request_ids_join},
					onSuccess: function(transport){
					var response = transport.responseText || "Pas de réponse du serveur...";
					windowAlert(response, "Merci !");
				},
				onFailure: function(){ windowAlert("Une erreur s'est produite pendant l'enregistrement de tes invitations. Merci de réessayer plus tard...", "Erreur"); }
			});
			
		} 
		
		// Invitation annulée
		else {
			if(likeWindowCallback) windowAlert("N'oublie pas que tu peux à tout moment <strong>inviter des amis</strong> à jouer et <strong>gagner ainsi des émeraudes très facilement</strong> <strong>en cliquant sur « Inviter des amis »</strong>.<br/><br/>Enfin, n\'hésite pas à aimer Dino Gaïa : <div style='margin-top:4px;' align='center'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.facebook.com%2Fdinogaia&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21' scrolling='no' frameborder='0' style='border:none; overflow:hidden; width:450px; height:21px;' allowTransparency='true'></iframe></div>", "Bon jeu sur Dino Gaïa !");
		}
	});
	return false;
}


function shareFacebookContent(feedName, feedLink, feedPicture, feedCaption, feedDescription) {
	FB.ui(
	{
		method: 'feed',
		name: feedName,
		link: feedLink,
		picture: feedPicture,
		caption: feedCaption,
		description: feedDescription,
		//message: 'Facebook Dialogs are easy!'
	},
	function(response) {
		if (response && response.post_id) {
			windowAlert('Ton message a bien été publié !', 'Message publié');
		} else {
			//alert('Post was not published.');
		}
	}
	);	
}


function executeCallbackWhenFBUserIsConnected(callback) {
	if(typeof FB != 'undefined') {
		if(FB._userStatus == 'connected') {
			callback();
		} else window.setTimeout(function() { executeCallbackWhenFBUserIsConnected(callback) }, 200);
	} else window.setTimeout(function() { executeCallbackWhenFBUserIsConnected(callback) }, 200);
}

function executeCallbackWhenFBIsDefined(callback) {
	if(typeof FB != 'undefined') {
		callback();
	} else window.setTimeout(function() { executeCallbackWhenFBIsDefined(callback) }, 200);
}


function placeFacebookCreditsOrder(type, details) {
	var obj = {
		method: 'pay',
		order_info: {"banque_type":type, "banque_details":details, "banque_num_membre":GLOBAL_USER_ID, "banque_num_dino":GLOBAL_DINO_ID, "dino_nom":GLOBAL_DINO_NOM, "locale":((typeof GLOBAL_LOCALE != 'undefined')?GLOBAL_LOCALE:'')},
		purchase_type: 'item'
	};
	
	/*var facebookCreditsCallback = function(data) {
		if (data['order_id']) {
			// Success, we received the order_id. The order states can be
			// settled or cancelled at this point.
			return true;
		} else {
			//windowAlert("Une erreur s'est produite...");
			return false;
		}
	};*/

	//FB.ui(obj, facebookCreditsCallback);
	FB.ui(obj);
}


function openEmeraldsBonusFBWindow() {
	windowAlert('<div id="emeraldsWindow">Chargement en cours...</div>', "Obtenir plus d'émeraudes", "Fermer");
	//new Ajax.Updater('emeraldsWindow', '/facebook_credits_emeraudes.php5', {method: 'get'});
	new Ajax.Updater('emeraldsWindow', '/facebook_credits_emeraudes.php5', { method: 'get' });
}

function disconnectFBUser() 
{
	new Ajax.Request('/deconnexion.php5',
	{
		method:'get',
		onSuccess: function(transport) {
		FB.logout(function(response) {
	  		window.location.href = 'index.php5';
		});	
	}
	});
}

function disconnectDGUserFromApp() 
{
	new Ajax.Request('deconnexion.php5',
	{
		method:'get',
		onSuccess: function(transport){
			top.location.replace("http://www.facebook.com"); 
		},
		onFailure: function(){ windowAlert("Une erreur s'est produite. Merci de réessayer plus tard...", "Erreur"); }
	});
}

function setCookie(nom,valeur) {
	document.cookie = nom + "=" + escape(valeur);
}


function print_r (array, return_val) {
    // http://kevin.vanzonneveld.net
    // +   original by: Michael White (http://getsprink.com)
    // +   improved by: Ben Bryan
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +      improved by: Brett Zamir (http://brett-zamir.me)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: echo
    // *     example 1: print_r(1, true);
    // *     returns 1: 1
    var output = '',
        pad_char = ' ',
        pad_val = 4,
        d = this.window.document,
        getFuncName = function (fn) {
            var name = (/\W*function\s+([\w\$]+)\s*\(/).exec(fn);
            if (!name) {
                return '(Anonymous)';
            }
            return name[1];
        },
        repeat_char = function (len, pad_char) {
            var str = '';
            for (var i = 0; i < len; i++) {
                str += pad_char;
            }
            return str;
        },
        formatArray = function (obj, cur_depth, pad_val, pad_char) {
            if (cur_depth > 0) {
                cur_depth++;
            }

            var base_pad = repeat_char(pad_val * cur_depth, pad_char);
            var thick_pad = repeat_char(pad_val * (cur_depth + 1), pad_char);
            var str = '';

            if (typeof obj === 'object' && obj !== null && obj.constructor && getFuncName(obj.constructor) !== 'PHPJS_Resource') {
                str += 'Array\n' + base_pad + '(\n';
                for (var key in obj) {
                    if (Object.prototype.toString.call(obj[key]) === '[object Array]') {
                        str += thick_pad + '[' + key + '] => ' + formatArray(obj[key], cur_depth + 1, pad_val, pad_char);
                    }
                    else {
                        str += thick_pad + '[' + key + '] => ' + obj[key] + '\n';
                    }
                }
                str += base_pad + ')\n';
            }
            else if (obj === null || obj === undefined) {
                str = '';
            }
            else { // for our "resource" class
                str = obj.toString();
            }

            return str;
        };

    output = formatArray(array, 0, pad_val, pad_char);

    if (return_val !== true) {
        if (d.body) {
            alert(output);
        }
        else {
            try {
                d = XULDocument; // We're in XUL, so appending as plain text won't work; trigger an error out of XUL
                alert('<pre xmlns="http://www.w3.org/1999/xhtml" style="white-space:pre;">' + output + '</pre>');
            } catch (e) {
                alert(output); // Outputting as plain text may work in some plain XML
            }
        }
        return true;
    }
    return output;
}

function setFbCookies(response) {
	
	print_r(response.authResponse.signedRequest);
	
	return;
	setCookie('fb_access_token', response.authResponse.accessToken);
	setCookie('fb_user_id', response.authResponse.userID);
}

function urlencode(str) {
    return escape(str.replace(/%/g, '%25').replace(/\+/g, '%2B')).replace(/%25/g, '%');
}

function facebookConnect() {
	FB.login(function(response) {
	  if (response.authResponse) {
		/*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
		}*/
		
		//	print_r(response.authResponse);

		
		//window.location.href = '?facebookConnectRequest';
		//setFbCookies(response);
		//return;
		//var newLocation = '?facebookConnectRequest&fbSession[uid]='+response.authResponse.userID+'&fbSession[access_token]='+urlencode(response.authResponse.accessToken)+'&fbSession[sig]='+urlencode(response.authResponse.signedRequest);
		var newLocation = '?facebookConnectRequest'; //&signed_request='+encodeURIComponent(response.authResponse.signedRequest);
		//alert(newLocation);
		window.location.href = newLocation;
		
	  } else {
		// user is not logged in
		windowAlert("Une erreur est survenue lors de la connexion avec Facebook. Essayez d'actualiser la page et n'hésitez pas à nous contacter si le problème persiste.", "Connexion avec Facebook impossible");
	  }
	});
}
