FBF.Common = {
    showLoadingBar: function(elementId) {
        $(elementId) && $(elementId).html('<img src="'+FBF.Config.baseUrl+'static/images/loading.gif">');
    },
    blockLoadingBar: function(elementId) {
        $(elementId) && $(elementId).block({
            message: '<img src="'+FBF.Config.baseUrl+'static/images/loading.gif">',
            css: {
                        border: 'none',
                        backgroundColor: 'none',
                        color: '#fff',
                        opacity:1
                    }
        });
    }
}

FBF.FB = {
    checkSessionAndShowRequestPopup: function(isPopup) {
        FB.getLoginStatus(function(response) {
            if (response.session) {
                FBF.FB.showRequestPopup(isPopup);
            } else {
                FB.login(function(response) {
                    if (response.session) {
                        if (response.perms) {
                            FBF.FB.showRequestPopup(isPopup);
                        } else {
                            FBF.FB.showRequestPopup(isPopup);
                        }
                    } else {
                        FBF.Nav.redirectToHome();
                    }
                }, {perms: FBF.Config.fbPermissions});
            }
        });
    },
    showRequestPopup: function(isPopup) {
        FB.ui({
            method: 'apprequests',
            filters: '["app_non_users"]',
            title: 'Fırsat Bu Fırsat',
            message: 'Hergün %93\'lere varan yüzlerce indirimden senin de yararlanmanı istiyorum. Sadece bügüne özel indirimleri kaçırmamak için davetimi kabul et.'
        },
        function(response) {
            if(response && response.request_ids) {
                $.ajax({
                    type: "POST",
                    url: FBF.Nav.createLink('ajax', 'save-request'),
                    data: 'requestIds=' + response.request_ids.join() + '&requestType=1'
                });
            }

            if(isPopup) {
                tb_remove();
            }
        });
    },

    requestCallback: function (response,datam) {
        console.log(response);
        if(datam=='undefined' || !datam){
            datam='friendRequest';
        }
        if(response){
            ids = '';
            for(i=0;i<response.to.length;i++){
                ids += 'ids[]='+response.to[i]+'&';
            }
            $.ajax({
                type: "POST",
                url:  FBF.Nav.createLink('member','facebook-request-ajax'),
                data: ids+'request='+response.request+'&data='+datam,
                success: function(msg){
                }
             });
        }
        $.unblockUI();
    },
    checkSessionAndShowFriendQuestionRequestPopup: function() {
        FB.getLoginStatus(function(response) {
            if (response.session) {
                FBF.FB.showFriendQuestionRequestPopup();
            } else {
                FB.login(function(response) {
                    if (response.session) {
                        if (response.perms) {
                            FBF.FB.showFriendQuestionRequestPopup();
                        } else {
                            FBF.FB.showFriendQuestionRequestPopup();
                        }
                    } else {
                        // do nothing
                    }
                }, {perms: FBF.Config.fbPermissions});
            }
        });
    },
    showFriendQuestionRequestPopup: function() {
        FB.ui({
            method: 'apprequests',
            filters: '["app_non_users"]',
            title: 'Fırsat Bu Fırsat',
            message: 'Arkadaşlarının hakkında eğlenceli sorular cevaplamak için davetimi kabul et!'
        },
        function(response) {
            if(response && response.request_ids) {
                $.ajax({
                    type: "POST",
                    url: FBF.Nav.createLink('ajax', 'save-request'),
                    data: 'requestIds=' + response.request_ids.join() + '&requestType=2',
                    success: function(){
                        location.reload();
                    },
                    error: function() {
                        location.reload();
                    }
                });
            } else {
                location.reload();
            }
        });
    },
    userLikedThePage: function() {
        $.ajax({
            type: "POST",
            url: FBF.Nav.createLink('ajax', 'save-like')
        });

        tb_remove();
    },
    logout: function() {
        FB.getLoginStatus(function(response) {
            if (response.session) {
                FB.logout(function(response) {
                    FBF.Nav.logout();
                });
            } else {
                FBF.Nav.logout();
            }
        });
    }
}

