// JavaScript Document
// Facebook Connect
//http://wiki.opensocial.org/index.php?title=Opensocial.Person_%28v0.8%29#Fields
//http://wiki.developers.facebook.com/index.php/Users.getInfo
//http://wiki.developers.facebook.com/index.php/User_%28FQL%29
//http://code.google.com/intl/fr/apis/friendconnect/opensocial_and_gfc.html#VIEWER

function tempfunction(){FB.Connect.logout();return false;var viewer  = FB.Facebook.apiClient.fql_query(

	  'SELECT uid, first_name, last_name, pic_square_with_logo, profile_url ,proxied_email FROM user WHERE uid='+FB.Facebook.apiClient.get_session().uid,function(results) {});
	  
	  }
	  
function auth_using_fb() {
	// Recuperation des donnees de l'utilisateur depuis FB
	
	
  var viewer  = FB.Facebook.apiClient.fql_query(

	  'SELECT uid, first_name, last_name, pic_square_with_logo, profile_url ,proxied_email FROM user WHERE uid='+FB.Facebook.apiClient.get_session().uid,
	  
	  function(results) {
	    update_userbox( results[0].uid,
                      results[0].first_name,
                      results[0].last_name,
	                    results[0].pic_square_with_logo,
	                    results[0].proxied_email,
	                    'FB.Connect.logoutAndRedirect("./index.php");return false;',
                      'facebook',
                      results[0].profile_url,
                      results[0].sex)
	  }
	);
}

// Google Friend Connect
function auth_using_gfc() {

	// Requete vers GFC pour envoyer des donnees de profil
	var params = {};
	    params[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] =
	    [opensocial.Person.Field.URLS,opensocial.Person.Field.EMAILS];
	    

	// Creation d'une requete pour recuperer l'utilisateur courant
	var req = opensocial.newDataRequest();
	
	req.add(req.newFetchPersonRequest('VIEWER', params), 'viewer_data');
	// Envoi de la requete
	req.send(function(data) {

	  // Si view_data a une erreur, alors l'utilisateur n'est pas connecte
	  if (!data.get('viewer_data').hadError()) {
	  	// Recuperation des donnes de l'utilisateur depuis GFC
	  	var viewer = data.get('viewer_data').getData();
      var emailaddress="";
      var emails = viewer.getField(opensocial.Person.Field.EMAILS);
      if(emails!=undefined){
          emailaddress=emails[0].getField(opensocial.Email.Field.ADDRESS);
      }

	  	update_userbox( viewer.getField(opensocial.Person.Field.ID), viewer.getDisplayName(), '', viewer.getField(opensocial.Person.Field.THUMBNAIL_URL),emailaddress,'google.friendconnect.requestSignOut()','google', viewer.getField(opensocial.Person.Field.PROFILE_URL), viewer.getField(opensocial.Person.Field.GENDER));
	  }

	});
}

function urlencode(s) {
  s = encodeURIComponent(s);
  return s.replace(/~/g,'%7E').replace(/%20/g,'+');
 }

// Le fonction generique met a jour #userbox avec les informations recuperees depuis les services
function update_userbox(id, firstname, lastname, image, email, logout, type, url, gender) {
 
 if(firstname=="undefined"){firstname="";}
 if(lastname=="undefined"){lastname="";}
 if(image=="undefined"){image="";}
 if(email=="undefined"){email="";}
 if(type=="undefined"){type="";}
 if(url=="undefined"){url="";}
 if(gender=="undefined"){gender="";}

image=urlencode(image);
url=urlencode(url);
 
 var xhr_object = null;   
      
    if(window.XMLHttpRequest) // Firefox   
       xhr_object = new XMLHttpRequest();   
    else if(window.ActiveXObject) // Internet Explorer   
       xhr_object = new ActiveXObject("Microsoft.XMLHTTP");   
    else { // XMLHttpRequest non supporté par le navigateur   
       alert("XMLHTTPRequest objects not supported by browser, sorry");   
       return;   
     }   
       
    document.getElementById('ajaxloading').innerHTML="<div style='text-align:center;margin-top:10px;'><img src='../images/ajax-loader.gif'></div>";
    //alert("js/ajax.php?adduser=" + id + "&firstname='" + firstname + "'&lastname='" + lastname + "'&image='" + image + "'&email='" + email + "'&type='" + type + "'&url='" + url + "'&gender='" + gender +"'");
    xhr_object.open("GET", "js/ajax.php?adduser=" + id + "&firstname='" + firstname + "'&lastname='" + lastname + "'&image='" + image + "'&email='" + email + "'&type='" + type + "'&url='" + url + "'&gender='" + gender +"'", false);   
    
    xhr_object.send(null);   
    	if(xhr_object.readyState == 4) {
    	   if(type=="google"){google.friendconnect.requestSignOut();document.location.href='myinsidoo_profil.php';}
    	   if(type=="facebook"){FB.Connect.logoutAndRedirect("myinsidoo_profil.php");
         }
    	}

}