﻿/// <reference path="~/js/jquery-1.4.1-vsdoc2.js" />
/// <reference path="~/js/json2_min.js" />

$(function() {
    moc.provide("site.usercontrol.guildheader"
    , {
        constants: {
            invalidColor: "#e0ffff"
            , validColor: "#ffffff"
            , redColor: "#F6CECE"
            , greenColor: "#A9F5A9"

} // moc.site.usercontrol.guildheader.constants

        , resources: {

            errorText: {

                ph: ""

            }, // moc.site.usercontrol.guildheader.errorConst

            labels: {

                ph: ""

} // moc.site.usercontrol.guildheader.resources.labels
} // moc.site.usercontrol.guildheader.resources

        , selectors: {

            loggedOutNav: null
            , loggedInNav: null
            , allLogin: null
            , allLogout: null
            , headerLoginUsername: null
            , headerLoginPassword: null
            , headerFbLogin: null
            , headerFbConnect: null
            , headerFbConnectLi: null
            , lbLogout: null

            , init: function() {
                this.loggedOutNav = $("#loggedOutNav");
                this.loggedInNav = $("#loggedInNav");
                this.allLogout = $(".logout");
                this.headerLoginUsername = $("#headerLoginUsername");
                this.headerLoginPassword = $("#headerLoginPassword");
                this.headerMocLogin = $("#headerMocLogin");
                this.headerFbLogin = $("a[id$='headerFbLogin']");
                this.headerFbConnect = $("a[id$='headerFbConnect']");
                this.headerFbConnectLi = $("#headerFbConnectLi");
                this.lbLogout = $("a[id$='lbLogout']");
            }

} // moc.site.usercontrol.guildheader.selectors  

        , membership: {

            on_login: function(data) {
                moc.site.usercontrol.guildheader.selectors.allLogout.text("Logout: " + userInfo.userName);
                window.location.reload(true);
            }

            , on_loginErr: function(status) {
                alert("error" + status);
            }

            , on_logout: function(data) {
                window.location.reload(false);
            }

            , on_logoutErr: function(status) {
                alert("error" + status);
            }

            , init: function() {
                moc.site.usercontrol.guildheader.selectors.headerFbLogin.click(function() {
                    var url = $(this).attr('href');
                    moc.navigation.windowPopup(url, '_blank', 'directories=0, location=0, menubar=0, resizable=1, scrollbars=0,status=1, titlebar=0, toolbar=0, height=400, width=500');
                    return false;
                });

                moc.site.usercontrol.guildheader.selectors.headerFbConnect.click(function() {
                    var url = $(this).attr('href');
                    moc.navigation.windowPopup(url, '_blank', 'directories=0, location=0, menubar=0, resizable=1, scrollbars=0,status=1, titlebar=0, toolbar=0, height=400, width=500');
                    return false;
                });

                if (userInfo.isLoggedIn) {
                    moc.site.usercontrol.guildheader.selectors.loggedInNav.show();

                    $(".unreadmsgs").text('' + userInfo.unreadMsgCount + ' Unread Messages');
                    if (userInfo.pendingFriendsCount > 0)
                        $(".pendingfriends").show().text('' + userInfo.pendingFriendsCount + ' Pending Friends');
                    else
                        $(".pendingfriends").hide();
                    $(".logout").text("Logout: " + userInfo.userName);

                    $(".viewprofile").attr("href", userInfo.viewProfileUrl);
                    $(".editprofile").attr("href", userInfo.editProfileUrl);

                    if (!userInfo.isFbConnected) {
                        moc.site.usercontrol.guildheader.selectors.lbLogout.css({ float: 'right' });
                        moc.site.usercontrol.guildheader.selectors.headerFbConnectLi.removeAttr('style');
                        moc.site.usercontrol.guildheader.selectors.headerFbConnect.show();
                    }
                    else {
                        moc.site.usercontrol.guildheader.selectors.lbLogout.removeAttr('style');
                        moc.site.usercontrol.guildheader.selectors.headerFbConnectLi.css({ 'text-align': 'right' });
                        moc.site.usercontrol.guildheader.selectors.headerFbConnect.hide();
                    }
                }
                else {
                    moc.site.usercontrol.guildheader.selectors.loggedOutNav.show();
                }

                moc.site.usercontrol.guildheader.selectors.headerLoginUsername.keyup(function(event) {
                    if (event.keyCode == '13') {
                        var username = moc.site.usercontrol.guildheader.selectors.headerLoginUsername.val();
                        var password = moc.site.usercontrol.guildheader.selectors.headerLoginPassword.val();
                        if (username.length > 0 && password.length > 0)
                            moc.membership.doLogin(username, password);
                        return false;
                    }
                });

                moc.site.usercontrol.guildheader.selectors.headerLoginPassword.keyup(function(event) {
                    if (event.keyCode == '13') {
                        var username = moc.site.usercontrol.guildheader.selectors.headerLoginUsername.val();
                        var password = moc.site.usercontrol.guildheader.selectors.headerLoginPassword.val();
                        if (username.length > 0 && password.length > 0)
                            moc.membership.doLogin(username, password);
                        return false;
                    }
                });

                //moc.site.usercontrol.guildheader.selectors.allLogout.click(function() { moc.membership.doLogOut(moc.site.usercontrol.guildheader.membership.on_logout); return false; });
                moc.site.usercontrol.guildheader.selectors.headerMocLogin.click(function() {
                    var username = moc.site.usercontrol.guildheader.selectors.headerLoginUsername.val();
                    var password = moc.site.usercontrol.guildheader.selectors.headerLoginPassword.val();
                    moc.membership.doLogin(username, password);
                    return false;
                });
            } //  moc.site.usercontrol.guildheader.membership.init
} //  moc.site.usercontrol.guildheader.membership

        , navigation: {

            reloadPage: function() {
                window.location.reload(true);
            } //  moc.site.usercontrol.guildheader.navigation.reloadPage

            , init: function() {
                $(".viewprofile").attr("href", userInfo.viewProfileUrl);
                $(".editprofile").attr("href", userInfo.editProfileUrl);
            }
}//  moc.site.usercontrol.guildheader.navigation

        , init: function() {
            moc.site.usercontrol.guildheader.selectors.init();
            moc.site.usercontrol.guildheader.navigation.init();
            moc.site.usercontrol.guildheader.membership.init();

        } // moc.site.usercontrol.guildheader.init
        }); // moc.site.usercontrol.header   
    });

$(function() {
    moc.site.usercontrol.guildheader.init();
});