FBF.Nav = {
    createLink: function(controller, action, params) {
        params = params || {};
        url = FBF.Config.appUrl + controller + '/' + action + '.html';
        url = params ? url + '?' + $.param(params) : url;

        return url;
    },
    createApiLink: function(controller, action, params) {
        params = params || {};
        url = FBF.Config.apiBaseUrl + controller + '/' + action + '.html';
        url = params ? url + '?' + $.param(params) : url;

        return url;
    },
    createHomeLink: function(params) {
        params = params || {};
        url = FBF.Config.baseUrl;
        url = params ? url + '?' + $.param(params) : url;

        return url;
    },
    createBusinessLink: function(permalink, params) {
        params = params || {};
        url = FBF.Config.baseUrl + FBF.SeoFriendlyDirectoryNames.business + '/' + permalink;
        url = params.length ? url + '?' + $.param(params) : url;
        return url;
    },
    createTagLink: function(permalink, city, params) {
        params = params || {};
        url = FBF.Config.baseUrl + FBF.SeoFriendlyDirectoryNames.tag + '/' + permalink + '/' + city;
        url = params.length ? url + '?' + $.param(params) : url;
        return url;
    },
    createProviderLink: function(permalink, city, params) {
        params = params || {};
        url = FBF.Config.baseUrl + FBF.SeoFriendlyDirectoryNames.provider + '/' + permalink + '/' + city;
        url = params.length ? url + '?' + $.param(params) : url;
        return url;
    },
    createCityDealsLink: function(city, params) {
        params = params || {};
        url = FBF.Config.baseUrl + FBF.SeoFriendlyDirectoryNames.deals + '/' + city;
        url = params.length ? url + '?' + $.param(params) : url;
        return url;
    },
    redirectTo: function(controller, action, params) {
        params = params || {};
        var url = FBF.Nav.createLink(controller, action, params);
        window.location = url;
    },
    redirectToHome: function() {
        FBF.Nav.redirectTo('home', 'index');
    },
    logout: function() {
        FBF.Nav.redirectTo('member', 'logout');
    }
}

FBF.Ajax = {
    submitSignUpForm: function(formId) {
        $('#signup-submit-button').hide();
        $('#signup-loading-image').show();

        $.ajax({
            type: "POST",
            url: $('#' + formId).attr('action'),
            data: $('#' + formId).serialize(),
            success: function(content){
                if(content == 'OK') {
                    location.reload(true);
                } else {
                    $('#signup-loading-image').hide();
                    $('#signup-submit-button').show();
                    if(formId == 'right-box-signup-form') {
                        $('#right-column-signup').html(content);
                    } else {
                        $('#TB_ajaxContent').html(content);
                    }
                }
            }
        });
    },
    submitOptInForm: function() {
        $.ajax({
            type: "POST",
            url: $('#opt-in-form').attr('action'),
            data: $('#opt-in-form').serialize(),
            success: function(content){
                if(content == 'OK') {
                    location.reload(true);
                } else {
                    $('#right-column-opt-in').html(content);
                }
            }
        });
    },
    closeSignUpPopup: function() {
        $.ajax({
            type: "POST",
            url: FBF.Nav.createLink('ajax', 'close_popup'),
            success: function(content){
                tb_remove();
            }
        });
    },
    memberFollow : function(memberId){
        FBF.Common.showLoadingBar('#friend-'+memberId);
        $.ajax({
            type: "POST",
            data :'memberId='+memberId,
            url: FBF.Nav.createLink('member', 'follow-member-ajax'),
            success: function(content){
                $('#friend-'+memberId).html('<span style="font-size: 11px;font-weight: bold">İstek Gönderildi!</span>');
            }
        });
    },
    approveFollow : function(memberId){
        FBF.Common.showLoadingBar('#follow_'+memberId);
        $.ajax({
            type: "POST",
            data :'memberId='+memberId,
            url: FBF.Nav.createLink('member', 'approveFollowAjax'),
            success: function(msg){
                var content = ' <span style="font-size: 12px;font-weight: bold;padding: 5;">İstek Onaylandı!</span>';
                if(msg=='notFollow'){
                  content +=  '<div class="button-orange">'+
                    '<a id="profile-action-button_'+memberId+'" class="follow-button" class="follow-button" href="javascript:void(0)"  rel="nofollow" style="width:120px">'+
                    'Sen de Takip Et' +
                    '</a>' +
                    '</div>';
                }
                $('#follow_'+memberId).html(content);

                var button = $('#profile-action-button_'+memberId);
                FBF.publicProfileButtons.init(button, memberId);
            }
        });
    },
    denyFollow : function(memberId){
        FBF.Common.showLoadingBar('#follow_'+memberId);
        $.ajax({
            type: "POST",
            data :'memberId='+memberId,
            url: FBF.Nav.createLink('member', 'denyFollowAjax'),
            success: function(content){
                $('#follow_'+memberId).html('<span style="font-size: 13px;font-weight: bold;padding: 5;color: #cd0a0a;">İstek Reddedildi!</span>');
            }
        });
    },
    facebookUserFollow: function(facebookFriendsId){
        FB.ui({
          method: 'apprequests',
          message:  'Hergün %93\'lere varan yüzlerce indirimden senin de yararlanmanı istiyorum. Sadece bügüne özel indirimleri kaçırmamak için davetimi kabul et.',
          to: facebookFriendsId,
          data: 'memberFollow'
        }, function(response){
            if(response){
                FBF.FB.requestCallback(response,'memberFollow');
                $('#friend-'+facebookFriendsId).html('<span style="font-size: 11px;font-weight: bold">İstek Gönderildi!</span>');
            }
        });
    },
    businessFollow : function (businessId){
        FBF.Common.blockLoadingBar('.businessFollow_'+businessId +' a');
        $.ajax({
            type: "POST",
            data :'businessId='+businessId,
            url: FBF.Nav.createLink('mekan', 'takipet'),
            success: function(content){
                if(content=='DELETE'){
                    $('.businessFollow_'+businessId +'').removeClass('button-grey');
                    $('.businessFollow_'+businessId +'').addClass('button-blue');
                    $('.businessFollow_'+businessId +' a').html('Mekanı Takip Et');
                }else if(content == 'ADD'){
                    $('.businessFollow_'+businessId +'').removeClass('button-blue');
                    $('.businessFollow_'+businessId +'').addClass('button-grey');
                    $('.businessFollow_'+businessId +' a').html('Takibi Bırak');
                }

            }
        });
    }
}

