//# expects js2py
//#####################  Added for PathMap
jzFBC=jz.Module() // create a jz Module
with(jzFBC){      // Use name spave dont indent whole file

importFrom(jz,'_ dof mapf addListener addOnLoadListener removeObjListeners update at Class IE Log getId urlMerge update DomClasses Class _doIGNORE parseUrl' )

$.setInnerHTML= function(elem,html){
    if (typeof elem == 'string') elem=getId(elem)
    if (!elem) return
    if (!jz.IE || !elem.parentNode) elem.innerHTML=html
    else {
	var temp= document.createElement(elem.nodeName)
	var parentNode= elem.parentNode
	var elem= parentNode.replaceChild(temp,elem) // remove elem from dom tree
	elem.innerHTML= html
	parentNode.replaceChild(elem,temp)
	}
    //alert('succes html='+elem.innerHTML)

    return elem
    }

$.fbappid= "3617d462f9d1f2d705e674096cbd766f"
$.fbwallid= "357654351954"

$.gotInfo= function(res,error){ 
	if (error) {
		var html= '<span>Erreur de Facebook</span>'
		elem= setInnerHTML(elem,html)
		return
		}
	    
	//alert('res=\n'+mapf(res,function(v,k){ 
	//    return k+'\n'+mapf(v,function(v2,k2){ return '    '+k2+':'+v2+'\n'},[]).join()
	//    },[]).join())

	var elem= getId('fb-viewerinfo-div')
	if (elem){
		var html= _('<span><a href="$profile_url" title="$name" ><img src="$pic_square" alt="$name" /></a>&nbsp;<a href="javascript:FB.logout(); undefined" title="Se déconnecter de facebook">Déconnecter</a></span>',res[0])
		elem= setInnerHTML(elem,html)
		}
	}

$.onConnected= function(response){
    var elem
    var doparse= false
    if (!response.session){
	//alert('conected no session staus='+response.status+' perms='+response.perms)
	return
	}
    else {
	//alert('conected  session uid='+response.session.uid+' staus='+response.status+' perms='+response.perms)
	}

    var uid= response.session.uid

    elem= getId('fb-viewerinfo-div')
    if (elem){
	//alert('elem='+elem+'\n type='+(typeof elem)+' innertype='+(typeof elem.innerHTML)+'\n inner="'+elem.innerHTML+'"')

	//var html= '<span><fb:profile-pic uid="loggedinuser" linked="true" size="square"></fb:profile-pic><fb:name uid="loggedinuser" useyou="false"></fb:name>.<a href="javascript:FB.Connect.logout(); undefined" title="Se déconnecter de facebook">Déconnecter</a></span>'

	var html= '<span><fb:profile-pic uid="loggedinuser" linked="true" size="square"></fb:profile-pic>&nbsp;<a href="javascript:FB.logout(); undefined" title="Se déconnecter de facebook">Déconnecter</a></span>'
	if (false || jz.IE ){ //patch ie
	    //html= '<span><b> En attente de Facebook</b></span>'
	    elem= setInnerHTML(elem,html)
	    //alert(' fba='+FB.Facebook.apiClient+' fbb='+FB.ApiClient.users_getInfo)
	    //FB.ApiClient.users_getInfo([uid],['uid','first_name','last_name','name','locale','current_location','pic_square','profile_url','sex'],gotInfo)
	    //FB.Facebook.apiClient.users_getInfo([uid],['uid','first_name','last_name','name','locale','current_location','pic_square','profile_url','sex'],gotInfo)
	    }
	else setInnerHTML(elem,html)
	elem.style.display='inline'
	doparse=true

	}

    elem= getId('concours-viewerinfo-div')
    if (elem){
	elem.style.display='block'
	elem.innerHTML = '<div>Bienvenue!<br/>Vous êtes membre de ViaExplora.</div>'+
			'<fb:profile-pic class="fb_profile_pic_rendered FB_ElementReady" uid="loggedinuser" linked="true"  size="normal" facebook-logo="false" ></fb:profile-pic>'
			// <a href="#"><fb:name uid="loggedinuser" linked="true" useyou="false"></a>
	doparse=true
	}


    elem= getId('concours-fan-div')
    if (elem) {
	elem.style.display='block'
	elem.innerHTML = _('<span><fb:fan profile_id="$wallid" stream="0" connections="0" width="200" height="100"></fb:fan></span>',{wallid:fbwallid})
	doparse=true
	}

    elem= getId('fb-login-div')
    if (elem) elem.style.display='none'

    elem= getId('concours-login-div')
    if (elem) elem.style.display='none'

    if (doparse) FB.XFBML.parse()

    /* 
    FB.ensureInit(function() {
	alert("insure init")
 
	alert(mapf(FB.ApiClient,function(v,k){ return k},[]).join(' '))

	FB.ApiClient.pages_isFan(491935485365,'loggedinuser',function(e){alert('is fan got '+e)})

	})
    */
    }

$.onNotConnected= function(response){
    var elem

    //alert('not conected')
    elem= getId('fb-viewerinfo-div')
    if (elem) elem.style.display='none'

    var elem= getId('concours-viewerinfo-div')
    if (elem) elem.style.display='none'

    var elem= getId('concours-fan-div')
    if (elem) elem.style.display='none'

    var elem= getId('fb-login-div')
    if (elem) elem.style.display='inline'

    var elem= getId('concours-login-div')
    if (elem) elem.style.display='inline'
    }


$.fbinit= function(){

    var settings={
		ifUserConnected:	jzFBC.onConnected,
		ifUserNotConnected:	jzFBC.onNotConnected }
    
    //if (jz.getId('concours-viewerinfo-div'))
   //	settings.reloadIfSessionStateChanged= true
    //FB_RequireFeatures(['Api','XFBML','Connect'],function(){ FB.init(fbappid, "/xd_reciever.htm",settings) })
    FB.init({appId:fbappid, status:true, cookie:true, xfbml:true});
    FB.Canvas.setSize()
    $.fbaction= parseUrl().fbaction || 'getLoginStatus'
    //alert('fbaction = '+fbaction)
    if (fbaction=='getLoginStatus'){
	FB.getLoginStatus(function(response){
	    if (response.session) {
		jzFBC.onConnected(response)
	    // A user has logged in, and a new cookie has been saved
	    } else {
		jzFBC.onNotConnected(response)
	    // The user has logged out, and the cookie has been cleared
	    }
	    FB.Event.subscribe('auth.login', jzFBC.onConnected)
	    FB.Event.subscribe('auth.logout', jzFBC.onNotConnected)
	    })
	}
    else {
	var args= fbaction.split(',')
	fbaction= args.shift()
	args= args.join(',')
	if (fbaction=='login'){
	    FB.login(function(response){
		if (response.session) {
		    jzFBC.onConnected(response)
		// A user has logged in, and a new cookie has been saved
		} else {
		    jzFBC.onNotConnected(response)
		// The user has logged out, and the cookie has been cleared
		}
		FB.Event.subscribe('auth.login', jzFBC.onConnected)
		FB.Event.subscribe('auth.logout', jzFBC.onNotConnected)
		},{perms:args})
		}
	else alert('unlown action '+fbaction)
	}
	    
    }

addOnLoadListener(fbinit)


}
