﻿var BuddyAdd = {
    aspxMasterPrefix: "ctl00_",
    aspxPrefix: "ctl00_ContentPlaceHolder_",

    addAsBuddy: function() {
        document.getElementById("AddBuddyNotLoggedInDiv").style.display = "none";
        document.getElementById("AddBuddySuccessDiv").style.display = "none";
        document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyAddButton").style.display = "none";
        document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyCancelButton").style.display = "none";
        document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyCloseButton").style.display = "none";

        var token = document.getElementById(BuddyAdd.aspxMasterPrefix + "DelegatedTokenHiddenField").value;
        if (token == "") {
            document.getElementById("AddBuddyNotLoggedInDiv").style.display = "block";
            document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyAddButton").style.display = "inline";
            document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyCancelButton").style.display = "inline";
            document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyCloseButton").style.display = "none";
            return;
        }

        document.getElementById("AddBuddyBusyDiv").style.display = "block";
        document.getElementById("AddBuddyStartDiv").style.display = "none";

        BuddyAdd.inviteBotAndRegister(token, function() {
            document.getElementById("AddBuddySuccessDiv").style.display = "block";
            document.getElementById("AddBuddyBusyDiv").style.display = "none";
            document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyCloseButton").style.display = "block";
        });

    },

    inviteBotAndRegister: function(userToken, callback) {
        var token = unescape(userToken);

        var delAuthIdentity = new Microsoft.Live.Messenger.DelegatedAuthIdentity(token);
        delAuthIdentity.add_authenticationCompleted(function(e) {
            var user = new Microsoft.Live.Messenger.User(delAuthIdentity);
            user.add_signInCompleted(function(es) {
                user.add_addContactCompleted(function(es) {
                    AreYouLive.WebServices.BuddyService.CreateContact(user.get_identity().get_liveId(), "", "", null, "Unspecified");

                    if (callback)
                        callback();

                });
                user.addContact("rulive@live.nl", "RULive?", null);

            });
            user.signIn();
        });
    },

    reset: function() {
        document.getElementById("AddBuddyStartDiv").style.display = "block";
        document.getElementById("AddBuddyNotLoggedInDiv").style.display = "none";
        document.getElementById("AddBuddySuccessDiv").style.display = "none";
        document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyAddButton").style.display = "inline";
        document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyCancelButton").style.display = "inline";
        document.getElementById(BuddyAdd.aspxMasterPrefix + "AddBuddyCloseButton").style.display = "none";
    }
}

$(document).ready(function() {
    $("#ctl00_AddBuddyAddButton").click(function() {
        BuddyAdd.addAsBuddy();
        return false;
    });
    $("#ctl00_AddBuddyButton").click(function() {
        var token = document.getElementById(BuddyAdd.aspxMasterPrefix + "DelegatedTokenHiddenField").value;
        if (token != "") {
            BuddyAdd.reset();
        }

        return true;
    });

    var addToScrollOfFameLink = document.getElementById("AddToScrollOfFame");
    if (addToScrollOfFameLink != null) {
        $(addToScrollOfFameLink).click(function() {
            BuddyAdd.reset();
            var token = document.getElementById(BuddyAdd.aspxMasterPrefix + "DelegatedTokenHiddenField").value;
            if (token != "") {
                var modalPopupBehaviorCtrl = $find('AddBuddyModalPopup');
                modalPopupBehaviorCtrl.show();
            } else {
                location.href = "about.aspx?p=4";
            }

            return false;
        });
    }
});