//Local Variable with Flash Content id. default = flashcontent

var swf_name = "flashcontent";



//Initialize Facebook

/*function fbInit(pAsSwfName,pApi_key,pReceiver){

	swf_name = pAsSwfName;

	FB.init(pApi_key,pReceiver);

}*/



//JavaScript Connect methods

/* loguin es una funcion que cada visitante debera ejecutar en cada visita para aseguarar que
   cuenta con sesion activa en facebook y que ha otorgado los permisos necesarios.
   Esta funcion es llamada desde la pantalla "loguin" del swf
	y el parametro "response" contiene la informacion de su sesion asi como los
	permisos que otorgo el usuario
*/

function login(){
	
	FB.login(function(response) {
				//alert ( dumpObj(response, "fb.loguin response -> \n ", 10) ) ;				
				
				  if (response.session) {
						// usuario tiene sesion activa en facebook y  permitio el acceso a su informacion
						// o  es un usuario que visita por segunda vez la pagina y anteriormente
						// ya habia permitido acceso a sus datos						
						//alert ("tenemos sesion!");						
						flashCallBack( "onLogin" );
				  } else if ( response.perms.length > 0 && response.perms.length < 3 ){					  
				  		//el usuario tiene sesion pero no dio los permisos de accesar su info						
						//alert ( "usuario se logueo pero no dio permisos para accesar su info");						
						flashCallBack( "onNoPerms" );
				  } else {
						// usuario no tiene sesion o no quiso loguearse
						//alert ("NO hay sesion ");						 
						flashCallBack( "onNoLogin" );
				  }
			  },
				
			  {
				///  http://developers.facebook.com/docs/authentication/permissions
				perms:"user_about_me,user_birthday,user_interests,user_likes"  
				  
				  
			  }
			
	
	);


}


function getUserObject(){
	
	FB.api('/me', function(response) {
		//alert ("js.getUserObject callback");
	 	flashCallBack( "onUserObject" , response );
	});

}


//Event Handlers



function sendDataToFbAnalytic(data, url){
	var myXMLHttpRequest = GET_XMLHTTPRequest();
	if (myXMLHttpRequest)
	{
		//myXMLHttpRequest.open("GET", "fb_analytic.php?" + data, true);
		myXMLHttpRequest.open("POST", url, true);
		myXMLHttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		myXMLHttpRequest.send(data);
	}
}

function dumpObj(obj, name, depth)
{
	if (depth > 15)
	{
		return "&" + name + item + "=_max_depth_reached_";
	}
	
	if (typeof obj == "object")
	{
		var child = null;
		var output = "";
		
		for (var item in obj)
		{
			try
			{
				child = obj[item];
			}
			catch (e)
			{
				child = "_unable_to_evaluate_";
			}

			if (typeof child == "object")
			{
				output += "&" + name + item + "=_object_";
				output += dumpObj(child, name + item + "_", depth + 1);
			}
			else
			{
				output += "&" + name + item + "=" + child;
			}
		}
		
		return output;
		
	}
	else
	{
		return "&" + obj;
	}
}

//Method to dispatch an Event to Flash

function flashCallBack ( func ) {

	if( arguments.length > 1 ){

		document[swf_name][func]( Array.prototype.slice.call(arguments).slice(1)[0]);

	}else{		
		//document[swf_name][func]();
		document[swf_name][func] ();
	}

}



function GET_XMLHTTPRequest()
{
    var request;
    
    // Lets try using ActiveX to instantiate the XMLHttpRequest object
    try{
        request = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(ex1){
        try{
            request = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(ex2){
            request = null;
        }
    }

    // If the previous didn't work, lets check if the browser natively support XMLHttpRequest 
    if(!request && typeof XMLHttpRequest != "undefined"){
        //The browser does, so lets instantiate the object
        request = new XMLHttpRequest();
    }

    return request;
}
