﻿/// <reference path="../Modules/WelcomeScreen.js" />
/// <reference path="../Modules/SearchResults.js" />
/// <reference path="../AgilityData.js" />

Agility.RegisterNamespace("Subaru.TemplateUtils");


(function(TemplateUtils) {

    TemplateUtils.ShowActivityMenu = function() {
        TemplateUtils.LoadDefaultScreen();
        TemplateUtils.ToggleActivityMenu(true);
    };

    TemplateUtils.ToggleActivityMenu = function(displayMenu) {

        TemplateUtils.CloseMenuItemIfOpened("Provinces", "MainProvinceDropdown");

        var activityPanel = $('#ActivityTypes');
        var activityMenuButton = $('#MainActivityDropdown');

        if (displayMenu) {

            Subaru.MapUtils.ToggleControls(false);

            activityMenuButton.hide();
            activityPanel.show();
        }
        else {
            activityPanel.hide();
            activityMenuButton.show();

            Subaru.MapUtils.ToggleControls(true);
        }
    };

    TemplateUtils.ShowProvincesMenu = function() {
        TemplateUtils.LoadDefaultScreen();
        TemplateUtils.ToggleProvinceMenu(true);
    };

    TemplateUtils.ToggleProvinceMenu = function(displayMenu) {

        TemplateUtils.CloseMenuItemIfOpened("ActivityTypes", "MainActivityDropdown");

        var provincePanel = $('#Provinces');

        var provinceMenuButton = $('#MainProvinceDropdown');

        if (displayMenu) {

            Subaru.MapUtils.ToggleControls(false);

            provinceMenuButton.hide();
            provincePanel.show();
        }
        else {
            provincePanel.hide();
            provinceMenuButton.show();

            Subaru.MapUtils.ToggleControls(true);
        }
    };

    TemplateUtils.CloseMenuItemIfOpened = function(panelName, panelButton) {
        var panel = $('#' + panelName);

        if (panel.css("display") != "none") {
            var button = $('#' + panelButton);
            panel.hide();
            button.show();
        }
    };

    TemplateUtils.ReturnMapControl = function() {
        TemplateUtils.ToggleActivityMenu(false);
        TemplateUtils.ToggleProvinceMenu(false);
    };

    TemplateUtils.ApplyExploreFilter = function() {
        Subaru.ActivityDetails.HideDetails();

        Subaru.MapUtils.LoadActivities();
        Subaru.ActivitySearchResults.PerformExploreSearch(Subaru.ContextUtil.SelectedActivityType, Subaru.ContextUtil.SelectedProvince, "LikeCount");
        Subaru.MapUtils.ClearAllMapData();
    };

    TemplateUtils.S3ThumbURL = function(attachmentURL, width, height) {

        var url = "./thumbS3.ashx?img=" + escape(attachmentURL) + "," + width + "," + height;

        return url
    };

    TemplateUtils.LoadDefaultScreen = function() {
        try {
            Subaru.WelcomeScreen.Close();
            Subaru.MapUtils.DeleteYouAreHereLayer();
        } catch (e) { }
        try {
            Subaru.ActivitySearchResults.CloseSearchResults();
        } catch (e) { }
        try {
            Subaru.ActivityDetails.HideDetails();
        } catch (e) { }
        try {
            if (Subaru.MapUtils.MapMode != "Default") {
                Subaru.MapUtils.ReturnToDefaultMap();
            }
        } catch (e) { }
    };

    TemplateUtils.AddElipseIfRequired = function(stringValue, maxLength, maxLengthIncludesElipse) {

        try {
            if (stringValue.length <= maxLength) {
                return stringValue;
            }
            else {
                if (maxLengthIncludesElipse) {
                    return stringValue.substring(0, maxLength - 3) + "...";
                }
                else {
                    return stringValue.substring(0, maxLength) + "...";
                }
            }
        } catch (e) {
            return stringValue;
        }
    };

    TemplateUtils.ShowOutbackContest = function() {
        Subaru.DrivenByOutback.Open();
    };

    TemplateUtils.CloseAllDialogs = function() {
        try {
            Subaru.ActivitySearchResults.CloseSearchResults();

        } catch (e) { }
        try {
            Subaru.ActivityDetails.HideDetails();
        } catch (e) { }
        try {
            Subaru.WelcomeScreen.Close();
            Subaru.MapUtils.DeleteYouAreHereLayer();
        } catch (e) { }
    };

    TemplateUtils.ShowSubaruCA = function() {
        var url = Subaru.AgilityData.GetGlobalLanguageResource("SubaruURL");

        if (url != null && url.length > 0) {
            window.open(url, "SubaruCA");
        }
    };

})(Subaru.TemplateUtils);

