﻿var currentProviderUID;
var currentProviderUserName;
var currentProviderEmail;
var currentProviderFirstName;
var currentProviderLastName;
var currentProviderGender;
var currentProviderBirthday;
var isLogin = false;
var registerUserToAds = false;

function InitFacebookConnect() {
    window.fbAsyncInit = function () {
        FB.init({ appId: '159652850757022', status: true, cookie: true, xfbml: true });

        //        FB.Event.subscribe('auth.login', function (response) {
        //            currentProviderUID = response.session.uid;
        //            ConnecBySocialNetwork(response.session.uid);
        //        });
        //        FB.Event.subscribe('auth.logout', function (response) {
        //            //On facebook logout
        //        });

        //        FB.getLoginStatus(function (response) {
        //            if (response.session) {
        //                //                currentProviderUID = response.session.uid;
        //                //                ConnecBySocialNetwork();
        //            }
        //        });
    };
    (function () {
        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.src = 'https://connect.facebook.net/en_US/all.js#xfbml=1';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    } ());
}

function GetFacebookStatus() {
    document.getElementById('imgLoading').style.display = 'block';
    FB.getLoginStatus(function (response) {
        if (response.session) {
            ConnecBySocialNetworkLogic(response.session.uid);
        }
        else {
            FB.login(function (response) {
                if (response.session) {
                    ConnecBySocialNetworkLogic(response.session.uid);
                }
            }, {
                perms: 'email,publish_stream'
            });
        }
    });
}

function ConnecBySocialNetworkLogic(uid) {
    currentProviderUID = uid;
    ConnecBySocialNetwork();
}

function LogoutFromFacebook() {
    document.location = '/';
}

function ConnecBySocialNetwork() {
    FB.api({ method: 'fql.query', query: 'SELECT name,email,first_name,last_name,sex FROM user WHERE uid=' + currentProviderUID }, function (response) {
        currentProviderEmail = response[0].email;
        currentProviderUserName = response[0].name;
        currentProviderFirstName = response[0].first_name;
        currentProviderLastName = response[0].last_name;
        currentProviderGender = response[0].sex;
        currentProviderBirthday = ''; // response[0].birthday;
        ConnectUserToSocialNetwork('1', currentProviderUID, currentProviderEmail, currentProviderUserName, currentProviderFirstName, currentProviderLastName, currentProviderGender);
    });
}

function userInfoCallback(response) {
    alert(response.email);
}

function ConnectUserToSocialNetwork(providerId, providerUId, providerEmail, providerUserName, currentProviderFirstName, currentProviderLastName, currentProviderGender) {
    var enProviderId = encodeURIComponent(providerId);
    var enProviderUId = encodeURIComponent(providerUId);
    var enProviderEmail = encodeURIComponent(providerEmail);
    var enProviderUserName = encodeURIComponent(providerUserName);
    var enProviderFirstName = encodeURIComponent(currentProviderFirstName);
    var enProviderLastName = encodeURIComponent(currentProviderLastName);
    var enProviderGender = encodeURIComponent(currentProviderGender);
    var enProviderBirthday = encodeURIComponent(currentProviderBirthday);

    var url = "/news/ashx_handlers/SocialNetworks/ConnectUserToSocialNetwork.ashx?providerId=" + enProviderId + "&providerUId=" + enProviderUId + "&providerEmail=" + enProviderEmail + "&providerUserName=" + enProviderUserName + "&providerFirstName=" + enProviderFirstName + "&providerLastName=" + enProviderLastName + "&providerGender=" + enProviderGender + "&providerBirthday=" + enProviderBirthday;
    if (isLogin) {
        url += "&isLogin=1";
    }
    if (registerUserToAds) {
        url += "&ads=1";
    }
    GetAsynchronousData(url, "ConnectUserToSocialNetworkCallback(xmlHttp.responseText)")
}

function ConnectUserToSocialNetworkCallback(result) {
    var connectionData = result.split('-@@@-');
    if (connectionData[0] == 'Linked') {
        DoSocialLogin(connectionData[1], connectionData[2], connectionData[3], '', '/pay/globesloginsuccess.asp');
    }
    else if (connectionData[0] == 'isLogin') {
        location.href = '/pay/globesloginsuccess.asp?backTo=/news';
    }
    else {
        ShowErrorMessage('ארעה שגיאה - עקב הגדרות אבטחה בחשבון הפייסבוק שלך לא ניתן להשלים את תהליך הרישום', "txtEmail")
        document.getElementById('imgLoading').style.display = 'none';
    }
}

function DoSocialLogin(loginName, loginCO, loginVC, p_backTo, loginBackTo) {
    var qs = new Querystring();
    var callbackPage = encodeURIComponent(qs.get("p_backTo"));
    if (callbackPage != null && callbackPage != 'null' && callbackPage != '') {
        loginBackTo = callbackPage;
    }

    var url = "/pay/loginsubmitn.asp?loginType=social&loginName=" + escape(loginName) + "&loginCO=" + escape(loginCO) + "&loginVC=" + escape(loginVC) + "&p_backTo=" + p_backTo + "&loginBackTo=" + loginBackTo;
    document.location = url;
}

function GetProviderLoginImage() {
    var qs = new Querystring();
    var provider = qs.get("socialId");
    document.getElementById("imgProvider").src = 'http://images.globes.co.il/images/site2/SocialNetworks/' + provider + '_50_on.png';
}

function PostContentOnUserFacebookWall(content, title, caption, description, url) {
    FB.api({ method: 'fql.query', query: 'SELECT publish_stream FROM permissions WHERE uid=' + 'me()' }, function (resp) {
        if (resp[0] == null) {
            RequestFacebookWallPermissions();
        }
        else {
            if (resp[0]['publish_stream'] == 1) {
                PostContentOnUserFacebookWallApi(content, title, caption, description, url);
            }
            else {
                RequestFacebookWallPermissions();
            }
        }
    });
}

function RequestFacebookWallPermissions() {
    var data =
    {
        method: 'permissions.request',
        perms: 'publish_stream',
        display: 'popup'
    }
    FB.ui(data, RequestFacebookWallPermissionsCallback);
}

function RequestFacebookWallPermissionsCallback(response) {
    if (!response || response.error) {
    }
    else {
        PostContentOnUserFacebookWallApi();
    }
}

function PostContentOnUserFacebookWallApi(content, title, caption, description, url) {
    FB.api('/me/feed', 'post', {
        message: content,
        name: title,
        caption: caption,
        description: description,
        link: url
    },
        function (response) {
            if (!response || response.error) {
            }
            else {
                //alert('posted!');
            }
        });
}
