function checkFacebookStatus() {
	FB.getLoginStatus(function(response) {
		if (response.session) {
			// logged in and connected user, someone you know
			FB.ui(
		   {
		   	 display: 'iframe',
		     method: 'apprequests',
		     title: 'Sky8',
		     filters: ['app_non_users'],
		     //message: 'veut partager le bon plan Sky8 avec toi. Pour jouer et gagner de nombreaux cadeaux clique sur le bouton Jouer ci-dessous.'
		     message: fb_lang.str_message
		   },
		   function(response) {
		   	
		     if (response && response.request_ids) {
		       //on enregistre les requests et leur destinataire en tant que filleul
				var request = new Request({
					method: 'post',
	                url:"/parrain/facebookConfirm",
	                data: 'request_ids='+response.request_ids,
	                onSuccess:function() {
	                	//redirect vers page succès parrainage
	                	var redirect = window.location.protocol+'//'+window.location.host+'/parrain/confirm';
		                window.location = redirect;
		            }
				}).send();
		     }
		   }
		 );
		} else {
			// no user session available, someone you dont know
			fbLogin(checkFacebookStatus);
		}
	});
}

function skyLogin() {
	FB.getLoginStatus(function(response) {
		if (response.status && response.status == 'connected') {
			checkFacebookLogin(response);
		} else {
			fbLogin(skyLogin);
		}
	});
}

window.addEvent('domready',function() {
	    
	    if($('fb_connect')) {
	      $$('img[id=fb_connect]').addEvent('click',skyLogin);
	    }
	    if($('fb_parrain')) {
	      $$('img[id=fb_parrain]').addEvent('click',checkFacebookStatus);
	    }
	    if($('fb_friend')) {
	      $('fb_friend').getElements("div[id^=fb_stream_]").addEvent('click',function() {
	        writeToFeed(this.getProperty('id').split("_")[2]);
	      });
	    }
});

function fbLogin(callback) {
	req = new Request({
		url:"/fbconnect/permissions",
		method:"get",
		onSuccess:function(r) {
			FB.login(function(response) {
				if(response.session) {
					callback();
				}
			},{scope:r})
		}
	}).send();
}

function checkFacebookLogin(reponse) {
	if(reponse.status && reponse.status == 'connected') {
		req = new Request.JSON({
			url:"/fbconnect/identification/"+reponse.authResponse.userID,
			method:"get",
			onSuccess:function(r) {
				if(r)__error = r.msg;
				if(typeof(__error) == "object" && __error != null) {
					new MooDialog.Request('/info/display/'+__error.fb_pop_info,{
						size:{width:600,height:500}
					});
				} else {

					//on met à jour la liste des likes de l'utilisateur
					req = new Request({
	                    url:"/fbconnect/storeLikes",
	                    method:"get",
	                    onSuccess:function(r) {
	                    	if($('fb_connect').getProperty("redir") == 'true') {
								if($('fb_connect').getProperty("redirUrl")) {
									redir = $('fb_connect').getProperty("redirUrl");
								} else {
									redir = "/dispatch/from/post_login";
								}
								top.location.href = redir;
							} else {
								callbackFBConnect();
							}
	                    }
	                }).send();
				}
			},
			onRequest:function() {
			}
			
		}).send();
	}
}

function publishToStream(friend_id, message) {
	  var publish = {
		        message: 'Sky8 - Tous les jours 8 Chances de gagner jusqu\'à 150 000 euros !!!',
		        link:'http://www.sky8.com',
		        name:'name',
		        caption:'caption',
		        description:'description'
		      };	
	  FB.api('/'+friend_id+'/feed', 'post', publish , function(response) {
	  if (!response || response.error) {
	    alert('Error occured');
	  } else {
	    alert('Post ID: ' + response);
	  }
	});	
}

function writeToFeed(friend_id) {

	//récupération des informations du feed
	req = new Request({
            url:"/fbconnect/relance",
            method:"post",
            onSuccess:function(r) {
            	response = JSON.parse(r);
            	response['method'] = 'stream.publish';
            	response['target_id'] = friend_id;
                FB.ui(response);
			}
        }).send();
}

function likeCallback(response_url) {
	//le catch de l'évènement like renvoie l'url utilisé dans le like
	// cette url est de la forme : http://www.facebook.com/#page#?action=#action#&data=#toutes les infos necessaires
	var message = "";
	var parts = response_url.split('?');
	if(parts.length > 1) {

		//on enregistre le like en le trackant
		req = new Request({
            url:"/fbconnect/track",
            method:"post",
            data: {data:response_url}
        }).send();

		//on fait le switch en fonction de la valeur de action
		if(parts[1].indexOf('pointagogo') > 0) {
			req = new Request({
	            url:"/pointsagogo/confirmFacebookLike",
	            method:"post",
	            data: {data:response_url},
	            onSuccess:function(r) {
	                window.location = r;
	            }
	        }).send();
		} else if(parts[1].indexOf('camp_facebook') > 0) {
			req = new Request({
	            url:"/offre/likeFacebook",
	            method:"post",
	            data: {data:response_url},
	            onSuccess:function(r) {
	            	response = JSON.parse(r);
	            	if(response['message'] == 1) {
	            		if(response['redir'] != '') {
	            			window.open(response['redir']);
	            			//window.location = response['redir'];
	            		} else {
	                		window.location = '/grille';
	                	}
	            	} else {
	            		$$('div[class=error_camp_facebook]').set('text', response['message']);
	            	}
	            }
	        }).send();
		} else if(parts[1].indexOf('validation_facebook') > 0) { //utilisation en clic de validation pour les grilles par exemple
			req = new Request({
	            url:"/offre/likeFacebook",
	            method:"post",
	            async: false,
	            data: {data:response_url},
	            onSuccess:function(r) {
	            	message = r;
	            	response = JSON.parse(r);
	                if(response['message'] != 1) {
	            		$$('div[id=error_camp_facebook]').set('text', response['message']);
	            	}
	            }
	        }).send();
		} else if(parts[1].indexOf('interstitiel_facebook') > 0) { //utilisation en interstitiel pour la première grille par exemple
			req = new Request({
	            url:"/offre/likeFacebook",
	            method:"post",
	            data: {data:response_url},
	            onSuccess:function(r) {
	            	response = JSON.parse(r);
	            	if(response['message'] != 1) {
	            		$$('div[class=error_camp_facebook]').set('text', response['message']);
	            	} else {
                                    if(response['redir'] != '') {
                                        window.open(response['redir']);
                                    }                            
                                }
	            }
	        }).send();
		} else if(parts[1].indexOf('coreg_facebook') > 0) { //utilisation sur une page avec d'autres coreg pour le post inscription par exemple
			req = new Request({
	            url:"/offre/likeFacebook",
	            method:"post",
	            data: {data:response_url},
	            onSuccess:function(r) {
	            	response = JSON.parse(r);
	            	if(response['message'] != 1) {
	            		$$('div[class=error_camp_facebook]').set('text', response['message']);
	            	}
	            }
	        }).send();
		}
	}
	return message;
}


