﻿/// <reference path="../ActivityDataAccess.js" />
/// <reference path="../AgilityData.js" />
/// <reference path="../MapUtils.js" />
/// <reference path="../FavouriteDataAccess.js" />


Agility.RegisterNamespace("Subaru.ActivityDetails");

(function(ActivityDetails) {


    $(function() {
        setTimeout("Subaru.ActivityDetails.initializeHash()", 500);
    });

    var CurrentActivity = new Object();
    var ActivityPanelLoaded = false;
    var ErrorOccured = false;
    var MediaDialog = null;
    var ShareThisDefaultLeftPosition = null;
    var ActivityDetailsConfigurationData = null;


    ActivityDetails.initializeHash = function() {
        //read the hash and check for the activity id in the hash
        if (location.hash != null && location.hash.indexOf("activity=") != -1) {
            var h = location.hash;
            h = h.substring(h.indexOf("activity=") + "activity=".length);
            var actID = parseInt(h);
            if (!isNaN(actID)) {
                ActivityDetails.LoadActivity(actID);
            }
        }
    }

    ActivityDetails.CheckQueryString = function() {
        var qActID = Agility.QueryString("activity");
        if (!isNaN(parseInt(qActID))) {
            location.href = location.pathname + "#activity=" + qActID;
        }
    }

    ActivityDetails.LoadActivity = function(ActivityID) {
        try {
            Subaru.MapUtils.ClearAllMapData();
            Subaru.WelcomeScreen.Close();

            Subaru.MapUtils.DeleteYouAreHereLayer();
        }
        catch (e) { }

        Subaru.MapUtils.MapMode = "Route";
        Subaru.ActivitySearchResults.CloseSearchResults();

        //loads the agility language data
        Subaru.AgilityData.LoadContentItem("ActivityDetailsConfiguration", ActivityDetails.ActivityDetailsConfigCallback);

        Subaru.ActivityDataAccess.GetActivity(ActivityID, ActivityDetails.GetActivityCallback);

    }

    ActivityDetails.ActivityDetailsConfigCallback = function(data) {
        if (data != null && data != undefined) {
            ActivityDetailsConfigurationData = data;
        }
    }

    ActivityDetails.ToggleTab = function(sender, LoadTabID) {
        var tabToLoad = $("#" + LoadTabID);

        $("#ActivityDetailsMainContnet .TabItem").each(function() {
            $(this).addClass("Off");
        });
        $(sender).removeClass("Off");

        $("#ActivityDetailsDescription").hide();
        $("#ActivityDetailsDetails").hide();
        $("#ActivityDetailsReviews").hide();
        $("#ActivityDetailsPhotosAndMedia").hide();
        $("#ActivityDetailsWriteReview").hide();

        tabToLoad.show();
    }

    ActivityDetails.GetActivityCallback = function(data) {

        if (data.ResponseType != Agility.UGC.API.ResponseType.OK) {
            ErrorOccured = true;
        } else {
            try {
                CurrentActivity.Activity = data.ResponseData;
                var detailsPanel = $("#ActivityDetails");
                var templateUrl = Agility.ResolveUrl("~/ClientTemplates/ActivityDetails.htm");
                detailsPanel.setTemplateURL(templateUrl);
                detailsPanel.setParam("SubmittedBy", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_SubmittedBy"));

                //detailsPanel.setParam("SubmittedByUser", "Subaru");

                detailsPanel.setParam("Description", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Description"));
                detailsPanel.setParam("Details", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Details"));
                detailsPanel.setParam("Reviews", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Reviews"));

                detailsPanel.setParam("PhotosAndMedia", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_PhotosAndMedia"));
                detailsPanel.setParam("ReturnToSearch", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_ReturnToSearch"));
                detailsPanel.setParam("ShareThisImage", Subaru.AgilityData.FindContentItemProperty(ActivityDetailsConfigurationData, "ShareThisButton"));

                detailsPanel.setParam("TrackingURL", 
                    Agility.ResolveUrl("~/PageTracking.aspx") + "?Action=LoadActivity&ID=" + CurrentActivity.Activity.ID);

                var dataArray = new Array();

                dataArray[0] = data.ResponseData;

                detailsPanel.processTemplate(dataArray);

                //Load AddThis.com functionality
                ActivityDetails.LoadShareThis();

                detailsPanel.fadeIn("slow");
                ActivityPanelLoaded = true;

                //set the hash...
                location.hash = "activity=" + CurrentActivity.Activity.ID;

                Subaru.ActivityDataAccess.GetActivityDetails(data.ResponseData.ID, ActivityDetails.GetActivityDetailsCallback);
                Subaru.ActivityDataAccess.GetActivityReviews(data.ResponseData.ID, ActivityDetails.GetActivityReviewsCallback);
                Subaru.ActivityDataAccess.GetActivityMedia(data.ResponseData.ID, ActivityDetails.GetActivityMediaCallback);

            } catch (err) {
                ErrorOccured = true;
            }
        }
    }

    ActivityDetails.LoadShareThis = function() {

        var activityUrl = "?activity=" + CurrentActivity.Activity.ID;

        var path = location.href.substring(0, location.href.toLowerCase().indexOf("/home.aspx") + 10);

        activityUrl = path + activityUrl;

        addthis.button('#ActivityDetails_AddThis',
            {
                ui_click: true
            },
            {
                url: activityUrl,
                title: CurrentActivity.Activity.Title
            }
        );
    }

    ActivityDetails.AdjustShareThisPosition = function() {

        var wrapper = $(".stwrapper");

        var value = null;
        if (ShareThisDefaultLeftPosition == null) {

            ShareThisDefaultLeftPosition = wrapper.css("left");
        }

        if (ShareThisDefaultLeftPosition != null) {
            value = ShareThisDefaultLeftPosition.replace("px", "");

            value = value - 255;

            wrapper.css("left", value + "px");
        }
        wrapper.css("z-index", 100000);
        //alert(wrapper.html());
        wrapper.show();
    }

    ActivityDetails.GetActivityDetailsCallback = function(data) {
        if (data.ResponseType != Agility.UGC.API.ResponseType.OK) {
            ErrorOccured = true;
            // alert(data.Message);
        } else {

            CurrentActivity.Details = data.ResponseData;

            var mapData = "";
            if (CurrentActivity.Details != null) {
                mapData = CurrentActivity.Details.MappingData;

            }

            Subaru.MapUtils.CreateRoute(CurrentActivity.Activity.StartLatitude, CurrentActivity.Activity.StartLongitude, CurrentActivity.Activity.TypeID, mapData);

            var descriptionPanel = $("#ActivityDetailsDescription");

            var templateUrl = Agility.ResolveUrl("~/ClientTemplates/ActivityDetails_Description.htm");
            descriptionPanel.setTemplateURL(templateUrl);

            descriptionPanel.setParam("PhotoCreditDescription", CurrentActivity.Activity.PhotoCreditDescription);
            descriptionPanel.setParam("ImageUrl", Subaru.TemplateUtils.S3ThumbURL(Agility_BaseS3Url + "/" + CurrentActivity.Activity.PrimaryImage, 210, 130));
            descriptionPanel.setParam("EstimatedDistanceLabel", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Description_EstimatedDistance"));
            descriptionPanel.setParam("GetDirectionsLabel", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Description_GetDirections"));
            descriptionPanel.setParam("CallFavourite", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Description_CallThisFavourite"));
            descriptionPanel.setParam("PrintActivity", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Description_PrintActivity"));
            descriptionPanel.setParam("Province", Subaru.AgilityData.GetProvinceNameByID(CurrentActivity.Activity.ProvinceID));
            descriptionPanel.setParam("LangCode", Subaru.AgilityData.GetGlobalLanguageResource("LanguageCode"));

            var data = new Array();
            data[0] = CurrentActivity.Details;

            descriptionPanel.processTemplate(data);

            //Favorite counter
            $("img.FavouriteAction").click(function() {
                //No need to be logged-in to set favorite
                Subaru.FavouriteDataAccess.FlagActivityAsFavourite(CurrentActivity.Activity.ID, Subaru.ContextUtil.GetCurrentUserID(), ActivityDetails.FlagFavouriteCallback);
            });
            Subaru.FavouriteDataAccess.GetFavouriteCountByActivityID(CurrentActivity.Activity.ID, ActivityDetails.FavCountCallback);

            descriptionPanel.show();

            var detailsPanel = $("#ActivityDetailsDetails");
            var jsonAddtionalFeildData = null;
            if (CurrentActivity.Details != null) {
                if (CurrentActivity.Details.AdditionalFieldData != null && CurrentActivity.Details.AdditionalFieldData.length > 0) {
                    jsonAddtionalFeildData = eval(CurrentActivity.Details.AdditionalFieldData);
                }
            }

            var templateUrl = Agility.ResolveUrl("~/ClientTemplates/ActivityDetails_Details.htm");
            detailsPanel.setTemplateURL(templateUrl);
            detailsPanel.setParam("TagsLabel", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Details_TagsLabel"));
            detailsPanel.setParam("Tags", ActivityDetails.AddTagLinks(CurrentActivity.Activity.Tags));

            if (jsonAddtionalFeildData == null) {
                jsonAddtionalFeildData = new Array();
                detailsPanel.setParam("NoDetails", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Details_NoDetailsAvailable"));
            }

            detailsPanel.processTemplate(jsonAddtionalFeildData);
        }
    }

    ActivityDetails.FlagActivityAsFavouriteSmall = function(activityID) {
        Subaru.FavouriteDataAccess.FlagActivityAsFavourite(activityID, Subaru.ContextUtil.GetCurrentUserID(), ActivityDetails.FlagFavouriteCallback);
    }

    ActivityDetails.AddTagLinks = function(Tags) {
        var html = "";

        var tagList = Tags.split(",");

        for (var i = 0; i < tagList.length; i++) {
            var tag = tagList[i].replace(/^\s+|\s+$/g, "");

            if (tag != null && tag != "") {
                if (html != "") {
                    html += ", ";
                }
                html += "<a href=\"javascript:Subaru.ActivitySearchResults.PerformTagSearch('" + tag + "');\">" + tag + "</a>";
            }
        }

        return html;
    }

    ActivityDetails.FlagFavouriteCallback = function(Message) {
        if (Message == "AlreadyAdded") {
            alert(Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Description_AlreadyAddedFav"));
        }
        else {
            Subaru.FavouriteDataAccess.GetFavouriteCountByActivityID(CurrentActivity.Activity.ID, ActivityDetails.FavCountCallback);

            if (Message == "Success") {
                alert(Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Description_AddedFavSuccess"));
            }
            else if (Message == "Success-NoUserID") {
                alert(Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Description_AddedFavSuccessNoUserID"));
            }
        }
    }

    ActivityDetails.FavCountCallback = function(count) {
        $("#ActivityDetails_Description_FavCount").html(count);
    };

    ActivityDetails.GetActivityReviewsCallback = function(data) {
        if (data.ResponseType != Agility.UGC.API.ResponseType.OK) {

        } else {
            CurrentActivity.Reviews = data.ResponseData.Records;

            var detailsPanel = $("#ActivityDetailsReviews");

            var templateUrl = Agility.ResolveUrl("~/ClientTemplates/ActivityDetails_Reviews.htm");
            detailsPanel.setTemplateURL(templateUrl);
            detailsPanel.setParam("WrittenBy", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Reviews_WrittenBy"));
            detailsPanel.setParam("On", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Reviews_On"));
            detailsPanel.setParam("WriteReview", Subaru.AgilityData.FindContentItemProperty(ActivityDetailsConfigurationData, "WriteReviewButton"));
            detailsPanel.setParam("renderDate", ActivityDetails.RenderDate);

            if (CurrentActivity.Reviews.length == 0) {
                detailsPanel.setParam("NoReviews", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Reviews_NoReviews"));
            }

            detailsPanel.processTemplate(CurrentActivity.Reviews);

            $("#ActivityDetails_ReviewCount").html(CurrentActivity.Reviews.length);
        }
    };

    ActivityDetails.RenderDate = function(textDate) {
        try {
            var parts = textDate.split(" ");
            var dates = parts[0].split("-");
            var times = parts[1].split(":");
            var d = new Date(dates[0],
                parseInt(dates[1]) - 1, //Month adjusted 0-11
                dates[2], times[0], times[1], times[2], 0);
            return dateFormat(d, "mmm dd, yyyy");
        }
        catch (err) {
            return textDate;
        }
    };

    ActivityDetails.GetActivityMediaCallback = function(data) {
        if (data.ResponseType != Agility.UGC.API.ResponseType.OK) {

        } else {
            if (data.ResponseData.Records.length > 0) {

                CurrentActivity.Media = data.ResponseData.Records[0];
                var detailsPanel = $("#ActivityDetailsPhotosAndMedia");

                var processedMediaItems = new Array();

                if (CurrentActivity.Media.Image1 != "") {
                    var item = new Object();
                    item.Icon = Subaru.TemplateUtils.S3ThumbURL(Agility_BaseS3Url + "/" + CurrentActivity.Media.Image1, 136, 85);
                    item.FilePath = Agility_BaseS3Url + "/" + CurrentActivity.Media.Image1;
                    item.Text = CurrentActivity.Media.Image1Caption;
                    item.ID = processedMediaItems.length;
                    item.Type = "Image";
                    processedMediaItems[processedMediaItems.length] = item;
                }
                if (CurrentActivity.Media.Image2 != "") {
                    var item = new Object();
                    item.Icon = Subaru.TemplateUtils.S3ThumbURL(Agility_BaseS3Url + "/" + CurrentActivity.Media.Image2, 136, 85);
                    item.FilePath = Agility_BaseS3Url + "/" + CurrentActivity.Media.Image2;
                    item.Text = CurrentActivity.Media.Image2Caption;
                    item.ID = processedMediaItems.length;
                    item.Type = "Image";
                    processedMediaItems[processedMediaItems.length] = item;
                }
                if (CurrentActivity.Media.Image3 != "") {
                    var item = new Object();
                    item.Icon = Subaru.TemplateUtils.S3ThumbURL(Agility_BaseS3Url + "/" + CurrentActivity.Media.Image3, 136, 85);
                    item.FilePath = Agility_BaseS3Url + "/" + CurrentActivity.Media.Image3;
                    item.Text = CurrentActivity.Media.Image3Caption;
                    item.ID = processedMediaItems.length;
                    item.Type = "Image";
                    processedMediaItems[processedMediaItems.length] = item;
                }
                if (CurrentActivity.Media.Image4 != "") {
                    var item = new Object();
                    item.Icon = Subaru.TemplateUtils.S3ThumbURL(Agility_BaseS3Url + "/" + CurrentActivity.Media.Image4, 136, 85);
                    item.FilePath = Agility_BaseS3Url + "/" + CurrentActivity.Media.Image4;
                    item.Text = CurrentActivity.Media.Image4Caption;
                    item.ID = processedMediaItems.length;
                    item.Type = "Image";
                    processedMediaItems[processedMediaItems.length] = item;
                }

                if (CurrentActivity.Media.Video != "") {
                    var item = new Object();
                    item.Icon = "http://getoutmore.s3.amazonaws.com/VideoIcon.jpg";
                    item.FilePath = Agility_BaseS3Url + "/" + CurrentActivity.Media.Video;
                    item.Text = CurrentActivity.Media.VideoCaption;
                    item.ID = processedMediaItems.length;
                    item.Type = "Video";
                    processedMediaItems[processedMediaItems.length] = item;
                }
                if (CurrentActivity.Media.PDFDocument != "") {
                    var item = new Object();
                    item.Icon = "http://getoutmore.s3.amazonaws.com/PDFIcon.jpg";
                    item.FilePath = Agility_BaseS3Url + "/" + CurrentActivity.Media.PDFDocument;
                    item.Text = "";
                    item.ID = processedMediaItems.length;
                    item.Type = "PDF";
                    processedMediaItems[processedMediaItems.length] = item;
                }

                CurrentActivity.Media = processedMediaItems;
                var templateUrl = Agility.ResolveUrl("~/ClientTemplates/ActivityDetails_Media.htm");
                detailsPanel.setTemplateURL(templateUrl);

                if (processedMediaItems.length == 0) {

                    detailsPanel.setParam("NoMedia", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_PhotosAndMedia_NoMedia"));
                }

                detailsPanel.processTemplate(processedMediaItems);

                if (MediaDialog == null) {
                    MediaDialog = $("#ActivityDetails_MediaDialog").dialog({
                        autoOpen: false,
                        modal: true,
                        closeText: 'hide',
                        dialogClass: 'ActivityMediaDialog',
                        title: "Media",
                        resizable: false
                    });
                }
            }
        }
    };


    ActivityDetails.HideDetails = function() {
        MediaDialog = null;
        var detailsPanel = $("#ActivityDetails");
        detailsPanel.fadeOut("fast");

        //Never assign an empty value: reload the page in FF >= 3.0
        location.hash = "#";

        try {
            $(".stwrapper").hide();
        }
        catch (e) { }
        //detailsPanel.html("");
    };

    ActivityDetails.ToggleActivityDetails = function(sender) {
        var mainContentDiv = $("#ActivityDetailsMainContnet");
        var backToSearch = $("#ActivityDetails_BackToSearch");
        var ActivityToggleControl = $("#ActivityToggleControl");
        if (ActivityToggleControl.attr("class") == "Minus") {
            ActivityToggleControl.attr("class", "Plus");
            mainContentDiv.slideUp("Slow");

            var title = $("#MainActivityTitle").html();
            $("#ActivityToggleTitle").html(title);
            backToSearch.hide();
        }
        else {
            ActivityToggleControl.attr("class", "Minus");
            mainContentDiv.slideDown("Slow");
            $("#ActivityToggleTitle").html("");
            backToSearch.show();
        }
    };

    ActivityDetails.ReturnToSearch = function() {
        Subaru.MapUtils.MapMode = "Default";

        ActivityDetails.HideDetails();
        setTimeout("Subaru.ActivitySearchResults.RerunLastSearch()", 500);
        //setTimout("Subaru.MapUtils.ReturnToDefaultMap()", 1000);
    };

    ActivityDetails.ShowWriteReview = function() {

        if (Subaru.ContextUtil.IsAuthenticated()) {
            Subaru.AgilityData.LoadContentItem("WriteReviewForm", ActivityDetails.ShowWriteReviewCallback);
        }
        else {
            alert(Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_Reviews_PleaseLoginToReview"));
        }
    };

    ActivityDetails.ShowWriteReviewCallback = function(data) {
        var writeReviewPanel = $("#ActivityDetailsWriteReview");

        var templateUrl = Agility.ResolveUrl("~/ClientTemplates/ActivityDetails_WriteReview.htm");
        writeReviewPanel.setTemplateURL(templateUrl);
        writeReviewPanel.setParam("BackToReviewsLabel", Subaru.AgilityData.FindContentItemProperty(data, "BackToReviewsLabel"));
        writeReviewPanel.setParam("ReviewTitleLabel", Subaru.AgilityData.FindContentItemProperty(data, "ReviewTitleLabel"));
        writeReviewPanel.setParam("UsernameLabel", Subaru.AgilityData.FindContentItemProperty(data, "UsernameLabel"));
        writeReviewPanel.setParam("NoUsernameLabel", Subaru.AgilityData.FindContentItemProperty(data, "NoUsernameLabel"));
        writeReviewPanel.setParam("EnterReviewLabel", Subaru.AgilityData.FindContentItemProperty(data, "EnterReviewLabel"));
        writeReviewPanel.setParam("CancelButton", Subaru.AgilityData.FindContentItemProperty(data, "CancelButton"));
        writeReviewPanel.setParam("SubmitButton", Subaru.AgilityData.FindContentItemProperty(data, "SubmitButton"));
        writeReviewPanel.setParam("AgreementText", Subaru.AgilityData.FindContentItemProperty(data, "AgreementText"));

        writeReviewPanel.processTemplate(new Array());
        var reviewPanel = $("#ActivityDetailsReviews");

        reviewPanel.hide();

        writeReviewPanel.show();
    };

    ActivityDetails.CloseWriteReview = function() {
        $("#ActivityDetailsWriteReview").hide();
        $("#ActivityDetailsReviews").show();
    };

    ActivityDetails.SaveReview = function() {

        var title = $("#txtReviewTitle").val();
        var review = $("#txtReview").val();
        var dontShowUsername = $("#chkDontDisplayUsername:checked").is(':checked');


        var username = "";
        if (dontShowUsername) {
            dontShowUsername = true;
            username = "Anonymous";
        }
        else {
            dontShowUsername = false;
            username = Subaru.ContextUtil.GetCurrentUsername();
        }


        var userID = Subaru.ContextUtil.GetCurrentUserID();

        var record = null;


        var requiresModeration = Subaru.AgilityData.HasInappropriateWords(review + " " + title);


        record = {
            ID: -1,
            RecordTypeName: "ActivityReviews",
            Title: title,
            ActivityID: CurrentActivity.Activity.ID,
            ReviewBody: review,
            SubmittedByUserID: userID,
            ShowUserID: dontShowUsername,
            SubmittedUsername: username

        };


        Agility.UGC.API.SaveRecord(record, function(data) {

            if (data.ResponseType != Agility.UGC.API.ResponseType.OK) {
                ActivityDetails.CloseWriteReview();
                //alert(data.Message);
                return;
            } else {

                if (requiresModeration) {
                    Agility.UGC.API.SetRecordState(data.ResponseData,
                        Agility.UGC.API.RecordState.Declined,
                        null, function() {
                            ActivityDetails.CloseWriteReview();
                        });
                }
                else {
                    //no moderation required
                    ActivityDetails.CloseWriteReview();
                    Subaru.ActivityDataAccess.GetActivityReviews(CurrentActivity.Activity.ID, ActivityDetails.GetActivityReviewsCallback);
                }
            }
        });
    };

    ActivityDetails.ShowGallery = function(mediaID) {
        var selectedItem = ActivityDetails.GetMediaItem(mediaID);

        if (selectedItem.Type == "PDF") {
            window.open(selectedItem.FilePath, "PDFDoc");
            return;
        }

        var detailsPanel = $("#ActivityDetails_MediaDialog");
        var templateUrl = Agility.ResolveUrl("~/ClientTemplates/ActivityDetails_MediaDialog.htm");
        detailsPanel.setTemplateURL(templateUrl);
        detailsPanel.setParam("CloseLabel", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_MediaDialog_CloseLabel"));
        detailsPanel.setParam("NextLabel", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_MediaDialog_NextLabel"));
        detailsPanel.setParam("PreviousLabel", Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_MediaDialog_PreviousLabel"));
        detailsPanel.processTemplate(new Array());

        MediaDialog.dialog("open");

        ActivityDetails.LoadMediaItem(mediaID);
    };

    ActivityDetails.ShowAdvancementLabel = function(sender, direction) {
        if (direction == "Previous") {
            $(sender).css("background-image", "url(./img/Buttons/ActivityDetails_Media_PrevBG.png)");
            $(sender).html(Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_MediaDialog_PreviousLabel"));
        }
        else if (direction == "Next") {
            $(sender).css("background-image", "url(./img/Buttons/ActivityDetails_Media_NextBG.png)");
            $(sender).html(Subaru.AgilityData.GetGlobalLanguageResource("ActivityDetails_MediaDialog_NextLabel"));
        }
    };

    ActivityDetails.RemoveAdvancementLabel = function(sender) {

        $(sender).css("background-image", "");
        $(sender).html("");
    };

    ActivityDetails.LoadMediaItem = function(mediaID) {

        var MediaArea = $("#ActivityDetails_MediaDialog_MediaArea");
        var TextArea = $("#ActivityDetails_MediaDialog_TextArea");

        var selectedItem = ActivityDetails.GetMediaItem(mediaID);

        if (selectedItem.Type == "PDF") {
            var nextItemID = selectedItem.ID + 1;
            if (nextItemID > CurrentActivity.Media.length - 1) {
                nextItemID = 0;
            }
            ActivityDetails.LoadMediaItem(nextItemID);
            return;
        }

        if (selectedItem.Type == "Image") {
            MediaArea.html("<img src='" + Subaru.TemplateUtils.S3ThumbURL(selectedItem.FilePath, 574, 430) + "'>");
        }
        else if (selectedItem.Type == "Video") {
            var so = new SWFObject("http://getoutmore.s3.amazonaws.com/SWF/videoplayer.swf", "videoplayer", "580", "326", "8", "#000000");
            so.addVariable("videoPath", selectedItem.FilePath);
            so.addParam("wmode", "transparent");
            so.write("ActivityDetails_MediaDialog_MediaArea");
        }
        
        TextArea.html(selectedItem.Text);

        var previousItemID = selectedItem.ID - 1;

        if (previousItemID < 0) {
            previousItemID = CurrentActivity.Media.length - 1;
            if (ActivityDetails.GetMediaItem(previousItemID).Type == "PDF") {
                previousItemID--;
            }
        }

        var nextItemID = selectedItem.ID + 1;
        if (nextItemID > CurrentActivity.Media.length - 1) {
            nextItemID = 0;
        }
        $("#ActivityDetails_MediaDialog_Previous").unbind('click', null);
        $("#ActivityDetails_MediaDialog_Previous").click(function() {
            Subaru.ActivityDetails.LoadMediaItem(previousItemID);
        });

        $("#ActivityDetails_MediaDialog_Next").unbind('click', null);
        $("#ActivityDetails_MediaDialog_Next").click(function() {
            Subaru.ActivityDetails.LoadMediaItem(nextItemID);
        });
    };

    ActivityDetails.GetMediaItem = function(mediaID) {
        var selectedItem = null;
        for (var i = 0; i < CurrentActivity.Media.length; i++) {
            if (CurrentActivity.Media[i].ID == mediaID) {
                selectedItem = CurrentActivity.Media[i];
            }
        }
        return selectedItem;
    };

    ActivityDetails.CloseGallery = function() {
        MediaDialog.dialog("close");

        $("ActivityDetails_MediaDialog").hide();
    };

})(Subaru.ActivityDetails);