﻿/// <reference path="./API/Agility.UGC.API.js" />

Agility.RegisterNamespace("Subaru.ContextUtil");

(function(ContextUtil) {

    ContextUtil.SelectedActivityType = -1;
    ContextUtil.SelectedProvince = null;
    ContextUtil.ActivityData = null;
    ContextUtil.CurrentUserID = -1;

    var AuthCookieName = null;

    ContextUtil.InitializeAuthenticationCookie = function(cookieName) {
        AuthCookieName = cookieName;
    };

    ContextUtil.IsAuthenticated = function() {
        if (ContextUtil.GetCurrentUserID() > 0) {
            return true;
        }
        else {
            return false;
        }
    };

    ContextUtil.GetCurrentUsername = function() {
        try {
            var username = $("#pnlLoginArea .Username").html();
            if (username != null && username != undefined && username.length > 0) {
                return username;
            } else {
                return "";
            }
        }
        catch (e) {
            return "";
        }
    };

    ContextUtil.GetCurrentUserID = function() {

        if (ContextUtil.CurrentUserID > 0) {
            return ContextUtil.CurrentUserID;
        } else {
            var userid = Subaru.AgilityData.GetCurrentUserID();

            if (userid > 0) {
                ContextUtil.CurrentUserID = userid;
                return ContextUtil.CurrentUserID;
            }
            return -1;
        }
    };

    ContextUtil.SetSelectedActivityType = function(sender, activityId, title) {

        ContextUtil.SelectedActivityType = activityId;
        $("#MainActivityTypeHover").text(title);
        $("#MainActivityType").text(Subaru.TemplateUtils.AddElipseIfRequired(title, 14, true));

        $("img.TypeImage").each(function() {
            $(this).attr("src", $(this).attr("originalSrc"));
        });

        $(sender).children(".TypeImage").attr("src", $(sender).children(".TypeImage").attr("altSrc"));

        Subaru.TemplateUtils.ReturnMapControl();
    };

    ContextUtil.SetSelectedProvince = function(sender, provinceID, name, newMapUrl) {
        
        if (provinceID > 0) {
            ContextUtil.SelectedProvince = provinceID;
        }
        else {
            ContextUtil.SelectedProvince = null;
        }

        $("#MainProvincesMenuHover").text(name);
        $("#ProvinceSelection").text(name);

        $("#ProvinceMenuMap").attr("src", newMapUrl);

        $("div.ProvinceSelected").attr("class", "Province");

        var provinceItem = $("div.Province[provinceid='" + provinceID + "']");
        provinceItem.attr("class", "ProvinceSelected");

        setTimeout("Subaru.TemplateUtils.ReturnMapControl()", 200);
    };

    ContextUtil.SetCurrentActivityData = function(data) {
        if (ActivityData == null) {
            ActivityData = new Object();
        }
        //create the dictionary of items with the ID as the Key
        for (var i = 0; i < data.length; i++) {
            ActivityData[data[i].ID] = data[i];
        }
    };

    ContextUtil.GetActivity = function(activityID) {
        if (ActivityData[activityID] != null) {
            return ActivityData[activityID];
        }
        else {
            Agility.UGC.API.GetRecord(activityID, function(data) {
                if (data.ResponseType != Agility.UGC.API.ResponseType.OK) {
                } else {
                    data.ResponseData
                }
            });
        }
    };

})(Subaru.ContextUtil);