/* facebookery for st. rose */

// initialize the library with the API key (FMITest)
	//apiKey: '80783c2ea60f297a9618150517bfc6dd'	//fmi
	//apiKey: 'b17060bb119813c2c1485a329705aea6'  //strose
FB.init({
	apiKey: 'b17060bb119813c2c1485a329705aea6'
	
});
//tempPageID = '138697886167293';

//currentAccessToken = null;

function isFBLoggedIn() {
	if(window.console){console.log('isFBLoggedIn()');}
	FB.getLoginStatus(handleSessionResponse);
}



function authenticateFB() {
	if(window.console){console.log('JS::in authenticateFB');}

	FB.login(handleAuthSessionResponse, {
		perms: 'user_groups,publish_stream,manage_pages,create_event'
	});
}



function handleSessionResponse(response) {
	var glyphBar = document.getElementById("glyphbarObject");
	var responseObj = new Object();
	if(window.console){ console.log('JS::handleSessionResponse'); }

	if (!response.session) {
		responseObj.result = -1;
		currentAccessToken = null;
		glyphBar.isFBLoggedInHandler(responseObj);
	} else {
		responseObj.result = 1;
			
		glyphBar.isFBLoggedInHandler(responseObj);
	}
}

function handleAuthSessionResponse(response) {
	var glyphBar = document.getElementById("glyphbarObject");
	var responseObj = new Object();
	
	if (!response.session) {
		responseObj.result = -1;
		currentAccessToken = null;
		glyphBar.authenticateFBHandler(responseObj);
	} else {
		responseObj.result = 1;
		glyphBar.authenticateFBHandler(responseObj);
	}
}


function getFacebookPages(){
	glyphBar = document.getElementById("glyphbarObject");
	responseObj = new Object();
	responseObj.result = new Array();
	i = 0;
	
	FB.api('/me/accounts',function(response){
		
		for(pageIndex in response.data){
			
			thisAccount = new Object();
			thisAccount.name = response.data[pageIndex].name;
			thisAccount.id = response.data[pageIndex].id;
			thisAccount.access_token = response.data[pageIndex].access_token;
			
			responseObj.result[i] = thisAccount;
			i++;
		
		
		}
		
		FB.api('/me/groups',function(response){
		
			for(pageIndex in response.data){
				
				thisAccount = new Object();
				thisAccount.name = response.data[pageIndex].name;
				thisAccount.id = response.data[pageIndex].id;
				thisAccount.access_token = response.data[pageIndex].access_token;
				
				responseObj.result[i] = thisAccount;
				i++;
			
			}
	
			glyphBar.getFacebookPagesHandler(responseObj);	
				
		});	
	});	
	
	
			
}

function getAlbumsByPage(pageObj){
	glyphBar = document.getElementById("glyphbarObject");
	responseObj = new Object();

	FB.api('/albums?ids=' + pageObj.pages,function(aresponse){
		albums = new Array();
		var acount = 0;
		for(pageIndex in aresponse){
			//console.log("TOP",pageIndex);
			
			for(var i = 0; i < aresponse[pageIndex].data.length; i++){
				album = new Object();
					
				album.id = aresponse[pageIndex].data[i].id;	
				album.name = aresponse[pageIndex].data[i].name;
				album.pageid = aresponse[pageIndex].data[i].from.id;
				albums[acount] = album;
				acount++;
			}
			
		}
	
		responseObj.result = albums;				
		glyphBar.getAlbumsHandler(responseObj);
				
	});
	
}


function postToFB(obj) {
	glyphBar = document.getElementById("glyphbarObject");
	responseObj = new Object();
	
	FB.api('/' + obj.page + '/feed', 'post', {
		access_token: obj.access_token,
		message: obj.message,
		picture: obj.picture,
		link: obj.link,
		name: obj.name,
		caption: obj.caption
	},
	function(response) {
		if (!response || response.error) {
			if(window.console){console.log('JS::Error occured ', response.error)};
		} else {
			if(window.console){console.log('JS::Post ID: ', response)};
		}
		responseObj.result = response;
		glyphBar.postToFBHandler(responseObj);
	});
}



function postEventToFB(obj) {
	glyphBar = document.getElementById("glyphbarObject");
	responseObj = new Object();

	if(window.console) { console.log('JS::postEventToFB'); }

	FB.api('/me/accounts', function(response) {
		FB.api('/' + obj.page + '/events', 'post', {
			access_token: obj.access_token,
			name: obj.name,
			start_time: ISODateString(new Date(obj.start_time)),
			end_time: ISODateString(new Date(obj.end_time)),
			location: obj.location,
			description: obj.description,
			page_id:obj.page
		},
		function(response) {
			if (!response || response.error) {
				if(window.console) {console.log('JS::Error occured ', response.error)};
			} else {
				if(window.console) {console.log('JS::Event ID: ', response)};
			}
			responseObj.result = response;
			glyphBar.postEventToFBHandler(responseObj);
		});
	});
}



function getPhotoLink(obj) {
	if(window.console) { console.log('JS::getPhotoLink'); }
	var responseObj = {};
	glyphBar = document.getElementById("glyphbarObject");
	FB.api('/' + obj, function(response) {
		if(window.console) { console.log(response); }
		if (!response || response.error) {
			responseObj.result = -1;
			glyphBar.getPhotoLinkHandler(responseObj);
		} else {
			if(window.console) { console.log('JS::',response); }
			responseObj.result = response.link;
			glyphBar.getPhotoLinkHandler(responseObj);
		}
	});
}

function ISODateString(d) {
	function pad(n) {
		return n < 10 ? '0' + n : n
	}
	
	var rtn = d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.0Z';
	
	//console.log('ISO: ' + rtn);
	return rtn;
		
}

