﻿var AppID = '207009096034586'; //207009096034586
var Permissions = 'user_events,user_education_history,user_work_history,user_interests,user_likes,user_birthday,user_checkins,user_hometown,user_location,email,offline_access,publish_checkins,publish_stream,rsvp_event,publish_actions,sms,user_online_presence';

$(document).ready(function () {
    FB.init({
        appId: AppID, //207009096034586
        status: true,
        cookie: true,
        xfbml: true,
        oauth: true
    });
    FB.UIServer.setLoadedNode = function (a, b) { FB.UIServer._loadedNodes[a.id] = b; };

    $('#ConnectWithFacebook').click(function (e) {
        e.preventDefault();
        loginWithFB();
    });
});

function AutoLoginWithFB() {
    try {
        FB.getLoginStatus(function (response) {
            if (response.authResponse) {
                SubmitLoginWithFB(response.authResponse.accessToken, response.authResponse.userID, response.authResponse.signedRequest, false);
            }
            else {

            }
        });
    }
    catch (err) { }
}

function loginWithFB() {
    $('.Overlay, .FBLoaderImage').fadeIn(300);
    FB.getLoginStatus(function (response) {
        if (response.authResponse) {
            SubmitLoginWithFB(response.authResponse.accessToken, response.authResponse.userID, response.authResponse.signedRequest, true);
        }
        else {
            FB.login(function (response) {
                if (response.authResponse) {
                    SubmitLoginWithFB(response.authResponse.accessToken, response.authResponse.userID, response.authResponse.signedRequest, true);
                }
                else {
                    $('.Overlay, .FBLoaderImage').fadeOut(200);
                }
            }, { scope: Permissions });
        }
    });
}

function SubmitLoginWithFB(accessToken, userID, signedRequest, AutoLink) {
    $("#form-login").unbind("submit", submitLogin);

    //$("#login_box").block({ message: null, overlayCSS: { backgroundColor: '#ffffff', opacity: 0} });

    $.post($("#ConnectWithFacebook").attr("login"), "FBAppID=" + AppID + "&FBAccessToken=" + accessToken + "&FBUserID=" + userID + "&FBSignedRequest=" + signedRequest + "&AutoLink=" + AutoLink, function (response) {
    
        if (!response.success) {
            if ($("#login-error-text").length > 0)
                $("#login-error-text").remove();

            $("<p class=\"error_text\" id=\"login-error-text\">" + response.errorMessage + "</p>").prependTo("#form-login");

            $('.Overlay, .FBLoaderImage').fadeOut(200);
        }
        else {
            var secondaryNav = document.getElementById("secondaryNav");
            if (response.html) {
                $("#login-holder").fadeOut(200, function () {
                    $("#login-holder").html($(response.html));
                    if (secondaryNav.getAttribute("rel") == "EN") {
                        secondaryNav.style.width = "532px";
                    }
                    $("#login-holder").fadeIn(400);
                });
            }
            if (response.commentHtml) {
                $("#comment-action").html($(response.commentHtml));
            }
            if (response.infoMessage) {
                if (secondaryNav.getAttribute("rel") == "EN") {
                    jQuery.prompt(response.infoMessage, { buttons: { 'Yes please': true, 'No thanks': false }, callback: InfoMessageResponse });
                }
                else {
                    jQuery.prompt(response.infoMessage, { buttons: { 'Evet': true, 'Hayır': false }, callback: InfoMessageResponse });
                }
            }
            else {
                $('.Overlay, .FBLoaderImage').fadeOut(200);
            }
            $(".btn_press_login").unbind("click", showLoginBox)
        }
        $("#form-login").bind("submit", submitLogin);
        //$("#login_box").unblock();
    }, "json");

    return false;
}

function InfoMessageResponse(v, m, f) {
    if (v) {
        FB.getLoginStatus(function (response) {
            if (response.authResponse) {
                SubmitSubscriptionWithFB(response.authResponse.accessToken, response.authResponse.userID, response.authResponse.signedRequest);
            }
            else {
                FB.login(function (response) {
                    if (response.authResponse) {
                        SubmitSubscriptionWithFB(response.authResponse.accessToken, response.authResponse.userID, response.authResponse.signedRequest);
                    }
                    else {
                        $('.Overlay, .FBLoaderImage').fadeOut(200);
                    }
                }, { scope: Permissions });
            }
        });
    }
    else {
        $('.Overlay, .FBLoaderImage').fadeOut(200);
    }
}

function SubmitSubscriptionWithFB(accessToken, userID, signedRequest) {
    $("#form-login").unbind("submit", submitLogin);

    //$("#login_box").block({ message: null, overlayCSS: { backgroundColor: '#ffffff', opacity: 0} });

    $.post($("#ConnectWithFacebook").attr("subscription"), "FBAppID=" + AppID + "&FBAccessToken=" + accessToken + "&FBUserID=" + userID + "&FBSignedRequest=" + signedRequest, function (response) {

        if (!response.success) {
            if ($("#login-error-text").length > 0)
                $("#login-error-text").remove();

            $("<p class=\"error_text\" id=\"login-error-text\">" + response.errorMessage + "</p>").prependTo("#form-login");
        }
        else {
            var secondaryNav = document.getElementById("secondaryNav");
            if (response.html) {
                $("#login-holder").fadeOut(200, function () {
                    $("#login-holder").html($(response.html));
                    if (secondaryNav.getAttribute("rel") == "EN") {
                        secondaryNav.style.width = "532px";
                    }
                    $("#login-holder").fadeIn(400);
                });
            }
            if (response.commentHtml) {
                $("#comment-action").html($(response.commentHtml));
            }
            if (response.infoMessage) {
                jQuery.prompt(response.infoMessage);
            }
            $(".btn_press_login").unbind("click", showLoginBox)
        }
        //$("#login_box").unblock();
        $("#form-login").bind("submit", submitLogin);
        $('.Overlay, .FBLoaderImage').fadeOut(200);
    }, "json");

    return false;
}
