FB.DY.Wikipeli = { "session" : { "perms" : {} } };
FB.DY.Wikipeli.config = {
		"context" : "/wikipeli/"
}
FB.DY.Wikipeli.startConnect = function(onLoginCallback, onCancelCallback) {
	FB.Connect.requireSession(onLoginCallback, onCancelCallback);
}

FB.DY.Wikipeli.init = function(callback) {
    
	var user_box = document.getElementById("connect_box"); 
    if (user_box!=null) {
    	user_box.innerHTML = '<img src="http://static.ak.connect.facebook.com/images/loaders/indicator_white_small.gif"/>'   	    
    }
    
    FB.DY.Wikipeli.session = FB.Facebook.apiClient.get_session();

    if (!FB.DY.Wikipeli.check_permissions()) {
		var ask_permissions_callback = function() { 
	        FB.DY.Util.save_permissions.apply(window, [FB.DY.Wikipeli.session, callback]);
	    }
	    FB.DY.Util.ask_permissions(
	        ["publish_stream", "offline_access"], 
	        ask_permissions_callback,
	        { "required" : true }
	    );			
    }
}

FB.DY.Wikipeli.publish = function(name, id){

	$.ajax({
		"url" : "fbPublishStream",
		"data" : {
			"type" : "",
			"id" : ""
		},
		"success" : function(data) {
			
		},
		"error" : function() {
			
		}
	}); 
}

FB.DY.Wikipeli.update_user_box = function() {
    var user_box = document.getElementById("connect_box"); 
    if (user_box!=null) {
    	user_box.innerHTML = ''
    	//user_box.innerHTML = '<fb:profile-pic uid="loggedinuser" width="20px" facebook-logo="true"></fb:profile-pic>'
    }
       	
    // because this is XFBML, we need to tell Facebook to re-process the document
    FB.XFBML.Host.parseDomTree();
    FB.DY.Wikipeli.save_token_user();
    
}

FB.DY.Wikipeli.update_check_boxes = function(refreshXFBML) {
		
    $(".fb").show();
    $(".no-fb").hide();

    if (refreshXFBML) {
        FB.XFBML.Host.parseDomTree();
    }
}


FB.DY.Wikipeli.save_token_user = function() {
	if (FB.DY.Wikipeli.session.perms["offline_access"]) {
		// El usuario ha dado permisos de acceso offline, guardamos el token en la BBDD
		$.ajax({
			"url" : FB.DY.Wikipeli.config.context+"fbSaveToken",
			"success" : function(xml) {
				var error = $('data error', xml).text();
				var desc = $('data desc', xml).text();
				if (!error || error == "") {
					FB.DY.Wikipeli.update_check_boxes(true);
				}else{
					alert("Error: " + desc);
				}
			},
			"error" : function() {
				alert("Ocurrió un error");
			}
		});
	}else{
		// El usuario no ha dado permisos de acceso online así que no podemos guardar el token
		// alert("Necesitamos permisos de acceso offline");
	}
}

FB.DY.Wikipeli.check_permissions = function() {
  	var perms = FB.DY.Wikipeli.session.perms || {};
  	if (!perms["offline_access"]) {
		//alert("No offline_access");
		return false;
    }
  	if (!perms["publish_stream"]) {
		//alert("No publish_stream");
		return false;
    }        
    return true;
}
