var lHasCheckedForRegisteredUser = false;
var lIsRegisteredUser = false;             

Eduify.FBConnect = {
    AppPath:'',
    WunderkindCall:false,
    //======= Stub callback methods for facebook connect, Actual methods (depending on the page) are attached in onDomReady Event ===========
    onConnectedStub:function(){},    
    onNotConnectedStub:function(){},
    //======= Stub callback methods for facebook connect ===========
    onLogin:function()
    {     
          //debugger;
          try          
          {
            var APIClient = FB.Facebook.apiClient;            
            APIClient.requireLogin(function(exception){            
                if($j("*[id$='hdnFBUID']")[0]) // if its one of the signup pages.
                {
                    $j("*[id$='hdnFBUID']")[0].value = APIClient.get_session().uid;            
                    APIClient.users_getInfo(parseInt($j("*[id$='hdnFBUID']")[0].value),["first_name","last_name"], function(results,ex) {                       
                        $j("*[id$='hdnFBFirstName']")[0].value = results[0].first_name;
                        $j("*[id$='hdnFBLastName']")[0].value  = results[0].last_name;
                    });              
                }            
            });            
            if(lHasCheckedForRegisteredUser==false)
            {   
                //lIsRegisteredUser =  Eduify.UI.Common.AJAXMethods.IsRegisteredUserAndProfileComplete(APIClient.get_session().uid).value;               
                lIsRegisteredUser =  Eduify.UI.Common.AJAXMethods.IsRegisteredUser(APIClient.get_session().uid).value;               
                lHasCheckedForRegisteredUser = true;
            }
            if(lIsRegisteredUser)
            {
                document.forms[0].submit();
            }
            else 
            {
                if($j("*[id$='hdnFBUID']")[0]) // if its one of the signup pages.
                {
                    if($j("*[id$='hdnEiFBUID']")[0].value!= "" && $j("*[id$='hdnFBUID']")[0].value != $j("*[id$='hdnEiFBUID']")[0].value)
                    {   
                        document.getElementById("pnlInvalidFBId").className = "DB MT20 TC";
                        lHasCheckedForRegisteredUser = false;
                        lIsRegisteredUser = false;         
                        FB.ensureInit(function(){        
                            FB.Connect.ifUserConnected(function(){                                   
                                    //FB.Connect.logout();
                                    Eduify.FBConnect.FB_Logout();
                                },null);
                        });
                        return;                        
                    }
                    else
                    {
                        $j("*[id$='fbSignupHeading']")[0].style.display = "none";
                        $j("*[id$='eduifySignupHeading']")[0].style.display = "none";
                        $j("*[id$='fbWelcome']")[0].style.display = "block";
                        $j("*[id$='fbLoginButton']")[0].style.display = "none";
                        $j("*[id$='fbEnterEmail']")[0].style.display = "block";       
                        $j("*[id$='pnlRecoverAccount']")[0].style.display = "none";                                        
                        document.getElementById('pnlVrtcLine').style.visibility = "hidden";
                        FB.XFBML.Host.parseDomTree();                        
                    }
                }                
                else // user is on signin overlay div or signin page and user is not signed up with eduify
                {   
                    //document.getElementById("pnlFBNA").className = "DB MT20 TC";
                    $j("*[id$='pnlFBNA']").removeClass ("DN");                                        
                    lHasCheckedForRegisteredUser = false;
                    lIsRegisteredUser = false;         
//                    FB.ensureInit(function(){        
//                        FB.Connect.ifUserConnected(function(){                                   
//                                
//                                FB.Connect.logout();
//                                
//                            },null);
//                    });
                    return;
                }
            }                               
          }
          catch(e){alert(e.description)}
    },
    onConnected:function(){        
        Eduify.FBConnect.onLogin();                   
    },
    Logout : function(pLogoutAction) {  
        window.location.replace(pLogoutAction);        
    } ,
    FBLogout : function(pFBAPIKey, pLogoutAction) {      
        FB.ensureInit(function(){        
            FB.Connect.ifUserConnected(function(){                                   
                    FB.Connect.logoutAndRedirect(pLogoutAction+"&fb=1");
                }, function(){                    
                    window.location.replace(pLogoutAction);
                });
        });
    },    
    FBLogoutWithOutPopup : function(pFBAPIKey, pLogoutAction) {      
        FB.ensureInit(function(){        
            FB.Connect.ifUserConnected(function(){                                   
                    Eduify.FBConnect.FB_Logout();
                },null);
        });
    } ,    
    FB_Logout : function()
    {   /* Logout user from facebook with out facebook logout dialog, could stop working if facebook change there process of logout. */
        var singleton=FB.Connect._singleton;
        var guid=FB.XdComm.Server.singleton.get_GUID();
        var nextUrl=FBIntern.Uri.addQueryParameters(FB.XdComm.Server.singleton.get_receiverUrl(),'fb_login&fname=_parent&guid='+guid+'&session=loggedout');
        singleton._ensureLoginHandler();
        //singleton._logoutCallback=callback;
        var logoutUrl=FB.Connect._getLogoutUrl(nextUrl);
        singleton._logoutIframe=FB.XdComm.Server.singleton.createNamedHiddenIFrame('fbLogout',logoutUrl,'fb_logout',null);
    },
    onToolBarLogin:function()
    { 
          try          
          {
            var APIClient = FB.Facebook.apiClient;            
            if(lHasCheckedForRegisteredUser==false)
            {
                lIsRegisteredUser =  Eduify.UI.Common.AJAXMethods.IsRegisteredUser(APIClient.get_session().uid).value;               
                lHasCheckedForRegisteredUser = true;
            }
            if(lIsRegisteredUser)
            {
                document.forms[0].submit();
            }
            else 
            {  
                document.getElementById("pnlFBNA").className = "DB MT20 TC";                    
                lHasCheckedForRegisteredUser = false;
                lIsRegisteredUser = false;                        
                return;
            }                 
          }
          catch(e){alert(e.description)}
    },
    onProfileLogin:function()
    {
        try{           
            var APIClient = FB.Facebook.apiClient;            
            APIClient.requireLogin(function(exception){            
                if($j("*[id$='hdnProfileFBUID']")[0])
                {
                    $j("*[id$='hdnProfileFBUID']")[0].value = APIClient.get_session().uid;                                
                }            
            });
            Eduify.Profile.ToggleFBLinkPnl(true);
        }
        catch(e){
            alert(e.description)
        }
    },
    PublishHelpStatusToFacebook:function(pTemplateId)
    {    
         lIsStatusPosted = false;
         lNewHelpStatus = $j("*[id$='txtHelpStatus']")[0].value;
         if(lNewHelpStatus!="")
         {
            lTemplateId =  pTemplateId ;
            lTemplateData = {"helpTopic":lNewHelpStatus,"appPath":"www.eduify.com/beta/BetaInvite"};
            lFriendList = null;          
            FB.ensureInit(function(){            
                    lIsStatusPosted = FB.Connect.showFeedDialog ( lTemplateId , lTemplateData, lFriendList, "", null, FB.RequireConnect.require , null,"", {"value":""});               
            });
         }
         return lIsStatusPosted;
    },
    onLandingPageLoginV1:function()
    {     
         //debugger;
          try          
          {
            var APIClient = FB.Facebook.apiClient;            
            APIClient.requireLogin(function(exception){            
                if($j("*[id$='hdnFBUID']")[0]) // if its one of the signup pages.
                {   
                    $j("*[id$='hdnFBUID']")[0].value = APIClient.get_session().uid;                                
                    APIClient.users_getInfo(parseInt($j("*[id$='hdnFBUID']")[0].value),["first_name","last_name"], function(results,ex) {                                              
                        if(results[0].first_name!="")
                        {
                            $j("*[id$='hdnFBFirstName']")[0].value = results[0].first_name;                            
                            $j("*[id$='pnlFBFirstName']")[0].innerHTML = results[0].first_name;
                        }   
                        if(results[0].last_name!="")
                        {
                            $j("*[id$='hdnFBLastName']")[0].value  = results[0].last_name;                            
                        }                          
                    });              
                }            
            });
            if(lHasCheckedForRegisteredUser==false)
            {  
                lIsRegisteredUser =  Eduify.UI.Common.AJAXMethods.IsRegisteredUser(APIClient.get_session().uid).value;               
                lHasCheckedForRegisteredUser = true;
            }
            if(lIsRegisteredUser)
            {
                document.forms[0].submit();
            }
            else 
            {
                var lEdTab = $j("*[id$=pnlTabED]")[0];
                $j("#left",lEdTab).removeClass("spTabWhiteLeft").addClass("spTabBlueLeft");
                $j("#center",lEdTab).removeClass("CO119 spTabWhiteRepeat").addClass("CO102 spTabBlueRepeat");
                $j("#right",lEdTab).removeClass("spTabWhiteRight").addClass("spTabBlueRight");
                
                var lFBTab = $j("*[id$=pnlTabFB]")[0];
                $j("#Div1",lFBTab).removeClass("spTabBlueLeft").addClass("spTabWhiteLeft");
                $j("#Div2",lFBTab).removeClass("CO102 spTabBlueRepeat").addClass("CO119 spTabWhiteRepeat");
                $j("#Div3",lFBTab).removeClass("spTabBlueRight").addClass("spTabWhiteRight");                
                
                $j("*[id$=pnlEmailTitle]").addClass('DN');
                $j("*[id$=pnlEduifyName]").removeClass("DIN").addClass("DN");
                $j("*[id$=pnlFBName]").removeClass("DN").addClass("DIN");       
                FB.XFBML.Host.parseDomTree();   
            }                               
          }
          catch(e){alert(e.description)}
    },
    clearFBSession:function()
    { 
        Eduify.FBConnect.FBLogoutWithOutPopup();
        $j("*[id$='hdnFBUID']")[0].value ='';
    },
    onSignupPageLogin:function()
    {     
          try          
          {
            var APIClient = FB.Facebook.apiClient;            
            APIClient.requireLogin(function(exception){            
                if($j("*[id$='hdnFBUID']")[0]) // if its one of the signup pages.
                {
                    $j("*[id$='hdnFBUID']")[0].value = APIClient.get_session().uid;            
                    APIClient.users_getInfo(parseInt($j("*[id$='hdnFBUID']")[0].value),["first_name","last_name"], function(results,ex) {                       
                        if(results!=null)
                        {
                            $j("*[id$='hdnFBFirstName']")[0].value = results[0].first_name;
                            $j("*[id$='hdnFBLastName']")[0].value  = results[0].last_name;
                        }
                    });              
                }            
            });
            if(lHasCheckedForRegisteredUser==false)
            {
                lIsRegisteredUser =  Eduify.UI.Common.AJAXMethods.IsRegisteredUser(APIClient.get_session().uid).value;               
                lHasCheckedForRegisteredUser = true;
            }
            if(lIsRegisteredUser)
            {
                document.forms[0].submit();
            }
            else 
            {
                if($j("*[id$='hdnFBUID']")[0]) 
                {
                    if($j("*[id$='hdnEiFBUID']")[0].value!= "" && $j("*[id$='hdnFBUID']")[0].value != $j("*[id$='hdnEiFBUID']")[0].value)
                    {   
                        document.getElementById("pnlInvalidFBId").className = "DB MT20 TC";
                        lHasCheckedForRegisteredUser = false;
                        lIsRegisteredUser = false;         
                        FB.ensureInit(function(){        
                            FB.Connect.ifUserConnected(function(){                                                                       
                                    Eduify.FBConnect.FB_Logout();                                    
                                },null);
                        });
                        return;                        
                    }
                    else
                    {    
                         if(typeof $j("*[id$='hdnIsPageValid']")[0]!='undefined' &&  $j("*[id$='hdnIsPageValid']")[0].value!='false' )
                         {
                            eval($j("*[id$='lbDoSignup']")[0].getAttribute("href"));
                         }
                         else 
                         {
                            $j("*[id$='hdnFBUID']")[0].value ='';                         
                         }
                    }
                }                                
            }                               
          }
          catch(e){alert(e.description)}
    },
    RequireSession:function()
    {
        $j("*[id$='hdnIsPageValid']")[0].value ='true';
        FB.Connect.requireSession();
    },
    ChangePageState:function()
    {   
        $j("*[id$='hdnIsPageValid']")[0].value == 'true';
    },
    onLandingPageLogin:function()
    {     
          //debugger;
          try          
          {
            var APIClient = FB.Facebook.apiClient;            
            APIClient.requireLogin(function(exception){            
                if($j("*[id$=hdnFBUID]")[0]) // if its one of the signup pages.
                {   
                    $j("*[id$=hdnFBUID]")[0].value = APIClient.get_session().uid;                                
                    APIClient.users_getInfo(parseInt($j("*[id$=hdnFBUID]")[0].value),["first_name","last_name"], function(results,ex) {                                              
                        if(results[0].first_name!="")
                        {
                            $j("*[id$=hdnFBFirstName]")[0].value = results[0].first_name;                            
                            $j("*[id$=pnlFBFirstName]")[0].innerHTML = results[0].first_name;
                        }   
                        if(results[0].last_name!="")
                        {
                            $j("*[id$=hdnFBLastName]")[0].value  = results[0].last_name;                            
                        }                          
                    });              
                }            
            });
            if(lHasCheckedForRegisteredUser==false)
            {  
                lIsRegisteredUser =  Eduify.UI.Common.AJAXMethods.IsRegisteredUser(APIClient.get_session().uid).value;               
                lHasCheckedForRegisteredUser = true;
            }
            if(lIsRegisteredUser)
            {  
                window.location.replace (APP_PATH+'/home')
                return;
            }
            else 
            {
                $j('"*[id$=pnlData]').removeClass('VSH');
                $j('"*[id$=pnlSignUp]').addClass('DN');
                $j('"*[id$=pnlEmailTitle]').addClass('DN');
                $j("*[id$=pnlEduifyName]").removeClass("DIN").addClass("DN");
                $j("*[id$=pnlFBName]").removeClass("DN").addClass("DIN");                                               
                FB.XFBML.Host.parseDomTree();   
            }                               
          }
          catch(e){alert(e.description)}
    },
    onWunderKindLogin:function()
    {     
          try          
          {
            var APIClient = FB.Facebook.apiClient;            
            APIClient.requireLogin(function(exception){            
                if($j("*[id$=hdnFBUID]")[0]) // if its one of the signup pages.
                {   
                    $j("*[id$=hdnFBUID]")[0].value = APIClient.get_session().uid;                                
                    APIClient.users_getInfo(parseInt($j("*[id$=hdnFBUID]")[0].value),["first_name","last_name"], function(results,ex) {                                              
                        if(results[0].first_name!="")
                        {
                            $j("*[id$=hdnFBFirstName]")[0].value = results[0].first_name;                            
                        }   
                        if(results[0].last_name!="")
                        {
                            $j("*[id$=hdnFBLastName]")[0].value  = results[0].last_name;                            
                        }                          
                    });              
                }            
            });
            if(lHasCheckedForRegisteredUser==false)
            {  
                lIsRegisteredUser =  Eduify.UI.Common.AJAXMethods.IsRegisteredUser(APIClient.get_session().uid).value;               
                lHasCheckedForRegisteredUser = true;
            }
            if(lIsRegisteredUser)
            {
                document.forms[0].submit();
            }
            else 
            {
                FB.XFBML.Host.parseDomTree();
                
                if(Eduify.FBConnect.WunderkindCall){
                    $j("input[id$=lbtnEnter]").trigger('click');
                }
            }                               
          }
          catch(e){alert(e.description)}
    },
    onLandingPage3Login:function()
    {     
          try          
          {
            var APIClient = FB.Facebook.apiClient;            
            APIClient.requireLogin(function(exception){            
                if($j("*[id$=hdnFBUID]")[0]) // if its one of the signup pages.
                {   
                    $j("*[id$=hdnFBUID]")[0].value = APIClient.get_session().uid;                                
                    APIClient.users_getInfo(parseInt($j("*[id$=hdnFBUID]")[0].value),["first_name","last_name"], function(results,ex) {                                              
                        if(results[0].first_name!="")
                        {
                            $j("*[id$=txtFirstName]")[0].value = results[0].first_name;                            
                        }   
                        if(results[0].last_name!="")
                        {
                            $j("*[id$=txtLastName]")[0].value  = results[0].last_name;                            
                        }                          
                    });              
                }            
            });
            if(lHasCheckedForRegisteredUser==false)
            {  
                lIsRegisteredUser =  Eduify.UI.Common.AJAXMethods.IsRegisteredUser(APIClient.get_session().uid).value;               
                lHasCheckedForRegisteredUser = true;
            }
            if(lIsRegisteredUser)
            {
                document.forms[0].submit();
            }
            else 
            {
                FB.XFBML.Host.parseDomTree();
                
                if(Eduify.FBConnect.WunderkindCall){
                    $j("input[id$=lbtnEnter]").trigger('click');
                }
            }                               
          }
          catch(e){alert(e.description)}
    },
    onPlageProfLogin:function()
    {     
          try          
          {
            var APIClient = FB.Facebook.apiClient;            
            APIClient.requireLogin(function(exception){});
            if(lHasCheckedForRegisteredUser==false)
            {  
                lIsRegisteredUser =  Eduify.UI.Common.AJAXMethods.IsRegisteredUser(APIClient.get_session().uid).value;               
                lHasCheckedForRegisteredUser = true;
            }
            if(lIsRegisteredUser)
            {
                document.forms[0].submit();
            }
            else 
            {
//                FB.Connect.showPermissionDialog("publish_stream",
//                    function(pGranted)
//                    {
//                        if(String(pGranted)!="false" && pGranted == "publish_stream")
//                        {
//                            $j("input[id$=hdPublishStream]").val("true");
//                        }                                                    
//                        FB.Connect.showPermissionDialog("offline_access",
//                        function(pGranted)
//                        {
//                            if(String(pGranted)!="false" && pGranted == "offline_access")
//                            {
//                                $j("input[id$=hdOfflineAccess]").val("true");
//                            }
//                            $j("input[id$=hdnFacebookConnectPost]").val("true");
//                        });
//                    });
                $j("input[id$=btnFbLoad]").trigger('click');
            }                               
          }
          catch(e)
          {
            alert(e.description);
          }
    }
};