FBF.Form = {
    submitEmailInvitationForm: function(isPopup) {
        if(isPopup) {
            FBF.Common.showLoadingBar('#import-submit-container');
            $.ajax({
                type: "POST",
                url: $('#email-invitation-form').attr('action'),
                data: $('#email-invitation-form').serialize(),
                success: function(content){
                    $('#TB_ajaxContent').html(content);
                }
            });
        } else {
            $('#email-invitation-form').submit();
        }
    },

    submitSelectFriendForm: function(isPopup) {
        if(isPopup) {
            FBF.Common.showLoadingBar('#import-submit-container');
            $.ajax({
                type: "POST",
                url: $('#select-friend-form').attr('action'),
                data: $('#select-friend-form').serialize(),
                success: function(content){
                    if(content == 'OK') {
                        tb_remove();
                    } else {
                        $('#TB_ajaxContent').html(content);
                    }
                }
            });
        } else {
            $('#select-friend-form').submit();
        }
    }
}

FBF.TabManager = {
    showTab: function (tabId) {
        $(".tab-content").css("display","none");
        $("#tab-content-" + tabId).css("display","block");
        $(".tab").removeClass('current_page_item');
        $("#tab-" + tabId).addClass('current_page_item');
    }
};

FBF.Search = {
    submitForm: function () {
        var url = FBF.Config.baseUrl + 'arama/sehir-firsatlari/' + $('#q').val();
        window.location = url;
    },
    speakSearch : function (){
        $('#q').val($('#q').val().replace('Arama',''));
        FBF.Search.submitForm();
        return false;
    }
}
FBF.dropNavMenu = {
	show: function () {
        $('#nav-drop-menu').show();
        $('#navDropMenu').addClass('drop-selected');
	},
	hide: function () {
        $('#nav-drop-menu').hide();
        $('#navDropMenu').removeClass('drop-selected');
	}
}
FBF.goTop = {
    goo : function (){
        $('html,body').animate({scrollTop : 0},'slow');
    }
}
FBF.Geo = {
    findLocation: function(callback) {
        if (navigator.geolocation) {
            var timeoutVal = 5000;
            navigator.geolocation.getCurrentPosition(function(position) {
                var userLocation = [];
                userLocation['lat'] = position.coords.latitude;
                userLocation['lng'] = position.coords.longitude;
                callback(userLocation);
            },
            function(error) {
                var errors = {
                    1: 'İstek reddedildi',
                    2: 'Pozisyon bulunamadı',
                    3: 'İstek zaman aşımına uğradı'
                };
                alert('Konumunuz şu an bulunamadı. Sonra tekrar deneyin.\n Hata:' + errors[error.code]);
            },
            {timeout: timeoutVal, maximumAge: 0});
        } else {
            alert('Tarayıcınız konum bulma özelliğini içermiyor. Daha güncel bir tarayıcı ile bu sayfayı tekrar ziyaret edebilirsiniz.');
        }
    }
};
