var clrzFBConnect = new Class({
	
	Implements: [Options,Events],

	options: {

		apiKey : "b8d801be63b738a12c77db7aa29dc999",
		xdChannelUrl : "/xd_receiver.htm",
		user : null
	
	},
	
	initialize : function(options){
		
		this.setOptions(options);
		var myClass = this;
		
		FB_RequireFeatures(["XFBML", "CanvasUtil","Connect"], function(){   
			FB.FBDebug.LogLevel = 4;
			FB.init(myClass.options.apiKey, myClass.options.xdChannelUrl);
		});
		
		
	},
		
	loginStep1 : function () {
		
			var userID = FB.Facebook.apiClient.get_session() ? FB.Facebook.apiClient.get_session().uid : null;
		
			if(userID == null)
				return false;
		
			
			$('FBId').setProperty('value',userID); /* On rajoute dans le champ caché l'ID Facebook de l'utilisateur */
			$('FBAuthorize').setProperty('value','Oui');
			
			$('step1Container').setStyle('margin-bottom','0px');
			$('inscriptionTitle').set('html','Finalise ton inscription');
			$('inscriptionTitle').inject($('classicContainer'),'top');
			
			var data = FB.Facebook.apiClient.users_getInfo(userID,new Array('last_name','username','first_name','birthday_date','email_hashes','sex'),function(data){
			
			$('user_nom').setProperty('value',data[0].last_name);
			$('user_prenom').setProperty('value',data[0].first_name);
			
			if(data[0].username == null)
				$('signup_username').setProperty('value',data[0].username);
			
				
				
				
			var dateNaissance = data[0].birthday_date.split('/');
			
			var prefixJour = dateNaissance[1].substr(0,1); 
			var journaissance = '';
			if(prefixJour == 0)
				journaissance = dateNaissance[1].substr(1,1);
			else
				journaissance = dateNaissance[1];
			
			
			var tabMonth = new Array();
			tabMonth['01'] = 'January';
			tabMonth['02'] = 'February';
			tabMonth['03'] = 'March'; 
			tabMonth['04'] = 'April'; 
			tabMonth['05'] = 'May'; 
			tabMonth['06'] = 'June'; 
			tabMonth['07'] = 'July'; 
			tabMonth['08'] = 'August'; 
			tabMonth['09'] = 'September'; 
			tabMonth['10'] = 'October'; 
			tabMonth['11'] = 'November';   
			tabMonth['12'] = 'December';   
			
			
			$('user_jour_naissance').getChildren('option[value='+journaissance+']').setProperty('selected','selected');
			$('user_mois_naissance').getChildren('option[value='+tabMonth[dateNaissance[0]]+']').setProperty('selected','selected');
			$('user_annee_naissance').getChildren('option[value='+dateNaissance[2]+']').setProperty('selected','selected');
			
			if( (data[0].sex == 'male') || (data[0].sex == 'homme'))
				$('user_genre_homme').setProperty('checked','checked');
			else
				$('user_genre_femme').setProperty('checked','checked');
				
			});
			
			/* Mettre à jour la box */
			
			var connectedBox = 	"<div class='fb_profil'>" +
			"<p class='fb_img'><fb:profile-pic uid='"+userID+"' size='square' facebook-logo='false'></fb:profile-pic></p>" +
			"<p class='fb_desc'>Bonjour <fb:name uid='"+userID+"' useyou='false'></fb:name> !<br/>" +
			"Vous êtes connecté à votre compte Facebook grâce à l'application Diam’s – Le site<br/>" +
			"<a href='' id='disconnectedLink'>Cliquez ici pour vous d&eacute;connecter</a></p><br/>" +
			"<p class='clear'>&nbsp;</p>";
			
			$('step1Container').set('html',connectedBox);
			
			var myClass = this;
			$('disconnectedLink').addEvent('click',function(e){
					new Event(e).stop();
					myClass.logout();
				
			});

			FB.XFBML.Host.parseDomTree();
		
	},	
	loginStep2 : function () {
		
		var userID = FB.Facebook.apiClient.get_session() ? FB.Facebook.apiClient.get_session().uid : null;
	
		if(userID == null)
			return false;
		var myUrl = $('skipInvitations').getProperty('href');
		var friendsContainer = '<fb:serverfbml>';
		friendsContainer += '<script type="text/fbml">';
		friendsContainer += '<fb:fbml>';
		friendsContainer += '<fb:request-form action="'+myUrl+'" method="POST" invite="true" type="Diams" content="Inviter mes amis" >';
		friendsContainer += '<fb:multi-friend-selector email_invite="true" max="10" actiontext="Invitation sur Diams" showborder="true" rows="2" cols="3"></fb:multi-friend-selector>';
		friendsContainer += '</fb:request-form>';
		friendsContainer += '</fb:fbml>';
		friendsContainer += '</script>';
		friendsContainer += '</fb:serverfbml>';
		
		
		$('FBStepFriends').set('html',friendsContainer);
		

		FB.XFBML.Host.parseDomTree();
		

	},
	
	loginEdit: function () {
		
		var userID = FB.Facebook.apiClient.get_session() ? FB.Facebook.apiClient.get_session().uid : null;
		
		if(userID == null)
			return false;
	
		$('FBId').setProperty('value',userID); /* On rajoute dans le champ caché l'ID Facebook de l'utilisateur */
		
		$('editFB').set('html','<p>Nous avons bien récupéré tes informations. Tu n\'as plus qu\'à cliquer sur le bouton Mettre à jour mon profil pour que la modification soit prise en compte.');
		askPermission = true;
		
	},

	logout: function () {
		
		FB.Connect.logout(this.callbackLogout);
		
		var disconnectedBoxstep1 = '<strong>Utiliser les informations de Facebook pour compl&eacute;ter mon profil</strong><fb:login-button onlogin="myClrzFBConnect.loginStep1();" ></fb:login-button>';
		
		$('step1Container').set('html',disconnectedBoxstep1);
		$('step1Container').setStyle('margin-bottom','30px');
		$('inscriptionTitle').set('html','Inscription classique');
		$('inscriptionTitle').inject($('classicContainer'),'before');
		
		FB.XFBML.Host.parseDomTree();
	
	},
	
	callbackLogout: function () {
		
		$('FBId').setProperty('value',''); /* On rajoute dans le champ caché l'ID Facebook de l'utilisateur */
		$('FBAuthorize').setProperty('value','Non');
		
	},
	
	askPermissionsEdit: function () {
		
		FB.Connect.showPermissionDialog('publish_stream,status_update',this.callbackPermissionsEdit);
	
	},
	
	callbackPermissionsEdit : function (result) {
		
		new Element('input',{'type':'hidden','name':'profile-group-edit-submit','value':'Mettre à jour mon profil'}).inject($('profile-edit-form'));
		$('profile-edit-form').submit();
	},
	
	askPermissions: function () {
		
		FB.Connect.showPermissionDialog('publish_stream,status_update',this.callbackPermissions);
	
	},
	
	callbackPermissions : function (result) {
		
		new Element('input',{'type':'hidden','name':'signup_submit','value':'Suivant »'}).inject($('formRegister'));
		$('formRegister').submit();
	}
	
});
