
var noSessionTimerId = null;
var fbConnected = false;


function setupFB(){
	
		FB.Event.subscribe('auth.authResponseChange', function(response) {
			verifyFBConnected(response);
		//extracted code to verifyFBConnect(response) method;
		});
		
		FB.getLoginStatus(function(response) {
			verifyFBConnected(response);
		});	
	
};
function verifyFBConnected(response){
	if (response.authResponse) {
		if (response.status === "connected") {
			//user is connected and has accepted perms.
			
			showFacebookContent(response);
		} else {
			// user is logged in, but did not grant any permissions
			showConnectToFacebook();
		}
	} else {
		//not logged in
		showConnectToFacebook();
	}
}

function gotoRegistration() {
	document.location.href = "/register.action";
}


function reloadPage() {
	document.location.reload(true);
}

function isPoshMember() {
	return (member.id != null);
}

function isAppConnected() {
	return (member.fuid != null);
}

function isWrongFBUser() {
	return isAppConnected() && (typeof member.uid != 'undefined') && (member.fuid != member.uid);
}

function onRegistrationPage() {
	return (document.location.pathname == '/register.action') ||
	(document.location.pathname == '/welcome.action');
}

function connectToFacebook() {
	if (!isAppConnected()) {
		var sdata = getFBCookieParams();	
		jQuery.get("/javascript/facebookRegister.action", sdata, function(data) {
			if (data == "first_success") {
				askForFacebookPublish();
			} else if (data == "success") {
				reloadPage();
			} else {
				reloadPage();
			//alert('Facebook member is already connected with another Posh24 member');
			//document.location.href = "/fbRegister.action?error=accountTaken";
			}
		});
	} else {
		showFacebookContent();
	}
}

function askForFacebookPublish() {
	
	var attachment = {	
		'name': name,
		'url': link,
		'caption': caption, 
		'media': image,
		'message': user_message_prompt
	};
	FB.ui(attachment, function(){reloadPage()})
}



function showFacebookContent(fbResponse){
	fbConnected = true;
	fillFBForms(fbResponse);
	jQuery(".facebookVisible").show();
	jQuery(".facebookInvisible").hide();
}

function showConnectToFacebook() {
	fbConnected = false;
	//if (!onRegistrationPage()) {
	var v = jQuery(".facebookVisible");
	if (v) {
		jQuery(".facebookVisible").hide();
	}
	jQuery(".facebookInvisible").show();
	if ($("comment_anonymousName")) {
		$("comment_anonymousName").value="";
	}
//}
}

function fillFBForms(fbObject){
		
	var comment_anonymousName = jQuery("#comment_anonymousName");
	if (comment_anonymousName.length) {
		comment_anonymousName.hide();
		$("comment_anonymousName").value=fbObject.authResponse.userID + "_" + new Date().getTime();
		comment_anonymousName.val(member.uid + "_" + new Date().getTime());
	}

	var fb_uid = jQuery("#fb_uid");
	var fb_expires = jQuery("#fb_expires");
	var fb_sessionKey = jQuery("#fb_sessionKey");
	var fb_hash = jQuery("#fb_hash");
	var fb_area = jQuery("#fb_area");
	var fb_aboutMe = jQuery("#fb_aboutMe");
	var fb_firstName = jQuery("#fb_firstName");
	var fb_lastName = jQuery("#fb_lastName");
	var fb_genderAsString = jQuery("#fb_genderAsString");
	var fb_submitImport = jQuery("#fb_submitImport");
	
	loadFacebookAvatar(fbObject.authResponse.accessToken);

	var url = 'https://graph.facebook.com/me?access_token=' + fbObject.authResponse.accessToken;
	
	jQuery.ajax({
		type:'get', 
		url: url,
		dataType:'jsonp',
		success: function(fbUserData){
					
			fb_uid.val(fbUserData.id);

			if (fb_uid.lenght && fbUserData.id) {
				
				if (fb_expires.length){
					fb_expires.val(fbObject.authResponse.expiresIn);
				}

				if (fb_hash.length){
					fb_hash.val(fbObject.authResponse.signedRequest);
				}
			}
			
				
				if(fb_area.length && fbUserData.hometown && fbUserData.hometown.name){
				
					var hometownAndCountry = fbUserData.hometown.name;
					var country = hometownAndCountry.substring(hometownAndCountry.indexOf(",") + 2, hometownAndCountry.length);
					
					fb_area.val(country);
				}
				if (fb_aboutMe.length && fbUserData.about_me){
					fb_aboutMe.val(fbUserData.bio.user_about_me);
					
				}
				if (fb_firstName.length && fbUserData.first_name){
					fb_firstName.val(fbUserData.first_name);
				}
				if (fb_lastName.length && fbUserData.last_name){
					fb_lastName.val(fbUserData.last_name);
				}
				if (fb_genderAsString.length && fbUserData.gender){
					fb_genderAsString.val(fbUserData.gender);
				}
				if (fb_submitImport.length){
					fb_submitImport.removeAttr("disabled");
				}
			

		}
	
	});
	
}

function getFBInfo(accessToken){

	
	var url = 'https://graph.facebook.com/me?access_token=' + accessToken;
	
	jQuery.ajax({
		type:'get', 
		url: url,
		dataType:'jsonp',
		success: function(data){
			
			return data;

		}
	
	});
	
}

function logout(){
		
	FB.getLoginStatus(function(response) {
		  if (response.authResponse) 
		  {
			 
			  FB.logout(function(response){ document.location.href='/j_acegi_logout'; });
		  
		  } else 
		  {
			 
			  document.location.href='/j_acegi_logout';		  
			  
		  }
		});	
}

function loadFacebookAvatar(accessToken){
	
	var image = '<img src="https://graph.facebook.com/me/picture/?type=square&access_token=' + accessToken +  '" />'
	
	jQuery('.facebookAvatar').html(image);
	
	
}

function getFBCookieParams(){

	return {
		expires:jQuery.cookie(fbApiKey+"_expiresIn"),
		sessionKey:jQuery.cookie(fbApiKey+"_session_key"),
		ss:jQuery.cookie(fbApiKey+"_ss"),
		user:jQuery.cookie(fbApiKey+"_userID"),
		hash:jQuery.cookie(fbApiKey)
		
	};
}

function unescapeHTML(html) {
	var htmlNode = document.createElement("DIV");
	htmlNode.innerHTML = html;
	if(htmlNode.innerText !== undefined)
		return htmlNode.innerText; // IE
	return htmlNode.textContent; // FF
}

function shareOnFacebook(params)
{
	
	if(fbConnected)
	{
		FB.ui(params, onPostToWallCompleted);
	
	}
}

function onPostToWallCompleted(response) {
	
}
function debug(text) {	
	console.log(text);

}

function warn(text) {
//alert(text);
}

