if(typeof LOP === 'undefined') {
    var LOP = {};
}

(function($) {
    var W = this, D = this.document;
    
    LOP.FBC = {
        init: function() {
            var fbAppId = location.pathname.toLowerCase().indexOf('/contentmanagerdata/sites/aspnet/') > -1 ? '124610520912962' : '128709870483391';
            
            FB.init({
                appId  : fbAppId,
                status : true,
                cookie : true,
                xfbml  : false
            });
        },
        checkStatus: function(datas) {
            FB.getLoginStatus(function(response) {
                if(response.session) {
                    LOP.FBC.userFbId = response.session.uid;
                    
                    if(datas.logged) {
                        datas.logged();
                    }
                } else {
                    if(datas.notLogged) {
                        datas.notLogged();
                    }
                }
            });
        },
        loadContent: function() {
            LOP.popinMaskType = 'coreMaskPopinFBLoading';
            LOP.popins.add({
                url: l10n.FB.url.contentLoading,
                id: 'FBLoading',
                processHTML: false,
                refresh: true
            });
        },
        userFbId: ''
    };
    
    LOP.popinOpeningActions.FBLoading = function() {
        var h;
        if(window.innerHeight) {
            h = window.innerHeight;
        } else if(document.all){
            h = document.body.clientHeight;
        }
        h -= 2;
        $('#popinFBLoading').css('height', h + 'px');
    };
    
    $(D).ready(function() {
        if(!D.getElementById('fb-root')) {
            $('body').append('<div id="fb-root"></div>');
        }
        LOP.FBC.init();
        
        LOP.popins.prepare('#popinsGetImages', 'div.popinWrapper', l10n.url, LOP.processHTMLPopins);
        
        getImageFromFB = function() {
            if(!LOP.hasFBPicturesLoaded) {
                FB.login(function(r) {
                    if(r.session) {
                        LOP.FBC.loadContent();
                        
                        FB.api({
                            method:'fql.query',
                            query: 'SELECT aid, type FROM album WHERE owner IN (SELECT uid FROM user WHERE uid = \''+ r.session.uid + '\')'
                        }, function(albums) {
                            var albumProfile, albumsTotal = albums.length;
                            
                            for(var i = 0; i < albumsTotal; i++) {
                                if(albums[i].type == 'profile') {
                                    albumProfile = albums[i].aid;
                                }
                            }
                            FB.api({
                                method:'fql.query',
                                query: 'SELECT pid, src, src_big FROM photo WHERE aid =\'' + albumProfile + '\''
                            }, function(datas){
                                LOP.FBPicturesDatas = datas, LOP.FBPicturesTotal = datas.length;
                                
                                LOP.popins.add({
                                    id: 'chooseFBPicture',
                                    url: '#popinChooseFBPicture',
                                    refresh: false,
                                    processHTML: LOP.processHTMLPopins
                                });
                                LOP.hasFBPicturesLoaded = true;
                            });
                        });
                    }
                }, {perms:'user_photos, user_photo_video_tags, friends_photos, friends_photo_video_tags'});
            } else {
                LOP.popins.add({
                    id: 'chooseFBPicture',
                    url: '#popinChooseFBPicture',
                    refresh: false,
                    processHTML: LOP.processHTMLPopins
                });
            }
        };
        
        getFriendsImageFromFB = function() {
            if(!LOP.hasFBFriendsPicturesLoaded) {
                FB.login(function(r) {
                    if(r.session) {
                        LOP.FBC.loadContent();
                        
                        FB.api('/me/friends', {limit:5000}, function(friends) {
                            
                            LOP.FBFriendsDatas = {}, LOP.FBFriendsTotal = friends.data.length;
                            var friend = friends.data;
                            
                            for(var i = 0, i2 = 0; i < LOP.FBFriendsTotal; i++) {
                                $('body').append();
                                FB.api({
                                    method:'fql.query',
                                    query: 'SELECT uid, pic, pic_big FROM user WHERE uid = \''+ friend[i].id + '\''
                                }, function(datas) {
                                    LOP.FBFriendsDatas[i2] = datas[0];
                                    i2 ++;
                                    if((i2) == LOP.FBFriendsTotal) {
                                        LOP.popins.add({
                                            id: 'chooseFBFriendPicture',
                                            url: '#popinChooseFBFriendPicture',
                                            refresh: false,
                                            processHTML: LOP.processHTMLPopins
                                        });
                                        LOP.hasFBFriendsLoaded = true;
                                    }
                                });
                            }
                        });
                    }
                }, {perms:'user_photos, user_photo_video_tags, friends_photos, friends_photo_video_tags'});
            } else {
                LOP.popins.add({
                    id: 'chooseFBFriendPicture',
                    url: '#popinChooseFBFriendPicture',
                    refresh: false,
                    processHTML: LOP.processHTMLPopins
                });
            }
        };
        
        getAppUrl = function() {
            return(W.location.protocol + "//" + W.location.hostname + W.location.pathname);
        };
        
        LOP.popinOpeningActions.chooseFBPicture = function() {
            if(LOP.FBPicturesTotal) {
                if(LOP.FBPicturesTotal == 0) {
                    $('#FBpictures').append('<li>No pictures</li>');
                } else {
                    for(var i = 0; i < LOP.FBPicturesTotal; i++) {
                        $('#FBpictures').append('<li><a href="' + LOP.FBPicturesDatas[i].src_big + '"><span><img alt="" src="' + LOP.FBPicturesDatas[i].src + '" /></span></a></li>');
                        if((i + 1) == LOP.FBPicturesTotal) {
                            LOP.scrolls.fbpicturesslisting = new BOX.SimpleScroll({
                                'target': $('#popinChooseFBPicture div.scroll')[0]
                            });
                        }
                    }
                    $('#FBpictures a').click(function(e) {
                        e.preventDefault();
                        if(LOP.chosenPicture) {
                            $(LOP.chosenPicture).removeClass('on');
                        }
                        LOP.chosenPicture = this;
                        $(LOP.chosenPicture).addClass('on');
                    });
                    
                    $('#popinChooseFBPicture a.save').click(function(e) {
                        e.preventDefault();
                        if(LOP.chosenPicture) {
                            var lnk = $(LOP.chosenPicture).attr('href');
                            D.getElementById('MenExpert').setImageFromFB(lnk);
                            LOP.popins.close();
                        }
                    });
                }
            }
        };
        
        LOP.popinOpeningActions.chooseFBFriendPicture = function() {
            if(LOP.FBFriendsTotal) {
                if(LOP.FBFriendsTotal == 0) {
                    $('#FBfriends').append('<li>No pictures</li>');
                } else {
                    for(var i = 0; i < LOP.FBFriendsTotal; i++) {
                        if(LOP.FBFriendsDatas[i].pic) {
                            $('#FBfriends').append('<li><a href="' + LOP.FBFriendsDatas[i].pic_big + '"><span><img alt="" src="' + LOP.FBFriendsDatas[i].pic + '" /></span></a></li>');
                        }
                        if((i + 1) == LOP.FBFriendsTotal) {
                            LOP.scrolls.fbfriendslisting = new BOX.SimpleScroll({
                                'target': $('#popinChooseFBFriendPicture div.scroll')[0]
                            });
                        }
                    }
                    $('#FBfriends a').click(function(e) {
                        e.preventDefault();
                        if(LOP.chosenFriendPicture) {
                            $(LOP.chosenFriendPicture).removeClass('on');
                        }
                        LOP.chosenFriendPicture = this;
                        $(LOP.chosenFriendPicture).addClass('on');
                    });
                    
                    $('#popinChooseFBFriendPicture a.save').click(function(e) {
                        e.preventDefault();
                        if(LOP.chosenFriendPicture) {
                            var lnk = $(LOP.chosenFriendPicture).attr('href');
                            D.getElementById('MenExpert').setImageFromFB(lnk);
                            LOP.popins.close();
                        }
                    });
                }
            }
        };
    });
})(jQuery);
