﻿var Mackolik = Mackolik || {};

Mackolik.User = {
    userLoggedIn: false,
    getForumSession: function() {
        //        var url = USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=forumSession';
        //        var callback = new AjaxCallback(function(response) { Mackolik.User.getForumSessionCompleted(response) });
        //        var transaction = YAHOO.util.Connect.asyncRequest( 'POST', url, callback ); 
        var remoteUrl = USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=forumSession';
        var url = '/RegularProxy.ashx?url=' + encodeURIComponent(remoteUrl);
        var callback = new AjaxCallback(function(response) { Mackolik.User.getForumSessionCompleted(response); });
        var transaction = YAHOO.util.Connect.asyncRequest('POST', url, callback);
    },
    getForumSessionCompleted: function(response) {
        document.getElementById('dvUserControl').innerHTML = response.responseText;
    },
    login: function(form) {
        YAHOO.util.Connect.setForm(form);
        var url = USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=login';
        var callback = new AjaxCallback(function(response) { Mackolik.User.loginCompleted(response); });
        var transaction = YAHOO.util.Connect.asyncRequest('POST', url, callback);
    },
    loginCompleted: function(response) {
        eval(response.responseText);
    },
    logout: function() {
        var url = USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=logout';
        $.get(url, Mackolik.User.logoutCompleted);
    },
    logoutCompleted: function() {
        document.location.reload();
    },
    closeBlockDiv: function() {
        var blockDiv = document.getElementById("dvBlock");
        var chDiv = document.getElementById("dvLeagueSelection");
        document.body.removeChild(blockDiv);
        chDiv.style.display = "none";
        //document.getElementById("dvTopBanner").style.visibility = "visible";
        var aFrames = document.getElementsByTagName("iframe");
        for (var i = 0; i < aFrames.length; i++) {
            aFrames[i].style.visibility = "visible";
        }
        window.onscroll = "";
    },
    mergeAccounts: function(form) {
        YAHOO.util.Connect.setForm(form);
        var url = USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=merge';
        var callback = new AjaxCallback(function(response) { Mackolik.User.mergeAccountsCompleted(response); });
        var transaction = YAHOO.util.Connect.asyncRequest('POST', url, callback);
    },
    mergeAccountsCompleted: function(response) {
        eval(response.responseText);
    },
    register: function(form) {
        YAHOO.util.Connect.setForm(form);
        var url = USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=register';
        var callback = new AjaxCallback(function(response) { Mackolik.User.registerCompleted(response); });
        var transaction = YAHOO.util.Connect.asyncRequest('POST', url, callback);
    },
    registerCompleted: function(response) {
        eval(response.responseText);
    },
    registerFacebook: function(form) {
        YAHOO.util.Connect.setForm(form);
        var url = USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=register&fb=1';
        var callback = new AjaxCallback(function(response) { Mackolik.User.registerCompleted(response); });
        var transaction = YAHOO.util.Connect.asyncRequest('POST', url, callback);
    },
    update: function(form) {
        YAHOO.util.Connect.setForm(form);

        var url = USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=update';
        var callback = new AjaxCallback(function(response) { Mackolik.User.updateCompleted(response); });
        var transaction = YAHOO.util.Connect.asyncRequest('POST', url, callback);
    },
    updateCompleted: function(response) {
        eval(response.responseText);
    },
    forgotPassword: function(form) {
        YAHOO.util.Connect.setForm(form);

        var url = USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=forgot';
        var callback = new AjaxCallback(function(response) { Mackolik.User.forgotPasswordCompleted(response) });
        var transaction = YAHOO.util.Connect.asyncRequest('POST', url, callback);
    },
    forgotPasswordCompleted: function(response) {
        eval(response.responseText);
    },

    facebook: {
        init: function() {
            FB.init({
                appId: '117408951656499',
                cookie: true,
                status: true,
                xfbml: true
            });
            $("#btnFacebook").click(function() {
                FB.login(function(response) {
                    if (response.session) {
                        if (response.perms) {
                            Mackolik.User.facebook.login(response.session);
                        } else {
                            // user is logged in, but did not grant any permissions
                        }
                    } else {
                        // user cancelled login
                    }
                }, { scope: 'email,user_birthday,publish_stream,offline_access' });
            });
        },
        autologin: function() {
            /*if (!Mackolik.User.isLoggedIn) {*/
            FB.getLoginStatus(function(response) {
                if (response.session) {
                    Mackolik.User.facebook.login(response.session, true);
                } else {
                    // no user session available, someone you dont know
                }
            });
            //}
        },
        login: function(session, isAutoLogin) {
            FB.api('/me', function(response) {
                Mackolik.User.facebook.getUserInfo(response, isAutoLogin);
            });
        },

        logout: function() {
            FB.logout(function(response) {
                Mackolik.User.logout();
            });
        },

        getUserInfo: function(user) {
            $.ajax({
                url: USR_APP_ROOT + '/AjaxHandlers/UserHandler.aspx?command=facebookLogin',
                success: function(result) {
                    if (result != "error") {
                        document.location.reload();
                    }
                }
            });
        }
    }
};

