/**
 * Login Redes - From Gigya Partner ;P
 */

// This method is activated when the page is loaded
function onLoad() {
    // register for login event
    gigya.services.socialize.addEventHandlers({}, {
			context: { str: 'congrats on your' }
			, onLogin: onLoginHandler 
			, onLogout: onLogoutHandler
			});

}

// onLogin Event handler
function onLoginHandler(eventObj) {
	var ajax_url = BASE_URI+"ajax/logon";
	
	//provider
	var social_pro = eventObj.provider; 
	//provider user id
	var social_proUID = eventObj.user.identities[eventObj.provider].providerUID;
	//age
	var social_age = eventObj.user.identities[eventObj.provider].age;
	//birthDay
	var social_birthDay = eventObj.user.identities[eventObj.provider].birthDay;
	//birthMonth
	var social_birthMonth = eventObj.user.identities[eventObj.provider].birthMonth;
	//birthYear
	var social_birthYear = eventObj.user.identities[eventObj.provider].birthYear;
	//city
	var social_city = eventObj.user.identities[eventObj.provider].city;
	//country
	var social_country = eventObj.user.identities[eventObj.provider].country;
	//state
	var social_state = eventObj.user.identities[eventObj.provider].state;
	//zip
	var social_zip = eventObj.user.identities[eventObj.provider].zip;
	//email
	var social_email = eventObj.user.identities[eventObj.provider].email;
	//firstName
	var social_firstName = eventObj.user.identities[eventObj.provider].firstName;
	//lastName
	var social_lastName = eventObj.user.identities[eventObj.provider].lastName;
	//nickname
	var social_nickname = eventObj.user.identities[eventObj.provider].nickname;
	//photo url
	var social_photoURL = eventObj.user.identities[eventObj.provider].photoURL;
	//profile url
	var social_profileURL = eventObj.user.identities[eventObj.provider].profileURL;
	//thumbnailURL
	var social_thumbnailURL = eventObj.user.identities[eventObj.provider].thumbnailURL;
	//gender
	var social_gender = eventObj.user.identities[eventObj.provider].gender;
	
	
	//console.debug(eventObj.user.identities[eventObj.provider]);
	
	$.post(ajax_url, { 	
		social_pro:social_pro,
		social_proUID:social_proUID,
		social_age:social_age,
		social_gender:social_gender,
		social_birthDay:social_birthDay,
		social_birthMonth:social_birthMonth,
		social_birthYear:social_birthYear,
		social_city:social_city,
		social_country:social_country,
		social_state:social_state,
		social_zip:social_zip,
		social_email:social_email,
		social_firstName:social_firstName,
		social_lastName:social_lastName,
		social_nickname:social_nickname,
		social_photoURL:social_photoURL,
		social_profileURL:social_profileURL,
		social_thumbnailURL:social_thumbnailURL
	},function(data) {
		if (data.user == 'new') {			
			var newUser = true; // lets assume the user is new
		}else{			
			var newUser = false;
		}	
		
	    if (newUser) {
	        // 1. Register user 
	        // 2. Store new user in DB
	        // 3. link site account to social network identity
	        //   3.1 first construct the linkAccounts parameters
	        var dateStr = Math.round(new Date().getTime()/1000.0); // Current time in Unix format
																//(i.e. the number of seconds since Jan. 1st 1970)
			
	       // var siteUID = 'uTtCGqDTEtcZMGL08w'; // @todo siteUID should be taken from the new user record
	                                           // you have stored in your DB in the previous step
	        //var yourSig = createSignature(siteUID, dateStr); //@todo

	        var params = {
	            //siteUID: siteUID, //@todo nao passo senao terei que passar a signature 
	            timestamp:dateStr,
				cid:'single page',
	            //signature:yourSig //@todo preciso de tempo pra desenvolver
	        };
	        
	        //   3.1 call linkAccounts method:
	        gigya.services.socialize.notifyRegistration({}, params);
	    }
		
		//document.getElementById('status').style.color = "green";
		//document.getElementById('status').innerHTML = "Status: You are now signed in";
	    location.reload(true);
	});  

}

// Note: the actual signature calculation implementation should be on server side
function createSignature(UID, timestamp) {
	encodedUID = encodeURIComponent(UID); // encode the UID parameter before sending it to the server.
										// On server side use decodeURIComponent() function to decode an encoded UID
    //return '';
	return encodedUID;
}

// Note: the actual signature calculation implementation should be on server side
function verifyTheSignature(UID, timestamp, signature) {
	encodedUID = encodeURIComponent(UID); // encode the UID parameter before sending it to the server.
										// On server side use decodeURIComponent() function to decode an encoded UID
    alert('Your UID: ' + UID + '\n timestamp: ' + timestamp + '\n signature: ' + signature + '\n Your UID encoded: ' + encodedUID);
}

// Logout from Gigya platform. This method is activated when "Logout" button is clicked 
function logoutFromGS() {
    gigya.services.socialize.logout({}, {/*no required params*/}); // logout from Gigya platform
}

// onLogout Event handler
function onLogoutHandler(eventObj) {
	document.getElementById('status').style.color = "red";
	document.getElementById('status').innerHTML = "Status: You are now signed out";
}

