socialBar = {
    c: 0,
    b: 0,
    f: 0,
    e: 1,
    s: false,   // -- if finished
    fb_div_frame:null, // -- div float
    facebook_check_state: false,    // -- if facebook state has checked

    init: function(){
        socialBar.c   = 0;
        socialBar.b   = 0;
        socialBar.f   = 0;
        socialBar.e   = 0;
        for(var i = 1; i < 5; i++) {
            document.getElementById('progressbar' + i).style.background = "";
            document.getElementById('social_bar_' + i).style.visibility = 'visible';
        }
        socialBar.checkState();
    },
    
    connectCallBack: function(type) {
        if (socialBar.s) {
            document.getElementById('social_bar').style.display    = 'none';
            return false;
        }
        if(type) {
            document.getElementById('social_bar_1').style.visibility = 'hidden';
            socialBar.c = 1;
            socialBar.onlineFacebookCallback();
        } else {
            socialBar.init();
            document.getElementById('social_bar_1').style.visibility = 'visible';
        }
        socialBar.fillBar();
        socialBar.checkState();
    },
    
    onlineFacebookCallback: function () {
        FB.api(
        {
            method: 'fql.multiquery',
            queries: {
                'email': "SELECT email from permissions where uid = " + facebook.fb_login_uid,
                'bookmark': "SELECT bookmarked FROM permissions WHERE uid = " + facebook.fb_login_uid,
                'fan': "SELECT uid FROM page_fan WHERE uid = " + facebook.fb_login_uid + "AND page_id =" + facebook.facebook_app_id
            }
        },
        function(r) {
            for (i in r) {
                try {
                    if('email' == r[i].name){
                        if(r[i].fql_result_set[0].email == 1) {
                            socialBar.emailCallback('success');
                        } else {
                            socialBar.e = 0;
                            document.getElementById('social_bar_4').style.visibility = 'visible';
                        }
                    }
            
                    if('bookmark' == r[i].name){
                        if(r[i].fql_result_set[0].bookmarked == 1) {
                            facebook.bookmark_state    = 1;
                            document.getElementById('social_bar_2').style.visibility = 'hidden';
                            socialBar.b = 1;
                        } else {
                            facebook.bookmark_state    = 2;
                            socialBar.b = 0;
                            document.getElementById('social_bar_2').style.visibility = 'visible';
                        }  
                    }
            
                    if('fan' == r[i].name){
                        if(typeof(r[i].fql_result_set) == "object") {
                            if(r[i].fql_result_set[0].uid>0){
                            document.getElementById('social_bar_3').style.visibility = 'hidden';
                            socialBar.f = 1;
                            }
                        } else {
                            socialBar.f = 0;
                            document.getElementById('social_bar_3').style.visibility = 'visible';
                        } 
                    }
                } catch (e) {}
            }
            socialBar.facebook_check_state    = true;
            socialBar.fillBar();
            socialBar.checkState();
        });
    },
    
    bookmarkCallback: function () {
        facebook.fb_fql('SELECT bookmarked FROM permissions WHERE uid = "'+facebook.fb_login_uid+'"', function(rows) {
            try {
                if(rows[0].bookmarked == 1) {
                    document.getElementById('social_bar_2').style.visibility = 'hidden';
                    socialBar.b = 1;
                } else {
                    socialBar.b = 0;
                    document.getElementById('social_bar_2').style.visibility = 'visible';
                }
                socialBar.fillBar();
                socialBar.checkState();
            } catch (e) {}
        });
    },
  
    showFanFrame: function () {
        var obj_fb_div_frame    = document.getElementById('bg_div_two');
        obj_fb_div_frame.style.display  = 'block';
        
        // -- set light station
        var obj_frame_float = document.getElementById('fan_dialog_div');
        obj_frame_float.innerHTML = '<div style="background:#6E84B5; width:100%; height:16px;"><div style="float:right; width:9px; height:16px; right:4px; cursor:pointer; font-family:tahoma,verdana,arial,sans-serif; font-size:12px; font-weight:bold; color:#FFFFFF;" onclick="socialBar.fanClose();">X</div></div> <fb:like-box profile_id="'+facebook.facebook_app_id+'" connections="0" stream="false" header="false"></fb:like-box>';
        FB.XFBML.parse(obj_frame_float);
        obj_frame_float.style.width = "280px";
        obj_frame_float.style.height = "120px";
        obj_frame_float.style.overflow = "hidden"; 
        obj_frame_float.style.display  = 'block';
    },

    fanClose: function () {
        document.getElementById('bg_div_two').style.display  = 'none';
        document.getElementById('fan_dialog_div').style.display  = 'none';
        facebook.fb_fql('SELECT uid FROM page_fan WHERE uid = "'+facebook.fb_login_uid+'" AND page_id = '+facebook.facebook_app_id, function(rows) {
            try {
                if(typeof(rows[0]) == "object") {
                    document.getElementById('social_bar_3').style.visibility = 'hidden';
                    socialBar.f = 1;
                } else {
                     socialBar.f = 0;
                     document.getElementById('social_bar_3').style.visibility = 'visible';
                }
                socialBar.fillBar();
                socialBar.checkState();
            } catch (e) {}
        });
    },
  
    checkEmailPermission: function() {
        facebook.checkFacebookPermission('email',socialBar.emailCallback,false);
    },
    
    emailCallback: function (data) { 
        if ('exists' == data || 'success' == data) {
            document.getElementById('social_bar_4').style.visibility = 'hidden';
            socialBar.e = 1;
            facebook.fb_getEmail();
        } else {
            socialBar.e = 0;
            document.getElementById('social_bar_4').style.visibility = 'visible';
        }
        socialBar.fillBar();
        socialBar.checkState();
    },
  
    checkState: function() {
        if (1 == socialBar.b && 1 == socialBar.f && 1 == socialBar.e) {
            socialBar.s = true;
            document.getElementById('social_bar').style.display    = 'none';
            socialBar.finishSocialBar();
        } else {
            socialBar.s  = false;
            if (socialBar.facebook_check_state) {
                document.getElementById('social_bar').style.display    = ''; 
            }
        }
    },
  
    fillBar: function() {
        for(var i = 1; i < socialBar.c + socialBar.b + socialBar.f + socialBar.e + 1; i++) {
            var el = document.getElementById('progressbar' + i);
            el.innerHTML = "";
            el.style.background = "url(http://www.evony.com/Dhtml/images/facebook/index/pic1_33.png) no-repeat";
        }
        
        if (i > 1) {
            el.innerHTML = ((i - 1) * 25) + "% complete";
        }
        for (i; i < 5; i ++) {
            var el = document.getElementById('progressbar' + i);
            el.innerHTML = "";
            el.style.background = "";
        }
    },
    
    finishSocialBar: function() {
        if (socialBar.s) {
            var url = 'http://www.evony.com/facebook/facebook.SocialBar.php?T=D&fbuid='+facebook.fb_login_uid;
            facebook.imgAjax(url);
        }
    }
}
