/* Minification failed. Returning unminified contents.
(2756,50-51): run-time error JS1195: Expected expression: >
(2756,99-100): run-time error JS1195: Expected expression: )
(2756,101-102): run-time error JS1004: Expected ';': {
(2757,64-65): run-time error JS1195: Expected expression: >
(2757,112-113): run-time error JS1004: Expected ';': )
(2763,67-68): run-time error JS1195: Expected expression: >
(2768,21-26): run-time error JS1195: Expected expression: catch
(2769,21-22): run-time error JS1002: Syntax error: }
(2775,36-37): run-time error JS1004: Expected ';': {
(2776,89-90): run-time error JS1195: Expected expression: >
(2776,199-200): run-time error JS1195: Expected expression: )
(2777,50-51): run-time error JS1195: Expected expression: >
(2777,149-150): run-time error JS1004: Expected ';': )
(2781,55-56): run-time error JS1195: Expected expression: >
(2804,5-6): run-time error JS1002: Syntax error: }
(2868,1-2): run-time error JS1002: Syntax error: }
(2870,18-19): run-time error JS1004: Expected ';': {
(3541,68-69): run-time error JS1100: Expected ',': =
(3629,62-63): run-time error JS1014: Invalid character: `
(3629,64-65): run-time error JS1193: Expected ',' or ')': {
(3629,117-118): run-time error JS1195: Expected expression: .
(3629,120-121): run-time error JS1014: Invalid character: `
(3631,13-14): run-time error JS1002: Syntax error: }
(3663,9-10): run-time error JS1002: Syntax error: }
(3848,62-63): run-time error JS1014: Invalid character: `
(3848,64-65): run-time error JS1193: Expected ',' or ')': {
(3848,117-118): run-time error JS1195: Expected expression: .
(3848,120-121): run-time error JS1014: Invalid character: `
(3850,13-14): run-time error JS1002: Syntax error: }
(3950,9-10): run-time error JS1002: Syntax error: }
(4127,1-2): run-time error JS1002: Syntax error: }
(4127,2-3): run-time error JS1197: Too many errors. The file might not be a JavaScript file: )
(4116,5,4126,6): run-time error JS1018: 'return' statement outside of function: return {
        GetLangCodeFromQueryString: GetLangCodeFromQueryString,
        LandingPageinit: LandingPageinit,
        renderSearchNewTilePageinit: renderSearchNewTilePageinit,
        PageViewOptionsAriaLabel: PageViewOptionsAriaLabel,
        LandingPageinitNewSearch: LandingPageinitNewSearch,
        renderNewSearchPaging: renderNewSearchPaging,
        renderNewSearchShowResults: renderNewSearchShowResults,
        renderNewSearchTileinit: renderNewSearchTileinit

    }
(2862,5,2867,6): run-time error JS1018: 'return' statement outside of function: return {
        Getcaption: Getcaption,
        GetLangCodeFromQueryString: GetLangCodeFromQueryString,
        Getvtturls: Getvtturls,
        GetLocalizedValue: GetLocalizedValue
    }
(2803,9-24): run-time error JS1018: 'return' statement outside of function: return captions
 */
var mediusCommon = (function () {
    var htmltemplates = {
        alertMessageTemplate: {
            saveSuccess: ' <div class="alert alert-success alert-dismissable fade in" id="divalert"><a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>Success!</strong> <p id="alertmsg">{{msg}}</p></div>',
            warning: ' <div class="alert alert-warning  alert-dismissable fade in" id="divalert"><a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>Warning!</strong> <p id="alertmsg">{{msg}}</p></div>',
            error: ' <div class="alert alert-danger  alert-dismissable fade in" id="divalert"><a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>Error!</strong> <p id="alertmsg">{{msg}}</p></div>',
            info: ' <div class="alert alert-info  alert-dismissable fade in" id="divalert"><a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>Info!</strong> <p id="alertmsg">{{msg}}</p></div>'
        },
        getListofchannelsToAdd: "/Video/AddToChannelList?vid={{vid}}",
        getListofPlaylistToAdd: "/Video/AddToPlayList?vid={{vid}}",
        copytoClipBoard: '<textarea id="clipboard" title="Clipboard text" style="display:none"><textarea>',
        selectedOwner: '<a  data-newselected="true" data-title="{{name}}" class="list-group-item"><div class="roomInChannelCreateForm" title="{{name}}">{{name}}<span style="left:5px" class="glyphicon glyphicon-remove selectedRoomLi" title="Remove Owner"  aria-hidden="true" onclick="$(this).parent().parent().remove();" tabindex="0" onkeydown="if (event.which === 13) {$(this).parent().parent().remove();}" title="Delete"></span></div></a>',
    }
    var alertTypes = {
        success: "successalert",
        error: "erroralert",
        warning: "warningtalert",
        info: "infoalert"
    };
    var urls = {
        saveVideoToChannels: "/Video/AddVideoChannels",
        saveVideoToPlaylist: "/Video/AddVideoToPlaylist",
        getAllVideosBasedOnSearchString: "/Home/GetAllVideosBasedOnSearchString",
        deleteVideo: "/Video/Delete",
        getAllRooms: "/Channel/GetRooms",
        deleteChannel: "/channel/Delete",
        deletePlaylist: "/playlist/Delete",
        deleteSearchgrid: "/Searchgrid/Delete",
        deleteCta: "/Mediusutility/DeleteCTAEntity",
        deleteVideoAdditionalAssets: "/Mediusutility/DeleteVideoAdditionalAssetsEntity",
        deleteVideoMetadata: "/Mediusutility/DeleteVideoMetadataEntity",
        deleteVideosAsset: "/Mediusutility/DeleteVideosAssetsEntity",
        deleteVideoSearchFilterMapping: "/Mediusutility/DeleteVideoSearchFilterMappingEntity",
        deleteVideoSubclipper: "/Mediusutility/DeleteVideoSubclipperEntity",
        deleteVideoVerification: "/Mediusutility/DeleteVideoVerificationEntity",
        deleteYoutubeSyndicationStatus: "/Mediusutility/DeleteYoutubeSyndicationStatusEntity",
        deleteVideoTagsMapping: "/Mediusutility/DeleteVideoTagsMappingEntity",
        deleteVideoLike: "/Mediusutility/DeleteVideoLikeEntity",
        deleteRelatedVideo: "/Mediusutility/DeleteRelatedVideoEntity",
        deletePlaylistVideo: "/Mediusutility/DeletePlaylistVideoEntity",
        deleteEncodingTasks: "/Mediusutility/DeleteEncodingTasksEntity",
        deleteJob: "/Mediusutility/DeleteJobEntity",
        deleteBulkUpload: "/Mediusutility/DeleteBulkUploadEntity",
        deleteVideoInputAssets: "/Mediusutility/DeleteVideoInputAssetsEntity",
        getHomePageVideoTile: "/Home/RenderVideoTile",
        getHomePageChannelsTile: "/Home/RenderChannelTile",
        loadMoreChannelInAddToChannel: "/Video/AddToChannelList",
        loadMorePlaylistInAddToPlaylist: "/Video/AddToPlayList",
        deletePubbleApp: "/Mediusutility/DeletePubbleApplication",
        deletePubbleAppPosts: "/Mediusutility/DeletePubbleAppPosts",
        getPubblePageDetails: "/Video/GetPubbleDetails",
        copyVideo: '/Video/CopyVideo',
        getContributorCreatePageDetails: "/Video/getContributorCreatePageDetails"
    };

    var ImgUrls = {
        ImgVideoDND: "/Content/images/DefaultImg/Video_Dnp_.jpg",
        ImgLiveStreamStart: "/Content/images/DefaultImg/Live_Stream_Starting_Soon.jpg",
        ImgVideoComingSoon: "/Content/images/DefaultImg/Video_Will_Be_Available_Soon.jpg",
        ImgVideoNotAvailable: "/Content/images/DefaultImg/Video_Not_Available.jpg"
    };
    var previousChannelsLoadmoreWorking = false;
    var nomoreChannelRecordsFound = false;
    var previousPlaylistsLoadmoreWorking = false;
    var nomorePlaylistsRecordsFound = false;
    var pageSize = 4;
    var pageIndex = 1;
    var playlistpageSize = 4;
    var playlistpageIndex = 1;

    var init = function () {
        initevetns();
        initcontent();
        initAutocompleteForSearch();
        PushAnalyticsData();
    }

    var PushAnalyticsData = function () {

        for (var i = 0; i < sessionStorage.length; ++i) {
            if ((sessionStorage.key(i)).indexOf("medius") !== -1) {
                var objecttoSend = {};
                objecttoSend.properties = JSON.parse(sessionStorage.getItem(sessionStorage.key(i)));
                mediusAnalytics.sendTrackingdata(objecttoSend);
                sessionStorage.removeItem(sessionStorage.key(i));
            }
        }

    };

    var AddCloseButtonConsetnt = function () {
        if ($("#msccBanner").length > 0) {
            var tag = $('<i />').addClass('fa fa-times');
            var span = $('<a/>').addClass('pull-right').css({ "color": "#494647", "padding-top": "14px", "padding-right": "10px", "cursor": "pointer" });
            span.append(tag);
            span.prependTo($("#msccBanner"));
        }
    };

    var checkForUserConsetnt = function () {
        $.ajax({
            url: 'https://uhf.microsoft.com/en-gb/shell/api/mscc?sitename=medius&domain=medius.studios.ms&country=euregion',
            //url: 'https://uhf.microsoft.com/fr-fr/shell/api/mscc?sitename=msccdocs&domain=msccdocs.com&country=fr&mscc_eudomain=true',
            method: "GET",
            success: function (d) {
                if (d.IsConsentRequired) {
                    // $('<script>').attr('type', 'text/javascript').attr('src', d.Js[0]).appendTo('head');
                    $('<link>').attr('href', d.Css[0]).attr('rel', 'stylesheet').appendTo('head');
                    var div = $("<div><div>").hide();
                    div.append(d.Markup);
                    div.find("#msccBanner").append('<span class="glyphicon glyphicon-remove" style="cursor:pointer;display:inline;vertical-align:sub;margin-left:10px;" onclick="$(\'#msccBanner\').hide();"></span>')
                    $(".navbar-inverse").prepend(div);
                    $.getScript(d.Js[0], function () {
                        if (!mscc || mscc.hasConsent()) {
                            $(".container").first().css("padding-top", "0px");
                        } else {
                            div.show();
                            $(".container").first().css("padding-top", "50px");
                            mscc.on('consent', function () {
                                $(".container").first().css("padding-top", "0px");
                            });
                        }

                    });
                }
            }, complete: function (data) {
                AddCloseButtonConsetnt();
            }
        });
    }


    var initcontent = function () {
        $("#myChannels").html('');
        $("#myVideos").html('');


    };

    var initevetns = function () {
        $("#txtSearchOnNav").on('keyup', function (e) {

            if (e.keyCode === 13) {
                var url = "/Home/SearchResults?searchvalue=" + $("#txtSearchOnNav").val();
                window.location.href = url;
            }
        });

        $("body").append(htmltemplates.copytoClipBoard);
        $(document).on("click", '.embedVideolink', function (e) {
            e.preventDefault();
            var vid = $(this).attr('data-vid');
            var page = $(this).attr('data-page');
            var issecure = $(this).attr('data-issecure');
            var videoActionName = "video-nc";
            if (issecure !== null && issecure != "" && issecure !== 'undefined') {
                if (issecure == "True" || issecure == true) {
                    videoActionName = "video-aes";
                }
            }
            var msg = "";
            if (page === "video") {
                var hostname = window.location.host;
                msg = '<iframe width="560" height="315" src="https://' + hostname + '/Embed/' + videoActionName + '/' + vid + '" frameborder="0" allowfullscreen></iframe>';

                var _state = $(this).attr('data-isYt');
                if (_state === "True") {
                    msg = msg + '<!-------to play video from youtube---------->' +
                        '<iframe width="560" height="315" src="https://' + hostname + '/Embed/Video/' + vid + '?SFYT=true" frameborder="0" allowfullscreen></iframe>';
                }

                promptEmbedMessage(msg);
            }
            else if (page === "channel") {
                var hostname = window.location.host;
                msg = '<iframe width="560" height="315" src="https://' + hostname + '/Embed/channel/' + vid + '" frameborder="0" allowfullscreen></iframe>';
                promptEmbedMessage(msg);
            }
            else if (page === "playlist") {
                var hostname = window.location.host;
                msg = '<!-------to render playlist Aside to player------->' +
                    '<iframe width="560" height="315" src="https://' + hostname + '/Embed/playlist/' + vid + '" frameborder="0" allowfullscreen></iframe>' +
                    '<!-------------to render playlist on player--------------------->' +
                    '<iframe width="560" height="315" src="https://' + hostname + '/Embed/playlist?id=' + vid + '&showonplayer=true" frameborder="0" allowfullscreen></iframe>';
                promptEmbedMessage(msg);
            }
            else if (page === "search") {
                var hostname = window.location.host;
                msg = '<iframe width="560" height="315" src="https://' + hostname + '/Embed/VideoSearch/' + vid + '" frameborder="0" allowfullscreen></iframe>';
                promptEmbedMessage(msg);
            }

        });
        $(document).on("click", '.embedCopyVideoUrl', function () {
            var vid = $(this).attr('data-vid');
            var page = $(this).attr('data-page');
            var issecure = $(this).attr('data-issecure');
            var videoActionName = "video-nc";
            if (issecure !== null && issecure != "" && issecure !== 'undefined') {
                if (issecure == "True" || issecure == true) {
                    videoActionName = "video-aes";
                }
            }
            var msg = "";
            if (page === "video") {
                var hostname = window.location.host;
                msg = 'https://' + hostname + '/Embed/' + videoActionName + '/' + vid + '?r=' + Math.floor(Math.random() * 1073741824045);
                promptEmbedMessage(msg);
            }
        });

        $(".renderedCatagories").on('click', function (e) {
            var categoryText = $(this).text().replace(/;/, "").trim().split(':');
            var url = "/Home/Landing?" + categoryText[0] + "=" + categoryText[1];
            window.open(url);

        });

        $(".renderedTags").on('click', function (e) {
            var tagText = $(this).text().trim();
            var url = "/Home/Landing?Tags=" + tagText;
            window.open(url);

        });

        $(function () {
            var url = decodeURIComponent(window.location.href);
            var paramPresent = url.indexOf('?') > -1;
            var isLandingURL = window.location.pathname.toLowerCase().indexOf('landing') > -1;
            var port = "";
            if (window.location.port != null) {
                port = ":" + window.location.port;
            }
            if (paramPresent && isLandingURL) {
                var param = url.split('?')[1].split('=');
                var key = param[0].trim().replace(' ', '_');
                var value = param[1];
                $("[filterType = " + key + "]").each(function () {
                    if (($(this).attr("filterValue")).indexOf(value) > -1) {
                        $(this).trigger("click");
                        $("#heading_" + key).children().children().click();
                        window.history.pushState(null, null, window.location.protocol + "//" + window.location.hostname + port);
                    }
                })
            }
        });

        $('.captureTimeInstance').on('click', function () {
            setCurrentTimeInstance(this);
        });
        $('.captureTimeInstance').on('keydown', function () {
            if (event.which === 13)
                setCurrentTimeInstance(this);
        });

        //get link clicked
        $(document).on("click", '.shareVideoLink', function () {
            var vid = $(this).attr('data-vid');
            var page = $(this).attr('data-page');
            var msg = "";
            if (page === "video") {
                var hostname = window.location.host;
                msg = 'https://' + hostname + '/Video/Details/' + vid;
                promptShareLinkMessage(msg);
            }
            else if (page === "channel") {
                var hostname = window.location.host;
                msg = 'https://' + hostname + '/Channel/Details/' + vid;
                promptShareLinkMessage(msg);
            }
            else if (page === "search") {
                var hostname = window.location.host;
                msg = 'https://' + hostname + '/Embed/VideoSearch/' + vid;
                promptShareLinkMessage(msg);
            }
        });
        //$('body').on('click', function (e) {
        //    if ($(e.target).closest(".channelTileEditOptionsLink").length > 0) {

        //        return;
        //    }
        //    $(".moreOptionDiv").removeClass('in');
        //    $(".moreOptionDiv").addClass('collapse');

        //});
        $(document).on('click', ".linkaddToChannel", function (event) {
            //get video id and load the Channlelist applicable 
            event.preventDefault();
            var vid = $(this).attr('data-videoid');
            if (vid != "") {
                loadChannelList(vid);
            }
        });

        $(document).on('click', ".linkaddToPlayList", function (event) {
            //get video id and load the playlist applicable 
            event.preventDefault();
            var vid = $(this).attr('data-videoid');
            if (vid != "") {
                loadPlayList(vid);
            }
        });
        $(document).on('click', "span.glyphicon.glyphicon-ok.addToChannelList", function (event) {
            //handle Add to channel 
            event.preventDefault();
            var eleid = $(this).attr('id');
            var vid = eleid.split('_')[1];


            var sendData = [];
            $("#ulchannellisfor_" + vid).find('li').find('.chkAddToCheckList').each(function () {
                if ($(this).is(":checked")) {
                    var channelid = $(this).attr('data-channelid');
                    if (vid > 0) {
                        sendData.push({
                            VideoId: vid,
                            ChannelId: channelid
                        });
                    }
                }
            });
            if (sendData.length > 0) {
                saveVideoChannels(sendData);
            }
            else {
                //
            }
        });
        $(document).on('keydown', "span.glyphicon.glyphicon-ok.addToChannelList", function (event) {
            if (event.which === 13) {
                //handle Add to channel 
                event.preventDefault();
                var eleid = $(this).attr('id');
                var vid = eleid.split('_')[1];
                var sendData = [];
                $("#ulchannellisfor_" + vid).find('li').find('.chkAddToCheckList').each(function () {
                    if ($(this).is(":checked")) {
                        var channelid = $(this).attr('data-channelid');
                        if (vid > 0) {
                            sendData.push({
                                VideoId: vid,
                                ChannelId: channelid
                            });
                        }
                    }
                });
                if (sendData.length > 0) {
                    saveVideoChannels(sendData);
                }
                else {
                    //
                }
            }
        });
        $(document).on('click', "span.addToplayList", function (event) {
            //handle Add to channel 
            event.stopPropagation();
            event.preventDefault();
            var eleid = $(this).attr('id');
            var vid = eleid.split('_')[1];


            var sendData = [];
            $("#ulPlaylistfor_" + vid).find('li').find('.chkAddToplaylist').each(function () {
                if ($(this).is(":checked")) {
                    var playlistlid = $(this).attr('data-playlistid');
                    if (vid > 0) {
                        sendData.push({
                            VideoId: vid,
                            PlaylistId: playlistlid
                        });
                    }
                }
            });
            if (sendData.length > 0) {
                saveVideosToPlaylist(sendData);
            }
            else {
                //
            }
        });
        //click on copy video check the short code and call service
        $(document).on('click', "span.copyvideo", function (event) {
          
            event.stopPropagation();
            event.preventDefault();
            var eleid = $(this).attr('id');
            var sourceShortcode = $(this).data('sourceshortcode');
            var vid = eleid.split('_')[1];
            if ($("#newVideoShortcode_" + vid).val() != "") {
                showConfirmationForVideoCopy(vid, sourceShortcode, $("#newVideoShortcode_" + vid).val());
              
            } else {
                mediusCommon.createAlert("Please enter shortcode for new video.", mediusCommon.alertTypes.error, ".container");
                mediusCommon.createAutoClosingAlert(".alert-info", 5000);
            }


        });
        //to handle enter key press on copy video button
        $(document).on('keydown', "span.copyvideo", function (event) {
            if (event.which === 13) {
                //handle Add to channel 
                event.stopPropagation();
                event.preventDefault();
                var eleid = $(this).attr('id');
                var sourceShortcode = $(this).data('sourceshortcode');
                var vid = eleid.split('_')[1];
                if ($("#newVideoShortcode_" + vid).val() != "") {
                    showConfirmationForVideoCopy(vid, sourceShortcode, $("#newVideoShortcode_" + vid).val());
                } else {
                    mediusCommon.createAlert("Please enter shortcode for new video.", mediusCommon.alertTypes.error, ".container");
                    mediusCommon.createAutoClosingAlert(".alert-info", 5000);
                }
            }

        });
        $(document).on('click', "#copyVideoAsset", function () {
            var sourcevideoid = $(this).attr('data-sourcevideoid');
            var destinationvideoshortcode = $(this).attr('data-destinationvideoshortcode');
             
            var sendData = {
                videoid: sourcevideoid,
                shortcode: destinationvideoshortcode
            };
            copyVideo(sendData);
            $("#copyconfirm").hide();
        });
        $(document).on('keydown', "span.addToplayList", function (event) {
            if (event.which === 13) {
                //handle Add to channel 
                event.stopPropagation();
                event.preventDefault();
                var eleid = $(this).attr('id');
                var vid = eleid.split('_')[1];
                var sendData = [];
                $("#ulPlaylistfor_" + vid).find('li').find('.chkAddToplaylist').each(function () {
                    if ($(this).is(":checked")) {
                        var playlistlid = $(this).attr('data-playlistid');
                        if (vid > 0) {
                            sendData.push({
                                VideoId: vid,
                                PlaylistId: playlistlid
                            });
                        }
                    }
                });
                if (sendData.length > 0) {
                    saveVideosToPlaylist(sendData);
                }
                else {
                    //
                }
            }
        });
        //this is to open the dialog for shareable checkboxs
        $(document).on('click', '#btnBulkDeletePubblePost', function (event) {
            jQuery.noConflict();
            $('#PubbleDletionOptions').modal({
                show: 'true'
            });
        });
        $(document).on("click", "#btnPubblePostDeletaion", function () {
            var dataToSend = {
            };

            dataToSend = {
                postTypes: $("#MultiSelectOptionforPubble").val(),
                unapprovedOnly: $("#unapprovedOnlyId").prop("checked") ? true : false,
                approvedOnly: $("#approvedOnlyId").prop("checked") ? true : false,
                BothApproveAndUnapprove: $("#BothApproveAndUnapproveId").prop("checked") ? true : false,
            };
            executePubblePostDeletaion(dataToSend);
        });
        $(document).on('click', '.deleteAsset', function () {
            var currentAssetId = $(this).attr('data-asetid');
            var currentpage = $(this).attr('data-page');
            var parentEleid = $(this).parents('.custModel').attr('id');
            handleDeleteOperation(currentAssetId, currentpage, parentEleid);
        });
        $(document).on('click', '.Custclose', function () {
            if ($("#deleteconfirmDiv").length > 0) {
                $("#deleteconfirmDiv").dialog('close');
            }
        });
        $(document).on('click', "#deleteasset", function () {
            var assetid = $(this).attr('data-assetid');
            var asseturltodel = $(this).attr('data-urltodelete');
            var eletohide = $(this).attr('data-eleid');
            var objectTOsend = {
                url: asseturltodel,
                dataId: assetid, eletohide: eletohide
            }
            executeDeleteOpration(objectTOsend);
            $("#detelconfirm").hide();
        });
        $(document).on('click', ".videoTileHeaderEditOptions, .channelTileEditOptionsLink", function () {
            trapModalFocus(this);
        })
        $(document).on('keydown', ".videoTileHeaderEditOptions,.channelTileEditOptionsLink", function () {
            if (event.which === 13) {
                trapModalFocus(this);
            }
        })
        $('body').on('click', function (e) {
            if ($(e.target).parents('.tile').length <= 0) {
                if ($('.custModel').hasClass('in')) {
                    $('.custModel').modal('hide');
                    $('body').removeClass('modal-open');
                    $('.modal-backdrop').remove();
                }
            }
        });
    };

    var showConfirmationForVideoCopy = function (sourcevideoid, sourcevideoshortcode, destinationvideoshortcode) {
        $("#copyVideoAsset").attr('data-sourcevideoid', sourcevideoid);
        $("#copyVideoAsset").attr('data-destinationvideoshortcode', destinationvideoshortcode);
        $("#copyVideoAsset").attr('data-sourcevideoshortcode', sourcevideoshortcode);
        var msgtoshow = "Do you really wants to copy from " + sourcevideoshortcode + " to " + destinationvideoshortcode + " ?";
        $("#copymsg").text('').text(msgtoshow);
        $("#copyconfirm").show();
    }
    var setCurrentTimeInstance = function (obj) {
        var frame = window.frames['videoToPlayNow'];
        if (typeof frame !== 'undefined') {
            var durationFromPlayer = frame.AMPlayer.getCurrentTime();
            if (typeof durationFromPlayer !== 'undefined' && durationFromPlayer != "0.0666666") {
                $(obj).parent().parent().find('input').val(secondsToHms(durationFromPlayer))
            }
        }
    }
    var secondsToHms = function (totalSeconds) {
        var hours = Math.floor(totalSeconds / 3600);
        var minutes = Math.floor((totalSeconds - (hours * 3600)) / 60);
        var seconds = totalSeconds - (hours * 3600) - (minutes * 60);

        // round seconds
        seconds = Math.round(seconds * 10000000) / 10000000

        var result = (hours < 10 ? "0" + hours : hours);
        result += ":" + (minutes < 10 ? "0" + minutes : minutes);
        result += ":" + (seconds < 10 ? "0" + seconds : seconds);
        return result;
    }
    //to trap focus in tile
    var trapModalFocus = function (obj) {
        if ($(obj.children[0]).length > 0) {
            var getCardID = $(obj.children[0]).data("target");

            $(getCardID).on('shown.bs.modal', function () {
                $('.Custclose').focus();
            })

            var firstAnchor = $(getCardID).find('.dialog-start')[0];
            var lastAnchor = $(getCardID).find('.dialog-end')[0];

            if (firstAnchor !== null && lastAnchor !== null) {
                function keydownHandler(e) {
                    var evt = e || window.event;
                    var keyCode = evt.which || evt.keyCode;
                    if (keyCode === 9) { // TAB pressed
                        if (evt.preventDefault) evt.preventDefault();
                        else evt.returnValue = false;
                        firstAnchor.focus();
                    }
                }
                function keydownHandlerLast(f) {
                    var evt = f || window.event;
                    var keyCode = evt.which || evt.keyCode;
                    if (keyCode === 9 && evt.shiftKey) { // TAB+SHIFT pressed
                        if (evt.preventDefault) evt.preventDefault();
                        else evt.returnValue = false;
                        lastAnchor.focus();
                    }
                }
                if (lastAnchor.addEventListener) lastAnchor.addEventListener('keydown', keydownHandler, false);
                else if (lastAnchor.attachEvent) lastAnchor.attachEvent('onkeydown', keydownHandler);
                if (firstAnchor.addEventListener) firstAnchor.addEventListener('keydown', keydownHandlerLast, false);
                else if (firstAnchor.attachEvent) firstAnchor.attachEvent('onkeydown', keydownHandlerLast);
            }
        }
    }

    //start code for laod more on home page
    var loadmoreChannelScroll = function (ele) {
        //check the flag that prev load more call is running and no records found

        if ($(ele).scrollTop() + $(ele).innerHeight() >= $(ele)[0].scrollHeight) {
            if (previousChannelsLoadmoreWorking === false && nomoreChannelRecordsFound === false) {
                loadmoreChannelsInList();
            }
            else {
                return false;
            }
        }
        else {
            return false;
        }
    };
    var loadmorePlaylistScroll = function () {
        //check the flag that prev load more call is running and no records found
        if (previousChannelsLoadmoreWorking === false && nomorePlaylistsRecordsFound === false) {
            loadmorePlaylistsInList();
        }
        else {
            return false;
        }
    };
    var loadmoreChannelsInList = function () {
        if (previousChannelsLoadmoreWorking === false) {
            if (selectedTileVideoId > 0) {
                $.ajax({
                    type: 'GET',
                    url: urls.loadMoreChannelInAddToChannel,
                    datatype: "json",
                    data: {
                        "pageindex": pageIndex, "vid": selectedTileVideoId
                    },
                    success: function (data) {
                        if (data !== null && data !== "") {
                            var count = 0;
                            $(data).filter('.addTochannelTile').each(function (i, currentElement) {
                                var htmlOfSinglePost = $(this).html();
                                count++;
                            });

                            if (count >= 4) {
                                $('#ulchannellisfor_' + selectedTileVideoId).append($(data));
                                $('#AddToChannel_' + selectedTileVideoId).find(".inlineLoader").hide();
                                previousChannelsLoadmoreWorking = false;
                            } else {
                                nomoreChannelRecordsFound = true;
                                mediusCommon.createAlert("No more channels found.", mediusCommon.alertTypes.info, ".container");
                                mediusCommon.createAutoClosingAlert(".alert-info", 500);
                            }
                            pageIndex++;
                        }
                        else {
                            mediusCommon.createAlert("No more channels found.", mediusCommon.alertTypes.info, ".container");
                            mediusCommon.createAutoClosingAlert(".alert-info", 5000);
                            $('#AddToChannel_' + selectedTileVideoId).find(".inlineLoader").hide();
                            nomoreChannelRecordsFound = true;
                        }
                    },
                    cache: false,
                    beforeSend: function () {
                        $('#AddToChannel_' + selectedTileVideoId).find(".inlineLoader").show();
                        previousChannelsLoadmoreWorking = true;

                    },
                    complete: function () {
                        previousChannelsLoadmoreWorking = false;
                        $('#AddToChannel_' + selectedTileVideoId).find(".inlineLoader").hide();
                    },
                    error: function () {
                        mediusCommon.createAlert("Error in retriving playlist Video,Please try again later.", mediusCommon.alertTypes.error, "#myplaylistContainer");
                        mediusCommon.createAutoClosingAlert(".alert-danger", 2000);
                        $('#AddToPlaylist_' + selectedTileVideoId).find(".inlineLoader").hide();
                    }
                });
            }
        }
    };
    var loadmorePlaylistsInList = function () {

        if (previousPlaylistsLoadmoreWorking === false) {
            if (selectedTileVideoId > 0) {
                $.ajax({
                    type: 'GET',
                    url: urls.loadMorePlaylistInAddToPlaylist,
                    datatype: "json",
                    data: {
                        "pageindex": playlistpageIndex, "vid": selectedTileVideoId
                    },
                    success: function (data) {
                        if (data !== null && data !== "") {
                            var count = 0;
                            $(data).filter('.addToPlaylistTile').each(function (i, currentElement) {
                                var htmlOfSinglePost = $(this).html();
                                count++;
                            });

                            if (count >= 4) {
                                $('#ulPlaylistfor_' + selectedTileVideoId).append($(data));
                                $('#AddToPlaylist_' + selectedTileVideoId).find(".inlineLoader").hide();
                                previousPlaylistsLoadmoreWorking = false;
                            } else {
                                nomorePlaylistsRecordsFound = true;
                                mediusCommon.createAlert("No more playlist found.", mediusCommon.alertTypes.info, "#createVideoFrorms");
                                mediusCommon.createAutoClosingAlert(".alert-info", 500);
                            }
                            playlistpageIndex++;
                        }
                        else {
                            mediusCommon.createAlert("No more playlist found.", mediusCommon.alertTypes.info, "#myplaylistContainer");
                            mediusCommon.createAutoClosingAlert(".alert-info", 5000);
                            $('#AddToPlaylist_' + selectedTileVideoId).find(".inlineLoader").hide();
                            nomorePlaylistsRecordsFound = true;
                        }
                    },
                    cache: false,
                    beforeSend: function () {
                        $('#AddToPlaylist_' + selectedTileVideoId).find(".inlineLoader").show();
                        previousPlaylistsLoadmoreWorking = true;

                    },
                    complete: function () {
                        previousPlaylistsLoadmoreWorking = false;
                        $('#AddToPlaylist_' + selectedTileVideoId).find(".inlineLoader").hide();
                    },
                    error: function () {
                        mediusCommon.createAlert("Error in retriving playlist Video,Please try again later.", mediusCommon.alertTypes.error, "#myplaylistContainer");
                        mediusCommon.createAutoClosingAlert(".alert-danger", 2000);
                        $('#AddToPlaylist_' + selectedTileVideoId).find(".inlineLoader").hide();
                    }
                });
            }
        }

    };

    //end of load more on home page
    var handleDeleteOperation = function (currentAssetId, currentpage, parentEleid) {
        var urlToDelete = "";
        var msgtoshow = "";
        var showTypeInCallback = "";
        switch (currentpage) {
            case "video":
                urlToDelete = urls.deleteVideo;
                msgtoshow = "Do you really want to delete selected video from medius?";
                var showTypeInCallback = "video";
                break;
            case "channel":
                urlToDelete = urls.deleteChannel;
                msgtoshow = "Do you really want to delete selected channel from medius?";
                var showTypeInCallback = "channel";
                break;
            case "playlist":
                urlToDelete = urls.deletePlaylist;
                msgtoshow = "Do you really want to delete selected playlist from medius?";
                var showTypeInCallback = "playlist";
                break;
            case "search":
                urlToDelete = urls.deleteSearchgrid;
                msgtoshow = "Do you really want to delete selected searchgrid from medius?";
                var showTypeInCallback = "searchgrid";
                break;
            case "deleteCta":
                urlToDelete = urls.deleteCta;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteVideoAdditionalAssets":
                urlToDelete = urls.deleteVideoAdditionalAssets;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteVideoMetadata":
                urlToDelete = urls.deleteVideoMetadata;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteVideosAsset":
                urlToDelete = urls.deleteVideosAsset;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteVideoSearchFilterMapping":
                urlToDelete = urls.deleteVideoSearchFilterMapping;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteVideoSubclipper":
                urlToDelete = urls.deleteVideoSubclipper;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteVideoVerification":
                urlToDelete = urls.deleteVideoVerification;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteYoutubeSyndicationStatus":
                urlToDelete = urls.deleteYoutubeSyndicationStatus;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteVideoTagsMapping":
                urlToDelete = urls.deleteVideoTagsMapping;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteVideoLike":
                urlToDelete = urls.deleteVideoLike;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteRelatedVideo":
                urlToDelete = urls.deleteRelatedVideo;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deletePlaylistVideo":
                urlToDelete = urls.deletePlaylistVideo;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteEncodingTasks":
                urlToDelete = urls.deleteEncodingTasks;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteJob":
                urlToDelete = urls.deleteJob;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteBulkUpload":
                urlToDelete = urls.deleteBulkUpload;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deleteVideoInputAssets":
                urlToDelete = urls.deleteVideoInputAssets;
                msgtoshow = "Do you really want to delete selected record from medius?";
                break;
            case "deletePubbleApp":
                urlToDelete = urls.deletePubbleApp;
                msgtoshow = "Do you really want to delete selected pubble from medius?";
                break;
        }
        $("#deleteasset").attr('data-assetid', currentAssetId);
        $("#deleteasset").attr('data-urltodelete', urlToDelete);
        $("#deleteasset").attr('data-eleid', parentEleid);
        $("#deletemsg").text('').text(msgtoshow);
        $("#detelconfirm").show();
    };

    var executePubblePostDeletaion = function (dataDeleteObj) {
        var vid = $("#videoid").val();
        var token = $('input[name="__RequestVerificationToken"]').val();
        mediusCommon.executeXHR({
            url: urls.deletePubbleAppPosts,
            contentType: 'application/x-www-form-urlencoded',
            asyncCall: false,
            method: "POST",
            data: {
                __RequestVerificationToken: token,
                deletePostTypes: dataDeleteObj.postTypes,
                deleteUnapprovedOnly: dataDeleteObj.unapprovedOnly,
                deleteApprovedOnly: dataDeleteObj.approvedOnly,
                deleteBoth: dataDeleteObj.BothApproveAndUnapprove,
                videoid: vid
            }
        }).promise().then(function (data) {
            var result = [];
            if (data.modelerrorlist !== undefined) {
                for (var i in data.modelerrorlist)
                    result.push([i, data.modelerrorlist[i]]);
                if (result.length !== 0) {
                    for (var i = 0; i < result.length; i++) {
                        if (document.getElementById(result[i][0]) !== null) {
                            var errorelem = document.getElementById(result[i][0]);
                            errorelem.innerHTML = "<span style='color: red;'>" + result[i][1][0] + "</span > ";
                        }
                    }
                }
            }
            if (data.success > 0) {

                $('#PubbleDletionOptions').modal('hide');
                mediusCommon.createAlert("Pubble Post Deleted successfully", mediusCommon.alertTypes.success, "#PubbleDletionOptions");
                mediusCommon.createAutoClosingAlert(".alert-success", 2000);
            }
            else {
                mediusCommon.createAlert(data.err, mediusCommon.alertTypes.error, "#PubbleDletionOptions");
                mediusCommon.createAutoClosingAlert(".alert-danger", 2000);
            }
        }, function (err) {
            alert(err);
        });
    };



    var executeDeleteOpration = function (objecetToDelete) {
        if (objecetToDelete.dataId !== null && typeof objecetToDelete.dataId !== 'undefined') {
            var dataGuid = '';
            var contetType = '';
            if (objecetToDelete.url == urls.deleteChannel || objecetToDelete.url == urls.deleteVideo || objecetToDelete.url == urls.deletePlaylist || objecetToDelete.url == urls.deleteSearchgrid) {
                var token = $('input[name="__RequestVerificationToken"]').val();
                dataGuid = { __RequestVerificationToken: token, Id: objecetToDelete.dataId }
                contetType = 'application/x-www-form-urlencoded';
            }
            else {
                dataGuid = JSON.stringify({
                    'Id': objecetToDelete.dataId
                });
                contetType = 'application/json; charset=utf-8';
            }
            $("#pageLoader").show();
            executeXHR({
                url: objecetToDelete.url,
                contentType: contetType,
                method: "POST",
                data: dataGuid
            }).promise().then(function (data) {
                if (data.success > 0) {
                    if ($("#" + objecetToDelete.eletohide).parents('#myChannels').length === 1) {
                        //reload home page channel tile
                        reloadHomePageTile("channel");
                    } else if ($("#" + objecetToDelete.eletohide).parents('#myVideos').length === 1) {
                        //reload home page video tile
                        reloadHomePageTile("video");
                    }
                    if (objecetToDelete.url === "/Mediusutility/DeletePubbleApplication") {
                        reloadPartialPubblePage();
                    }
                    $("#searchShortCode").trigger("click");
                    $("#" + objecetToDelete.eletohide).parents('.tile').remove();
                    $(".modal-backdrop").remove();
                    $('body').removeClass("modal-open");
                    $("#detelconfirm").hide();
                    mediusCommon.createAlert("Deleted successfully", mediusCommon.alertTypes.success, "#container");
                    mediusCommon.createAutoClosingAlert(".alert-success", 2000);
                }
                else {
                    $("#detelconfirm").hide();
                    mediusCommon.createAlert("Error while deleting ", mediusCommon.alertTypes.error, "#container");
                    mediusCommon.createAutoClosingAlert(".alert-danger", 2000);
                }
                $("#pageLoader").hide();

            }, function (err) {
                console.log(err);
                $("#pageLoader").hide();
                $("#detelconfirm").hide();
                mediusCommon.createAlert("Error while deleting ", mediusCommon.alertTypes.error, "#container");
                mediusCommon.createAutoClosingAlert(".alert-danger", 2000);
            });

        } else {
            $("#pageLoader").hide();
            $("#detelconfirm").hide();
            mediusCommon.createAlert("Error while deleteing record", mediusCommon.alertTypes.error, "#container");
            mediusCommon.createAutoClosingAlert(".alert-danger", 2000);
        }
    };
    var reloadHomePageTile = function (typeToreload) {

        switch (typeToreload) {
            case 'channel':
                loadHomepageChannels();
                break;
            case 'video':
                loadHomePageVideos();
                break;
        }
    };

    var loadHomepageChannels = function () {

        $.ajax({
            url: urls.getHomePageChannelsTile,
            method: "GET",
            cache: false,
            beforeSend: function () {
                // showPageLoader();
            },
            success: function (channels) {
                $("#myChannels").html('');
                $("#myChannels").append(channels);
            },
            error: function (err) {
                hidePageLoader();
            },
            complete: function () {
                hidePageLoader();
            }
        });





    };

    var hidePageLoader = function () {
        $("#pageLoader").hide();
    };
    var showPageLoader = function () {
        $("#pageLoader").show();
    };
    var loadHomePageVideos = function () {

        $.ajax({
            url: urls.getHomePageVideoTile,
            method: "GET",
            cache: false,
            beforeSend: function () {
                //  showPageLoader();
            },
            success: function (videos) {
                $("#myVideos").html('');
                $("#myVideos").append(videos);
            },
            error: function (err) {
                hidePageLoader();
            },
            complete: function () {
                hidePageLoader();
            }
        });

    };
    var initAutocompleteForSearch = function () {
        var txtsearch = $("#txtSearchOnNav");
        if (txtsearch.length === 1) {
            $("#txtSearchOnNav").autocomplete({
                source: function (request, response) {
                    mediusCommon.fillVideoSearchBox(request, response);
                },
                appendTo: "#globSearch",
                select: function (e, i) {
                    event.preventDefault();
                    $("#displaySearchedResult_" + i.item.value).css('background-color', '#428bca');
                    //$("#txtSearchOnNav").val(i.item.label);
                    //$("#txtSearchOnNav").removeClass("ui-autocomplete-input");
                    window.location.href = '/video/Details/' + i.item.value;
                    return false;
                },
                focus: function (e, i) {
                    event.preventDefault();
                    $('[id^="displaySearchedResult_"]').css('background-color', 'transparent');
                    //highlight selected item
                    $("#displaySearchedResult_" + i.item.value).css('background-color', '#428bca');
                    //$("#txtSearchOnNav").val(i.item.label);

                    return false;
                },
                minLength: 1

            }).data("ui-autocomplete")._renderItem = function (ul, item) {
                if (typeof item.label !== 'undefined') {

                    var thumbUrl = item.asset;
                    if (thumbUrl === null)
                        thumbUrl = "/Content/images/defaultVideos.png";

                    var labeltodisplay = item.label;
                    var itemValue = item.value;
                    var isAdmin = item.isAdmin;
                    //var htmlContent = "<a href='" + "/video/Details/" + itemValue + "'><div id='displaySearchedResult_" + itemValue + "'><img style = 'width:60px;height:60px' src='"
                    //    + thumbUrl + "'/> " + labeltodisplay + "</div></a>";
                    var videoInline = "";
                    var videoDetails = '<div class="row playlistItem "><div class="col-lg-5 col-md-5 col-sm-5 col-xs-5 leftthumbnail "><img src="{{imgurl}}" class="related-video-img media-object playlistThumbnail" alt=""></div>' +
                        '<div class="col-lg-7 col-md-7 col-sm-7 col-xs-7 rightinfo"> <div class="divforPlaylisttitle">' +
                        '<span class="playlist_heading ">{{title}}</span>' +
                        '</div><p class="playlist-paragraph block-with-text">{{description}}</p></div>';
                    var inlineDetailsForAdmin = '<div class="embedLink pull-right padding-right125em"><span class="glyphicon glyphicon-edit"></span> <u><span><a href="/Video/create/{{guid}}" title="Edit video"><text class="themeColor embedLink">Edit</text></a></span></u> &nbsp;|&nbsp; <span class="glyphicon glyphicon-time"></span> <u><span><a href="/Video/Status?videoGuid={{guid}}" title="WorkFlow Status"><text class="themeColor">W-Status</text></a></span></u></div>';
                    var horizontalLine = '<hr style= "width:94%;border-top-color:rgba(51, 51, 51, 1);" ></div>';

                    if (isAdmin === true) {
                        videoInline = videoDetails + inlineDetailsForAdmin + horizontalLine;
                    }
                    else {
                        videoInline = videoDetails + horizontalLine;
                    }

                    var replaceKey = {
                        imgurl: thumbUrl,
                        title: item.label,
                        description: item.description,
                        guid: item.value
                    }
                    var htmlContent = replaceAll(videoInline, replaceKey);
                    $(".embedLink").off("click").on("click", function (e) {
                        e.stopPropagation();
                    });
                    return $("<li></li>")
                        .data("ui-autocomplete-item", item)
                        .append(htmlContent)
                        .appendTo(ul);
                }
                else {
                    var videoInline = '<div class="row playlistItem " style="height: 40px; font-size: 15px; margin-top: 4px;"><span> No Video Found</span></div>'
                    $('customVideoSearchAutoComplete').attr('style', 'overflow:hidden');
                    $('customVideoSearchAutoComplete').attr('style', 'overflow:hidden');
                    return $("<li></li>")
                        .data("ui-autocomplete-item", item)
                        .append(videoInline)
                        .appendTo(ul);
                }

            };
        }
    };

    var fillVideoSearchBox = function (request, response) {

        $.ajax({
            url: urls.getAllVideosBasedOnSearchString,
            data: {
                searchPrefix: request.term
            },
            type: "POST",
            success: function (data) {

                response($.map(data, function (item) {
                    return item;
                }));


                $("#globSearch").find('.ui-autocomplete').addClass('customVideoSearchAutoComplete');
                $("#globSearch").find('.vjs-menu-content').addClass('customVideoSearchAutoComplete');

            }
        });
    };
    var selectedTileVideoId = 0;
    var loadChannelList = function (vid) {
        if ($('#ulchannellisfor_' + vid + ' li').length == 0) {
            var replaceKey = {
                vid: vid
            }
            nomoreChannelRecordsFound = false;
            pageIndex = 1;
            selectedTileVideoId = vid;
            var urls = replaceAll(htmltemplates.getListofchannelsToAdd, replaceKey);
            $('#AddToChannel_' + vid).find(".inlineLoader").show();
            $('#ulchannellisfor_' + vid).load(urls, function () {
                if ($('#ulchannellisfor_' + vid).find(".addTochannelTile").length > 0) {
                    $('#yesNobtnForAddToChannelList_' + vid).show();
                }
                $('#AddToChannel_' + vid).find(".inlineLoader").hide();
            });
        }
    };

    var loadPlayList = function (vid) {
        if ($('#ulPlaylistfor_' + vid + ' li').length == 0) {
            var replaceKey = {
                vid: vid
            }
            nomorePlaylistsRecordsFound = false;
            playlistpageIndex = 1;
            selectedTileVideoId = vid;
            var urls = replaceAll(htmltemplates.getListofPlaylistToAdd, replaceKey);
            $('#AddToPlaylist_' + vid).find(".inlineLoader").show();
            $('#ulPlaylistfor_' + vid).load(urls, function () {
                $('#yesNobtnForAddToPlaylist_' + vid).show();
                $('#AddToPlaylist_' + vid).find(".inlineLoader").hide();
            });
        }
    };
    var saveVideoChannels = function (sendData) {

        var ChannelData = JSON.stringify({
            'videoChannelsList': sendData
        });
        executeXHR({
            url: urls.saveVideoToChannels,
            method: "POST",
            data: ChannelData


        }).promise().then(function (data) {
            if (data.Success > 0) {
                $('#ulchannellisfor_' + sendData[0].VideoId).html('');
                loadChannelList(sendData[0].VideoId);
                mediusCommon.createAlert("Video Channels saved successfully", mediusCommon.alertTypes.success, "#container");
                mediusCommon.createAutoClosingAlert(".alert-success", 2000);
            }
            else {
                mediusCommon.createAlert("Error while saveing video Channels", mediusCommon.alertTypes.error, "#container");
                mediusCommon.createAutoClosingAlert(".alert-danger", 2000);
            }
        }, function (err) {
            console.log(err);
            //   alert(err);
        });
    };
    var copyVideo = function (sendata) {
        console.log(sendata);
        var copyData = JSON.stringify(sendata);
        executeXHR({
            url: urls.copyVideo,
            method: "POST",
            data: copyData
        }).promise().then(function (data) {
            if (data.success > 0) {
       
                $(".shortcodenewvid ").val('');
                mediusCommon.createAlert("Video copied  successfully.Please wait for few minutes to reflect assets.", mediusCommon.alertTypes.success, "#main-container-lay");
                mediusCommon.createAutoClosingAlert(".alert-success", 2000);
                setTimeout(function () { window.location.reload(true); }, 2500);

            }
            else {
                mediusCommon.createAlert("Error " + data.err, mediusCommon.alertTypes.error, "#main-container-lay");
                mediusCommon.createAutoClosingAlert(".alert-danger", 6000);
            }
        }, function (err) {
            console.log(err);
        });
    }
    var saveVideosToPlaylist = function (sendData) {

        var playlistdata = JSON.stringify({
            'playlistvideosList': sendData
        });
        executeXHR({
            url: urls.saveVideoToPlaylist,
            method: "POST",
            data: playlistdata


        }).promise().then(function (data) {
            if (data.Success > 0) {
                $('#ulPlaylistfor_' + sendData[0].VideoId).html('');
                loadPlayList(sendData[0].VideoId);
                mediusCommon.createAlert("Video playlist saved successfully", mediusCommon.alertTypes.success, "#container");
                mediusCommon.createAutoClosingAlert(".alert-success", 2000);
            }
            else {
                mediusCommon.createAlert("Error while saveing video playlist", mediusCommon.alertTypes.error, "#container");
                mediusCommon.createAutoClosingAlert(".alert-danger", 2000);
            }
        }, function (err) {
            console.log(err);
            //   alert(err);
        });
    };
    var executeXHR = function (requestObj) {//url, useCredentials, asyncCall, method, headers, data
        requestObj.url = requestObj.url.toLowerCase();
        if (requestObj.useCredentials === undefined || requestObj.useCredentials === null)
            requestObj.useCredentials = false;
        if (requestObj.useCredentials)
            jQuery.support.cors = true;
        if (!requestObj.method)
            requestObj.method = "GET";
        if (!requestObj.headers)
            requestObj.headers = {
                Accept: 'application/json; odata=verbose'
            };
        if (requestObj.datatype === undefined || requestObj.datatype === null)
            requestObj.datatype = "json";
        if (requestObj.contentType === undefined || requestObj.contentType === null)
            requestObj.contentType = 'application/json; charset=utf-8';
        if (requestObj.asyncCall === undefined || requestObj.asyncCall === null)
            requestObj.asyncCall = true;
        if (!requestObj.data)
            requestObj.data = "";
        else {
            if (requestObj.stringifyData)
                requestObj.data = JSON.stringify(requestObj.data);
            else
                requestObj.data = requestObj.data;

        }
        var deferred = $.Deferred();


        $.ajax({
            url: requestObj.url,
            contentType: requestObj.contentType,
            dataType: requestObj.datatype,
            method: requestObj.method,
            headers: requestObj.headers,
            async: requestObj.asyncCall,
            cache: false,
            data: requestObj.data,
            xhrFields: {
                withCredentials: requestObj.useCredentials
            },
            beforeSend: function () {
                //  showPageLoader();
            },
            success: function (data) {
                deferred.resolve(data);
            },
            error: function (err) {
                deferred.reject(err);
            },
            complete: function () {
                //  hidePageLoader();
            }
        });

        return deferred;
    };

    var checkSealedValue = function () {
        if (!$('#IsSealed').prop("disabled")) {
            return $('#IsSealed').prop("checked") ? true : false
        }
        return true;
    }
    var fillOwnerSearchBox = function (request, response, t) {
        if (typeof t == undefined) {
            t = "owners";
        }
        //var providerValue = (typeof isFormAuthenticated !== "undefined" && isFormAuthenticated !== undefined && isFormAuthenticated !== null && isFormAuthenticated.trim() !== ""
        //    && isFormAuthenticated.trim().toLowerCase() === "true") ? true : false;
        //var isSealedValue = checkSealedValue();
        $.ajax({
            url: '/Users/AutoComplete/',
            data: { 'prefix': request.term.trim().toLowerCase(), 'isFormAuthenticated': false },
            dataType: "json",
            type: "GET",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                response($.map(data, function (item) {
                    return item;
                }));
            },
            beforeSend: function () {
                if (t == "AdditionalOwners") {
                    $("#inLoderAdditionalOwners").css('visibility', 'visible');
                }
                else
                    $("#inLoderOwner").css('visibility', 'visible');
            },
            error: function (response) {
                console.log(response.responseText);
            },
            failure: function (response) {
                alert(response.responseText);
            }, complete: function () {
                if (t == "AdditionalOwners") {
                    $("#inLoderAdditionalOwners").css('visibility', 'hidden');
                }
                else
                    $("#inLoderOwner").css('visibility', 'hidden');
            }
        });
    };
    var fillRoomsSearchBox = function (request, response) {
        var code = $('#ShortCode').val();
        $.ajax({
            url: urls.getAllRooms,
            data: { prefix: request.term, shortCode: code },
            dataType: "json",
            type: "GET",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                response($.map(data, function (item) {
                    return item;
                }));
            },
            beforeSend: function () {
                $("#inLoderRooms").css('visibility', 'visible');
            },
            error: function (response) {
                console.log(response.responseText);
            },
            failure: function (response) {
                alert(response.responseText);
            },
            complete: function () {
                $("#inLoderRooms").css('visibility', 'hidden');
            }
        });
    };
    var handleRoomsSelection = function (e, i) {
        $("#RoomIdSessionImport").val(i.item.label);
        var replacekey = {
            //name: i.item.label.replace(/ *\([^)]*\) */g, " ").trim()
            name: i.item.label
        };
        //var selectedroom = i.item.label.replace(/ *\([^)]*\) */g, " ").trim().toLowerCase();
        var selectedroom = i.item.label;
        var found = false;
        $('#ulselectedRooms>a').each(function () {
            if ($(this).attr('data-title').trim().toLowerCase() === selectedroom.trim().toLowerCase()) {
                found = true;
            }
        });
        if (found === false) {
            var newTag = mediusCommon.replaceAll(htmltemplates.selectedOwner, replacekey);
            $(newTag).appendTo("#ulselectedRooms");
            $(".selectedRoomsContent").show();
            $("#ulselectedRooms").scrollTop(0);
            $('#ulselectedRooms').scrollTop($("#ulselectedRooms")[0].scrollHeight);
            var AppendOwner = "";
            $("#ulselectedRooms a").each(function () {
                AppendOwner = AppendOwner + " " + $(this).text() + ";";
            });
            $("#RoomIdSessionImport").val('');
        }
        else {
            createAlert("Already selected", alertTypes.warning, "#createVideoFrorms ");
            createAutoClosingAlert(".alert-warning", 2000);
            $("#RoomIdSessionImport").val('');
        }

    }

    var replaceAll = function (str, obj) {
        for (var i in obj) {
            if (obj.hasOwnProperty(i)) {
                obj["{{" + i + "}}"] = obj[i];
                delete obj[i];
            }
        }
        var rex = new RegExp(Object.keys(obj).join("|"), "gi");

        return str.replace(rex, function (matched) {
            return obj[matched];
        });
    }
    var ChangePreviewShortCode = function (ele) {
        // debugger;
        if (ele != "" && ele != null) {
            var name = $(ele).val();
            if (name.includes("-")) {
                var chanKey = name.split("-")[0];
                $.ajax({
                    url: urls.getContributorCreatePageDetails,
                    dataType: "json",
                    method: "GET",
                    cache: false,
                    data: { channelkey: chanKey },
                    success: function (Contributoritem) {
                        //debugger;
                        var selectedOwner = "";
                        $("#ulselectedOwner a").each(function () {
                            selectedOwner = selectedOwner + $(this).attr('data-title') + "(" + $(this).attr('data-email') + ");";
                        });
                        if (Contributoritem != null || Contributoritem != "") {
                            for (var i = 0; i < Contributoritem.length; i++) {
                                var contributor = Contributoritem[i].ContributorName;
                                if (contributor.includes("(")) {
                                    var contriName = contributor.split("(")[0];
                                    var email = contributor.split("(")[1];
                                    email = email.split(")")[0];
                                    var contributorData = '<a class="list-group-item" data-email="' + email + '" data-title="' + contriName + '"><div class="ownerInCreateForm"  title="' + Contributoritem[i].ContributorName + '">' + Contributoritem[i].ContributorName + '</div><span class="glyphicon glyphicon-remove selectedUserLi" title="Remove Owner" tabindex="0" aria-hidden="true" onclick="$(this).parent().remove();" onkeydown="if (event.which === 13) {$(this).parent().remove();}"></span ></a>';
                                }
                                else {
                                    var contributorData = '<a class="list-group-item" data-email="' + contributor + '" data-title=" "><div class="ownerInCreateForm"  title="' + Contributoritem[i].ContributorName + '">' + Contributoritem[i].ContributorName + '</div><span class="glyphicon glyphicon-remove selectedUserLi" title="Remove Owner" tabindex="0" aria-hidden="true" onclick="$(this).parent().remove();" onkeydown="if (event.which === 13) {$(this).parent().remove();}"></span ></a>';
                                }
                                if (selectedOwner.indexOf(contributor) === -1) {
                                    $("#ulselectedOwner").append(contributorData);
                                }
                            }
                        }
                    }
                });
            }
        }
    }

    var ChangePreviewTitle = function (ele) {
        var name = $(ele).val();
        $("#previewTitle").text('').text(name);
        //if ($(ele).attr('data-isChannel') === "true") {
        //    var cc = $("#ChannelKey").val();
        //    var parentch = "";
        //    if (cc.indexOf(':') > -1) {
        //        parentch = cc.split(':')[0];
        //        $("#ChannelKey").val(parentch + ":" + name.replace(/\W+/g, ''));
        //    } else {
        //        $("#ChannelKey").val(name.replace(/\W+/g, ''));
        //    }
        //}
    }

    var ChangePreviewDescription = function (ele) {
        var name = $(ele).val();
        $("#previewDescrip").text('').text(name);

    }
    var ChangePreviewSpeaker = function (ele) {
        var name = $(ele).val();
        $("#speakerheader").removeClass('displayNone');
        $("#previewspeaker").text('').text(name);

    }
    var ChangePreviewOwner = function (ele) {
        var name = $(ele).val();
        $("#previewOwner").text('').text(name);

    }
    var ChangePreviewPubDate = function (ele) {
        var name = $(ele).val();
        if (name !== "") {
            $("#PublishDate").datepicker({ dateFormat: "dd-mm-yy" });
            $("#previewVideoPubDate").text('').text($("#PublishDate").val());
        }
        else {
            $("#previewVideoPubDate").text('').text(name.replace("00:00:00", ''));
        }
    }

    var ChangePreviewSessionEndDate = function (ele) {
        var name = $(ele).val();
        if (name !== "") {
            $("#SessionEndTime").datepicker({ dateFormat: "dd-mm-yy" });
            $("#previewVideoEndDate").text('').text($("#SessionEndTime").val());
        }
        else {
            $("#previewVideoEndDate").text('').text(name.replace("00:00:00", ''));
        }
    }

    var removeParent = function (ele) {
        $(ele).parent().remove();
    }
    var changePreviewEmbed = function (ele) {
        var thisval = $(ele).val();
        var patt = new RegExp("^\<iframe(.*)\>\<\/iframe\>$");
        var res = patt.test(thisval);
        if (res) {


            var iframeData = $(ele).val();
            if (iframeData !== "") {
                $("#playerPreviewDiv").html(iframeData);
                $("#playerPreviewDiv").css("display", "block");
                $("#previewVideoThumbnail").hide();
            }
            else {
                $("#previewVideoThumbnail").show();
                $("#playerPreviewDiv").html('<img src="/Content/images/defaultChannels.png" id="previewVideoThumbnail" alt="">');
            }
        } else {
            createAlert("Please enter valid iframe code.you might entered wrong iframe code", alertTypes.error, "");
            createAutoClosingAlert(".alert-danger", 1000);
        }
    }
    var promptEmbedMessage = function (msg) {
        ClipBoardHelper.tryCopyTextToClipboard(msg.toString());
    }

    var promptShareLinkMessage = function (msg) {
        ClipBoardHelper.tryCopyTextToClipboard(msg.toString());
    }

    var ClipBoardHelper = (function () {
        function ClipBoardHelper() {
        }
        ClipBoardHelper.tryCopyTextToClipboard = function (text) {
            var textArea = $("#clipboard")[0];
            $(textArea).show();
            textArea.value = text;
            textArea.select();
            try {
                if (document.execCommand("copy")) {
                    createAlert("Copied to Clipboard!", alertTypes.success, "body");
                    createAutoClosingAlert(".alert-success", 2000);
                }
                else {
                    createAlert("Failed to Copy :-(", alertTypes.error, "body");
                    createAutoClosingAlert(".alert-danger", 2000);
                }
            }
            catch (err) {
                createAlert("Failed to Copy :-(", alertTypes.error, "body");
                createAutoClosingAlert(".alert-danger", 2000);
            };
            $(textArea).hide();
        };
        return ClipBoardHelper;
    })();

    var reloadPartialPubblePage = function () {
        var vid = $("#videoid").val();
        $.ajax({
            url: urls.getPubblePageDetails,
            method: "GET",
            cache: false,
            data: { videoid: vid },
            success: function (pubbles) {
                $("#collapsePubbleInfo").html('');
                $("#collapsePubbleInfo").append(pubbles);
                videoManager.init();
            },
            error: function (err) {
            },
            complete: function () {
            }
        });
    }

    var createAlert = function (alertMsg, alertType, appendTo) {

        var replaceKeys = {
            msg: alertMsg
        };
        var msgType = "";
        switch (alertType) {
            case "successalert":
                msgType = htmltemplates.alertMessageTemplate.saveSuccess;
                break;
            case "erroralert":
                msgType = htmltemplates.alertMessageTemplate.error;
                break;
            case "warningtalert":
                msgType = htmltemplates.alertMessageTemplate.warning;
                break;
            case "infoalert":
                msgType = htmltemplates.alertMessageTemplate.info;
                break;
        }
        var newSpan = replaceAll(msgType, replaceKeys);
        $(appendTo).append($(newSpan));
    };

    //validations
    var validateContributorName = function (CurrentName) {

        var parts = CurrentName.split('@');
        if (parts.length === 2) {
            if (parts[1].toLowerCase() === "outlook.com" || parts[1].toLowerCase() === "live.com" || parts[1].toLowerCase() === "microsoft.com") {
                return true;
            }
        }
        return false;

    };
    var validationFTEUser = function (emailId) {

        var fteFound = false;
        if (emailId !== "") {
            if ((emailId.indexOf('-') === -1)) {
                if (validateOnlyMSDomain(emailId)) {
                    fteFound = true;
                }
                else {
                    fteFound = false;
                }

            }
        }
        return fteFound;
    };

    var validateOnlyMSDomain = function (email) {
        var parts = email.split('@');
        if (parts.length === 2) {
            if (parts[1].toLowerCase() === "microsoft.com" && !(parts[0].toLowerCase().match("^v-"))) {
                return true;
            }
        }
        return false;
    };
    //end of validation methods
    function createAutoClosingAlert(selector, delay) {

        window.setTimeout(function () { $(selector).hide(); }, delay);
    }
    //show hide laoding img for load more
    var hideLoadingMSg = function () {
        $(".loadmoreActiondiv").removeClass('loadingmsgDiv');
    };
    var showLoadingMsg = function () {
        $(".loadmoreActiondiv").addClass('loadingmsgDiv');
    };

    var GetImageForVideo = function (attrSelector, attrValue) {
        if (attrValue.length > 0)
            return attrValue;
        var img = '';
        switch (attrSelector) {
            case 'ImgVideoDND':
                img = ImgUrls.ImgVideoDND;
                break;
            case 'ImgLiveStreamStart':
                img = ImgUrls.ImgLiveStreamStart;
                break;
            case 'ImgVideoComingSoon':
                img = ImgUrls.ImgVideoComingSoon;
                break;
            case 'ImgVideoNotAvailable':
                img = ImgUrls.ImgVideoNotAvailable;
                break;
        }
        return img;
    };
    var setUserRole = function (role) {
        try {
            if (typeof localStorage !== 'undefined') {
                localStorage.setItem("queryStringUserRole", role);
            }
        } catch (e) { }
    };

    var getQueryString = function (name) {
        var url = window.location.href;
        name = name.replace(/[\\[\]]/g, "\\$&");
        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, " "));
    }
    return {
        alertTypes: alertTypes,
        init: init,
        executeXHR: executeXHR,
        replaceAll: replaceAll,
        ChangePreviewShortCode: ChangePreviewShortCode,
        ChangePreviewTitle: ChangePreviewTitle,
        ChangePreviewDescription: ChangePreviewDescription,
        ChangePreviewSpeaker: ChangePreviewSpeaker,
        ChangePreviewOwner: ChangePreviewOwner,
        ChangePreviewPubDate: ChangePreviewPubDate,
        ChangePreviewSessionEndDate: ChangePreviewSessionEndDate,
        removeParent: removeParent,
        changePreviewEmbed: changePreviewEmbed,
        promptEmbedMessage: promptEmbedMessage,
        promptShareLinkMessage: promptShareLinkMessage,
        fillOwnerSearchBox: fillOwnerSearchBox,
        createAlert: createAlert,
        validateContributorName: validateContributorName,
        validationFTEUser: validationFTEUser,
        validateOnlyMSDomain: validateOnlyMSDomain,
        createAutoClosingAlert: createAutoClosingAlert,
        fillVideoSearchBox: fillVideoSearchBox,
        hideLoadingMSg: hideLoadingMSg,
        showLoadingMsg: showLoadingMsg,
        hidePageLoader: hidePageLoader,
        showPageLoader: showPageLoader,
        loadmoreChannelScroll: loadmoreChannelScroll,
        loadmorePlaylistScroll: loadmorePlaylistScroll,
        loadHomepageChannels: loadHomepageChannels,
        loadHomePageVideos: loadHomePageVideos,
        checkForUserConsetnt: checkForUserConsetnt,
        GetImageForVideo: GetImageForVideo,
        handleRoomsSelection: handleRoomsSelection,
        fillRoomsSearchBox: fillRoomsSearchBox,
        checkSealedValue: checkSealedValue,
        getQueryString: getQueryString,
        setUserRole: setUserRole
    };
})();

//Common Functions to pick, update and drop query params
function updateQueryStringParameter(uri, key, value) {
    var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
    var separator = uri.indexOf('?') !== -1 ? "&" : "?";
    if (uri.match(re)) {
        return uri.replace(re, '$1' + key + "=" + value + '$2');
    }
    else {
        return uri + separator + key + "=" + value;
    }
}

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\\[\]]/g, "\\$&");
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
        results = regex.exec(url);
    if (!results) return '';
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));
}

function getUrlParameter(name) {
    name = name.replace(/[\\[\]]/g, '\\[').replace(/[\]]/g, '\\]');
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = regex.exec(location.search);
    return results === null ? undefined : decodeURIComponent(results[1].replace(/\+/g, ' '));
};

function removeUrlParameter(url, parameter) {
    var urlParts = url.split('?');

    if (urlParts.length >= 2) {
        // Get first part, and remove from array
        var urlBase = urlParts.shift();

        // Join it back up
        var queryString = urlParts.join('?');

        var prefix = encodeURIComponent(parameter) + '=';
        var parts = queryString.split(/[&;]/g);

        // Reverse iteration as may be destructive
        for (var i = parts.length; i-- > 0;) {
            // Idiom for string.startsWith
            if (parts[i].lastIndexOf(prefix, 0) !== -1) {
                parts.splice(i, 1);
            }
        }

        url = urlBase + '?' + parts.join('&');
    }

    return url;
}

// https://tc39.github.io/ecma262/#sec-array.prototype.find
if (!Array.prototype.find) {
    Object.defineProperty(Array.prototype, 'find', {
        value: function (predicate) {
            // 1. Let O be ? ToObject(this value).
            if (this == null) {
                throw TypeError('"this" is null or not defined');
            }

            var o = Object(this);

            // 2. Let len be ? ToLength(? Get(O, "length")).
            var len = o.length >>> 0;

            // 3. If IsCallable(predicate) is false, throw a TypeError exception.
            if (typeof predicate !== 'function') {
                throw TypeError('predicate must be a function');
            }

            // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
            var thisArg = arguments[1];

            // 5. Let k be 0.
            var k = 0;

            // 6. Repeat, while k < len
            while (k < len) {
                // a. Let Pk be ! ToString(k).
                // b. Let kValue be ? Get(O, Pk).
                // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
                // d. If testResult is true, return kValue.
                var kValue = o[k];
                if (predicate.call(thisArg, kValue, k, o)) {
                    return kValue;
                }
                // e. Increase k by 1.
                k++;
            }

            // 7. Return undefined.
            return undefined;
        },
        configurable: true,
        writable: true
    });
}




;
var mediusAnalytics = (function () {
    "use strict";
    //for now we are sending all events under link click event only.
    var eventsToTrack = {
        linkClicked: "lc"
    };
    var className = [
{
    name: 'vjs-play-control',
    eleReg: 'Player',
    AIT: "",
    CG: "play/pause"
},
{
    name: 'vjs-big-play-button',
    eleReg: 'Player',
    AIT: "Big Play button",
    CG: "BigPlayButton"
},
//{
//    //non doc event
//    name: 'custom-caption-Search',
//    eleReg: 'Player',
//    AIT: "",
//    CG: "Caption Search Link "
//},
{
    //non doc event
    name: 'amp-feedback-control',
    eleReg: 'Player',
    AIT: "feedback link",
    CG: "feedback"
},
{
    //non doc event
    name: 'amp-playbackrate-control',
    eleReg: 'Player',
    AIT: "Playback Speed link",
    CG: "PlaybackSpeed"
},
{
    //non doc event
    name: 'amp-audiotracks-control',
    eleReg: 'Player',
    AIT: "Audito Track link",
    CG: "AuditoTrack"
},
{
    //non doc event
    name: 'vjs-subtitles-button',
    eleReg: 'Player',
    AIT: "Subtitle link",
    CG: "Subtitle"
},
//{
//    //non doc event
//    name: 'amp-closedcaption-control',
//    eleReg: 'Player',
//    AIT: "closed caption link",
//    CG: "closedcaption"
//},
{
    //non doc event
    name: 'amp-quality-control',
    eleReg: 'Player',
    AIT: "quality control link",
    CG: "qualitycontrol"
},
{
    //doc event
    name: 'amp-moreoptions-control',
    eleReg: 'Player',
    AIT: "moreoptions link",
    CG: "moreoptions"
},
{
    //non doc event
    name: 'amp-share-control',
    eleReg: 'Player',
    AIT: "share link",
    CG: "share"
},
{
    //doc event
    name: 'vjs-captionsearch-button',
    eleReg: 'Player',
    AIT: "Caption Search link",
    CG: "CaptionSearch"
},
{
    //doc event
    name: 'amp-donwload-control',
    eleReg: 'Player',
    AIT: "donwload link",
    CG: "donwload"
},
{
    //doc event
    name: 'vjs-volume-bar',
    eleReg: 'Player',
    AIT: "volume control",
    CG: "volumecontrol"
},
{
    //doc event
    name: 'vjs-volume-menu-button',
    eleReg: 'Player',
    AIT: "volume menu",
    CG: "volume"
},
{
    //doc event
    name: 'vjs-fullscreen-control',
    eleReg: 'Player',
    AIT: "fullscreen link",
    CG: "FullScreen"
},
{
    name: 'vjs-seek-handle',
    eleReg: 'Player',
    AIT: 'No Title',
    CG: 'Progressbar'
},
{
    name: 'vjs-volume-handle',
    eleReg: 'Player',
    AIT: 'No Title',
    CG: 'VolumeSlider'
},
    {
        name: 'shareicononsharepanel',
        eleReg: 'Player',
        AIT: 'No Title',
        CG: 'share icon'
    }

    ];

    var objecttoSend = {};
    var init = function () {
        initandTrackEvents();
    };
    var initandTrackEvents = function () {
        //handle body click events for differnt top menu bar link click events
        $(document).on('click', function (e) {
            if ($(e.target).attr('data-ai')) {
                var elt = $(e.target)[0];
                var eleType = elt.nodeName;     
                var eleTitle = elt.getAttribute('Title');
                var eleCG = elt.getAttribute('data-catagory');
                var aiTtl = "";
                var cg = '';
                if (typeof eleTitle !== 'undefined' && eleTitle !== null) {
                    if (eleTitle != "") {
                        aiTtl = eleTitle;
                    }
                }
                if (typeof eleCG !== 'undefined' && eleCG !== null) {
                    if (eleCG !== "") {
                        cg = eleCG;
                    }
                }

                var eleRegion = elt.getAttribute('data-eleregion');
                var TU = "";
                switch (eleType) {

                    case "A":
                        TU = elt.getAttribute('href');
                        break;
                    case "IMG":
                        TU = elt.getAttribute('data-url');
                        break;
                    case "DIV":
                        TU = elt.getAttribute('data-tu');
                        break;

                }
                var generatedProps = {
                    rg: eleRegion,
                    aitl: aiTtl,
                    tu: TU,
                    cg: cg
                }
                if ($(e.target).hasClass('shareicononsharepanel')) {
                    propFilled = true;
                    var rr = $(e.target).parent('a').attr('href');
                    var sharewith = "";
                    if (rr.indexOf('facebook') > -1) {
                        sharewith = " facebook";
                    }
                    else if (rr.indexOf('twitter') > -1) {
                        sharewith = " twitter";
                    }
                    else if (rr.indexOf('linkedin') > -1) {
                        sharewith = " linkedin";
                    }
                    else if (rr.indexOf('mailto') > -1) {
                        sharewith = " mail";
                    }
                    eleRegion = $(e.target).attr('data-eleregion');
                    generatedProps.rg = eleRegion;
                    generatedProps.aitl = $(e.target).attr('title') + sharewith;
                    generatedProps.tu = "";
                    generatedProps.cg = $(e.target).attr('data-catagory');
                }
                if ($(e.target).hasClass('divforrecDesconplayer') || $(e.target).hasClass('recommLinkOnCTAoverlay')) {
                    propFilled = true;
                    generatedProps.rg = $(e.target).attr('data-eleregion');
                    generatedProps.aitl = $(e.target).attr('title');
                    generatedProps.tu = $(e.target).attr('data-tu');
                    generatedProps.cg = $(e.target).attr('data-catagory');
                }
             
                if ($(e.target).attr('data-sessionStorage')) {
                    var str = JSON.stringify(generatedProps);
                    var Count = sessionStorage.length + 1;
                    sessionStorage.setItem('medius_' + Count, str);
                }
                else {

                    objecttoSend = {
                    };
                    objecttoSend.properties = generatedProps;
                    sendTrackingdata(objecttoSend);
                }
            } else {
                var generatedProps = {
                };
                var matchFound = false;
                var propFilled = false;
                for (var i = 0; i < className.length; i++) {
                    if ($(e.target).hasClass(className[i].name)) {
                        matchFound = true;
                        if (className[i].name === "vjs-play-control") {
                            if ($(e.target).hasClass('vjs-playing')) {
                                propFilled = true;
                                generatedProps.rg = className[i].eleReg;
                                generatedProps.aitl = className[i].AIT + " pause Click";
                                generatedProps.tu = "";
                                generatedProps.cg = className[i].CG;

                            } else if ($(e.target).hasClass('vjs-paused')) {
                                propFilled = true;
                                generatedProps.rg = className[i].eleReg;
                                generatedProps.aitl = className[i].AIT + " play Click";
                                generatedProps.tu = "";
                                generatedProps.cg = className[i].CG;
                            }

                        }
                        if (propFilled === false) {
                            //common for other Controls
                            generatedProps.rg = className[i].eleReg;
                            generatedProps.aitl = className[i].AIT;
                            generatedProps.tu = "";
                            generatedProps.cg = className[i].CG;
                        }
                    }
                }
                if (matchFound) {
                    objecttoSend = {
                    };
                    objecttoSend.properties = generatedProps;
                    sendTrackingdata(objecttoSend);
                }
            }

        });
        setTimeout(function () {
            var captionLinks = document.querySelectorAll(".amp-closedcaption-control li.vjs-menu-item");
            var captionLinksE = document.querySelectorAll(".amp-subtitles-control li.vjs-menu-item");
            if (captionLinks.length > 0 || captionLinksE.length > 0) {
                for (var i = 0; i < captionLinks.length; i++) {
                    var captionLang = captionLinks[i].innerText;
                    if (captionLang.toLowerCase() != "off" && captionLang.toLowerCase() != "settings" && captionLang.toLowerCase() != "captions off") {
                        captionLinks[i].addEventListener("mousedown", function () {
                            var generatedProps = {};
                            generatedProps.rg = "player";
                            generatedProps.aitl = captionLang;
                            generatedProps.tu = "";
                            generatedProps.cg = "Closed Caption Language";
                            objecttoSend = {};
                            objecttoSend.properties = generatedProps;
                            sendTrackingdata(objecttoSend);
                        });
                    }

                }
                for (var i = 0; i < captionLinksE.length; i++) {
                    var captionLang = captionLinksE[i].innerText;
                    if (captionLang.toLowerCase() != "off" && captionLang.toLowerCase() != "settings" && captionLang.toLowerCase() != "captions off") {

                        captionLinksE[i].addEventListener("mousedown", function () {
                            var generatedProps = {};
                            generatedProps.rg = "player";
                            generatedProps.aitl = captionLang;
                            generatedProps.tu = "";
                            generatedProps.cg = "subtitles Language";
                            objecttoSend = {};
                            objecttoSend.properties = generatedProps;
                            sendTrackingdata(objecttoSend);
                        });
                    }

                }
            }

        }, 3000);
        setTimeout(function () {
            var actionLinks = document.querySelectorAll(".Custome-MoreMenu .vjs-menu-item");
            if (actionLinks.length > 0) {
                for (var j = 0; j < actionLinks.length - 1; j++) {
                    actionLinks[j].addEventListener("mousedown", function () {
                        console.log($(this));
                        sendinbuiltControlAna($(this));
                    });
                }
            }
            var CaptionsLinks = document.querySelectorAll(".amp-captionsearch-control .custom-caption-Search");
            if (CaptionsLinks.length > 0) {
                for (var j = 0; j < CaptionsLinks.length - 1; j++) {
                    CaptionsLinks[j].addEventListener("mousedown", function () {
                        sendinbuiltControlAna($(this));
                    });
                }
            }
            var otherLinks = document.querySelectorAll(".vjs-control-bar .vjs-progress-holder");
            if (otherLinks.length > 0) {
                for (var j = 0; j < otherLinks.length - 1; j++) {
                    otherLinks[j].addEventListener("mousedown", function () {
                        sendinbuiltControlAna($(this));
                    });
                }
            }
            var playlbackrate = document.querySelectorAll(".amp-controlbaricons-right .amp-playbackrate-control ul.vjs-menu-content li.amp-menu-item");
            if (playlbackrate.length > 0) {
                for (var j = 0; j < playlbackrate.length - 1; j++) {
                    playlbackrate[j].addEventListener("mousedown", function () {
                        sendinbuiltControlAna($(this));
                    });
                }
            }
            var subtitlelinks = document.querySelectorAll(".amp-controlbaricons-right .amp-subtitles-control");
            $(subtitlelinks[1]).text('').text('Captions');

            var controlCaptions = document.querySelectorAll(".amp-controlbaricons-right .amp-subtitles-control ul.vjs-menu-content li.amp-menu-header");
            $(controlCaptions).text('').text('Captions');

            var feedbacklink = document.querySelectorAll(".amp-controlbaricons-right .amp-moreoptions-control .vjs-control-content .vjs-menu ul.vjs-menu-content li.amp-feedback-control ");
            if (feedbacklink.length > 0) {
                feedbacklink[0].addEventListener("mousedown", function () {
                    sendinbuiltControlAna($(this));
                });
            }
            var qualityLink = document.querySelectorAll(".amp-controlbaricons-right .amp-quality-control ul.vjs-menu-content li.vjs-menu-item");
            if (qualityLink.length > 0) {
                for (var j = 0; j < qualityLink.length - 1; j++) {
                    qualityLink[j].addEventListener("mousedown", function () {
                        sendinbuiltControlAna($(this));
                    });
                }
            }
            function sendinbuiltControlAna(ele) {
              
                for (var j = 0; j < className.length - 1; j++) {
                    var generatedProps = {};
                    if ($(ele).hasClass(className[j].name)) {
                        generatedProps.rg = className[j].eleReg;
                        generatedProps.aitl = $(ele).attr('title') !== "" && typeof $(ele).attr('title') != 'undedefined' ? $(ele).attr('title') : className[j].AIT;
                        generatedProps.tu = "";
                        generatedProps.cg = className[j].CG;
                        objecttoSend = {};
                        objecttoSend.properties = generatedProps;
                        sendTrackingdata(objecttoSend);
                        break;
                    }
                    else if ($(ele).parents('.amp-playbackrate-control').length > 0) {
                        generatedProps.rg = "player";
                        generatedProps.aitl = $(ele).text();
                        generatedProps.tu = "";
                        generatedProps.cg = "PlaybackRate";
                        objecttoSend = {};
                        objecttoSend.properties = generatedProps;
                        sendTrackingdata(objecttoSend);
                        break;
                    }
                    else if ($(ele).parents('.amp-quality-control').length > 0) {
                        generatedProps.rg = "player";
                        generatedProps.aitl = $(ele).text();
                        generatedProps.tu = "";
                        generatedProps.cg = "quality value";

                        objecttoSend = {};
                        objecttoSend.properties = generatedProps;
                        sendTrackingdata(objecttoSend);
                        break;
                    }
                    else if ($(ele).hasClass('amp-feedback-control')){
                        generatedProps.rg = "player";
                        generatedProps.aitl ="Feedback";
                        generatedProps.tu = "";
                        generatedProps.cg = "Feedback";

                        objecttoSend = {};
                        objecttoSend.properties = generatedProps;
                        sendTrackingdata(objecttoSend);
                        break;
                    }
                }
            }
        }, 2000);
    };
    //send tracking data to app insight
    var sendTrackingdata = function (datatoSend) {
        if (window.appInsights) {
            var properties = {
                ru: document.referrer || ''
            };
            properties = $.extend(properties, properties, datatoSend.properties);

            appInsights.trackEvent(eventsToTrack.linkClicked, properties);
        } else {
            console.log("App Insights not detected");
        }
    };
    return {
        init: init,
        sendTrackingdata: sendTrackingdata
    };
})();
$(document).ready(function () {
    mediusAnalytics.init();
});;
var CaptionManager = (function () {
    var language = {
        "en": "English",
        "es": "Spanish",
        "zh": "Chinese Traditional",
        "fr": "French",
        "de": "German",
        "pt": "Portuguese",
        "ar": "Arabic",
        "ja": "Japanese",
        "us": "English",
        "gb": "English",
        "mx": "Spanish",
        "jp": "Japanese",
        "cn": "Chinese Simplified",
        "eg": "Arabic",
        "sw": "Swedish",
        "dl": "Dutch",
        "bg": "Bulgarian",
        "br": "Portuguese (Brazil)",
        "cs": "Czech",
        "da": "Danish",
        "fi": "Finnish",
        "el": "Greek",
        "hi": "Hindi",
        "hu": "Hungarian",
        "ko": "Korean",
        "pl": "Polish",
        "ro": "Romanian",
        "ru": "Russian",
        "sk": "Slovak",
        "sl": "Slovenian",
        "th": "Thai",
        "tr": "Turkish",
        "hant": "Chinese Traditional",
        "hans": "Chinese Simplified",
        "cz": "Czech",
        "dk": "Danish",
        "nl": "Dutch",
        "gr": "Greek",
        "in": "Hindi",
        "it": "Italian",
        "kr": "Korean",
        "no": "Norwegian",
        "se": "Swedish",
        "si": "Slovenian",
        "ur": "Urdu",
        "pk": "Urdu",
        "bd": "Bangla",
        "id": "Indonesian",
        "vn": "Vietnamese",
        "ca": "French (Canada)",
        "lt": "Spanish (LATAM)",
        "ct": "Castilian Spanish (Spain)",
        "ua": "Ukrainian",
        "pt": "Portuguese (Portugal)",
        "il": "Hebrew"
    };

    //en-US, fr-FR, de-DE, es-CO, ja-JP, zh-CN these lang codes should support as fo now for localization
    var captionMenuLocalozationLangCodes = {
        "fr": {
            "en": "Anglais",
            "es": "Espagnol",
            "zh": "Chinois traditionnel",
            "fr": "Français",
            "de": "Allemand",
            "pt": "Portugais",
            "ar": "Arabe",
            "ja": "Japonais",
            "us": "Anglais",
            "gb": "Anglais",
            "mx": "Espagnol",
            "jp": "Japonais",
            "cn": "Chinois simplifié",
            "eg": "Arabe",
            "sw": "Suédois",
            "dl": "Néerlandais",
            "bg": "Bulgare",
            "br": "Portugais (Brésil)",
            "cs": "Tchèque",
            "da": "Danois",
            "fi": "Finnois",
            "el": "Grec",
            "hi": "Hindi",
            "hu": "Hongrois",
            "ko": "Coréen",
            "nb": "Norvégien",
            "pl": "Polonais",
            "ro": "Roumain",
            "ru": "Russe",
            "sk": "Slovaque",
            "sl": "Slovène",
            "th": "Thaï",
            "tr": "Turc",
            "hant": "Chinois traditionnel",
            "hans": "Chinois simplifié",
            "cz": "Tchèque",
            "dk": "Danois",
            "nl": "Néerlandais",
            "gr": "Grec",
            "in": "Hindi",
            "it": "Italien",
            "kr": "Coréen",
            "no": "Norvégien",
            "se": "Suédois",
            "si": "Slovène",
            "ur": "Urdu",
            "pk": "Urdu",
            "bd": "Bangla",
            "id": "Indonésien",
            "vn": "Vietnamien",
            "ca": "Français (Canada)",
            "lt": "Espagnol (LATAM)",
            "ct": "Espagnol castillan (Espagne)",
            "ua": "Ukrainien"
        },
        "de": {
            "en": "Englisch",
            "es": "Spanisch",
            "zh": "Chinesisch (Traditionell)",
            "fr": "Französisch",
            "de": "Deutsch",
            "pt": "Portugiesisch",
            "ar": "Arabisch",
            "ja": "Japanisch",
            "us": "Englisch",
            "gb": "Englisch",
            "mx": "Spanisch",
            "jp": "Japanisch",
            "cn": "VChinesisch (Vereinfacht)",
            "eg": "Arabisch",
            "sw": "Schwedisch",
            "dl": "Holländisch",
            "bg": "Bulgarisch",
            "br": "Portugiesisch (Brasilien)",
            "cs": "Tschechisch",
            "da": "Dänisch",
            "fi": "Finnisch",
            "el": "Griechisch",
            "hi": "Hindi",
            "hu": "Ungarisch",
            "ko": "Koreanisch",
            "nb": "Norwegisch",
            "pl": "Polnisch",
            "ro": "Rumänisch",
            "ru": "Russisch",
            "sk": "Slowakisch",
            "sl": "Slowenisch",
            "th": "Thailändisch",
            "tr": "Türkisch",
            "hant": "Chinesisch (Traditionell)",
            "hans": "Chinesisch (Vereinfacht)",
            "cz": "Tschechisch",
            "dk": "Dänisch",
            "nl": "Holländisch",
            "gr": "Griechisch",
            "in": "Hindi",
            "it": "Italienisch",
            "kr": "Koreanisch",
            "no": "Norwegisch",
            "se": "Schwedisch",
            "si": "Slowenisch",
            "ur": "Urdu",
            "pk": "Urdu",
            "bd": "Bangla |",
            "id": "Indonesisch",
            "vn": "Vietnamesisch",
            "ca": "Französisch (Kanada)",
            "lt": "Spanisch (LATAM)",
            "ct": "Kastilisches Spanisch (Spanien)",
            "ua": "Ukrainisch"
        },
        "es": {
            "en": "Inglés",
            "es": "Español",
            "zh": "Chino tradicional",
            "fr": "Francés",
            "de": "Alemán",
            "pt": "Portugués",
            "ar": "Árabe",
            "ja": "Japonés",
            "us": "Inglés",
            "gb": "Inglés",
            "mx": "Español",
            "jp": "Japonés",
            "cn": "Chino simplificado",
            "eg": "Árabe",
            "sw": "Sueco",
            "dl": "Holandés",
            "bg": "Búlgaro",
            "br": "Portugués (Brasil)",
            "cs": "Checo",
            "da": "Danés",
            "fi": "Finlandés",
            "el": "Griego",
            "hi": "Hindi",
            "hu": "Húngaro",
            "ko": "Coreano",
            "nb": "Noruego",
            "pl": "Polaco",
            "ro": "Rumano",
            "ru": "Ruso",
            "sk": "Eslovaco",
            "sl": "Esloveno",
            "th": "Tailandés",
            "tr": "Turco",
            "hant": "Chino tradicional",
            "hans": "Chino simplificado",
            "cz": "Checo",
            "dk": "Danés",
            "nl": "Holandés",
            "gr": "Griego",
            "in": "Hindi",
            "it": "Italiano",
            "kr": "Coreano",
            "no": "Noruego",
            "se": "Sueco",
            "si": "Esloveno",
            "ur": "Urdu",
            "pk": "Urdu",
            "bd": "Bangla",
            "id": "Indonesio",
            "vn": "Vietnamita",
            "ca": "Francés (Canadá)",
            "lt": "Español (LATAM)",
            "ct": "Castellano Español (España)",
            "ua": "Ucraniano"
        },
        "ja": {
            "en": "英語",
            "es": "スペイン語",
            "zh": "繁体字中国語",
            "fr": "フランス語",
            "de": "ドイツ語",
            "pt": "ポルトガル語",
            "ar": "アラビア語",
            "ja": "日本語",
            "us": "英語",
            "gb": "英語",
            "mx": "スペイン語",
            "jp": "日本語",
            "cn": "簡体字中国語",
            "eg": "アラビア語",
            "sw": "スウェーデン語",
            "dl": "オランダ語",
            "bg": "ブルガリア語",
            "br": "ポルトガル語 (ブラジル)",
            "cs": "チェコ語",
            "da": "デンマーク語",
            "fi": "フィンランド語",
            "el": "ギリシャ語",
            "hi": "ヒンディー語",
            "hu": "ハンガリー語",
            "ko": "韓国語",
            "nb": "ノルウェー語",
            "pl": "ポーランド語",
            "ro": "ルーマニア語",
            "ru": "ロシア語",
            "sk": "スロバキア語",
            "sl": "スロベニア語",
            "th": "タイ語",
            "tr": "トルコ語",
            "hant": "繁体字中国語",
            "hans": "簡体字中国語",
            "cz": "チェコ語",
            "dk": "デンマーク語",
            "nl": "オランダ語",
            "gr": "ギリシャ語",
            "in": "ヒンディー語",
            "it": "イタリア語",
            "kr": "韓国語",
            "no": "ノルウェー語",
            "se": "スウェーデン語",
            "si": "スロベニア語",
            "ur": "ウルドゥ語",
            "pk": "ウルドゥ語",
            "bd": "バングラ",
            "id": "インドネシア語",
            "vn": "ベトナム語",
            "ca": "フランス語 (カナダ)",
            "lt": "スペイン語 (LATAM)",
            "ct": "カスティーリャスペイン語 (スペイン)",
            "ua": "ウクライナ語"
        },
        "zh": {
            "en": "英语",
            "es": "西班牙语",
            "zh": "繁体中文",
            "fr": "法语",
            "de": "德语",
            "pt": "葡萄牙语",
            "ar": "阿拉伯语",
            "ja": "日语",
            "us": "英语",
            "gb": "英语",
            "mx": "西班牙语",
            "jp": "日语",
            "cn": "简体中文",
            "eg": "阿拉伯语",
            "sw": "瑞典语",
            "dl": "荷兰语",
            "bg": "保加利亚语",
            "br": "葡萄牙语（巴西）",
            "cs": "捷克语",
            "da": "丹麦语",
            "fi": "芬兰语",
            "el": "希腊语",
            "hi": "印地语",
            "hu": "匈牙利语",
            "ko": "朝鲜语",
            "nb": "挪威语",
            "pl": "波兰语",
            "ro": "罗马尼亚",
            "ru": "俄语",
            "sk": "斯洛伐克语",
            "sl": "斯洛文尼亚语",
            "th": "泰语",
            "tr": "土耳其语",
            "hant": "繁体中文",
            "hans": "简体中文",
            "cz": "捷克语",
            "dk": "丹麦语",
            "nl": "荷兰语",
            "gr": "希腊语",
            "in": "印地语",
            "it": "意大利语",
            "kr": "朝鲜语",
            "no": "挪威语",
            "se": "瑞典语",
            "si": "斯洛文尼亚语",
            "ur": "乌都语",
            "pk": "乌都语",
            "bd": "孟加拉语",
            "id": "印度尼西亚语",
            "vn": "越南语",
            "ca": "法语（加拿大）",
            "lt": "西班牙语（拉丁美洲）",
            "ct": "卡斯蒂利亚西班牙语（西班牙）",
            "ua": "乌克兰语"
        }
    };

    var locale = {
        "Play": {
            "zh": "播放",
            "zh-hans": "播放",
            "zh-hant": "播放",
            "en-US": "Play",
            "en": "Play",
            "fr": "Lecture",
            "de": "Wiedergeben",
            "ja": "再生",
            "es": "Reproducir"
        },
        "PlayVideo": {
            "zh": "播放视频",
            "zh-hans": "播放视频",
            "zh-hant": "播放视频",
            "en-US": "Play Video",
            "en": "Play Video",
            "fr": "Lire la vidéo",
            "de": "Video wiedergeben",
            "ja": "動画を再生",
            "es": "Reproducir video"
        },
        "PressSpaceKeyToPlayOrPauseVideo": {
            "zh": "按空格键以播放/暂停视频",
            "zh-hans": "按空格键以播放/暂停视频",
            "zh-hant": "按空格键以播放/暂停视频",
            "en-US": "Press space key to play/pause the video",
            "en": "Press space key to play/pause the video",
            "fr": "Appuyez sur la barre d’espace pour lire/mettre en pause la vidéo",
            "de": "Drücke die Leertaste, um das Video wiederzugeben/anzuhalten",
            "ja": "Space キーを押して動画を再生/一時停止",
            "es": "Presione la tecla de espacio para reproducir/pausar el video"
        },
        "Off": {
            "zh": "关",
            "zh-hans": "关",
            "zh-hant": "关",
            "en-US": "Off",
            "en": "Off",
            "fr": "Off",
            "de": "Aus",
            "ja": "オフ",
            "es": "Apagar"
        },
        "CaptionSearch": {
            "ar": "بحث التسمية التوضيحية",
            "bg": "Търсене на надписи",
            "zh": "字幕搜索",
            "zh-hans": "字幕搜索",
            "zh-hant": "字幕搜索",
            "cs": "Hledání titulků",
            "da": "Tekstsøgning",
            "nl": "Bijschrift zoeken",
            "en-US": "Caption Search",
            "en": "Caption Search",
            "fi": "Tekstityshaku",
            "fr": "Recherche de sous-titres",
            "de": "Untertitelsuche",
            "el": "Αναζήτηση υπότιτλων",
            "hi": "कैप्शन खोज",
            "hu": "Feliratok keresése",
            "id": "Pencarian Teks",
            "it": "Ricerca sottotitoli",
            "ja": "キャプション検索",
            "ko": "캡션 검색",
            "nb": "Tekstsøk",
            "pl": "Wyszukiwanie napisów",
            "pt-br": "Pesquisa de legenda",
            "pt-pt": "Pesquisa de legenda",
            "ro": "Căutare subtitrare",
            "ru": "Поиск по субтитрам",
            "sk": "Vyhľadávanie titulkov",
            "sl": "Iskanje napisov",
            "es": "Búsqueda de subtítulos",
            "sv": "Bildtext Sök",
            "th": "ค้นหาคำบรรยาย",
            "tr": "Altyazı Arama",
            "vi": "Tìm kiếm phụ đề"
        }
    }

    var mapLangAndCountryCodesToLangCode = {
        "ar-eg": "ar",
        "bg-bg": "bg",
        "zh-cn": "zh",
        "zh-hans": "zh-hans",
        "zh-hant": "zh-hant",
        "cs-cs": "cs",
        "da-da": "da",
        "nl-nl": "nl",
        "en-us": "en",
        "fi-fi": "fi",
        "fr-fr": "fr",
        "de-de": "de",
        "el-el": "el",
        "hi-hi": "hi",
        "hu-hu": "hu",
        "it-it": "it",
        "ja-jp": "ja",
        "ko-ko": "ko",
        "nb-nb": "nb",
        "pl-pl": "pl",
        "pt-br": "pt-br",
        "pt-pt": "pt-pt",
        "ro-ro": "ro",
        "ru-ru": "ru",
        "sk-sk": "sk",
        "sl-sl": "sl",
        "es-co": "es",
        "sv-se": "sv",
        "th-th": "th",
        "tr-tr": "tr",
        "vi-vi": "vi",
        "en": "en",
        "fr": "fr",
        "de": "de",
        "ja": "ja",
        "es": "es",
        "zh": "zh",
        "zh": "zh",
        "zh": "zh"
    };

    var Getcaption = function (videoCaptionlist, VideoAudioLanguage, locCode) {

        var langandurl = [];
        var langandurl_AudioLang = [];
        var file = '';
        //Write Logic to generate caption string from Video CaptionList and VideoAudtioLanguage
        for (var i = 0; i < videoCaptionlist.length; i++) {
            var langugage = videoCaptionlist[i].FileName.split('-');
            if (langugage.length > 1) {
                var lang = langugage[1].split('.')[0];
                if (null != captionMenuLocalozationLangCodes[locCode] && captionMenuLocalozationLangCodes[locCode] != undefined && null != captionMenuLocalozationLangCodes[locCode][lang.toLowerCase()] && captionMenuLocalozationLangCodes[locCode][lang.toLowerCase()] != undefined)
                    file = { 'Item1': videoCaptionlist[i].StreamUrl, 'Item2': lang.toLowerCase(), 'Item3': captionMenuLocalozationLangCodes[locCode][lang.toLowerCase()] }
                else
                    file = { 'Item1': videoCaptionlist[i].StreamUrl, 'Item2': lang.toLowerCase(), 'Item3': language[lang.toLowerCase()] }
                langandurl.push(file);
            }
        }
        if (VideoAudioLanguage != null && VideoAudioLanguage != undefined && VideoAudioLanguage != '') {
            var AudioLang = VideoAudioLanguage;
            var AudLang = AudioLang.split(',');
            for (var j = 0; j < AudLang.length; j++) {
                var lanCode = AudLang[j].split('-')[1];
                if (lanCode != "") {
                    try {
                        if (langandurl.filter(a => a.Item2.toLowerCase() == lanCode.toLowerCase())) {
                            var audioItem = langandurl.find(r => r.Item2.toLowerCase() == lanCode.toLowerCase());
                            var isExists = false;
                            isExists = langandurl.includes(audioItem);
                            if (isExists) {
                                var newFile = { 'Item1': audioItem.Item1, 'Item2': audioItem.Item2.toLowerCase(), 'Item3': audioItem.Item3 }
                                langandurl_AudioLang.push(newFile);
                                langandurl = langandurl.filter(a => a !== audioItem);
                            }
                        }

                    }
                    catch (ex) {
                    }

                }

            }
        }
        if (langandurl.length > 0) {
            if ((langandurl_AudioLang.length == 0) || (langandurl_AudioLang.includes(a => (a.Item2.toLowerCase() == "en" || a.Item2.toLowerCase() == "us" || a.Item2.toLowerCase() == "gb")) == false)) {
                var engItem = langandurl.find(a => (a.Item2.toLowerCase() == "en" || a.Item2.toLowerCase() == "us" || a.Item2.toLowerCase() == "gb"));
                if (engItem != null && engItem != undefined && engItem != '') {
                    var file = { 'Item1': engItem.Item1, 'Item2': engItem.Item2.toLowerCase(), 'Item3': engItem.Item3 }
                    langandurl_AudioLang.push(file);
                    langandurl = langandurl.filter(a => a !== engItem);
                }
            }
            langandurl = langandurl.sort(function (a, b) {
                return a.Item3.localeCompare(b.Item3);
            })
            langandurl = langandurl_AudioLang.concat(langandurl);
            var captions = [];
            for (var i = 0; i < langandurl.length; i++) {
                var captiontype = 'captions';
                const urlParams = new URLSearchParams(window.location.search);
                const captype = urlParams.get('captype');
                if (captype != '' && captype != null && captype != undefined && captype.toLowerCase() == 's') {
                    captiontype = 'subtitles';
                }
                var item = String(langandurl[i].Item1);
                const parseResult = new DOMParser().parseFromString(item, "text/html");
                const parsedUrl = parseResult.documentElement.textContent;
                var text = { 'src': parsedUrl, 'srclang': langandurl[i].Item2, 'kind': captiontype, 'label': langandurl[i].Item3 }
                captions.push(text);
            }
        }
        return captions;
    }

    var GetLangCodeFromQueryString = function (locParam) {
        var lang = '';
        if (locParam != null || locParam != undefined) {
            locParam = locParam.toLowerCase();
        }

        if (locParam == null || locParam == undefined) {
            lang = "en";
        }
        else if (mapLangAndCountryCodesToLangCode.hasOwnProperty(locParam) == false) {
            lang = "en";
        }
        else {
            lang = mapLangAndCountryCodesToLangCode[locParam];
        }
        return lang;
    }

    var Getvtturls = function (captions, locCode) {
        var langCode = '';
        //en-US, fr-FR, de-DE, es-CO, ja-JP, zh-CN these lang codes should support as fo now for localization
        var mapLocParamToCaptionSrcLang = {
            "en": "en",
            "fr": "fr",
            "de": "de",
            "es": "es",
            "ja": "jp",
            "zh": "hant"
        }
        var vtturls = '';
        try {
            if (mapLocParamToCaptionSrcLang.hasOwnProperty(locCode) == false) {
                langCode = "en";
            }
            else {
                langCode = mapLocParamToCaptionSrcLang[locCode];
            }
            langCode = langCode.toLocaleLowerCase();
            vtturls = captions.find(function (a) { return a.srclang.toLowerCase() == langCode }) ? captions.find(function (a) { return a.srclang.toLowerCase() == langCode }).src : captions[0].src;
        }
        catch (ex) {
        }
        return vtturls;
    }

    function GetLocalizedValue(localeKey, langCode) {
        var localizedText = '';
        if (locale[localeKey] != null && locale[localeKey] != undefined) {
            localizedText = (null != locale[localeKey][langCode] || locale[localeKey][langCode] != undefined) ? locale[localeKey][langCode] : localeKey;
        }
        else {
            localizedText = localeKey;
        }
        return localizedText;
    }

    return {
        Getcaption: Getcaption,
        GetLangCodeFromQueryString: GetLangCodeFromQueryString,
        Getvtturls: Getvtturls,
        GetLocalizedValue: GetLocalizedValue
    }
})();
;
!function (e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.moment = t() }(this, function () { "use strict"; function e() { return Qe.apply(null, arguments) } function t(e) { return e instanceof Array || "[object Array]" === Object.prototype.toString.call(e) } function n(e) { return null != e && "[object Object]" === Object.prototype.toString.call(e) } function s(e) { return void 0 === e } function i(e) { return "number" == typeof e || "[object Number]" === Object.prototype.toString.call(e) } function r(e) { return e instanceof Date || "[object Date]" === Object.prototype.toString.call(e) } function a(e, t) { var n, s = []; for (n = 0; n < e.length; ++n)s.push(t(e[n], n)); return s } function o(e, t) { return Object.prototype.hasOwnProperty.call(e, t) } function u(e, t) { for (var n in t) o(t, n) && (e[n] = t[n]); return o(t, "toString") && (e.toString = t.toString), o(t, "valueOf") && (e.valueOf = t.valueOf), e } function l(e, t, n, s) { return ge(e, t, n, s, !0).utc() } function d(e) { return null == e._pf && (e._pf = { empty: !1, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: !1, invalidMonth: null, invalidFormat: !1, userInvalidated: !1, iso: !1, parsedDateParts: [], meridiem: null, rfc2822: !1, weekdayMismatch: !1 }), e._pf } function h(e) { if (null == e._isValid) { var t = d(e), n = Xe.call(t.parsedDateParts, function (e) { return null != e }), s = !isNaN(e._d.getTime()) && t.overflow < 0 && !t.empty && !t.invalidMonth && !t.invalidWeekday && !t.weekdayMismatch && !t.nullInput && !t.invalidFormat && !t.userInvalidated && (!t.meridiem || t.meridiem && n); if (e._strict && (s = s && 0 === t.charsLeftOver && 0 === t.unusedTokens.length && void 0 === t.bigHour), null != Object.isFrozen && Object.isFrozen(e)) return s; e._isValid = s } return e._isValid } function c(e) { var t = l(NaN); return null != e ? u(d(t), e) : d(t).userInvalidated = !0, t } function f(e, t) { var n, i, r; if (s(t._isAMomentObject) || (e._isAMomentObject = t._isAMomentObject), s(t._i) || (e._i = t._i), s(t._f) || (e._f = t._f), s(t._l) || (e._l = t._l), s(t._strict) || (e._strict = t._strict), s(t._tzm) || (e._tzm = t._tzm), s(t._isUTC) || (e._isUTC = t._isUTC), s(t._offset) || (e._offset = t._offset), s(t._pf) || (e._pf = d(t)), s(t._locale) || (e._locale = t._locale), Ke.length > 0) for (n = 0; n < Ke.length; n++)s(r = t[i = Ke[n]]) || (e[i] = r); return e } function m(t) { f(this, t), this._d = new Date(null != t._d ? t._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === et && (et = !0, e.updateOffset(this), et = !1) } function _(e) { return e instanceof m || null != e && null != e._isAMomentObject } function y(e) { return e < 0 ? Math.ceil(e) || 0 : Math.floor(e) } function g(e) { var t = +e, n = 0; return 0 !== t && isFinite(t) && (n = y(t)), n } function p(e, t, n) { var s, i = Math.min(e.length, t.length), r = Math.abs(e.length - t.length), a = 0; for (s = 0; s < i; s++)(n && e[s] !== t[s] || !n && g(e[s]) !== g(t[s])) && a++; return a + r } function w(t) { !1 === e.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + t) } function v(t, n) { var s = !0; return u(function () { if (null != e.deprecationHandler && e.deprecationHandler(null, t), s) { for (var i, r = [], a = 0; a < arguments.length; a++) { if (i = "", "object" == typeof arguments[a]) { i += "\n[" + a + "] "; for (var o in arguments[0]) i += o + ": " + arguments[0][o] + ", "; i = i.slice(0, -2) } else i = arguments[a]; r.push(i) } w(t + "\nArguments: " + Array.prototype.slice.call(r).join("") + "\n" + (new Error).stack), s = !1 } return n.apply(this, arguments) }, n) } function M(t, n) { null != e.deprecationHandler && e.deprecationHandler(t, n), tt[t] || (w(n), tt[t] = !0) } function k(e) { return e instanceof Function || "[object Function]" === Object.prototype.toString.call(e) } function S(e, t) { var s, i = u({}, e); for (s in t) o(t, s) && (n(e[s]) && n(t[s]) ? (i[s] = {}, u(i[s], e[s]), u(i[s], t[s])) : null != t[s] ? i[s] = t[s] : delete i[s]); for (s in e) o(e, s) && !o(t, s) && n(e[s]) && (i[s] = u({}, i[s])); return i } function D(e) { null != e && this.set(e) } function Y(e, t) { var n = e.toLowerCase(); st[n] = st[n + "s"] = st[t] = e } function O(e) { return "string" == typeof e ? st[e] || st[e.toLowerCase()] : void 0 } function x(e) { var t, n, s = {}; for (n in e) o(e, n) && (t = O(n)) && (s[t] = e[n]); return s } function T(e, t) { it[e] = t } function b(e, t, n) { var s = "" + Math.abs(e), i = t - s.length; return (e >= 0 ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, i)).toString().substr(1) + s } function P(e, t, n, s) { var i = s; "string" == typeof s && (i = function () { return this[s]() }), e && (ut[e] = i), t && (ut[t[0]] = function () { return b(i.apply(this, arguments), t[1], t[2]) }), n && (ut[n] = function () { return this.localeData().ordinal(i.apply(this, arguments), e) }) } function W(e) { return e.match(/\[[\s\S]/) ? e.replace(/^\[|\]$/g, "") : e.replace(/\\/g, "") } function R(e, t) { return e.isValid() ? (t = C(t, e.localeData()), ot[t] = ot[t] || function (e) { var t, n, s = e.match(rt); for (t = 0, n = s.length; t < n; t++)ut[s[t]] ? s[t] = ut[s[t]] : s[t] = W(s[t]); return function (t) { var i, r = ""; for (i = 0; i < n; i++)r += k(s[i]) ? s[i].call(t, e) : s[i]; return r } }(t), ot[t](e)) : e.localeData().invalidDate() } function C(e, t) { function n(e) { return t.longDateFormat(e) || e } var s = 5; for (at.lastIndex = 0; s >= 0 && at.test(e);)e = e.replace(at, n), at.lastIndex = 0, s -= 1; return e } function F(e, t, n) { Yt[e] = k(t) ? t : function (e, s) { return e && n ? n : t } } function U(e, t) { return o(Yt, e) ? Yt[e](t._strict, t._locale) : new RegExp(function (e) { return N(e.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (e, t, n, s, i) { return t || n || s || i })) }(e)) } function N(e) { return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") } function H(e, t) { var n, s = t; for ("string" == typeof e && (e = [e]), i(t) && (s = function (e, n) { n[t] = g(e) }), n = 0; n < e.length; n++)Ot[e[n]] = s } function L(e, t) { H(e, function (e, n, s, i) { s._w = s._w || {}, t(e, s._w, s, i) }) } function G(e, t, n) { null != t && o(Ot, e) && Ot[e](t, n._a, n, e) } function V(e) { return j(e) ? 366 : 365 } function j(e) { return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 } function I(t, n) { return function (s) { return null != s ? (A(this, t, s), e.updateOffset(this, n), this) : E(this, t) } } function E(e, t) { return e.isValid() ? e._d["get" + (e._isUTC ? "UTC" : "") + t]() : NaN } function A(e, t, n) { e.isValid() && !isNaN(n) && ("FullYear" === t && j(e.year()) && 1 === e.month() && 29 === e.date() ? e._d["set" + (e._isUTC ? "UTC" : "") + t](n, e.month(), z(n, e.month())) : e._d["set" + (e._isUTC ? "UTC" : "") + t](n)) } function z(e, t) { if (isNaN(e) || isNaN(t)) return NaN; var n = function (e, t) { return (e % t + t) % t }(t, 12); return e += (t - n) / 12, 1 === n ? j(e) ? 29 : 28 : 31 - n % 7 % 2 } function Z(e, t) { var n; if (!e.isValid()) return e; if ("string" == typeof t) if (/^\d+$/.test(t)) t = g(t); else if (t = e.localeData().monthsParse(t), !i(t)) return e; return n = Math.min(e.date(), z(e.year(), t)), e._d["set" + (e._isUTC ? "UTC" : "") + "Month"](t, n), e } function $(t) { return null != t ? (Z(this, t), e.updateOffset(this, !0), this) : E(this, "Month") } function q() { function e(e, t) { return t.length - e.length } var t, n, s = [], i = [], r = []; for (t = 0; t < 12; t++)n = l([2e3, t]), s.push(this.monthsShort(n, "")), i.push(this.months(n, "")), r.push(this.months(n, "")), r.push(this.monthsShort(n, "")); for (s.sort(e), i.sort(e), r.sort(e), t = 0; t < 12; t++)s[t] = N(s[t]), i[t] = N(i[t]); for (t = 0; t < 24; t++)r[t] = N(r[t]); this._monthsRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + s.join("|") + ")", "i") } function J(e) { var t = new Date(Date.UTC.apply(null, arguments)); return e < 100 && e >= 0 && isFinite(t.getUTCFullYear()) && t.setUTCFullYear(e), t } function B(e, t, n) { var s = 7 + t - n; return -((7 + J(e, 0, s).getUTCDay() - t) % 7) + s - 1 } function Q(e, t, n, s, i) { var r, a, o = 1 + 7 * (t - 1) + (7 + n - s) % 7 + B(e, s, i); return o <= 0 ? a = V(r = e - 1) + o : o > V(e) ? (r = e + 1, a = o - V(e)) : (r = e, a = o), { year: r, dayOfYear: a } } function X(e, t, n) { var s, i, r = B(e.year(), t, n), a = Math.floor((e.dayOfYear() - r - 1) / 7) + 1; return a < 1 ? s = a + K(i = e.year() - 1, t, n) : a > K(e.year(), t, n) ? (s = a - K(e.year(), t, n), i = e.year() + 1) : (i = e.year(), s = a), { week: s, year: i } } function K(e, t, n) { var s = B(e, t, n), i = B(e + 1, t, n); return (V(e) - s + i) / 7 } function ee() { function e(e, t) { return t.length - e.length } var t, n, s, i, r, a = [], o = [], u = [], d = []; for (t = 0; t < 7; t++)n = l([2e3, 1]).day(t), s = this.weekdaysMin(n, ""), i = this.weekdaysShort(n, ""), r = this.weekdays(n, ""), a.push(s), o.push(i), u.push(r), d.push(s), d.push(i), d.push(r); for (a.sort(e), o.sort(e), u.sort(e), d.sort(e), t = 0; t < 7; t++)o[t] = N(o[t]), u[t] = N(u[t]), d[t] = N(d[t]); this._weekdaysRegex = new RegExp("^(" + d.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + u.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + o.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + a.join("|") + ")", "i") } function te() { return this.hours() % 12 || 12 } function ne(e, t) { P(e, 0, 0, function () { return this.localeData().meridiem(this.hours(), this.minutes(), t) }) } function se(e, t) { return t._meridiemParse } function ie(e) { return e ? e.toLowerCase().replace("_", "-") : e } function re(e) { var t = null; if (!Xt[e] && "undefined" != typeof module && module && module.exports) try { t = Jt._abbr; require("./locale/" + e), ae(t) } catch (e) { } return Xt[e] } function ae(e, t) { var n; return e && (n = s(t) ? ue(e) : oe(e, t)) && (Jt = n), Jt._abbr } function oe(e, t) { if (null !== t) { var n = Qt; if (t.abbr = e, null != Xt[e]) M("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), n = Xt[e]._config; else if (null != t.parentLocale) { if (null == Xt[t.parentLocale]) return Kt[t.parentLocale] || (Kt[t.parentLocale] = []), Kt[t.parentLocale].push({ name: e, config: t }), null; n = Xt[t.parentLocale]._config } return Xt[e] = new D(S(n, t)), Kt[e] && Kt[e].forEach(function (e) { oe(e.name, e.config) }), ae(e), Xt[e] } return delete Xt[e], null } function ue(e) { var n; if (e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e) return Jt; if (!t(e)) { if (n = re(e)) return n; e = [e] } return function (e) { for (var t, n, s, i, r = 0; r < e.length;) { for (t = (i = ie(e[r]).split("-")).length, n = (n = ie(e[r + 1])) ? n.split("-") : null; t > 0;) { if (s = re(i.slice(0, t).join("-"))) return s; if (n && n.length >= t && p(i, n, !0) >= t - 1) break; t-- } r++ } return null }(e) } function le(e) { var t, n = e._a; return n && -2 === d(e).overflow && (t = n[Tt] < 0 || n[Tt] > 11 ? Tt : n[bt] < 1 || n[bt] > z(n[xt], n[Tt]) ? bt : n[Pt] < 0 || n[Pt] > 24 || 24 === n[Pt] && (0 !== n[Wt] || 0 !== n[Rt] || 0 !== n[Ct]) ? Pt : n[Wt] < 0 || n[Wt] > 59 ? Wt : n[Rt] < 0 || n[Rt] > 59 ? Rt : n[Ct] < 0 || n[Ct] > 999 ? Ct : -1, d(e)._overflowDayOfYear && (t < xt || t > bt) && (t = bt), d(e)._overflowWeeks && -1 === t && (t = Ft), d(e)._overflowWeekday && -1 === t && (t = Ut), d(e).overflow = t), e } function de(e, t, n) { return null != e ? e : null != t ? t : n } function he(t) { var n, s, i, r, a, o = []; if (!t._d) { for (i = function (t) { var n = new Date(e.now()); return t._useUTC ? [n.getUTCFullYear(), n.getUTCMonth(), n.getUTCDate()] : [n.getFullYear(), n.getMonth(), n.getDate()] }(t), t._w && null == t._a[bt] && null == t._a[Tt] && function (e) { var t, n, s, i, r, a, o, u; if (null != (t = e._w).GG || null != t.W || null != t.E) r = 1, a = 4, n = de(t.GG, e._a[xt], X(pe(), 1, 4).year), s = de(t.W, 1), ((i = de(t.E, 1)) < 1 || i > 7) && (u = !0); else { r = e._locale._week.dow, a = e._locale._week.doy; var l = X(pe(), r, a); n = de(t.gg, e._a[xt], l.year), s = de(t.w, l.week), null != t.d ? ((i = t.d) < 0 || i > 6) && (u = !0) : null != t.e ? (i = t.e + r, (t.e < 0 || t.e > 6) && (u = !0)) : i = r } s < 1 || s > K(n, r, a) ? d(e)._overflowWeeks = !0 : null != u ? d(e)._overflowWeekday = !0 : (o = Q(n, s, i, r, a), e._a[xt] = o.year, e._dayOfYear = o.dayOfYear) }(t), null != t._dayOfYear && (a = de(t._a[xt], i[xt]), (t._dayOfYear > V(a) || 0 === t._dayOfYear) && (d(t)._overflowDayOfYear = !0), s = J(a, 0, t._dayOfYear), t._a[Tt] = s.getUTCMonth(), t._a[bt] = s.getUTCDate()), n = 0; n < 3 && null == t._a[n]; ++n)t._a[n] = o[n] = i[n]; for (; n < 7; n++)t._a[n] = o[n] = null == t._a[n] ? 2 === n ? 1 : 0 : t._a[n]; 24 === t._a[Pt] && 0 === t._a[Wt] && 0 === t._a[Rt] && 0 === t._a[Ct] && (t._nextDay = !0, t._a[Pt] = 0), t._d = (t._useUTC ? J : function (e, t, n, s, i, r, a) { var o = new Date(e, t, n, s, i, r, a); return e < 100 && e >= 0 && isFinite(o.getFullYear()) && o.setFullYear(e), o }).apply(null, o), r = t._useUTC ? t._d.getUTCDay() : t._d.getDay(), null != t._tzm && t._d.setUTCMinutes(t._d.getUTCMinutes() - t._tzm), t._nextDay && (t._a[Pt] = 24), t._w && void 0 !== t._w.d && t._w.d !== r && (d(t).weekdayMismatch = !0) } } function ce(e) { var t, n, s, i, r, a, o = e._i, u = en.exec(o) || tn.exec(o); if (u) { for (d(e).iso = !0, t = 0, n = sn.length; t < n; t++)if (sn[t][1].exec(u[1])) { i = sn[t][0], s = !1 !== sn[t][2]; break } if (null == i) return void (e._isValid = !1); if (u[3]) { for (t = 0, n = rn.length; t < n; t++)if (rn[t][1].exec(u[3])) { r = (u[2] || " ") + rn[t][0]; break } if (null == r) return void (e._isValid = !1) } if (!s && null != r) return void (e._isValid = !1); if (u[4]) { if (!nn.exec(u[4])) return void (e._isValid = !1); a = "Z" } e._f = i + (r || "") + (a || ""), _e(e) } else e._isValid = !1 } function fe(e, t, n, s, i, r) { var a = [function (e) { var t = parseInt(e, 10); { if (t <= 49) return 2e3 + t; if (t <= 999) return 1900 + t } return t }(e), Vt.indexOf(t), parseInt(n, 10), parseInt(s, 10), parseInt(i, 10)]; return r && a.push(parseInt(r, 10)), a } function me(e) { var t = on.exec(function (e) { return e.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").trim() }(e._i)); if (t) { var n = fe(t[4], t[3], t[2], t[5], t[6], t[7]); if (!function (e, t, n) { if (e && At.indexOf(e) !== new Date(t[0], t[1], t[2]).getDay()) return d(n).weekdayMismatch = !0, n._isValid = !1, !1; return !0 }(t[1], n, e)) return; e._a = n, e._tzm = function (e, t, n) { if (e) return un[e]; if (t) return 0; var s = parseInt(n, 10), i = s % 100; return (s - i) / 100 * 60 + i }(t[8], t[9], t[10]), e._d = J.apply(null, e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), d(e).rfc2822 = !0 } else e._isValid = !1 } function _e(t) { if (t._f !== e.ISO_8601) if (t._f !== e.RFC_2822) { t._a = [], d(t).empty = !0; var n, s, i, r, a, o = "" + t._i, u = o.length, l = 0; for (i = C(t._f, t._locale).match(rt) || [], n = 0; n < i.length; n++)r = i[n], (s = (o.match(U(r, t)) || [])[0]) && ((a = o.substr(0, o.indexOf(s))).length > 0 && d(t).unusedInput.push(a), o = o.slice(o.indexOf(s) + s.length), l += s.length), ut[r] ? (s ? d(t).empty = !1 : d(t).unusedTokens.push(r), G(r, s, t)) : t._strict && !s && d(t).unusedTokens.push(r); d(t).charsLeftOver = u - l, o.length > 0 && d(t).unusedInput.push(o), t._a[Pt] <= 12 && !0 === d(t).bigHour && t._a[Pt] > 0 && (d(t).bigHour = void 0), d(t).parsedDateParts = t._a.slice(0), d(t).meridiem = t._meridiem, t._a[Pt] = function (e, t, n) { var s; if (null == n) return t; return null != e.meridiemHour ? e.meridiemHour(t, n) : null != e.isPM ? ((s = e.isPM(n)) && t < 12 && (t += 12), s || 12 !== t || (t = 0), t) : t }(t._locale, t._a[Pt], t._meridiem), he(t), le(t) } else me(t); else ce(t) } function ye(o) { var l = o._i, y = o._f; return o._locale = o._locale || ue(o._l), null === l || void 0 === y && "" === l ? c({ nullInput: !0 }) : ("string" == typeof l && (o._i = l = o._locale.preparse(l)), _(l) ? new m(le(l)) : (r(l) ? o._d = l : t(y) ? function (e) { var t, n, s, i, r; if (0 === e._f.length) return d(e).invalidFormat = !0, void (e._d = new Date(NaN)); for (i = 0; i < e._f.length; i++)r = 0, t = f({}, e), null != e._useUTC && (t._useUTC = e._useUTC), t._f = e._f[i], _e(t), h(t) && (r += d(t).charsLeftOver, r += 10 * d(t).unusedTokens.length, d(t).score = r, (null == s || r < s) && (s = r, n = t)); u(e, n || t) }(o) : y ? _e(o) : function (o) { var u = o._i; s(u) ? o._d = new Date(e.now()) : r(u) ? o._d = new Date(u.valueOf()) : "string" == typeof u ? function (t) { var n = an.exec(t._i); null === n ? (ce(t), !1 === t._isValid && (delete t._isValid, me(t), !1 === t._isValid && (delete t._isValid, e.createFromInputFallback(t)))) : t._d = new Date(+n[1]) }(o) : t(u) ? (o._a = a(u.slice(0), function (e) { return parseInt(e, 10) }), he(o)) : n(u) ? function (e) { if (!e._d) { var t = x(e._i); e._a = a([t.year, t.month, t.day || t.date, t.hour, t.minute, t.second, t.millisecond], function (e) { return e && parseInt(e, 10) }), he(e) } }(o) : i(u) ? o._d = new Date(u) : e.createFromInputFallback(o) }(o), h(o) || (o._d = null), o)) } function ge(e, s, i, r, a) { var o = {}; return !0 !== i && !1 !== i || (r = i, i = void 0), (n(e) && function (e) { if (Object.getOwnPropertyNames) return 0 === Object.getOwnPropertyNames(e).length; var t; for (t in e) if (e.hasOwnProperty(t)) return !1; return !0 }(e) || t(e) && 0 === e.length) && (e = void 0), o._isAMomentObject = !0, o._useUTC = o._isUTC = a, o._l = i, o._i = e, o._f = s, o._strict = r, function (e) { var t = new m(le(ye(e))); return t._nextDay && (t.add(1, "d"), t._nextDay = void 0), t }(o) } function pe(e, t, n, s) { return ge(e, t, n, s, !1) } function we(e, n) { var s, i; if (1 === n.length && t(n[0]) && (n = n[0]), !n.length) return pe(); for (s = n[0], i = 1; i < n.length; ++i)n[i].isValid() && !n[i][e](s) || (s = n[i]); return s } function ve(e) { var t = x(e), n = t.year || 0, s = t.quarter || 0, i = t.month || 0, r = t.week || 0, a = t.day || 0, o = t.hour || 0, u = t.minute || 0, l = t.second || 0, d = t.millisecond || 0; this._isValid = function (e) { for (var t in e) if (-1 === Nt.call(hn, t) || null != e[t] && isNaN(e[t])) return !1; for (var n = !1, s = 0; s < hn.length; ++s)if (e[hn[s]]) { if (n) return !1; parseFloat(e[hn[s]]) !== g(e[hn[s]]) && (n = !0) } return !0 }(t), this._milliseconds = +d + 1e3 * l + 6e4 * u + 1e3 * o * 60 * 60, this._days = +a + 7 * r, this._months = +i + 3 * s + 12 * n, this._data = {}, this._locale = ue(), this._bubble() } function Me(e) { return e instanceof ve } function ke(e) { return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e) } function Se(e, t) { P(e, 0, 0, function () { var e = this.utcOffset(), n = "+"; return e < 0 && (e = -e, n = "-"), n + b(~~(e / 60), 2) + t + b(~~e % 60, 2) }) } function De(e, t) { var n = (t || "").match(e); if (null === n) return null; var s = ((n[n.length - 1] || []) + "").match(cn) || ["-", 0, 0], i = 60 * s[1] + g(s[2]); return 0 === i ? 0 : "+" === s[0] ? i : -i } function Ye(t, n) { var s, i; return n._isUTC ? (s = n.clone(), i = (_(t) || r(t) ? t.valueOf() : pe(t).valueOf()) - s.valueOf(), s._d.setTime(s._d.valueOf() + i), e.updateOffset(s, !1), s) : pe(t).local() } function Oe(e) { return 15 * -Math.round(e._d.getTimezoneOffset() / 15) } function xe() { return !!this.isValid() && (this._isUTC && 0 === this._offset) } function Te(e, t) { var n, s, r, a = e, u = null; return Me(e) ? a = { ms: e._milliseconds, d: e._days, M: e._months } : i(e) ? (a = {}, t ? a[t] = e : a.milliseconds = e) : (u = fn.exec(e)) ? (n = "-" === u[1] ? -1 : 1, a = { y: 0, d: g(u[bt]) * n, h: g(u[Pt]) * n, m: g(u[Wt]) * n, s: g(u[Rt]) * n, ms: g(ke(1e3 * u[Ct])) * n }) : (u = mn.exec(e)) ? (n = "-" === u[1] ? -1 : (u[1], 1), a = { y: be(u[2], n), M: be(u[3], n), w: be(u[4], n), d: be(u[5], n), h: be(u[6], n), m: be(u[7], n), s: be(u[8], n) }) : null == a ? a = {} : "object" == typeof a && ("from" in a || "to" in a) && (r = function (e, t) { var n; if (!e.isValid() || !t.isValid()) return { milliseconds: 0, months: 0 }; t = Ye(t, e), e.isBefore(t) ? n = Pe(e, t) : ((n = Pe(t, e)).milliseconds = -n.milliseconds, n.months = -n.months); return n }(pe(a.from), pe(a.to)), (a = {}).ms = r.milliseconds, a.M = r.months), s = new ve(a), Me(e) && o(e, "_locale") && (s._locale = e._locale), s } function be(e, t) { var n = e && parseFloat(e.replace(",", ".")); return (isNaN(n) ? 0 : n) * t } function Pe(e, t) { var n = { milliseconds: 0, months: 0 }; return n.months = t.month() - e.month() + 12 * (t.year() - e.year()), e.clone().add(n.months, "M").isAfter(t) && --n.months, n.milliseconds = +t - +e.clone().add(n.months, "M"), n } function We(e, t) { return function (n, s) { var i, r; return null === s || isNaN(+s) || (M(t, "moment()." + t + "(period, number) is deprecated. Please use moment()." + t + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), r = n, n = s, s = r), n = "string" == typeof n ? +n : n, i = Te(n, s), Re(this, i, e), this } } function Re(t, n, s, i) { var r = n._milliseconds, a = ke(n._days), o = ke(n._months); t.isValid() && (i = null == i || i, o && Z(t, E(t, "Month") + o * s), a && A(t, "Date", E(t, "Date") + a * s), r && t._d.setTime(t._d.valueOf() + r * s), i && e.updateOffset(t, a || o)) } function Ce(e, t) { var n, s = 12 * (t.year() - e.year()) + (t.month() - e.month()), i = e.clone().add(s, "months"); return n = t - i < 0 ? (t - i) / (i - e.clone().add(s - 1, "months")) : (t - i) / (e.clone().add(s + 1, "months") - i), -(s + n) || 0 } function Fe(e) { var t; return void 0 === e ? this._locale._abbr : (null != (t = ue(e)) && (this._locale = t), this) } function Ue() { return this._locale } function Ne(e, t) { P(0, [e, e.length], 0, t) } function He(e, t, n, s, i) { var r; return null == e ? X(this, s, i).year : (r = K(e, s, i), t > r && (t = r), function (e, t, n, s, i) { var r = Q(e, t, n, s, i), a = J(r.year, 0, r.dayOfYear); return this.year(a.getUTCFullYear()), this.month(a.getUTCMonth()), this.date(a.getUTCDate()), this }.call(this, e, t, n, s, i)) } function Le(e, t) { t[Ct] = g(1e3 * ("0." + e)) } function Ge(e) { return e } function Ve(e, t, n, s) { var i = ue(), r = l().set(s, t); return i[n](r, e) } function je(e, t, n) { if (i(e) && (t = e, e = void 0), e = e || "", null != t) return Ve(e, t, n, "month"); var s, r = []; for (s = 0; s < 12; s++)r[s] = Ve(e, s, n, "month"); return r } function Ie(e, t, n, s) { "boolean" == typeof e ? (i(t) && (n = t, t = void 0), t = t || "") : (n = t = e, e = !1, i(t) && (n = t, t = void 0), t = t || ""); var r = ue(), a = e ? r._week.dow : 0; if (null != n) return Ve(t, (n + a) % 7, s, "day"); var o, u = []; for (o = 0; o < 7; o++)u[o] = Ve(t, (o + a) % 7, s, "day"); return u } function Ee(e, t, n, s) { var i = Te(t, n); return e._milliseconds += s * i._milliseconds, e._days += s * i._days, e._months += s * i._months, e._bubble() } function Ae(e) { return e < 0 ? Math.floor(e) : Math.ceil(e) } function ze(e) { return 4800 * e / 146097 } function Ze(e) { return 146097 * e / 4800 } function $e(e) { return function () { return this.as(e) } } function qe(e) { return function () { return this.isValid() ? this._data[e] : NaN } } function Je(e) { return (e > 0) - (e < 0) || +e } function Be() { if (!this.isValid()) return this.localeData().invalidDate(); var e, t, n = En(this._milliseconds) / 1e3, s = En(this._days), i = En(this._months); t = y((e = y(n / 60)) / 60), n %= 60, e %= 60; var r = y(i / 12), a = i %= 12, o = s, u = t, l = e, d = n ? n.toFixed(3).replace(/\.?0+$/, "") : "", h = this.asSeconds(); if (!h) return "P0D"; var c = h < 0 ? "-" : "", f = Je(this._months) !== Je(h) ? "-" : "", m = Je(this._days) !== Je(h) ? "-" : "", _ = Je(this._milliseconds) !== Je(h) ? "-" : ""; return c + "P" + (r ? f + r + "Y" : "") + (a ? f + a + "M" : "") + (o ? m + o + "D" : "") + (u || l || d ? "T" : "") + (u ? _ + u + "H" : "") + (l ? _ + l + "M" : "") + (d ? _ + d + "S" : "") } var Qe, Xe; Xe = Array.prototype.some ? Array.prototype.some : function (e) { for (var t = Object(this), n = t.length >>> 0, s = 0; s < n; s++)if (s in t && e.call(this, t[s], s, t)) return !0; return !1 }; var Ke = e.momentProperties = [], et = !1, tt = {}; e.suppressDeprecationWarnings = !1, e.deprecationHandler = null; var nt; nt = Object.keys ? Object.keys : function (e) { var t, n = []; for (t in e) o(e, t) && n.push(t); return n }; var st = {}, it = {}, rt = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, at = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, ot = {}, ut = {}, lt = /\d/, dt = /\d\d/, ht = /\d{3}/, ct = /\d{4}/, ft = /[+-]?\d{6}/, mt = /\d\d?/, _t = /\d\d\d\d?/, yt = /\d\d\d\d\d\d?/, gt = /\d{1,3}/, pt = /\d{1,4}/, wt = /[+-]?\d{1,6}/, vt = /\d+/, Mt = /[+-]?\d+/, kt = /Z|[+-]\d\d:?\d\d/gi, St = /Z|[+-]\d\d(?::?\d\d)?/gi, Dt = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, Yt = {}, Ot = {}, xt = 0, Tt = 1, bt = 2, Pt = 3, Wt = 4, Rt = 5, Ct = 6, Ft = 7, Ut = 8; P("Y", 0, 0, function () { var e = this.year(); return e <= 9999 ? "" + e : "+" + e }), P(0, ["YY", 2], 0, function () { return this.year() % 100 }), P(0, ["YYYY", 4], 0, "year"), P(0, ["YYYYY", 5], 0, "year"), P(0, ["YYYYYY", 6, !0], 0, "year"), Y("year", "y"), T("year", 1), F("Y", Mt), F("YY", mt, dt), F("YYYY", pt, ct), F("YYYYY", wt, ft), F("YYYYYY", wt, ft), H(["YYYYY", "YYYYYY"], xt), H("YYYY", function (t, n) { n[xt] = 2 === t.length ? e.parseTwoDigitYear(t) : g(t) }), H("YY", function (t, n) { n[xt] = e.parseTwoDigitYear(t) }), H("Y", function (e, t) { t[xt] = parseInt(e, 10) }), e.parseTwoDigitYear = function (e) { return g(e) + (g(e) > 68 ? 1900 : 2e3) }; var Nt, Ht = I("FullYear", !0); Nt = Array.prototype.indexOf ? Array.prototype.indexOf : function (e) { var t; for (t = 0; t < this.length; ++t)if (this[t] === e) return t; return -1 }, P("M", ["MM", 2], "Mo", function () { return this.month() + 1 }), P("MMM", 0, 0, function (e) { return this.localeData().monthsShort(this, e) }), P("MMMM", 0, 0, function (e) { return this.localeData().months(this, e) }), Y("month", "M"), T("month", 8), F("M", mt), F("MM", mt, dt), F("MMM", function (e, t) { return t.monthsShortRegex(e) }), F("MMMM", function (e, t) { return t.monthsRegex(e) }), H(["M", "MM"], function (e, t) { t[Tt] = g(e) - 1 }), H(["MMM", "MMMM"], function (e, t, n, s) { var i = n._locale.monthsParse(e, s, n._strict); null != i ? t[Tt] = i : d(n).invalidMonth = e }); var Lt = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, Gt = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), Vt = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), jt = Dt, It = Dt; P("w", ["ww", 2], "wo", "week"), P("W", ["WW", 2], "Wo", "isoWeek"), Y("week", "w"), Y("isoWeek", "W"), T("week", 5), T("isoWeek", 5), F("w", mt), F("ww", mt, dt), F("W", mt), F("WW", mt, dt), L(["w", "ww", "W", "WW"], function (e, t, n, s) { t[s.substr(0, 1)] = g(e) }); P("d", 0, "do", "day"), P("dd", 0, 0, function (e) { return this.localeData().weekdaysMin(this, e) }), P("ddd", 0, 0, function (e) { return this.localeData().weekdaysShort(this, e) }), P("dddd", 0, 0, function (e) { return this.localeData().weekdays(this, e) }), P("e", 0, 0, "weekday"), P("E", 0, 0, "isoWeekday"), Y("day", "d"), Y("weekday", "e"), Y("isoWeekday", "E"), T("day", 11), T("weekday", 11), T("isoWeekday", 11), F("d", mt), F("e", mt), F("E", mt), F("dd", function (e, t) { return t.weekdaysMinRegex(e) }), F("ddd", function (e, t) { return t.weekdaysShortRegex(e) }), F("dddd", function (e, t) { return t.weekdaysRegex(e) }), L(["dd", "ddd", "dddd"], function (e, t, n, s) { var i = n._locale.weekdaysParse(e, s, n._strict); null != i ? t.d = i : d(n).invalidWeekday = e }), L(["d", "e", "E"], function (e, t, n, s) { t[s] = g(e) }); var Et = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), At = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), zt = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), Zt = Dt, $t = Dt, qt = Dt; P("H", ["HH", 2], 0, "hour"), P("h", ["hh", 2], 0, te), P("k", ["kk", 2], 0, function () { return this.hours() || 24 }), P("hmm", 0, 0, function () { return "" + te.apply(this) + b(this.minutes(), 2) }), P("hmmss", 0, 0, function () { return "" + te.apply(this) + b(this.minutes(), 2) + b(this.seconds(), 2) }), P("Hmm", 0, 0, function () { return "" + this.hours() + b(this.minutes(), 2) }), P("Hmmss", 0, 0, function () { return "" + this.hours() + b(this.minutes(), 2) + b(this.seconds(), 2) }), ne("a", !0), ne("A", !1), Y("hour", "h"), T("hour", 13), F("a", se), F("A", se), F("H", mt), F("h", mt), F("k", mt), F("HH", mt, dt), F("hh", mt, dt), F("kk", mt, dt), F("hmm", _t), F("hmmss", yt), F("Hmm", _t), F("Hmmss", yt), H(["H", "HH"], Pt), H(["k", "kk"], function (e, t, n) { var s = g(e); t[Pt] = 24 === s ? 0 : s }), H(["a", "A"], function (e, t, n) { n._isPm = n._locale.isPM(e), n._meridiem = e }), H(["h", "hh"], function (e, t, n) { t[Pt] = g(e), d(n).bigHour = !0 }), H("hmm", function (e, t, n) { var s = e.length - 2; t[Pt] = g(e.substr(0, s)), t[Wt] = g(e.substr(s)), d(n).bigHour = !0 }), H("hmmss", function (e, t, n) { var s = e.length - 4, i = e.length - 2; t[Pt] = g(e.substr(0, s)), t[Wt] = g(e.substr(s, 2)), t[Rt] = g(e.substr(i)), d(n).bigHour = !0 }), H("Hmm", function (e, t, n) { var s = e.length - 2; t[Pt] = g(e.substr(0, s)), t[Wt] = g(e.substr(s)) }), H("Hmmss", function (e, t, n) { var s = e.length - 4, i = e.length - 2; t[Pt] = g(e.substr(0, s)), t[Wt] = g(e.substr(s, 2)), t[Rt] = g(e.substr(i)) }); var Jt, Bt = I("Hours", !0), Qt = { calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, longDateFormat: { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, invalidDate: "Invalid date", ordinal: "%d", dayOfMonthOrdinalParse: /\d{1,2}/, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, months: Gt, monthsShort: Vt, week: { dow: 0, doy: 6 }, weekdays: Et, weekdaysMin: zt, weekdaysShort: At, meridiemParse: /[ap]\.?m?\.?/i }, Xt = {}, Kt = {}, en = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, tn = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, nn = /Z|[+-]\d\d(?::?\d\d)?/, sn = [["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, !1], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, !1], ["YYYYDDD", /\d{7}/]], rn = [["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/]], an = /^\/?Date\((\-?\d+)/i, on = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, un = { UT: 0, GMT: 0, EDT: -240, EST: -300, CDT: -300, CST: -360, MDT: -360, MST: -420, PDT: -420, PST: -480 }; e.createFromInputFallback = v("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function (e) { e._d = new Date(e._i + (e._useUTC ? " UTC" : "")) }), e.ISO_8601 = function () { }, e.RFC_2822 = function () { }; var ln = v("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var e = pe.apply(null, arguments); return this.isValid() && e.isValid() ? e < this ? this : e : c() }), dn = v("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var e = pe.apply(null, arguments); return this.isValid() && e.isValid() ? e > this ? this : e : c() }), hn = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; Se("Z", ":"), Se("ZZ", ""), F("Z", St), F("ZZ", St), H(["Z", "ZZ"], function (e, t, n) { n._useUTC = !0, n._tzm = De(St, e) }); var cn = /([\+\-]|\d\d)/gi; e.updateOffset = function () { }; var fn = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/, mn = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; Te.fn = ve.prototype, Te.invalid = function () { return Te(NaN) }; var _n = We(1, "add"), yn = We(-1, "subtract"); e.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", e.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; var gn = v("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function (e) { return void 0 === e ? this.localeData() : this.locale(e) }); P(0, ["gg", 2], 0, function () { return this.weekYear() % 100 }), P(0, ["GG", 2], 0, function () { return this.isoWeekYear() % 100 }), Ne("gggg", "weekYear"), Ne("ggggg", "weekYear"), Ne("GGGG", "isoWeekYear"), Ne("GGGGG", "isoWeekYear"), Y("weekYear", "gg"), Y("isoWeekYear", "GG"), T("weekYear", 1), T("isoWeekYear", 1), F("G", Mt), F("g", Mt), F("GG", mt, dt), F("gg", mt, dt), F("GGGG", pt, ct), F("gggg", pt, ct), F("GGGGG", wt, ft), F("ggggg", wt, ft), L(["gggg", "ggggg", "GGGG", "GGGGG"], function (e, t, n, s) { t[s.substr(0, 2)] = g(e) }), L(["gg", "GG"], function (t, n, s, i) { n[i] = e.parseTwoDigitYear(t) }), P("Q", 0, "Qo", "quarter"), Y("quarter", "Q"), T("quarter", 7), F("Q", lt), H("Q", function (e, t) { t[Tt] = 3 * (g(e) - 1) }), P("D", ["DD", 2], "Do", "date"), Y("date", "D"), T("date", 9), F("D", mt), F("DD", mt, dt), F("Do", function (e, t) { return e ? t._dayOfMonthOrdinalParse || t._ordinalParse : t._dayOfMonthOrdinalParseLenient }), H(["D", "DD"], bt), H("Do", function (e, t) { t[bt] = g(e.match(mt)[0]) }); var pn = I("Date", !0); P("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), Y("dayOfYear", "DDD"), T("dayOfYear", 4), F("DDD", gt), F("DDDD", ht), H(["DDD", "DDDD"], function (e, t, n) { n._dayOfYear = g(e) }), P("m", ["mm", 2], 0, "minute"), Y("minute", "m"), T("minute", 14), F("m", mt), F("mm", mt, dt), H(["m", "mm"], Wt); var wn = I("Minutes", !1); P("s", ["ss", 2], 0, "second"), Y("second", "s"), T("second", 15), F("s", mt), F("ss", mt, dt), H(["s", "ss"], Rt); var vn = I("Seconds", !1); P("S", 0, 0, function () { return ~~(this.millisecond() / 100) }), P(0, ["SS", 2], 0, function () { return ~~(this.millisecond() / 10) }), P(0, ["SSS", 3], 0, "millisecond"), P(0, ["SSSS", 4], 0, function () { return 10 * this.millisecond() }), P(0, ["SSSSS", 5], 0, function () { return 100 * this.millisecond() }), P(0, ["SSSSSS", 6], 0, function () { return 1e3 * this.millisecond() }), P(0, ["SSSSSSS", 7], 0, function () { return 1e4 * this.millisecond() }), P(0, ["SSSSSSSS", 8], 0, function () { return 1e5 * this.millisecond() }), P(0, ["SSSSSSSSS", 9], 0, function () { return 1e6 * this.millisecond() }), Y("millisecond", "ms"), T("millisecond", 16), F("S", gt, lt), F("SS", gt, dt), F("SSS", gt, ht); var Mn; for (Mn = "SSSS"; Mn.length <= 9; Mn += "S")F(Mn, vt); for (Mn = "S"; Mn.length <= 9; Mn += "S")H(Mn, Le); var kn = I("Milliseconds", !1); P("z", 0, 0, "zoneAbbr"), P("zz", 0, 0, "zoneName"); var Sn = m.prototype; Sn.add = _n, Sn.calendar = function (t, n) { var s = t || pe(), i = Ye(s, this).startOf("day"), r = e.calendarFormat(this, i) || "sameElse", a = n && (k(n[r]) ? n[r].call(this, s) : n[r]); return this.format(a || this.localeData().calendar(r, this, pe(s))) }, Sn.clone = function () { return new m(this) }, Sn.diff = function (e, t, n) { var s, i, r; if (!this.isValid()) return NaN; if (!(s = Ye(e, this)).isValid()) return NaN; switch (i = 6e4 * (s.utcOffset() - this.utcOffset()), t = O(t)) { case "year": r = Ce(this, s) / 12; break; case "month": r = Ce(this, s); break; case "quarter": r = Ce(this, s) / 3; break; case "second": r = (this - s) / 1e3; break; case "minute": r = (this - s) / 6e4; break; case "hour": r = (this - s) / 36e5; break; case "day": r = (this - s - i) / 864e5; break; case "week": r = (this - s - i) / 6048e5; break; default: r = this - s }return n ? r : y(r) }, Sn.endOf = function (e) { return void 0 === (e = O(e)) || "millisecond" === e ? this : ("date" === e && (e = "day"), this.startOf(e).add(1, "isoWeek" === e ? "week" : e).subtract(1, "ms")) }, Sn.format = function (t) { t || (t = this.isUtc() ? e.defaultFormatUtc : e.defaultFormat); var n = R(this, t); return this.localeData().postformat(n) }, Sn.from = function (e, t) { return this.isValid() && (_(e) && e.isValid() || pe(e).isValid()) ? Te({ to: this, from: e }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() }, Sn.fromNow = function (e) { return this.from(pe(), e) }, Sn.to = function (e, t) { return this.isValid() && (_(e) && e.isValid() || pe(e).isValid()) ? Te({ from: this, to: e }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() }, Sn.toNow = function (e) { return this.to(pe(), e) }, Sn.get = function (e) { return e = O(e), k(this[e]) ? this[e]() : this }, Sn.invalidAt = function () { return d(this).overflow }, Sn.isAfter = function (e, t) { var n = _(e) ? e : pe(e); return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = O(s(t) ? "millisecond" : t)) ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(t).valueOf()) }, Sn.isBefore = function (e, t) { var n = _(e) ? e : pe(e); return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = O(s(t) ? "millisecond" : t)) ? this.valueOf() < n.valueOf() : this.clone().endOf(t).valueOf() < n.valueOf()) }, Sn.isBetween = function (e, t, n, s) { return ("(" === (s = s || "()")[0] ? this.isAfter(e, n) : !this.isBefore(e, n)) && (")" === s[1] ? this.isBefore(t, n) : !this.isAfter(t, n)) }, Sn.isSame = function (e, t) { var n, s = _(e) ? e : pe(e); return !(!this.isValid() || !s.isValid()) && ("millisecond" === (t = O(t || "millisecond")) ? this.valueOf() === s.valueOf() : (n = s.valueOf(), this.clone().startOf(t).valueOf() <= n && n <= this.clone().endOf(t).valueOf())) }, Sn.isSameOrAfter = function (e, t) { return this.isSame(e, t) || this.isAfter(e, t) }, Sn.isSameOrBefore = function (e, t) { return this.isSame(e, t) || this.isBefore(e, t) }, Sn.isValid = function () { return h(this) }, Sn.lang = gn, Sn.locale = Fe, Sn.localeData = Ue, Sn.max = dn, Sn.min = ln, Sn.parsingFlags = function () { return u({}, d(this)) }, Sn.set = function (e, t) { if ("object" == typeof e) for (var n = function (e) { var t = []; for (var n in e) t.push({ unit: n, priority: it[n] }); return t.sort(function (e, t) { return e.priority - t.priority }), t }(e = x(e)), s = 0; s < n.length; s++)this[n[s].unit](e[n[s].unit]); else if (e = O(e), k(this[e])) return this[e](t); return this }, Sn.startOf = function (e) { switch (e = O(e)) { case "year": this.month(0); case "quarter": case "month": this.date(1); case "week": case "isoWeek": case "day": case "date": this.hours(0); case "hour": this.minutes(0); case "minute": this.seconds(0); case "second": this.milliseconds(0) }return "week" === e && this.weekday(0), "isoWeek" === e && this.isoWeekday(1), "quarter" === e && this.month(3 * Math.floor(this.month() / 3)), this }, Sn.subtract = yn, Sn.toArray = function () { return [this.year(), this.month(), this.date(), this.hour(), this.minute(), this.second(), this.millisecond()] }, Sn.toObject = function () { return { years: this.year(), months: this.month(), date: this.date(), hours: this.hours(), minutes: this.minutes(), seconds: this.seconds(), milliseconds: this.milliseconds() } }, Sn.toDate = function () { return new Date(this.valueOf()) }, Sn.toISOString = function () { if (!this.isValid()) return null; var e = this.clone().utc(); return e.year() < 0 || e.year() > 9999 ? R(e, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : k(Date.prototype.toISOString) ? this.toDate().toISOString() : R(e, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") }, Sn.inspect = function () { if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; var e = "moment", t = ""; this.isLocal() || (e = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", t = "Z"); var n = "[" + e + '("]', s = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", i = t + '[")]'; return this.format(n + s + "-MM-DD[T]HH:mm:ss.SSS" + i) }, Sn.toJSON = function () { return this.isValid() ? this.toISOString() : null }, Sn.toString = function () { return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") }, Sn.unix = function () { return Math.floor(this.valueOf() / 1e3) }, Sn.valueOf = function () { return this._d.valueOf() - 6e4 * (this._offset || 0) }, Sn.creationData = function () { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict } }, Sn.year = Ht, Sn.isLeapYear = function () { return j(this.year()) }, Sn.weekYear = function (e) { return He.call(this, e, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy) }, Sn.isoWeekYear = function (e) { return He.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4) }, Sn.quarter = Sn.quarters = function (e) { return null == e ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (e - 1) + this.month() % 3) }, Sn.month = $, Sn.daysInMonth = function () { return z(this.year(), this.month()) }, Sn.week = Sn.weeks = function (e) { var t = this.localeData().week(this); return null == e ? t : this.add(7 * (e - t), "d") }, Sn.isoWeek = Sn.isoWeeks = function (e) { var t = X(this, 1, 4).week; return null == e ? t : this.add(7 * (e - t), "d") }, Sn.weeksInYear = function () { var e = this.localeData()._week; return K(this.year(), e.dow, e.doy) }, Sn.isoWeeksInYear = function () { return K(this.year(), 1, 4) }, Sn.date = pn, Sn.day = Sn.days = function (e) { if (!this.isValid()) return null != e ? this : NaN; var t = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); return null != e ? (e = function (e, t) { return "string" != typeof e ? e : isNaN(e) ? "number" == typeof (e = t.weekdaysParse(e)) ? e : null : parseInt(e, 10) }(e, this.localeData()), this.add(e - t, "d")) : t }, Sn.weekday = function (e) { if (!this.isValid()) return null != e ? this : NaN; var t = (this.day() + 7 - this.localeData()._week.dow) % 7; return null == e ? t : this.add(e - t, "d") }, Sn.isoWeekday = function (e) { if (!this.isValid()) return null != e ? this : NaN; if (null != e) { var t = function (e, t) { return "string" == typeof e ? t.weekdaysParse(e) % 7 || 7 : isNaN(e) ? null : e }(e, this.localeData()); return this.day(this.day() % 7 ? t : t - 7) } return this.day() || 7 }, Sn.dayOfYear = function (e) { var t = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; return null == e ? t : this.add(e - t, "d") }, Sn.hour = Sn.hours = Bt, Sn.minute = Sn.minutes = wn, Sn.second = Sn.seconds = vn, Sn.millisecond = Sn.milliseconds = kn, Sn.utcOffset = function (t, n, s) { var i, r = this._offset || 0; if (!this.isValid()) return null != t ? this : NaN; if (null != t) { if ("string" == typeof t) { if (null === (t = De(St, t))) return this } else Math.abs(t) < 16 && !s && (t *= 60); return !this._isUTC && n && (i = Oe(this)), this._offset = t, this._isUTC = !0, null != i && this.add(i, "m"), r !== t && (!n || this._changeInProgress ? Re(this, Te(t - r, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, e.updateOffset(this, !0), this._changeInProgress = null)), this } return this._isUTC ? r : Oe(this) }, Sn.utc = function (e) { return this.utcOffset(0, e) }, Sn.local = function (e) { return this._isUTC && (this.utcOffset(0, e), this._isUTC = !1, e && this.subtract(Oe(this), "m")), this }, Sn.parseZone = function () { if (null != this._tzm) this.utcOffset(this._tzm, !1, !0); else if ("string" == typeof this._i) { var e = De(kt, this._i); null != e ? this.utcOffset(e) : this.utcOffset(0, !0) } return this }, Sn.hasAlignedHourOffset = function (e) { return !!this.isValid() && (e = e ? pe(e).utcOffset() : 0, (this.utcOffset() - e) % 60 == 0) }, Sn.isDST = function () { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() }, Sn.isLocal = function () { return !!this.isValid() && !this._isUTC }, Sn.isUtcOffset = function () { return !!this.isValid() && this._isUTC }, Sn.isUtc = xe, Sn.isUTC = xe, Sn.zoneAbbr = function () { return this._isUTC ? "UTC" : "" }, Sn.zoneName = function () { return this._isUTC ? "Coordinated Universal Time" : "" }, Sn.dates = v("dates accessor is deprecated. Use date instead.", pn), Sn.months = v("months accessor is deprecated. Use month instead", $), Sn.years = v("years accessor is deprecated. Use year instead", Ht), Sn.zone = v("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", function (e, t) { return null != e ? ("string" != typeof e && (e = -e), this.utcOffset(e, t), this) : -this.utcOffset() }), Sn.isDSTShifted = v("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", function () { if (!s(this._isDSTShifted)) return this._isDSTShifted; var e = {}; if (f(e, this), (e = ye(e))._a) { var t = e._isUTC ? l(e._a) : pe(e._a); this._isDSTShifted = this.isValid() && p(e._a, t.toArray()) > 0 } else this._isDSTShifted = !1; return this._isDSTShifted }); var Dn = D.prototype; Dn.calendar = function (e, t, n) { var s = this._calendar[e] || this._calendar.sameElse; return k(s) ? s.call(t, n) : s }, Dn.longDateFormat = function (e) { var t = this._longDateFormat[e], n = this._longDateFormat[e.toUpperCase()]; return t || !n ? t : (this._longDateFormat[e] = n.replace(/MMMM|MM|DD|dddd/g, function (e) { return e.slice(1) }), this._longDateFormat[e]) }, Dn.invalidDate = function () { return this._invalidDate }, Dn.ordinal = function (e) { return this._ordinal.replace("%d", e) }, Dn.preparse = Ge, Dn.postformat = Ge, Dn.relativeTime = function (e, t, n, s) { var i = this._relativeTime[n]; return k(i) ? i(e, t, n, s) : i.replace(/%d/i, e) }, Dn.pastFuture = function (e, t) { var n = this._relativeTime[e > 0 ? "future" : "past"]; return k(n) ? n(t) : n.replace(/%s/i, t) }, Dn.set = function (e) { var t, n; for (n in e) k(t = e[n]) ? this[n] = t : this["_" + n] = t; this._config = e, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source) }, Dn.months = function (e, n) { return e ? t(this._months) ? this._months[e.month()] : this._months[(this._months.isFormat || Lt).test(n) ? "format" : "standalone"][e.month()] : t(this._months) ? this._months : this._months.standalone }, Dn.monthsShort = function (e, n) { return e ? t(this._monthsShort) ? this._monthsShort[e.month()] : this._monthsShort[Lt.test(n) ? "format" : "standalone"][e.month()] : t(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone }, Dn.monthsParse = function (e, t, n) { var s, i, r; if (this._monthsParseExact) return function (e, t, n) { var s, i, r, a = e.toLocaleLowerCase(); if (!this._monthsParse) for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], s = 0; s < 12; ++s)r = l([2e3, s]), this._shortMonthsParse[s] = this.monthsShort(r, "").toLocaleLowerCase(), this._longMonthsParse[s] = this.months(r, "").toLocaleLowerCase(); return n ? "MMM" === t ? -1 !== (i = Nt.call(this._shortMonthsParse, a)) ? i : null : -1 !== (i = Nt.call(this._longMonthsParse, a)) ? i : null : "MMM" === t ? -1 !== (i = Nt.call(this._shortMonthsParse, a)) ? i : -1 !== (i = Nt.call(this._longMonthsParse, a)) ? i : null : -1 !== (i = Nt.call(this._longMonthsParse, a)) ? i : -1 !== (i = Nt.call(this._shortMonthsParse, a)) ? i : null }.call(this, e, t, n); for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), s = 0; s < 12; s++) { if (i = l([2e3, s]), n && !this._longMonthsParse[s] && (this._longMonthsParse[s] = new RegExp("^" + this.months(i, "").replace(".", "") + "$", "i"), this._shortMonthsParse[s] = new RegExp("^" + this.monthsShort(i, "").replace(".", "") + "$", "i")), n || this._monthsParse[s] || (r = "^" + this.months(i, "") + "|^" + this.monthsShort(i, ""), this._monthsParse[s] = new RegExp(r.replace(".", ""), "i")), n && "MMMM" === t && this._longMonthsParse[s].test(e)) return s; if (n && "MMM" === t && this._shortMonthsParse[s].test(e)) return s; if (!n && this._monthsParse[s].test(e)) return s } }, Dn.monthsRegex = function (e) { return this._monthsParseExact ? (o(this, "_monthsRegex") || q.call(this), e ? this._monthsStrictRegex : this._monthsRegex) : (o(this, "_monthsRegex") || (this._monthsRegex = It), this._monthsStrictRegex && e ? this._monthsStrictRegex : this._monthsRegex) }, Dn.monthsShortRegex = function (e) { return this._monthsParseExact ? (o(this, "_monthsRegex") || q.call(this), e ? this._monthsShortStrictRegex : this._monthsShortRegex) : (o(this, "_monthsShortRegex") || (this._monthsShortRegex = jt), this._monthsShortStrictRegex && e ? this._monthsShortStrictRegex : this._monthsShortRegex) }, Dn.week = function (e) { return X(e, this._week.dow, this._week.doy).week }, Dn.firstDayOfYear = function () { return this._week.doy }, Dn.firstDayOfWeek = function () { return this._week.dow }, Dn.weekdays = function (e, n) { return e ? t(this._weekdays) ? this._weekdays[e.day()] : this._weekdays[this._weekdays.isFormat.test(n) ? "format" : "standalone"][e.day()] : t(this._weekdays) ? this._weekdays : this._weekdays.standalone }, Dn.weekdaysMin = function (e) { return e ? this._weekdaysMin[e.day()] : this._weekdaysMin }, Dn.weekdaysShort = function (e) { return e ? this._weekdaysShort[e.day()] : this._weekdaysShort }, Dn.weekdaysParse = function (e, t, n) { var s, i, r; if (this._weekdaysParseExact) return function (e, t, n) { var s, i, r, a = e.toLocaleLowerCase(); if (!this._weekdaysParse) for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], s = 0; s < 7; ++s)r = l([2e3, 1]).day(s), this._minWeekdaysParse[s] = this.weekdaysMin(r, "").toLocaleLowerCase(), this._shortWeekdaysParse[s] = this.weekdaysShort(r, "").toLocaleLowerCase(), this._weekdaysParse[s] = this.weekdays(r, "").toLocaleLowerCase(); return n ? "dddd" === t ? -1 !== (i = Nt.call(this._weekdaysParse, a)) ? i : null : "ddd" === t ? -1 !== (i = Nt.call(this._shortWeekdaysParse, a)) ? i : null : -1 !== (i = Nt.call(this._minWeekdaysParse, a)) ? i : null : "dddd" === t ? -1 !== (i = Nt.call(this._weekdaysParse, a)) ? i : -1 !== (i = Nt.call(this._shortWeekdaysParse, a)) ? i : -1 !== (i = Nt.call(this._minWeekdaysParse, a)) ? i : null : "ddd" === t ? -1 !== (i = Nt.call(this._shortWeekdaysParse, a)) ? i : -1 !== (i = Nt.call(this._weekdaysParse, a)) ? i : -1 !== (i = Nt.call(this._minWeekdaysParse, a)) ? i : null : -1 !== (i = Nt.call(this._minWeekdaysParse, a)) ? i : -1 !== (i = Nt.call(this._weekdaysParse, a)) ? i : -1 !== (i = Nt.call(this._shortWeekdaysParse, a)) ? i : null }.call(this, e, t, n); for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), s = 0; s < 7; s++) { if (i = l([2e3, 1]).day(s), n && !this._fullWeekdaysParse[s] && (this._fullWeekdaysParse[s] = new RegExp("^" + this.weekdays(i, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[s] = new RegExp("^" + this.weekdaysShort(i, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[s] = new RegExp("^" + this.weekdaysMin(i, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[s] || (r = "^" + this.weekdays(i, "") + "|^" + this.weekdaysShort(i, "") + "|^" + this.weekdaysMin(i, ""), this._weekdaysParse[s] = new RegExp(r.replace(".", ""), "i")), n && "dddd" === t && this._fullWeekdaysParse[s].test(e)) return s; if (n && "ddd" === t && this._shortWeekdaysParse[s].test(e)) return s; if (n && "dd" === t && this._minWeekdaysParse[s].test(e)) return s; if (!n && this._weekdaysParse[s].test(e)) return s } }, Dn.weekdaysRegex = function (e) { return this._weekdaysParseExact ? (o(this, "_weekdaysRegex") || ee.call(this), e ? this._weekdaysStrictRegex : this._weekdaysRegex) : (o(this, "_weekdaysRegex") || (this._weekdaysRegex = Zt), this._weekdaysStrictRegex && e ? this._weekdaysStrictRegex : this._weekdaysRegex) }, Dn.weekdaysShortRegex = function (e) { return this._weekdaysParseExact ? (o(this, "_weekdaysRegex") || ee.call(this), e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (o(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = $t), this._weekdaysShortStrictRegex && e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) }, Dn.weekdaysMinRegex = function (e) { return this._weekdaysParseExact ? (o(this, "_weekdaysRegex") || ee.call(this), e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (o(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = qt), this._weekdaysMinStrictRegex && e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) }, Dn.isPM = function (e) { return "p" === (e + "").toLowerCase().charAt(0) }, Dn.meridiem = function (e, t, n) { return e > 11 ? n ? "pm" : "PM" : n ? "am" : "AM" }, ae("en", { dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function (e) { var t = e % 10; return e + (1 === g(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th") } }), e.lang = v("moment.lang is deprecated. Use moment.locale instead.", ae), e.langData = v("moment.langData is deprecated. Use moment.localeData instead.", ue); var Yn = Math.abs, On = $e("ms"), xn = $e("s"), Tn = $e("m"), bn = $e("h"), Pn = $e("d"), Wn = $e("w"), Rn = $e("M"), Cn = $e("y"), Fn = qe("milliseconds"), Un = qe("seconds"), Nn = qe("minutes"), Hn = qe("hours"), Ln = qe("days"), Gn = qe("months"), Vn = qe("years"), jn = Math.round, In = { ss: 44, s: 45, m: 45, h: 22, d: 26, M: 11 }, En = Math.abs, An = ve.prototype; return An.isValid = function () { return this._isValid }, An.abs = function () { var e = this._data; return this._milliseconds = Yn(this._milliseconds), this._days = Yn(this._days), this._months = Yn(this._months), e.milliseconds = Yn(e.milliseconds), e.seconds = Yn(e.seconds), e.minutes = Yn(e.minutes), e.hours = Yn(e.hours), e.months = Yn(e.months), e.years = Yn(e.years), this }, An.add = function (e, t) { return Ee(this, e, t, 1) }, An.subtract = function (e, t) { return Ee(this, e, t, -1) }, An.as = function (e) { if (!this.isValid()) return NaN; var t, n, s = this._milliseconds; if ("month" === (e = O(e)) || "year" === e) return t = this._days + s / 864e5, n = this._months + ze(t), "month" === e ? n : n / 12; switch (t = this._days + Math.round(Ze(this._months)), e) { case "week": return t / 7 + s / 6048e5; case "day": return t + s / 864e5; case "hour": return 24 * t + s / 36e5; case "minute": return 1440 * t + s / 6e4; case "second": return 86400 * t + s / 1e3; case "millisecond": return Math.floor(864e5 * t) + s; default: throw new Error("Unknown unit " + e) } }, An.asMilliseconds = On, An.asSeconds = xn, An.asMinutes = Tn, An.asHours = bn, An.asDays = Pn, An.asWeeks = Wn, An.asMonths = Rn, An.asYears = Cn, An.valueOf = function () { return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * g(this._months / 12) : NaN }, An._bubble = function () { var e, t, n, s, i, r = this._milliseconds, a = this._days, o = this._months, u = this._data; return r >= 0 && a >= 0 && o >= 0 || r <= 0 && a <= 0 && o <= 0 || (r += 864e5 * Ae(Ze(o) + a), a = 0, o = 0), u.milliseconds = r % 1e3, e = y(r / 1e3), u.seconds = e % 60, t = y(e / 60), u.minutes = t % 60, n = y(t / 60), u.hours = n % 24, a += y(n / 24), i = y(ze(a)), o += i, a -= Ae(Ze(i)), s = y(o / 12), o %= 12, u.days = a, u.months = o, u.years = s, this }, An.clone = function () { return Te(this) }, An.get = function (e) { return e = O(e), this.isValid() ? this[e + "s"]() : NaN }, An.milliseconds = Fn, An.seconds = Un, An.minutes = Nn, An.hours = Hn, An.days = Ln, An.weeks = function () { return y(this.days() / 7) }, An.months = Gn, An.years = Vn, An.humanize = function (e) { if (!this.isValid()) return this.localeData().invalidDate(); var t = this.localeData(), n = function (e, t, n) { var s = Te(e).abs(), i = jn(s.as("s")), r = jn(s.as("m")), a = jn(s.as("h")), o = jn(s.as("d")), u = jn(s.as("M")), l = jn(s.as("y")), d = i <= In.ss && ["s", i] || i < In.s && ["ss", i] || r <= 1 && ["m"] || r < In.m && ["mm", r] || a <= 1 && ["h"] || a < In.h && ["hh", a] || o <= 1 && ["d"] || o < In.d && ["dd", o] || u <= 1 && ["M"] || u < In.M && ["MM", u] || l <= 1 && ["y"] || ["yy", l]; return d[2] = t, d[3] = +e > 0, d[4] = n, function (e, t, n, s, i) { return i.relativeTime(t || 1, !!n, e, s) }.apply(null, d) }(this, !e, t); return e && (n = t.pastFuture(+this, n)), t.postformat(n) }, An.toISOString = Be, An.toString = Be, An.toJSON = Be, An.locale = Fe, An.localeData = Ue, An.toIsoString = v("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", Be), An.lang = gn, P("X", 0, 0, "unix"), P("x", 0, 0, "valueOf"), F("x", Mt), F("X", /[+-]?\d+(\.\d{1,3})?/), H("X", function (e, t, n) { n._d = new Date(1e3 * parseFloat(e, 10)) }), H("x", function (e, t, n) { n._d = new Date(g(e)) }), e.version = "2.19.4", function (e) { Qe = e }(pe), e.fn = Sn, e.min = function () { return we("isBefore", [].slice.call(arguments, 0)) }, e.max = function () { return we("isAfter", [].slice.call(arguments, 0)) }, e.now = function () { return Date.now ? Date.now() : +new Date }, e.utc = l, e.unix = function (e) { return pe(1e3 * e) }, e.months = function (e, t) { return je(e, t, "months") }, e.isDate = r, e.locale = ae, e.invalid = c, e.duration = Te, e.isMoment = _, e.weekdays = function (e, t, n) { return Ie(e, t, n, "weekdays") }, e.parseZone = function () { return pe.apply(null, arguments).parseZone() }, e.localeData = ue, e.isDuration = Me, e.monthsShort = function (e, t) { return je(e, t, "monthsShort") }, e.weekdaysMin = function (e, t, n) { return Ie(e, t, n, "weekdaysMin") }, e.defineLocale = oe, e.updateLocale = function (e, t) { if (null != t) { var n, s, i = Qt; null != (s = re(e)) && (i = s._config), (n = new D(t = S(i, t))).parentLocale = Xt[e], Xt[e] = n, ae(e) } else null != Xt[e] && (null != Xt[e].parentLocale ? Xt[e] = Xt[e].parentLocale : null != Xt[e] && delete Xt[e]); return Xt[e] }, e.locales = function () { return nt(Xt) }, e.weekdaysShort = function (e, t, n) { return Ie(e, t, n, "weekdaysShort") }, e.normalizeUnits = O, e.relativeTimeRounding = function (e) { return void 0 === e ? jn : "function" == typeof e && (jn = e, !0) }, e.relativeTimeThreshold = function (e, t) { return void 0 !== In[e] && (void 0 === t ? In[e] : (In[e] = t, "s" === e && (In.ss = t - 1), !0)) }, e.calendarFormat = function (e, t) { var n = e.diff(t, "days", !0); return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse" }, e.prototype = Sn, e });;
var SearchGridLocalizationManager = (function () {

    //Variable contains the Localized value of the Static Label
    var locale = {
        "SearchSessions": {
            "zh": "搜索会话",
            "zh-hans": "搜索会话",
            "zh-hant": "搜尋工作階段",
            "en": "Search Session",
            "fr": "Rechercher des sessions",
            "de": "Sitzungen durchsuchen",
            "ja": "検索セッション",
            "es": "Sesiones de búsqueda"
        },

        "SearchSessionsAriaValue": {
            "zh": "输入会话以进行搜索",
            "zh-hans": "输入会话以进行搜索",
            "zh-hant": "輸入工作階段以進行搜索",
            "en": "enter session for Search",
            "fr": "entrer la session pour la recherche",
            "de": "Geben Sie die Sitzung für die Suche ein",
            "ja": "検索用のセッションを入力",
            "es": "Entrar sesión para Buscar"

        },
        "Search-Announcer": {
            "zh": "要搜索确切的短语，应将搜索词括在引号中。例如：“微软 365”",
            "zh-hans": "要搜索确切的短语，应将搜索词括在引号中。例如：“微软 365”",
            "zh-hant": "要搜索確切的短語，應將搜索詞括在引號中。例如：「微軟365”",
            "en": "To search for an exact phrase, the search terms should be enclosed in quotation marks. Ex: \"Microsoft 365\"",
            "fr": "Pour rechercher une expression exacte, les termes de recherche doivent être placés entre guillemets. Ex : « Microsoft 365 »",
            "de": "Um nach einem genauen Ausdruck zu suchen, sollten die Suchbegriffe in Anführungszeichen gesetzt werden. Beispiel: \"Microsoft 365\"",
            "ja": "完全一致の語句を検索するには、検索語を引用符で囲む必要があります。例: マイクロソフト 365\"",
            "es": "Para buscar una frase exacta, los términos de búsqueda deben ir entre comillas. Ejemplo: \"Microsoft 365\""
        },
        "SwitchToGridView": {
            "zh": "切换到网格视图",
            "zh-hans": "切换到网格视图",
            "zh-hant": "切換到網格檢視",
            "en": "Switch to Grid View",
            "fr": "Basculer vers le mode Grille",
            "de": "Zur Rasteransicht wechseln",
            "ja": "グリッドビューに切り替える",
            "es": "Cambiar a la vista de cuadrícular"
        },

        "SwitchToGridViewAriaValue": {
            "zh": "切换到网格视图",
            "zh-hans": "切换到网格视图",
            "zh-hant": "切換到網格檢視",
            "en": "switch-view to Grid",
            "fr": "basculer vers Grille",
            "de": "Switch-Ansicht zu Grid",
            "ja": "グリッドへの切り替えビュー",
            "es": "vista de conmutación a cuadrícula"

        },

        "SwitchToListView": {
            "zh": "切换到列表视图",
            "zh-hans": "切换到列表视图",
            "zh-hant": "切換到清單檢視",
            "en": "Switch to List View",
            "fr": "Basculer vers l’affichage Liste",
            "de": "Zur Listenansicht wechseln",
            "ja": "リストビューに切り替える",
            "es": "Cambiar a la vista de lista"
        },

        "SwitchToListViewAriaValue": {
            "zh": "将视图切换到列表",
            "zh-hans": "将视图切换到列表",
            "zh-hant": "將檢視切換到清單",
            "en": "switch-view to list",
            "fr": "basculer vers la liste",
            "de": "Switch-Ansicht zur Liste",
            "ja": "ビューをリストに切り替える",
            "es": "vista de conmutador a lista"
        },
        "Grid": {
            "zh": "网格",
            "zh-hans": "网格",
            "zh-hant": "網格",
            "en": "Grid",
            "fr": "Grille",
            "de": "Gitter",
            "ja": "グリッド",
            "es": "Rejilla"
        },
        "SelctedViewGridArialLabel": {
            "zh": "选定视图网格",
            "zh-hans": "选定的视图网格",
            "zh-hant": "選定的檢視網格",
            "en": "Selected View Grid",
            "fr": "Grille d’affichage sélectionnée",
            "de": "Ausgewähltes Ansichtsraster",
            "ja": "選択したビュー グリッド",
            "es": "Cuadrícula de vista seleccionada"
        },

        "List": {
            "zh": "清單",
            "zh-hans": "列表",
            "zh-hant": "清單",
            "en": "List",
            "fr": "Liste",
            "de": "Liste",
            "ja": "リスト",
            "es": "Lista"
        },
        "SelctedViewListArialLabel": {
            "zh": "选定视图列表",
            "zh-hans": "选定的视图列表",
            "zh-hant": "選定的檢視清單",
            "en": "Selected View List",
            "fr": "Liste des vues sélectionnées",
            "de": "Ausgewählte Ansichtsliste",
            "ja": "選択したビューリスト",
            "es": "Lista de vistas seleccionadas"
        },

        "Page-no": {
            "zh": "页否",
            "zh-hans": "页否",
            "zh-hant": "頁否",
            "en": "page no",
            "fr": "n° de page",
            "de": "Seite Nr.",
            "ja": "ページ番号",
            "es": "página no"
        },
        "SORT": {
            "zh": "排序： ",
            "zh-hans": "排序： ",
            "zh-hant": "排序： ",
            "en": "SORT: ",
            "fr": "TRIER: ",
            "de": "SORTIEREN: ",
            "ja": "選別： ",
            "es": "ORDENAR: "
        },
        "SortResult": {
            "zh": "排序结果",
            "zh-hans": "排序结果",
            "zh-hant": "排序結果",
            "en": "SortResult",
            "fr": "Résultat du tri",
            "de": "Ergebnis sortieren",
            "ja": "ソート結果",
            "es": "Ordenar resultado"
        },
        "Speakers": {
            "zh": "扬声器",
            "zh-hans": "扬声器",
            "zh-hant": "揚聲器",
            "en": "Speakers",
            "fr": "Haut-parleurs",
            "de": "Lautsprecher",
            "ja": "スピーカー",
            "es": "Altavoces"
        },
        "Duration": {
            "zh": "期间 ",
            "zh-hans": "期间 ",
            "zh-hant": "期間 ",
            "en": "Duration ",
            "fr": "Durée ",
            "de": "Dauer ",
            "ja": "期間 ",
            "es": "Duración "
        },
        "Published": {
            "zh": "发表: ",
            "zh-hans": "发表: ",
            "zh-hant": "發表: ",
            "en": "Published: ",
            "fr": "Publié: ",
            "de": "Veröffentlicht: ",
            "ja": "公開: ",
            "es": "Publicado: "
        },
        "Retrieving search result, please wait": {
            "zh": "正在检索搜索结果，请稍候",
            "zh-hans": "正在检索搜索结果，请稍候",
            "zh-hant": "正在檢索搜尋結果，請稍候",
            "en": "Retrieving search result, please wait",
            "fr": "Récupération du résultat de la recherche, veuillez patienter",
            "de": "Suchergebnis abrufen, bitte warten",
            "ja": "検索結果を取得しています。しばらくお待ちください",
            "es": "Recuperar el resultado de la búsqueda, espere"
        },
        "SelectOptions": {
            "Title asc": {
                "zh": "标题 asc",
                "zh-hans": "标题 asc",
                "zh-hant": "標題 asc",
                "en": "Title asc",
                "fr": "Titre asc",
                "de": "Titel asc",
                "ja": "タイトル asc",
                "es": "Título asc"
            },
            "Title desc": {
                "zh": "标题 desc",
                "zh-hans": "标题 desc",
                "zh-hant": "標題 desc",
                "en": "Title desc",
                "fr": "Titre desc",
                "de": "Titel desc",
                "ja": "タイトル別",
                "es": "Título desc"
            },
            "Published asc": {
                "zh": "已发布的 asc",
                "zh-hans": "已发布的 asc",
                "zh-hant": "已發佈的 asc",
                "en": "Published asc",
                "fr": "Publié asc",
                "de": "Veröffentlichtes asc",
                "ja": "公開された asc",
                "es": "Publicado asc"
            },
            "Published desc": {
                "zh": "发表 desc",
                "zh-hans": "发表 desc",
                "zh-hant": "發表 desc",
                "en": "Published desc",
                "fr": "Publié desc",
                "de": "Veröffentlichtes desc",
                "ja": "公開された desc",
                "es": "Publicado desc"
            },

        },
        "NoResultsOnSearchGrid": {
            "zh": "没有与您的搜索条件匹配的结果.",
            "zh-hans": "没有与您的搜索条件匹配的结果.",
            "zh-hant": "沒有與您的搜索條件匹配的結果.",
            "en": "There are no results that match your search criteria.",
            "fr": "Aucun résultat ne correspond à vos critères de recherche.",
            "de": "Es gibt keine Ergebnisse, die Ihren Suchkriterien entsprechen.",
            "ja": "検索条件に一致する結果がありません.",
            "es": "No hay resultados que coincidan con sus criterios de búsqueda."
        },

        "RefineResults": {
            "zh": "优化结果",
            "zh-hans": "优化结果",
            "zh-hant": "優化結果",
            "en": "Refine results",
            "fr": "Affiner les résultats",
            "de": "Ergebnisse verfeinern",
            "ja": "結果を絞り込む",
            "es": "Refinar los resultados"
        },
        "pagingFirstPageicon": {
            "zh": "上一页",
            "zh-hans": "上一页",
            "zh-hant": "上一頁",
            "en": "previous page",
            "fr": "page précédente",
            "de": "vorherige Seite",
            "ja": "前のページ",
            "es": "página anterior"
        },

        "pagingLastPageicon": {
            "zh": "最后一页",
            "zh-hans": "最后一页",
            "zh-hant": "最後一頁",
            "en": "last page",
            "fr": "dernière page",
            "de": "letzte Seite",
            "ja": "最後のページ",
            "es": "última página"
        },
        "SearchCount": {
            "zh": "有些<SearchCount>结果与您的搜索条件匹配。",
            "zh-hans": "有些<SearchCount>结果与您的搜索条件匹配。",
            "zh-hant": "有些<SearchCount>結果與您的搜索條件匹配。",
            "en": "There are<SearchCount>results that match your search criteria.",
            "fr": "Il existe des<SearchCount>résultats qui correspondent à vos critères de recherche.",
            "de": "Es gibt<SearchCount>Ergebnisse, die Ihren Suchkriterien entsprechen.",
            "ja": "検索条件<SearchCount>に一致する結果があります。",
            "es": "Hay<SearchCount>resultados que coinciden con sus criterios de búsqueda."
        },
        "Selected View List": {
            "zh": "选定的视图列表",
            "zh-hans": "选定的视图列表",
            "zh-hant": "選定的檢視清單",
            "en": "Selected View List",
            "fr": "Liste d’affichage sélectionnée",
            "de": "Ausgewählte Ansichtsliste",
            "ja": "選択したビューリスト",
            "es": "Lista de vistas seleccionadas"
        },
        "Selected View Grid": {
            "zh": "选定的视图网格",
            "zh-hans": "选定的视图网格",
            "zh-hant": "選定的檢視網格",
            "en": "Selected View Grid",
            "fr": "Grille de vue sélectionnée",
            "de": "Ausgewähltes Ansichtsraster",
            "ja": "選択したビューグリッド",
            "es": "Cuadrícula de vista seleccionada"
        },
        "SelectedPage": {
            "zh": "所选页面",
            "zh-hans": "所选页面",
            "zh-hant": "所選頁面",
            "en": "Selected Page",
            "fr": "Page sélectionnée",
            "de": "Ausgewählte Seite",
            "ja": "選択したページ",
            "es": "Página seleccionada"
        },
        "cancel": {
            "zh": "取消",
            "zh-hans": "取消",
            "zh-hant": "取消",
            "en": "cancel",
            "fr": "Annuler",
            "de": "Abbrechen",
            "ja": "キャンセル",
            "es": "Cancelar"
        },
        "CloseModel": {
            "zh": "关闭模型",
            "zh-hans": "关闭模型",
            "zh-hant": "關閉模型",
            "en": "Close Model",
            "fr": "Fermer le modèle",
            "de": "Modell schließen",
            "ja": "モデルを閉じる",
            "es": "Cerrar modelo"
        },
        "Show": {
            "zh": "示现",
            "zh-hans": "显示",
            "zh-hant": "顯示",
            "en": "Show",
            "fr": "Montrer",
            "de": "Zeigen",
            "ja": "見せる",
            "es": "Mostrar"
        },
        "Results": {
            "zh": "卒",
            "zh-hans": "结果",
            "zh-hant": "結果",
            "en": "results",
            "fr": "résultats",
            "de": "Befund",
            "ja": "業績",
            "es": "Resultados"
        },
        "Chronological": {
            "zh": "以时先后",
            "zh-hans": "按时间先后",
            "zh-hant": "按時間先後",
            "en": "Chronological",
            "fr": "Chronologique",
            "de": "Chronologisch",
            "ja": "時系列",
            "es": "Cronológico"
        },
        "Relevance": {
            "zh": "关联",
            "zh-hans": "关联",
            "zh-hant": "關聯",
            "en": "Relevance",
            "fr": "Pertinence",
            "de": "Relevanz",
            "ja": "関連性",
            "es": "Pertinencia"
        },
        "VideoShortcode": {
            "zh": "帶視頻簡碼",
            "zh-hans": "带视频简码",
            "zh-hant": "帶視頻簡碼",
            "en": "With Video Shortcode",
            "fr": "Avec Video Shortcode",
            "de": "Mit Video-Shortcode",
            "ja": "ビデオショートコード付き",
            "es": "Con shortcode de vídeo"
        },
        "VideoTitle": {
            "zh": "带视频标题",
            "zh-hans": "带视频标题",
            "zh-hant": "帶視頻標題",
            "en": "With Video Title",
            "fr": "Avec titre de la vidéo",
            "de": "Mit Videotitel",
            "ja": "ビデオタイトル付き",
            "es": "Con título del video"
        },
        "VideoDesc": {
            "zh": "附视频言之",
            "zh-hans": "附视频说明",
            "zh-hant": "附視頻說明",
            "en": "With Video Description",
            "fr": "Avec description vidéo",
            "de": "Mit Videobeschreibung",
            "ja": "ビデオの説明付き",
            "es": "Con descripción del video"
        },
        "VideoSpeakers": {
            "zh": "带扬声器",
            "zh-hans": "带扬声器",
            "zh-hant": "帶揚聲器",
            "en": "With Speakers",
            "fr": "Avec haut-parleurs",
            "de": "Mit Lautsprechern",
            "ja": "スピーカー付き",
            "es": "Con altavoces"
        },
        "Filters": {
            "zh": "过滤器",
            "zh-hans": "过滤 器",
            "zh-hant": "過濾器",
            "en": "Filters",
            "fr": "Filtres",
            "de": "Filter",
            "ja": "フィルター",
            "es": "Filtros"
        },
        "Operators": {
            "zh": "运营商",
            "zh-hans": "运营商",
            "zh-hant": "運營商",
            "en": "Operators",
            "fr": "Opérateurs",
            "de": "Betriebspersonal",
            "ja": "演算子",
            "es": "Operadores"
        },
        "FilterExample": {
            "zh": "(如会话代码:道代码-短代码)",
            "zh-hans": "（例如，会话代码：通道代码-短代码）",
            "zh-hant": "（例如，工作階段代碼：通道代碼-短代碼）",
            "en": "(e.g., sessioncode:channelcode-shortcode)",
            "fr": "(par exemple, sessioncode:channelcode-shortcode)",
            "de": "(z.B. sessioncode:channelcode-shortcode)",
            "ja": "(例;セッションコード:チャンネルコード-ショートコード)",
            "es": "(por ejemplo, sessioncode:channelcode-shortcode)"
        },
        "OperatorExample": {
            "zh": "(如题述)",
            "zh-hans": "（例如，标题或描述）",
            "zh-hant": "（例如，標題或描述）",
            "en": "(e.g., title OR desc)",
            "fr": "(p. ex., titre OU desc)",
            "de": "(z. B. Titel OR desc)",
            "ja": "(例:タイトルまたは説明)",
            "es": "(por ejemplo, título O desc)"
        },
        "min": {
            "zh": "最小",
            "zh-hans": "最小",
            "zh-hant": "最小",
            "en": "min",
            "fr": "Min",
            "de": "Min",
            "ja": "分",
            "es": "min"
        },
        "MoreSpeakers": {
            "zh": "更多演嘉宾",
            "zh-hans": "更多演讲嘉宾",
            "zh-hant": "更多演講嘉賓",
            "en": "more speakers",
            "fr": "Plus de conférenciers",
            "de": "weitere Referenten",
            "ja": "その他のスピーカー",
            "es": "Más ponentes"
        },
        "Sessions": {
            "zh": "善言",
            "zh-hans": "会话",
            "zh-hant": "會話",
            "en": "Sessions",
            "fr": "Sessions",
            "de": "Sitzungen",
            "ja": "セッション",
            "es": "Sesiones"
        },
        "SortResult": {
            "zh": "序之",
            "zh-hans": "排序结果",
            "zh-hant": "排序結果",
            "en": "SortResult",
            "fr": "SortRésultat",
            "de": "SortResult",
            "ja": "ソート結果",
            "es": "SortResult"
        },
        "Pagesize": {
            "zh": "页面大小",
            "zh-hans": "页面大小",
            "zh-hant": "頁面大小",
            "en": "Page size",
            "fr": "Taille de page",
            "de": "Seitengröße",
            "ja": "ページサイズ",
            "es": "Tamaño de página"
        },
        "Close": {
            "zh": "闭之",
            "zh-hans": "关闭",
            "zh-hant": "關閉",
            "en": "Close",
            "fr": "Fermer",
            "de": "Schließen",
            "ja": "閉める",
            "es": "Cerrar"
        },
        "SessionDate": {
            "zh": "会话期",
            "zh-hans": "会话日期",
            "zh-hant": "會話日期",
            "en": "Session Date",
            "fr": "Date de la session",
            "de": "Sitzungsdatum",
            "ja": "セッション日",
            "es": "Fecha de la sesión"
        },
        "From": {
            "zh": "从:",
            "zh-hans": "从:",
            "zh-hant": "從:",
            "en": "From:",
            "fr": "De:",
            "de": "Von:",
            "ja": "差出人:",
            "es": "De:"
        },
        "To": {
            "zh": "自:",
            "zh-hans": "自:",
            "zh-hant": "自:",
            "en": "To:",
            "fr": "À:",
            "de": "An:",
            "ja": "宛先:",
            "es": "Para:"
        },
        "Clearall": {
            "zh": "全部清除",
            "zh-hans": "全部清除",
            "zh-hant": "全部清除",
            "en": "Clear all",
            "fr": "Effacer tout",
            "de": "Alle löschen",
            "ja": "すべてクリア",
            "es": "Borrar todo"
        },
        "DownloadResources": {
            "zh": "下载资源",
            "zh-hans": "下载资源",
            "zh-hant": "下載資源",
            "en": "Download Resources",
            "fr": "Télécharger les ressources",
            "de": "Ressourcen herunterladen",
            "ja": "リソースのダウンロード",
            "es": "Descargar recursos"
        },
        "Resources": {
            "zh": "资源",
            "zh-hans": "资源",
            "zh-hant": "資源",
            "en": "Resources",
            "fr": "Ressources",
            "de": "Ressourcen herunterladen",
            "ja": "リソース",
            "es": "Recursos"
        },
        "Download": {
            "zh": "下载",
            "zh-hans": "下载",
            "zh-hant": "下載",
            "en": "Download",
            "fr": "Télécharger",
            "de": "Herunterladen",
            "ja": "ダウンロード",
            "es": "Descargar"
        },
        "Video": {
            "zh": "视频",
            "zh-hans": "视频",
            "zh-hant": "視頻",
            "en": "Video",
            "fr": "Vidéo",
            "de": "Video",
            "ja": "ビデオ",
            "es": "Vídeo"
        },
        "Thumbnail": {
            "zh": "缩略图",
            "zh-hans": "缩略图",
            "zh-hant": "縮圖",
            "en": "Thumbnail",
            "fr": "Miniature",
            "de": "Daumennagel",
            "ja": "サムネイル",
            "es": "Miniatura"
        },
        "ClosedCaptions": {
            "zh": "隐藏式字幕",
            "zh-hans": "隐藏式字幕",
            "zh-hant": "隱藏式字幕",
            "en": "Closed Captions",
            "fr": "Sous-titres",
            "de": "Untertitel",
            "ja": "クローズドキャプション",
            "es": "Subtítulos"
        },
        "PowerPoint": {
            "zh": "幻灯片",
            "zh-hans": "幻灯片",
            "zh-hant": "幻燈片",
            "en": "PowerPoint",
            "fr": "PowerPoint",
            "de": "PowerPoint",
            "ja": "PowerPoint",
            "es": "PowerPoint"
        },
        "Transcripts": {
            "zh": "成绩单",
            "zh-hans": "成绩单",
            "zh-hant": "成績單",
            "en": "Transcripts",
            "fr": "Transcriptions",
            "de": "Abschriften",
            "ja": "トラン スクリプト",
            "es": "Transcripciones"
        },
        "With": {
            "zh": "从之",
            "zh-hans": "跟",
            "zh-hant": "跟",
            "en": "With",
            "fr": "avec",
            "de": "mit",
            "ja": "で",
            "es": "con"
        }
    };

    // Variable for mapping from Language + Country Code to Language code
    var mapLangAndCountryCodesToLangCode = {
        "en-us": "en",
        "fr-fr": "fr",
        "de-de": "de",
        "ja-jp": "ja",
        "es-co": "es",
        "zh-cn": "zh",
        "zh-hans": "zh",
        "zh-hant": "zh",
        "en": "en",
        "fr": "fr",
        "de": "de",
        "ja": "ja",
        "es": "es",
        "zh": "zh",
        "zh": "zh",
        "zh": "zh"
    };

    // To Fetch the localized value of the static labels
    function GetLocalizedStaticValue(localeKey, langCode, Optional = null) {
        var localizedText = '';

        if (Optional != null) {
            if (locale[localeKey][Optional][langCode] !== null && locale[localeKey][Optional][langCode] !== undefined)
                localizedText = locale[localeKey][Optional][langCode];
            else
                localizedText = locale[localeKey][Optional]["en"];
        }
        else {
            if (locale[localeKey][langCode] !== null && locale[localeKey][langCode] !== undefined)
                localizedText = locale[localeKey][langCode];
            else
                localizedText = locale[localeKey]["en"];
        }

        return localizedText;
    }

    // Checks Whether Element present or not
    function CheckItIsNullorUndefined(Query) {

        if (Query === null || Query === undefined || Query.length <= 0) {
            return true;
        }
        else {
            return false;
        }
    }

    // Get the QueryString from the URL
    var getQueryString = function (name) {
        var url = window.location.href;
        name = name.replace(/[\[\]]/g, "\\$&");
        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, " "));
    }

    // Get the Language code from the QueryString
    var GetLangCodeFromQueryString = function (locParam) {
        var lang = '';
        if (locParam != null || locParam != undefined) {
            locParam = locParam.toLowerCase();
        }
        if (locParam == null || locParam == undefined) {
            lang = "en";
        }
        else if (mapLangAndCountryCodesToLangCode.hasOwnProperty(locParam) == false) {
            lang = "en";
        }
        else {
            lang = mapLangAndCountryCodesToLangCode[locParam];
        }
        return lang;
    }

    // Function will localize the static labels in _renderVdeoSearchLanding.chstml partial page gets loaded.
    var LandingPageinit = function () {
        var langCode = GetLangCodeFromQueryString(getQueryString("loc"));
        if (langCode != "en") {

            var loadingdatainsearchP_Element = $("div#divLoading p#loadingdatainsearchP");
            if (!CheckItIsNullorUndefined(loadingdatainsearchP_Element)) {
                var loadingdatainsearchP_img_element = loadingdatainsearchP_Element.find('img')[0];
                var loadingdatainsearchP_text = loadingdatainsearchP_Element.text();
                if (loadingdatainsearchP_text !== null && loadingdatainsearchP_text !== undefined && loadingdatainsearchP_text.length > 0) {
                    var loadingdatainsearchP_text_replaced = loadingdatainsearchP_text.replace("Retrieving search result, please wait", GetLocalizedStaticValue("Retrieving search result, please wait", langCode));
                    loadingdatainsearchP_Element.text(loadingdatainsearchP_text_replaced).append(loadingdatainsearchP_img_element);
                }
            }

            var a_grid_Element = $("a#grid");
            if (!CheckItIsNullorUndefined(a_grid_Element)) {
                a_grid_Element.attr('title', GetLocalizedStaticValue("SwitchToGridView", langCode));
                a_grid_Element.attr('aria-label', GetLocalizedStaticValue("SwitchToGridViewAriaValue", langCode));
            }

            var a_list_Element = $("a#list");
            if (!CheckItIsNullorUndefined(a_list_Element)) {
                a_list_Element.attr('title', GetLocalizedStaticValue("SwitchToListView", langCode));
                a_list_Element.attr('aria-label', GetLocalizedStaticValue("SwitchToListViewAriaValue", langCode));
            }

            var input_searchText_Element = $("input#searchText");
            if (!CheckItIsNullorUndefined(input_searchText_Element)) {
                input_searchText_Element.attr('placeholder', `${GetLocalizedStaticValue("SearchSessions", langCode)}...`);
                input_searchText_Element.attr('aria-label', GetLocalizedStaticValue("SearchSessionsAriaValue", langCode));
            }

            var button_c_select_button_Element = $("button.c-select-button");
            if (!CheckItIsNullorUndefined(button_c_select_button_Element)) {
                button_c_select_button_Element.attr('title', GetLocalizedStaticValue("SearchSessions", langCode));
                button_c_select_button_Element.attr('aria-label', GetLocalizedStaticValue("SearchSessions", langCode));
            }

            var span_search_announcer_Element = $("span#search-announcer");
            if (!CheckItIsNullorUndefined(span_search_announcer_Element)) {
                span_search_announcer_Element.text(GetLocalizedStaticValue("Search-Announcer", langCode));
            }

            var div_playlerModel_Element = $("div#playlerModel")
            if (!CheckItIsNullorUndefined(div_playlerModel_Element)) {
                div_playlerModel_Element.attr('aria-label', GetLocalizedStaticValue("cancel", langCode));
            }

            var div_playlerModel_span_closeplayerModel_Element = $("div#playlerModel span#closeplayerModel");
            if (!CheckItIsNullorUndefined(div_playlerModel_span_closeplayerModel_Element)) {
                div_playlerModel_span_closeplayerModel_Element.attr('title', GetLocalizedStaticValue("CloseModel", langCode));
            }

            var filters_searchPage_Element = $("[role='heading'].filters-searchPage");
            if (!CheckItIsNullorUndefined(filters_searchPage_Element)) {
                filters_searchPage_Element.attr('aria-label', GetLocalizedStaticValue("RefineResults", langCode));
                var RefineResult = filters_searchPage_Element.text();
                if (RefineResult != null && RefineResult !== undefined && RefineResult.length > 0) {
                    var RefineResult_replaced = RefineResult.replace("Refine results", GetLocalizedStaticValue("RefineResults", langCode));
                    filters_searchPage_Element.text(RefineResult_replaced);
                }
            }
        }
    }

    // Function will localize the static labels in _renderSaarchNewTile.chstml partial page gets loaded.

    var renderSearchNewTilePageinit = function () {
        var langCode = GetLangCodeFromQueryString(getQueryString("loc"));
        if (langCode != "en") {

            var spanforSortOnsearchpage_Element = $("span#spanforSortOnsearchpage");
            if (!CheckItIsNullorUndefined(spanforSortOnsearchpage_Element)) {
                spanforSortOnsearchpage_Element.text(GetLocalizedStaticValue("SORT", langCode));
            }

            var select_sortOrder_Element = $("select.sortOrder");
            if (!CheckItIsNullorUndefined(select_sortOrder_Element)) {
                $(select_sortOrder_Element).attr('title', GetLocalizedStaticValue("SortResult", langCode));
            }

            var ul_pagination_Element = $("ul.pagination[data-view='pagingFirstPageicon']");
            if (!CheckItIsNullorUndefined(ul_pagination_Element)) {
                var SelectedPage = ul_pagination_Element.attr('aria-label');
                if (SelectedPage !== null && SelectedPage !== undefined && SelectedPage.length > 0) {
                    var SelectedPage_Replaced = SelectedPage.replace("Selected Page", GetLocalizedStaticValue("SelectedPage", langCode));
                    ul_pagination_Element.attr('aria-label', SelectedPage_Replaced);
                }
            }

            var PreviousPageIcons_Element = $("#pagingFirstPageicon[data-eleregion='MainContent'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(PreviousPageIcons_Element)) {
                PreviousPageIcons_Element.attr('aria-label', GetLocalizedStaticValue("pagingFirstPageicon", langCode));
                PreviousPageIcons_Element.attr('title', GetLocalizedStaticValue("pagingFirstPageicon", langCode));
            }


            var LastPageIcons_Element = $(".pagingLastPageicon[data-eleregion='MainContent'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(LastPageIcons_Element)) {
                LastPageIcons_Element.attr('aria-label', GetLocalizedStaticValue("pagingLastPageicon", langCode));
                LastPageIcons_Element.attr('title', GetLocalizedStaticValue("pagingLastPageicon", langCode));
            }

            var page_no_Elements = $("a[title^='page no'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(page_no_Elements)) {
                for (var pageNoValueTemp of page_no_Elements.get()) {
                    var page_no_Value = pageNoValueTemp.attributes.title.textContent;
                    var page_no_Value_replaced = page_no_Value.replace("page no", GetLocalizedStaticValue("Page-no", langCode));
                    $(pageNoValueTemp).attr('aria-label', page_no_Value_replaced);
                    $(pageNoValueTemp).attr('title', page_no_Value_replaced);

                }

            }

            var PreviousPageIconsBottom_Element = $("#pagingFirstPageiconBottom[data-eleregion='MainContent'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(PreviousPageIconsBottom_Element)) {
                PreviousPageIconsBottom_Element.attr('title', GetLocalizedStaticValue("pagingFirstPageicon", langCode));
            }

            var LastPageIconsBottom_Element = $(".pagingLastPageiconBottom[data-eleregion='MainContent'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(LastPageIconsBottom_Element)) {
                LastPageIconsBottom_Element.attr('title', GetLocalizedStaticValue("pagingLastPageicon", langCode));
            }

            var block_within_text_speakers_Element = $(".block-within-text span[title^='Speakers:'] strong");
            if (!CheckItIsNullorUndefined(block_within_text_speakers_Element)) {
                block_within_text_speakers_Element.text(GetLocalizedStaticValue("Speakers", langCode));
            }

            var speakers_Elements = $(".block-within-text span[title^='Speakers:']");
            if (!CheckItIsNullorUndefined(speakers_Elements)) {
                for (var speakersValueTemp of speakers_Elements.get()) {
                    var SpeakersValue = speakersValueTemp.attributes.title.textContent;
                    var SpeakersValue_replaced = SpeakersValue.replace("Speakers: ", GetLocalizedStaticValue("Speakers", langCode));
                    $(speakersValueTemp).attr('title', SpeakersValue_replaced);
                }
            }

            var block_within_text_duration_Element = $(".block-within-text span[title^='Duration:'] strong");
            if (!CheckItIsNullorUndefined(block_within_text_duration_Element)) {
                block_within_text_duration_Element.text(GetLocalizedStaticValue("Duration", langCode));
            }

            var duration_Elements = $(".block-within-text span[title^='Duration:']");
            if (!CheckItIsNullorUndefined(duration_Elements)) {
                for (var durationValueTemp of duration_Elements.get()) {
                    var DurationValue = durationValueTemp.attributes.title.textContent;
                    var DurationValue_replaced = DurationValue.replace("Duration: ", GetLocalizedStaticValue("Duration", langCode));
                    $(durationValueTemp).attr('title', DurationValue_replaced);
                }
            }

            var block_within_text_published_Element = $(".block-within-text span[title^='Published:'] strong");
            if (!CheckItIsNullorUndefined(block_within_text_published_Element)) {
                block_within_text_published_Element.text(GetLocalizedStaticValue("Published", langCode));
            }

            var published_Elements = $(".block-within-text span[title^='Published:']");
            if (!CheckItIsNullorUndefined(published_Elements)) {
                for (var publishedValueTemp of published_Elements.get()) {
                    var PublishedValue = publishedValueTemp.attributes.title.textContent;
                    var PublishedValue_replaced = PublishedValue.replace("Published: ", GetLocalizedStaticValue("Published", langCode));
                    $(publishedValueTemp).attr('title', PublishedValue_replaced);
                }
            }

            var SelectOptions_Elements = $("select.sortOrder option");
            if (!CheckItIsNullorUndefined(SelectOptions_Elements)) {
                for (var SelectOptionsValueTemp of SelectOptions_Elements.get()) {
                    var SelectOptionsTextValue = $(SelectOptionsValueTemp).text();
                    if (SelectOptionsTextValue !== null && SelectOptionsTextValue !== undefined && SelectOptionsTextValue.length > 0) {
                        $(SelectOptionsValueTemp).text(GetLocalizedStaticValue("SelectOptions", langCode, SelectOptionsTextValue));

                    }
                }
            }

            var NoResultsOnSearchGridVal_Element = $(".video-paragraph[role='alert']")
            if (!CheckItIsNullorUndefined(NoResultsOnSearchGridVal_Element)) {
                NoResultsOnSearchGridVal_Element.text(GetLocalizedStaticValue("NoResultsOnSearchGrid", langCode));
            }

            var Products_SeachCounts_Elements = $("#products p.sr-only");
            if (!CheckItIsNullorUndefined(Products_SeachCounts_Elements)) {
                var SearchCounts = Products_SeachCounts_Elements.text();
                if (SearchCounts !== null && SearchCounts !== undefined && SearchCounts.length > 0) {
                    var SearchCountsTranslatedSplitted = (GetLocalizedStaticValue("SearchCount", langCode)).split("<SearchCount>");
                    var ReplacedFirstStringVal = SearchCounts.replace("There are", SearchCountsTranslatedSplitted[0]);
                    var ReplacedFinalVal = ReplacedFirstStringVal.replace("results that match your search criteria.", SearchCountsTranslatedSplitted[1]);
                    Products_SeachCounts_Elements.text(ReplacedFinalVal);
                }
            }
        }
    }

    // Function will localize the List view or grid view icon in _renderVdeoSearchLanding.chstml partial page.
    var PageViewOptionsAriaLabel = function (pageviewoptionsarialabel) {
        var langCode = GetLangCodeFromQueryString(getQueryString("loc"));
        if (langCode != "en") {
            var pageViewOptions_Element = $(".pageViewOptions");
            if (!CheckItIsNullorUndefined(pageViewOptions_Element)) {
                pageViewOptions_Element.attr("aria-label", GetLocalizedStaticValue(pageviewoptionsarialabel, langCode));
            }

            //Added for New searchGrid
            var a_grid_Element = $('button#grid-list');
            if (!CheckItIsNullorUndefined(a_grid_Element)) {
                selectedElement = $("button#grid-list").contents();
                textNodes = selectedElement.filter(function () {
                    return this.nodeType === Node.TEXT_NODE;
                });
                if (!CheckItIsNullorUndefined(textNodes)) {
                    if (textNodes[0].nodeValue.toLowerCase().trim() == "grid") {
                        var replacedVal = GetLocalizedStaticValue("Grid", langCode);
                        textNodes[0].nodeValue = textNodes[0].nodeValue.replace("Grid", replacedVal);
                        replacedVal = GetLocalizedStaticValue("SelctedViewGridArialLabel", langCode)
                        a_grid_Element.attr('aria-label', replacedVal);
                    }
                    if (textNodes[0].nodeValue.toLowerCase().trim() == "list") {
                        var replacedVal = GetLocalizedStaticValue("List", langCode);
                        textNodes[0].nodeValue = textNodes[0].nodeValue.replace("List", replacedVal);
                        replacedVal = GetLocalizedStaticValue("SelctedViewListArialLabel", langCode)
                        a_grid_Element.attr('aria-label', replacedVal);
                    }
                }
            }
        }
    }

    /***********************New search Grid Localization ****************************************************/

    var LandingPageinitNewSearch = function () {
        var langCode = GetLangCodeFromQueryString(getQueryString("loc"));
        if (langCode != "en") {

            var loadingdatainsearchP_Element = $("div#divLoading p#loadingdatainsearchP");
            if (!CheckItIsNullorUndefined(loadingdatainsearchP_Element)) {
                var loadingdatainsearchP_img_element = loadingdatainsearchP_Element.find('img')[0];
                var loadingdatainsearchP_text = loadingdatainsearchP_Element.text();
                if (loadingdatainsearchP_text !== null && loadingdatainsearchP_text !== undefined && loadingdatainsearchP_text.length > 0) {
                    loadingdatainsearchP_Element.text(loadingdatainsearchP_text.replace("Retrieving search results, please wait...", GetLocalizedStaticValue("Retrieving search result, please wait", langCode))).append(loadingdatainsearchP_img_element);
                }
            }

            var input_searchText_Element = $("input#searchText");
            if (!CheckItIsNullorUndefined(input_searchText_Element)) {
                input_searchText_Element.attr('placeholder', `${GetLocalizedStaticValue("SearchSessions", langCode)}...`);
                input_searchText_Element.attr('aria-label', GetLocalizedStaticValue("SearchSessionsAriaValue", langCode));
            }

            var button_c_select_button_Element = $("button.c-select-button");
            if (!CheckItIsNullorUndefined(button_c_select_button_Element)) {
                button_c_select_button_Element.attr('title', GetLocalizedStaticValue("SearchSessions", langCode));
                button_c_select_button_Element.attr('aria-label', GetLocalizedStaticValue("SearchSessions", langCode));
            }

            //Refine filters
            var filters_searchPage_Element = $("#filter-btn").html();
            if (!CheckItIsNullorUndefined(filters_searchPage_Element)) {
                $("#filter-btn").html(GetLocalizedStaticValue("RefineResults", langCode));
            }

            //Refine filters in leftside panel

            if ($(".refiners__heading-text-float-left>span:eq(0)").length > 0) {
                var filters_Refine_Element = $(".refiners__heading-text-float-left>span:eq(0)");
                if (!CheckItIsNullorUndefined(filters_Refine_Element)) {
                    $(filters_Refine_Element).html(GetLocalizedStaticValue("RefineResults", langCode));
                }
            }

            //sessiondate
            var filters_sessionrange_Element = $("#heading_sessionrange").html();
            if (!CheckItIsNullorUndefined(filters_sessionrange_Element)) {
                $("#heading_sessionrange").html(GetLocalizedStaticValue("SessionDate", langCode));
            }

            //from date
            var fromLabel_Element = $('label[for="sessionFrom"]');
            if (!CheckItIsNullorUndefined(fromLabel_Element)) {
                $('label[for="sessionFrom"]').text(GetLocalizedStaticValue("From", langCode));
            }

            //to date
            var toLabel_Element = $('label[for="sessionTo"]');
            if (!CheckItIsNullorUndefined(toLabel_Element)) {
                $('label[for="sessionTo"]').text(GetLocalizedStaticValue("To", langCode));
            }

            //clearall button
            var filters_clearall_Element = $("#btn_Search_Clear_all").html();
            if (!CheckItIsNullorUndefined(filters_clearall_Element)) {
                $("#btn_Search_Clear_all").html(GetLocalizedStaticValue("Clearall", langCode));
            }
          
            //Filters
            var filter_Elements = $('div#divsc');
            if (!CheckItIsNullorUndefined(filter_Elements)) {

                $(filter_Elements)[0].innerText = GetLocalizedStaticValue("VideoShortcode", langCode);
            }
            var filter_ElementTitle = $('div#divtitle');
            if (!CheckItIsNullorUndefined(filter_ElementTitle)) {

                $(filter_ElementTitle)[0].innerText = GetLocalizedStaticValue("VideoTitle", langCode);
            }
            var filter_ElementsDesc = $('div#divdesc');
            if (!CheckItIsNullorUndefined(filter_Elements)) {

                $(filter_ElementsDesc)[0].innerText = GetLocalizedStaticValue("VideoDesc", langCode);
            }
            var filter_ElementsDesc = $('div#divspeak');
            if (!CheckItIsNullorUndefined(filter_Elements)) {

                $(filter_ElementsDesc)[0].innerText = GetLocalizedStaticValue("VideoSpeakers", langCode);
            }

            var filter_Elements_filtertypes = $('.with-filtertype');
            if (!CheckItIsNullorUndefined(filter_Elements_filtertypes)) {
                $('.with-filtertype').text(GetLocalizedStaticValue("With", langCode));
            }

            //filters & operators heading
            var filter_Caption = $('div#searchfilter span.search-filter-caption');
            if (!CheckItIsNullorUndefined(filter_Caption[0])) {
                if (filter_Caption[0].innerText.toLowerCase() == "filters")
                    filter_Caption[0].innerText = GetLocalizedStaticValue("Filters", langCode);
            }
            if (!CheckItIsNullorUndefined(filter_Caption[1])) {
                if (filter_Caption[1].innerText.toLowerCase() == "operators")
                    filter_Caption[1].innerText = GetLocalizedStaticValue("Operators", langCode);
            }

            //filters & operators example
            var filter_example = $('div#searchfilter span.search-filter-example');
            if (!CheckItIsNullorUndefined(filter_example[0])) {

                filter_example[0].innerText = GetLocalizedStaticValue("FilterExample", langCode);
            }
            if (!CheckItIsNullorUndefined(filter_example[1])) {

                filter_example[1].innerText = GetLocalizedStaticValue("OperatorExample", langCode);
            }

            var closebutton_Refine_Element = $('div#closeSidebar')[0].childNodes[1];
            if (!CheckItIsNullorUndefined(closebutton_Refine_Element)) {
                closebutton_Refine_Element.title = GetLocalizedStaticValue("Close", langCode);
            }
        }
    }

    var renderNewSearchPaging = function () {
        var langCode = GetLangCodeFromQueryString(getQueryString("loc"));
        if (langCode != "en") {

            //paging
            var ul_pagination_Element = $("ul.pagination[data-view='pagingFirstPageicon']");
            if (!CheckItIsNullorUndefined(ul_pagination_Element)) {
                var SelectedPage = ul_pagination_Element.attr('aria-label');
                if (SelectedPage !== null && SelectedPage !== undefined && SelectedPage.length > 0) {
                    var SelectedPage_Replaced = SelectedPage.replace("Selected Page", GetLocalizedStaticValue("SelectedPage", langCode));
                    ul_pagination_Element.attr('aria-label', SelectedPage_Replaced);
                }
            }

            var PreviousPageIcons_Element = $("#pagingFirstPageicon[data-eleregion='MainContent'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(PreviousPageIcons_Element)) {
                PreviousPageIcons_Element.attr('aria-label', GetLocalizedStaticValue("pagingFirstPageicon", langCode));
                PreviousPageIcons_Element.attr('title', GetLocalizedStaticValue("pagingFirstPageicon", langCode));
            }


            var LastPageIcons_Element = $(".pagingLastPageicon[data-eleregion='MainContent'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(LastPageIcons_Element)) {
                LastPageIcons_Element.attr('aria-label', GetLocalizedStaticValue("pagingLastPageicon", langCode));
                LastPageIcons_Element.attr('title', GetLocalizedStaticValue("pagingLastPageicon", langCode));
            }

            var page_no_Elements = $("a[title^='page no'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(page_no_Elements)) {
                for (var pageNoValueTemp of page_no_Elements.get()) {
                    var page_no_Value = pageNoValueTemp.attributes.title.textContent;
                    var page_no_Value_replaced = page_no_Value.replace("page no", GetLocalizedStaticValue("Page-no", langCode));
                    $(pageNoValueTemp).attr('aria-label', page_no_Value_replaced);
                    $(pageNoValueTemp).attr('title', page_no_Value_replaced);

                }

            }

            var PreviousPageIconsBottom_Element = $("#pagingFirstPageiconBottom[data-eleregion='MainContent'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(PreviousPageIconsBottom_Element)) {
                PreviousPageIconsBottom_Element.attr('title', GetLocalizedStaticValue("pagingFirstPageicon", langCode));
            }

            var LastPageIconsBottom_Element = $(".pagingLastPageiconBottom[data-eleregion='MainContent'][data-catagory='Pagging']");
            if (!CheckItIsNullorUndefined(LastPageIconsBottom_Element)) {
                LastPageIconsBottom_Element.attr('title', GetLocalizedStaticValue("pagingLastPageicon", langCode));
            }

        }
    }

    var renderNewSearchShowResults = function () {
        var langCode = GetLangCodeFromQueryString(getQueryString("loc"));
        if (langCode != "en") {

            // show results dropdown
            var sort_Elements = $(".searchgrid-pager option");
            if (!CheckItIsNullorUndefined(sort_Elements)) {
                for (var SelectOptionsValueTemp of sort_Elements.get()) {
                    var SelectOptionsTextValue = $(SelectOptionsValueTemp).text();
                    if (SelectOptionsTextValue !== null && SelectOptionsTextValue !== undefined && SelectOptionsTextValue.length > 0) {
                        //var show = GetLocalizedStaticValue("Show", langCode);
                        var results = GetLocalizedStaticValue("Results", langCode);
                        var no = SelectOptionsTextValue.split(' ')[0];
                        $(SelectOptionsValueTemp).text( no + " " + results);

                    }
                }
            }

            //sort dropdown
            var sort_Element = $(".sortOrder option");
            if (!CheckItIsNullorUndefined(sort_Element)) {
                for (var SelectOptionsValueTemp of sort_Element.get()) {
                    var SelectOptionsTextValue = $(SelectOptionsValueTemp).text();
                    if (SelectOptionsTextValue !== null && SelectOptionsTextValue !== undefined && SelectOptionsTextValue.length > 0) {
                        if (SelectOptionsTextValue != 'A-Z' && SelectOptionsTextValue != 'Z-A') {
                            if (SelectOptionsTextValue.toLowerCase().trim() == "chronological")
                                var show = GetLocalizedStaticValue("Chronological", langCode);
                            else if (SelectOptionsTextValue.toLowerCase().trim() == "relevance")
                                var show = GetLocalizedStaticValue("Relevance", langCode);
                            $(SelectOptionsValueTemp).text(show);
                        }

                    }
                }
            }

            //Refine filter session count in leftside panel
            var filters_Refine_Element_sessioncount = $("span.refiners__heading-count")[0];
            if (!CheckItIsNullorUndefined(filters_Refine_Element_sessioncount)) {
                filters_Refine_Element_sessioncount.innerText = filters_Refine_Element_sessioncount.innerText.replace("sessions", GetLocalizedStaticValue("Sessions", langCode));
            }

            //session count near search textbox
            var Element_sessioncount = $("span.search-header-bar_count")[0];
            if (!CheckItIsNullorUndefined(Element_sessioncount)) {
                Element_sessioncount.innerText = Element_sessioncount.innerText.replace("sessions", GetLocalizedStaticValue("Sessions", langCode));
                Element_sessioncount.innerText = Element_sessioncount.innerText.replace("session", GetLocalizedStaticValue("Session", langCode));
            }

            var tooltip_pageSize_Element = $('.searchgrid-pager');
            if (!CheckItIsNullorUndefined(tooltip_pageSize_Element)) {
                $(tooltip_pageSize_Element).attr('title', GetLocalizedStaticValue("Pagesize", langCode));
            }

            var tooltip_sortOrder_Element = $(".sortOrder");
            if (!CheckItIsNullorUndefined(tooltip_sortOrder_Element)) {
                $(tooltip_sortOrder_Element).attr('title', GetLocalizedStaticValue("SortResult", langCode));
            }

        }
    }

    // Function will localize the static labels in _renderSessionArchiveTile.chstml partial page gets loaded.
    var renderNewSearchTileinit = function () {
        var langCode = GetLangCodeFromQueryString(getQueryString("loc"));
        if (langCode != "en") {

            var speakers_Element = $(".speaker-badges-top-container span");
            if (!CheckItIsNullorUndefined(speakers_Element)) {
                for (var speakerTemp of speakers_Element.get()) {
                    speakerTemp.innerText = GetLocalizedStaticValue("Speakers", langCode);
                }
            }


            var duration_Elements = $('.durationmin');
            if (!CheckItIsNullorUndefined(duration_Elements)) {
                var duration = GetLocalizedStaticValue("Duration", langCode);
                var minutes = GetLocalizedStaticValue("min", langCode);
                for (var durationValueTemp of duration_Elements.get()) {
                    var DurationValue = durationValueTemp.innerText;
                    var DurationValue_replaced = DurationValue.replace("Duration", duration);
                    DurationValue_replaced = DurationValue_replaced.replace("min", minutes);
                    durationValueTemp.innerText = DurationValue_replaced.trim();

                }
            }
         
            var downloadtitile = GetLocalizedStaticValue("Download", langCode);
            var title = "";
            $('*[data-locenabled="1"]').each(function () {
                var controlname = $(this).attr('data-Controlname');
                if (controlname) {

                    if (controlname == "DownloadResources") {
                        title = GetLocalizedStaticValue(controlname, langCode);
                        $(this).text(title);
                        $(this).attr("title", title);
                        $(this).attr("aria-label", title);
                    }
                    else if (controlname.startsWith('lbl')) {
                        title = GetLocalizedStaticValue(controlname.split('-')[1], langCode);
                        $(this).text(title);

                    }
                }
            });
        }
    }

    return {
        GetLangCodeFromQueryString: GetLangCodeFromQueryString,
        LandingPageinit: LandingPageinit,
        renderSearchNewTilePageinit: renderSearchNewTilePageinit,
        PageViewOptionsAriaLabel: PageViewOptionsAriaLabel,
        LandingPageinitNewSearch: LandingPageinitNewSearch,
        renderNewSearchPaging: renderNewSearchPaging,
        renderNewSearchShowResults: renderNewSearchShowResults,
        renderNewSearchTileinit: renderNewSearchTileinit

    }
})();;
if (!String.prototype.endsWith) {
    String.prototype.endsWith = function (search, this_len) {
        if (this_len === undefined || this_len > this.length) {
            this_len = this.length;
        }
        return this.substring(this_len - search.length, this_len) === search;
    };
}

var videoSearch1 = function () {
    var filterDict = [];
    function clearSelectedFilter(vFilteredItem, vFilterValue) {
        $(`input[type=checkbox][filtertype='${vFilteredItem}'][filterValue='${vFilterValue}']`).trigger("click");
    }

    function init() {
        $("#hdn-custom-range").change(function () {
            var sessionfrom = $("#sessionFrom").val();
            var sessionTo = $("#sessionTo").val();
            $(".dropdown-menu").removeClass("show");
            $(".search-chips_clearbutton-sessionrange").remove();
            $(".nav-link-model").removeClass("active");
            var template = '';

            template += '<button class="btn btn-link search-chips_clearbutton search-chips_clearbutton-sessionrange glyph-append glyph-append-clear search-chip text-decoration-none" aria-label="Clear filter glyph-append-clear search-chip text-decoration-none' + sessionfrom + '"';
            template += ' data-catagory="' + sessionfrom + '----' + sessionTo + '"';
            template += ' data-m=\'{ "aN": "RefinePanel", "id": "Click.telemetry.breadcrumb.Search_Clear ' + sessionTo + '", "cN":Clear_"' + sessionTo + '.Filter" }\'';
            template += ' data-cy="clear-filters-button">' + sessionfrom + ' to ' + sessionTo + '</button>'
            $(template).insertBefore($("#btn_Search_Clear_all"));
            if ($("#hdnPageLoaded").val() !== "0") {
                buildFilters();
            }
            $("#btn_Search_Clear_all").show();
            $('.search-chips_clearbutton[data-catagory="' + sessionfrom + '----' + sessionTo + '"]').click(function (ee) {
                $("#sessionFrom").val($("#hdnStartPublishDate").val());
                $("#sessionTo").val($("#hdnEndPublishDate").val());
                $("#slider-range").slider("values", 0, new Date($("#hdnStartPublishDate").val()).getTime() / 1000);
                $("#slider-range").slider("values", 1, new Date($("#hdnEndPublishDate").val()).getTime() / 1000);
                buildFilters();
                $('.search-chips_clearbutton[data-catagory="' + sessionfrom + '----' + sessionTo + '"]').remove();
                if ($("#lnk-searchgroup .search-chips_clearbutton").length > 0) {
                    $("#btn_Search_Clear_all").show();
                }
                else {
                    $("#btn_Search_Clear_all").trigger('click');
                    // $("#btn_Search_Clear_all").hide();	
                }
            });
        });

        $("#btn_Search_Clear_all").click(function () {
            var $refinedFilterChkBox = $("#searchgrid-Sidenav input:checkbox");
            $($refinedFilterChkBox).prop('checked', false);
            $(".search-chips_clearbutton").remove();
            $("#sessionFrom").val("");
            $("#sessionTo").val("");
            filterDict = [];
            buildFilters();
            $("#btn_Search_Clear_all").hide();

        });

        $('input[type=checkbox]').click(function (e) {

            var FilterType = $(e.target).attr("filtertype");
            var FilterValue = $(e.target).attr("filterValue");
            var FilterDisplayValue = $(e.target).attr("filterDisplayValue");
            var FilterTypeActual = $('#' + FilterType + '').text();

            if (e.target.checked) {
                $(e.target).attr('data-m', '{"aN":"RefinePanel","id":"Click_telemetry.Refine Results.' + FilterType + '.Child","cN":"Refine Panel.' + FilterValue + '_Selected"}');
                filterDict.push({ FilterType: FilterType, FilterValue: FilterValue, FilterTypeActual: FilterTypeActual });
                var template = '';
                template += '<button class="btn btn-link search-chips_clearbutton glyph-append glyph-append-clear glyph-append-clear search-chip text-decoration-none" aria-label="Clear filter ' + FilterTypeActual + '"';
                template += ' data-catagory="' + FilterType + '----' + FilterValue + '"';
                //template += ' onclick="clearSelectedFilter(this)"';	
                template += ' data-m=\'{ "aN": "RefinePanel", "id": "Search_Clear ' + FilterValue + '", "cN":"Clear_' + FilterValue + '.Filter" }\'';
                template += ' data-cy="clear-filters-button">' + FilterDisplayValue + '</button>'
                $(template).insertBefore($("#btn_Search_Clear_all"));
                $('.search-chips_clearbutton[data-catagory="' + FilterType + '----' + FilterValue + '"]').click(function (ee) {
                    clearSelectedFilter(FilterType, FilterValue)
                    $('.search-chips_clearbutton[data-catagory="' + FilterType + '----' + FilterValue + '"]').remove();
                });
            }
            else {
                $(e.target).attr('data-m', '{"aN":"RefinePanel","id":"Click_telemetry.Refine Results.' + FilterType + '.Child","cN":"Refine Panel.' + FilterValue + '_Unselected"}');
                for (var i in filterDict) {
                    if (filterDict[i].FilterType === FilterType && filterDict[i].FilterValue === FilterValue) {
                        $('.search-chips_clearbutton[data-catagory="' + FilterType + '----' + FilterValue + '"]').remove();
                        delete filterDict[i]
                    }
                }
            }
            var Current_Element = $(e.currentTarget)[0];
            mpsAnalyticsCustomTrack(Current_Element);
            if ($("#lnk-searchgroup .search-chips_clearbutton").length > 0) {
                $("#btn_Search_Clear_all").show();
            }
            else {
                $("#btn_Search_Clear_all").hide();
            }
            filterDict = sortObj(filterDict, 'FilterType');
            if ($("#hdnPageLoaded").val() !== "0") {
                buildFilters();
            }
        });

        $(document).on('click', ".searchvideoHeader", function () {
            trapModalFocus(this);
        })
        $(document).on('keydown', ".searchvideoHeader", function () {
            if (event.which === 13) {
                trapModalFocus(this);
            }
        })
        $(document).on('click', ".showmorespeaker", function () {
            let speakerModelId = $(this).attr("id");
            var speakerModel = new mwf.Popover({
                el: document.querySelector(`#${speakerModelId}`)
            });
            speakerModel.show();
        });
        $(document).on('click', ".openvideo", function () {
            onHeadingClick(this);
        });

        $(".custSetFrame").on('shown.bs.collapse', function () {
            sendIframeHeightMsg();
        });
        $(".custSetFrame").on('hidden.bs.collapse', function () {
            sendIframeHeightMsg();
        });

        $(document).on('keydown', ".openvideo", function () {
            var keyPressed = event.keyCode || event.which;
            if (keyPressed === 13) {
                onHeadingClick(this);
            }
        });

        $(document).on('click', "#closeplayerModel", function () {
            $("iframe").remove();
            $('#modal').modal().hide();
        });

        $('#sessionTo').on('blur', function () {
            if ($('#filter-container').hasClass('slideIn'))
                $('#searchgrid-Sidenav .close').focus();
        });

        $('#accordionsearch-filter > li:last-child button').on('blur', function () {
            if ($('#filter-container').hasClass('slideIn') && $('#accordionsearch-filter > li:last-child button').hasClass('collapsed'))
                $('#searchgrid-Sidenav .close').focus();
        });

        $(document).on('keydown', "#closeplayerModel", function () {
            var keyPressed = event.keyCode || event.which;
            if (keyPressed === 13) {
                $("iframe").remove();
                $('#playlerModel').modal('hide');

            }
        });
        $(document).on('keydown', "#grid-list", function () {
            var keyPressed = event.keyCode || event.which;
            if (keyPressed === 13) {
                selectView();
            }
        });
        $(document).on('click', "#grid-list", function () {
            selectView();

        });
        if ($("#hdnPageLoaded").val() == "0") {
            let viewMode = getQueryParam("viewMode");
            if (viewMode) {
                if (viewMode == "list") {
                    listView();
                }
                else {
                    gridView();
                }
            }
        }
    }

    $(document).on('click', ".downloadfiles", function () {

        let downloadResources = $(this).attr("id");
        var videoId = downloadResources.split('-')[2];
        var TileView = "BoxView";
        if ($(`#${downloadResources}`).hasClass('listview')) {
            TileView = 'ListView';
        }
        let downloadlId = $(this).attr("id");
        var downloadModel = new mwf.Popover({
            el: document.querySelector(`#${downloadlId}`)
        });
        downloadModel.show();
    });

    $(document).on('click', ".downloadCaptions", function () {
        let btnelementId = $(this).attr("id");
        var TileView = btnelementId.split('-')[0];
        var videoId = btnelementId.split('-')[2];
        var selecteditem = $(`#${TileView}-selectdownloadCaptions-${videoId}`).val();
        var VideoGuid = $(`#${TileView}-selectdownloadCaptions-${videoId}`).attr('data-VideoGuid');
        OpenUrl(VideoGuid, "Caption", selecteditem);

    });

    function selectedcaption(TileView, videoId, ShortCode) {
        var selecteditem = $(`#${TileView}-selectdownloadCaptions-${videoId}`).val();
        $(this).attr('data-m', '{ "aN": "' + ShortCode + '.Download Captions DropDown_Grid View", "cN": "' + selecteditem + 'selected_' + ShortCode + '" }');
    }

    function BuildDownloadAssets(videoId, TileView, CaptionAssetsJson, OtherAssetsJson, VideoGuid,ShortCode) {
        var success = 0;
        if (!CheckIsNullorUndefinedorEmpty(CaptionAssetsJson)) {
            var CaptionAssets = CaptionAssetsJson.filter(x => !CheckIsNullorUndefinedorEmpty(x.FileName) && !CheckIsNullorUndefinedorEmpty(x.StreamUrl));
            if (!CheckIsNullorUndefinedorEmpty(CaptionAssets)) {
                var locCode = SearchGridLocalizationManager.GetLangCodeFromQueryString(getQueryParam("loc")); //Using this query string for Caption Menu to populate based on this language.
                const LocCaptionAssetsList = CaptionManager.Getcaption(CaptionAssets, [], locCode);
                for (var asset in LocCaptionAssetsList) {
                    if (!CheckIsNullorUndefinedorEmpty(LocCaptionAssetsList[asset])) {
                        if (asset == 0) {
                            success = 1;
                        }
                        $(`#${TileView}-downloadfilesdropdown-${videoId}`).addClass("d-flex");
                        $(`#${TileView}-selectdownloadCaptions-${videoId}`).append(
                            $(`<option aria-label="Options - ${LocCaptionAssetsList[asset].label}" onclick="${selectedcaption(TileView, videoId, ShortCode)}'" data-m='{"aN":"Results","cN":"${ShortCode}.DownloadResources.Captions.${LocCaptionAssetsList[asset].label}"}' title="Caption - ${LocCaptionAssetsList[asset].label}" ></option>`).val(LocCaptionAssetsList[asset].srclang).text(LocCaptionAssetsList[asset].label)
                        );
                    }
                }
            }
        }

        if (!CheckIsNullorUndefinedorEmpty(OtherAssetsJson)) {
            var OtherAssets = OtherAssetsJson.filter(x => !CheckIsNullorUndefinedorEmpty(x.AssetType) && !CheckIsNullorUndefinedorEmpty(x.LinkUrl));
            if (!CheckIsNullorUndefinedorEmpty(OtherAssets)) {
                for (var asset in OtherAssets) {
                    if (!CheckIsNullorUndefinedorEmpty(OtherAssets[asset])) {
                        var OtherAssetsMapList = GetAssetType(OtherAssets[asset].AssetType);
                        if (!(CheckIsNullorUndefinedorEmpty(OtherAssetsMapList))) {
                            if (asset == 0) {
                                success = 1;
                            }
                            $(`#${TileView}-${OtherAssetsMapList[0]}-downloadcontainer-${videoId}`).addClass("d-flex");
                            $(`#${TileView}-${OtherAssetsMapList[0]}-downloadlinks-${videoId}`).attr('onclick', `OpenUrl('${VideoGuid}','${OtherAssetsMapList[1]}')`);
                        }
                    }

                }
            }
        }
        if (success == 1) {
            $(`#${TileView}-download-${videoId}`).addClass("d-block")
        }


    }
    function GetAssetType(assettype) {
        var downloadtextdict = {
            "highqualityurl": ["Video", "highmp4"],
            "ppturl": ["PowerPoint", "ppt"],
            "transcripturl": ["Transcripts", "transcript"],
            "thumbnailurl": ["Thumbnail", "thumbnail"]
        }

        return downloadtextdict[assettype.toLowerCase()];
    }

    function CheckIsNullorUndefinedorEmpty(value) {
        if (value == null || value == undefined || value.length <= 0) {
            return true;
        }
        return false
    }

    var validateJSON = (jsonText) => {
        try {
            if (CheckIsNullorUndefinedorEmpty(jsonText)) {
                return true;
            }
            JSON.parse(jsonText);
        } catch (e) {
            return false;
        }
        return true;
    }


    const selectView = function () {
        if ($('#grid-list').attr("data-view") !== undefined &&
            $('#grid-list').attr("data-view") === "list") {
            gridView();
        }
        else {
            listView();
        }
        addQueryParam("viewMode", $('#grid-list').attr("data-view"));
    }
    const listView = function () {
        $("#list").show();
        $("#grid").hide();
        $('#grid-list').attr("data-view", "list");
        $('#grid-list').attr("aria-label", "Selected View Grid");
        var searchGridTitle = $('#grid-list').attr("data-s");
        $('#grid-list').attr("data-m", '{"aN":"Results","id":"Click-telemetry.' + searchGridTitle + '.ViewSelector","cN":"Grid View"}');
        $("#grid-list").html('<span class="glyphicon glyph-prepend glyph-prepend-waffle"></span> Grid');
        SearchGridLocalizationManager.PageViewOptionsAriaLabel("Selected View Grid");
    }
    const gridView = function () {
        $("#list").hide();
        $("#grid").show();
        $('#grid-list').attr("data-view", "grid");
        $('#grid-list').attr("aria-label", "Selected View List");
        var searchGridTitle = $('#grid-list').attr("data-s");
        $('#grid-list').attr("data-m", '{"aN":"Results","id":"Click-telemetry.' + searchGridTitle + '.ViewSelector","cN":"List View"}');
        $("#grid-list").html('<span class="glyphicon glyph-prepend glyph-prepend-bulleted-list"></span> List');
        window.setTimeout(function () {
            if ($("#filter-container").length > 0 && $(".cards-session .material-card.h-100").length > 0) {
                $("#filter-container").css("min-height", $(".cards-session .material-card.h-100:eq(0)").height());
            }
        }, 300);

        SearchGridLocalizationManager.PageViewOptionsAriaLabel("Selected View Grid");
    }

    $(document).on('click', '#searchText', function (e) {
        var searchValue = $('#searchText').val();
        if (searchValue != null && searchValue != "") {
            $(e.target).attr('data-m', '{"aN":"Search","cN":"Search_' + searchValue + '"}');
            var Current_Element = $(e.currentTarget)[0];
            mpsAnalyticsCustomTrack(Current_Element);
        }
        $('#searchfilter').show();
        e.preventDefault();
        e.stopPropagation();

    });
    $(document).on('click', '.close', function (e) {
        let shortcode = $(e.target).parent().attr('data-shortcode');
        if (shortcode != null && shortcode !== "" && typeof shortcode !== 'undefined') {
            $(e.target).attr('data-m', '{"aN":"Results","cN":"' + shortcode +'.Speakers.More.Close"}');
            var Current_Element = $(e.currentTarget)[0];
            mpsAnalyticsCustomTrack(Current_Element);
        }
    });

    $(document).on('click', '.search-filter-text', function (e) {
        var selectedValue = e.target.innerText;
        var existingVal = $('#searchText').val();
        if (existingVal == '')
            existingVal = selectedValue;
        else
            existingVal = existingVal + " " + selectedValue;
        $('#searchText').val(existingVal);
        $('#spanclose').show();
        $('#btnclose').show();
        $('#searchfilter').show();
    });

    $(document).on('click', '.search-filter-hint', function (e) {
        var selectedValue = $(this).closest('li').find('.search-filter-text')[0].innerText;
        var existingVal = $('#searchText').val();
        existingVal = existingVal + " " + selectedValue;
        $('#searchText').val(existingVal);
        $('#spanclose').show();
        $('#btnclose').show();
        $('#searchfilter').show();
    });

    $(document).on('click', '#btnclose', function (e) {
        $('#searchText').val('');
        $('#btnclose').attr('data-m', '{"aN":"Search","cN":"Search_Clear"}');
        var Current_Element = $('#btnclose')[0];
        mpsAnalyticsCustomTrack(Current_Element);
        $('#spanclose').hide();
        $('#btnclose').hide();
        //$('#searchfilter').show();
        e.preventDefault();
        e.stopPropagation();
    });

    $(document).on('click', function (e) {
        var container = $("#searchfilter");
        if ($(e.target).closest(container).length) {
            container.show();
        }
        else
            container.hide();
    });

    var openSecureVideoDetails = (videoguid, redirectURL, iFrameElement, id) => {
        let gridGUID = $("#searchgridId").val();
        let url = `${window.location.origin}/Embed/GetSessionToken/${gridGUID}`;
        let searchToken = "";
        if ($("#searchToken").length > 0) {
            searchToken = $("#searchToken").val();
        }
        $.ajax({
            type: "GET",
            async: false,
            cache: false,
            url: url,
            data: {
                VideoGuid: videoguid,
                rt: searchToken,
                SearchGridGuid: gridGUID
            },
            success: function (result) {
                if (result && result.ATToken) {
                    if (iFrameElement) {
                        iFrameElement.attr("src", "/Embed/Video?id=" + id + "&at=" + result.ATToken);
                    }
                    else {
                        window.open(`${redirectURL}?at=${result.ATToken}`, '_blank');
                    }
                } else {
                    if (iFrameElement) {
                        iFrameElement.attr("src", "/Embed/Video?id=" + id);
                    }
                    else {
                        window.open(redirectURL, '_blank');
                    }

                }
            },
            error: function (xhr) {
                console.log("====Error in getting token===")
                //window.open(redirectURL, '_blank');
            }
        });
    }
    var openVideoDetails = (videoguid, secureSession, redirectURL, iFrameElement, id) => {

        if (!secureSession) {
            if (iFrameElement) {
                iFrameElement.attr("src", "/Embed/Video?id=" + id);
            }
            else {
                window.open(redirectURL, '_blank');
            }

        }
        else {
            openSecureVideoDetails(videoguid, redirectURL, iFrameElement, id);
        }
    }
    var onHeadingClick = function (obj) {
        var getBaseUrl = $(obj).data("baseurl");
        var redirectSearchGridVideosUrl = $('#RedirectSearchGridVideosUrl').val();
        var shortCode = $(obj).attr("data-shortCode");
        var videoGUID = $(obj).attr("data-vgid");
        var title = $(obj).attr('title');
        let issecure = $(obj).attr("data-issecure");
        let secureSession = false;
        if (issecure == "true" && $("#secure-session").length > 0 && $("#secure-session").val() === "true") {
            secureSession = true;
        }
        if (getBaseUrl !== "" && typeof getBaseUrl !== 'undefined') {
            getBaseUrl = getBaseUrl.replace("{{shortcode}}", shortCode).replace("{{videoguid}}", videoGUID);
            //window.open(getBaseUrl, '_blank');
            openVideoDetails(videoGUID, secureSession, getBaseUrl);
        }
        else if (redirectSearchGridVideosUrl !== "" && typeof redirectSearchGridVideosUrl !== 'undefined') {
            redirectSearchGridVideosUrl = redirectSearchGridVideosUrl.replace("{{shortcode}}", shortCode).replace("{{videoguid}}", videoGUID);
            //window.open(redirectSearchGridVideosUrl, '_blank');
            openVideoDetails(videoGUID, secureSession, redirectSearchGridVideosUrl);
        }
        else {
            var id = $(obj).attr('data-vgid');
            if (id !== "") {
                if ($('#videosearch-box').length > 0) {
                    var SearchGridModal = new mwf.Modal({
                        el: document.querySelector('#SearchGridModalPopup'),
                    });
                    SearchGridModal.show();
                    var iframe = $('<iframe id="IframeOnModal" style="width:100%; height:100%;" frameborder="0" allowfullscreen></iframe>');
                    iframe.appendTo("#playerMainContent");
                    var titleVal;
                    if (title) {
                        var titleVal = title;
                    }
                    else {
                        var titleVal = $(obj).text();

                    }
                    iframe.attr('title', titleVal);
                    $('#headercontent').text(titleVal);
                }
                else {
                    $('#playlerModel').modal('show');
                    $('#playlerModel').on('shown.bs.modal', function () {
                        $('#azuremediaplayer').focus();
                    });

                    var iframe = $('<iframe title="' + title + '" style="width:100%; height:100%;" frameborder="0" allowfullscreen></iframe>');
                    iframe.appendTo(".custplayerWithModel");
                }
                // iframe.attr("src", "/Embed/Video?id=" + id);
                openVideoDetails(videoGUID, secureSession, redirectSearchGridVideosUrl, iframe, id);
            }
        }
    }


    var trapModalFocus = function (obj) {
        var getCardID = $(obj).data("target");

        $(getCardID).on('shown.bs.modal', function () {
            $('.Custclose').focus();
        })

        var firstAnchor = $(getCardID);
        var lastAnchor = $(getCardID).find('.dialog-end');

        if (firstAnchor !== null && lastAnchor !== null) {
            function keydownHandler(e) {
                var evt = e || window.event;
                var keyCode = evt.which || evt.keyCode;
                if (keyCode === 9) { // TAB pressed
                    if (evt.preventDefault) evt.preventDefault();
                    else evt.returnValue = false;
                    firstAnchor.focus();
                }
            }
            function keydownHandlerLast(f) {
                var evt = f || window.event;
                var keyCode = evt.which || evt.keyCode;
                if (keyCode === 9 && evt.shiftKey) { // TAB+SHIFT pressed
                    if (evt.preventDefault) evt.preventDefault();
                    else evt.returnValue = false;
                    lastAnchor.focus();
                }
            }
            if (lastAnchor.addEventListener) lastAnchor.addEventListener('keydown', keydownHandler, false);
            else if (lastAnchor.attachEvent) lastAnchor.attachEvent('onkeydown', keydownHandler);
            if (firstAnchor.addEventListener) firstAnchor.addEventListener('keydown', keydownHandlerLast, false);
            else if (firstAnchor.attachEvent) firstAnchor.attachEvent('onkeydown', keydownHandlerLast);
        }
    }

    function sortObj(list, key) {
        function compare(a, b) {
            a = a[key];
            b = b[key];
            var type = (typeof (a) === 'string' ||
                typeof (b) === 'string') ? 'string' : 'number';
            var result;
            if (type === 'string') result = a.localeCompare(b);
            else result = a - b;
            return result;
        }
        return list.sort(compare);
    }

    function buildFilters(pageNumber) {
        var embededSearchFilterExpression = "";
        var embedsearchString = $('#SearchString').val();
        var searchString = $('#searchText').val();
        if (searchString != null && searchString != "") {
            $('.search-header-bar__search-input-button').attr('data-m', '{"aN":"Search","cN":"Search_' + searchString + '"}');
            var Current_Element = $('.search-header-bar__search-input-button')[0];
            mpsAnalyticsCustomTrack(Current_Element);
        }
        if (embededSearchFilterExpression === undefined || embededSearchFilterExpression === "") {
            embededSearchFilterExpression = "";
        }
        else {
            embededSearchFilterExpression = "(" + embededSearchFilterExpression + ")"
        }
        if (embedsearchString === undefined) {
            embedsearchString = "";
        }

        if (window.self != window.top) {
            window.parent.postMessage({
                type: "ccss",
                data: {
                    searchString: searchString,
                }
            }, "*");
        }

        var orFilterList = [];
        $(".searchFilterpannelheading").each(function () {
            var filterExpressionor = "";
            var index = 0;
            var filterTextValue = $(this).attr("data-catagory");
            for (var i in filterDict) {
                if (filterTextValue.replace(/\s/g, '') === filterDict[i].FilterType) {
                    if (index > 0)
                        filterExpressionor += " or "

                    var FilterType = filterDict[i].FilterType;
                    var searchExpression = filterDict[i].FilterValue.replace("'", "''");
                    var locCode = SearchGridLocalizationManager.GetLangCodeFromQueryString(getQueryString("loc"));

                    if (locCode != 'en') {
                        var locFilterValue = filterDict[i].FilterValue;
                        const strFilterTypeAndValue = getFilterTypeAndValue(FilterType, locFilterValue, locCode);
                        const filters = strFilterTypeAndValue.split('@');
                        FilterType = filters[0];
                        searchExpression = filters[1];

                        searchExpression = searchExpression.replace("'", "''");
                    }


                    if (FilterType == "SessionLevel") {
                        filterExpressionor += "(" + "Level" + "/any(t: t " + " eq '" + searchExpression + "'" + "))";
                    }
                    else if (FilterType == "Channels") {
                        filterExpressionor += "(" + FilterType + " eq '" + searchExpression + "'" + ")";
                    }
                    else if (FilterType == "Solution") {
                        filterExpressionor += "(" + "Solutions" + "/any(t: t " + " eq '" + searchExpression + "'" + "))";
                    }
                    //else if (FilterType == "Solution") {
                    //    filterExpressionor += "(" + "Solutions" + "/any(t: t " + " eq '" + searchExpression + "'" + "))";
                    //}
                    else
                        filterExpressionor += "(" + FilterType + "/any(t: t " + " eq '" + searchExpression + "'" + "))";
                    index++;
                }
            }
            if (filterExpressionor.length > 0)
                orFilterList.push(filterExpressionor);
        });

        var filterExpressionAnd = "";
        for (var orfilter in orFilterList) {
            if (parseInt(orfilter) >= 1)
                filterExpressionAnd += " and "
            filterExpressionAnd += "(" + orFilterList[orfilter] + ")";
        }

        var filterExpression = embededSearchFilterExpression;
        if (embededSearchFilterExpression.length > 0 && filterExpressionAnd.length > 0)
            filterExpression += " and " + filterExpressionAnd;
        else
            filterExpression += filterExpressionAnd;

        pageNumber = pageNumber ? pageNumber : 1;
        if ($("#videosearch-box").length > 0) {
            searchCatalog(pageNumber, filterExpression);
        }
        else {
            search(pageNumber, filterExpression);
        }
    }

    function getFilterTypeAndValue(filterType, filterValue, locCode) {
        var value = '';
        $.ajax({
            url: '/Embed/GetSearchFilterTypeAndValue',
            data: { locFilterType: filterType, locFilterValue: filterValue, locCode: locCode },
            type: "GET",
            async: false,
            success: function (data) {
                value = data;
            },
            failure: function (response) {
                value = searchExpression
            }
        });

        return value;
    }
    const appendParams = (objParams) => {
        let keys = Object.keys(objParams).filter(_ => {
            return !(_ === "pageSizes" || _ === "searchgridId");
        });
        keys.forEach(_ => {
            addQueryParam(_, objParams[_]);
        });
    }
    const addQueryParam = (key, value) => {
        const url = new URL(window.location.href);
        url.searchParams.set(key, value);
        window.history.pushState({}, '', url.toString());
    };
    const getQueryParam = (key) => {
        const url = new URL(window.location.href);
        return url.searchParams.get(key) || '';
    };
    function searchCatalog(pageNumber, embededSearchFilterExpression, orderby, pageSize) {
        var serviceURL = '/Home/VideoSearchString';
        if ($("#videosearch-box").length > 0) {
            serviceURL = '/Home/VideoSearchSessionArchive';
        }
        //if (embededSearchFilterExpression === undefined)
        //    var embededSearchFilterExpression = $('#SearchFilterExpression').val();	        
        var searchString = $('#searchText').val();
        var searchGridId = $("#searchgridId").val();
        var orderby = orderby && orderby != "undefined" ? orderby : $(".sortOrder option:selected").val();
        var pageSize = pageSize && pageSize != "undefined" ? pageSize : $(".searchgrid-pager option:selected").val();
        var loc = getQueryString("loc");
        if (loc == null || loc == undefined || loc == "null") {
            loc = "en";
        }
        var pagesizes = $("#searchgridPages").val();
        var sessionFrom = $("#sessionFrom").val();
        var sessionTo = $("#sessionTo").val();
        // var sessionRange = $("#getsessionRange").val();
        // let postedData = { searchString: searchString, page: pageNumber, embededSearchFilterExpression: embededSearchFilterExpression, orderBy: orderby, pageSize, pageSize, pageSizes: pagesizes, searchgridId: searchGridId, loc: loc, sessionFrom: sessionFrom, sessionTo: sessionTo };
        let postedData = { searchString: searchString, page: pageNumber, embededSearchFilterExpression: embededSearchFilterExpression, orderBy: orderby, pageSize, pageSize, pageSizes: pagesizes, searchgridId: searchGridId, loc: loc, sessionFrom: sessionFrom, sessionTo: sessionTo };
        if ($("#hdnPageLoaded").val() !== "0") {
            appendParams(postedData);
        }
        else {
            let keys = Object.keys(postedData).filter(_ => {
                return !(_ === "pageSizes" || _ === "searchgridId");
            });
            // console.log("---keys----", keys);
            keys.forEach(_ => {
                let paramValue = getQueryParam(_);
                if (paramValue) {
                    postedData[_] = paramValue;
                    switch (_) {
                        case "searchString":
                            {
                                $("#searchText").val(paramValue);
                                $('#spanclose').show();
                                break;
                            }
                        case "embededSearchFilterExpression":
                            {
                                //console.log("===embededSearchFilterExpression===", paramValue)
                                break;
                            }
                        case "orderBy":
                            {
                                $(".sortOrder").val(paramValue);
                                break;
                            }
                        case "pageSize":
                            {
                                $(".searchgrid-pager").val(paramValue)
                                break;
                            }
                        case "sessionFrom":
                            {

                                $("#sessionFrom").val(paramValue);
                                //$("#slider-range").slider("values", 0, new Date(paramValue).getTime() / 1000);
                                // $("#sessionFrom").trigger('focus');
                                // $("#sessionFrom").trigger('blur');
                                //$("#hdn-custom-range").trigger('change');
                                break;
                            }
                        case "sessionTo":
                            {
                                //$("#hdn-custom-range").trigger('change');
                                $("#sessionTo").val(paramValue);
                                //$("#sessionTo").trigger('focus');
                                // $("#sessionTo").trigger('blur');
                                //$("#slider-range").slider("values", 1, new Date(paramValue).getTime() / 1000);

                                // $("#hdn-custom-range").trigger('change');
                                break;
                            }
                        default: {
                            break;
                        }
                    }
                }
            });
            if (!(this.SessionStart == $("#sessionFrom").val() && this.SessionEnd == $("#sessionTo").val())) {
                $("#hdn-custom-range").trigger('change');
            }
        }
        if ($("#searchToken").length > 0 && $("#secure-session").length > 0 && $("#secure-session").val() === "true") {
            postedData.rt = $("#searchToken").val();
            let gridGUID = $("#searchgridId").val();
            serviceURL = `/Home/VideoSearchSecureSessionArchive/${gridGUID}`;
        }
        $("#divLoading").show();
        $.ajax({
            type: "GET",
            url: serviceURL,
            data: postedData,
            success: successSearchHandler
        })
    }
    function search(pageNumber, embededSearchFilterExpression, orderby, pageSize) {
        var serviceURL = '/Home/VideoSearchString';
        if (pageSize) {
            searchCatalog(pageNumber, embededSearchFilterExpression, orderby, pageSize)
        }
        //if (embededSearchFilterExpression === undefined)
        //    var embededSearchFilterExpression = $('#SearchFilterExpression').val();
        var searchString = $('#searchText').val();
        var searchGridId = $("#searchgridId").val();
        var orderby = orderby ? orderby : $(".sortOrder option:selected").val();
        var loc = SearchGridLocalizationManager.GetLangCodeFromQueryString(getQueryString("loc"));

        $("#divLoading").show();
        $.ajax({
            type: "GET",
            url: serviceURL,
            data: { searchString: searchString, page: pageNumber, embededSearchFilterExpression: embededSearchFilterExpression, orderBy: orderby, searchgridId: searchGridId, loc: loc },
            success: successSearchHandler
        })
    }
    function getQueryString(name) {
        var url = window.location.href;
        name = name.replace(/[\[\]]/g, "\\$&");
        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, " "));
    }
    function handleKeyPress(e) {
        var key = e.keyCode || e.which;
        $('#spanclose').show();
        $('#btnclose').show();
        if (key === 13) {
            buildFilters();
            $('#searchfilter').hide();
        }
    }

    var successSearchHandler = function (data) {
        if (data !== null) {
            var previousselected = $('#sortOrder').data('pre');
            $('#divLoading').hide();
            $("#videosearch,#videosearch-box").empty().html(data);
            sendIframeHeightMsg();
            $('.sortOrder').data('pre', $("#sortOrder option:selected").val());
            if (previousselected != $(".sortOrder option:selected").val() && previousselected != undefined) {
                $('.sortOrder').focus();
            }

            $(document).ready(function () {
                var allElem = $('.block-within-text');
                allElem.each(function (i, item) {
                    var isScr = isScrollable(item);
                    if (isScr) {

                        $(item).attr("tabindex", "0");
                    }
                });
            });
        }
    }

    var isScrollable = function (ele) {
        // Compare the height to see if the element has scrollable content
        var hasScrollableContent = ele.scrollHeight > ele.clientHeight;

        // It's not enough because the element's `overflow-y` style can be set as
        // * `hidden`
        // * `hidden !important`
        // In those cases, the scrollbar isn't shown
        var overflowYStyle = window.getComputedStyle(ele).overflowY;
        var isOverflowHidden = overflowYStyle.indexOf('hidden') !== -1;

        return hasScrollableContent && !isOverflowHidden;
    };

    var sendIframeHeightMsg = function () {
        var container = document.getElementById('medius-content');
        if (container !== null && container !== undefined) {
            var iframheight = container.offsetHeight + 5 + 'px';
            sendMessage({
                iframeheight: iframheight
            });

            sendMessage({ type: "height", data: $('body').outerHeight(true) });
        }
    }


    var sendMessage = function (msg) {
        //if (window.parent.location.href !== window.location.href) {
        window.parent.postMessage(msg, '*');
        //}
    };

    return {
        init: init,
        search: search,
        searchCatalog: searchCatalog,
        handleKeyPress: handleKeyPress,
        buildFilters: buildFilters,
        SessionStart: "",
        SessionEnd: "",
        listView: listView,
        gridView: gridView,
        validateJSON: validateJSON,
        BuildDownloadAssets: BuildDownloadAssets

    }
}();

;
var mpsAnalyticsCustomTrack = function (curr_ele) {

    try {
        var props = JSON.parse(curr_ele.getAttribute('data-m'));
        if (props != null && props != undefined) {
            appInsights.trackEvent(props.id, props, {});
            var overrideValues = {
                behavior: "OTHER",
                actionType: "CL",
                contentTags: { "aN": props.aN, "cN": props.cN },
            };
            mpsonedsanalytics.capturePageAction(null, overrideValues);
        }
    }
    catch (ex) {
        console.log("Exception", ex);
    }
}

$(document).on('click','button:not(.filter-accordian-btn), a, input[type="checkbox"], input[type="date"], select:not(.searchgrid-pager), li.search-filter-item,img.card-img', function (e) {
    var Current_Element = $(e.currentTarget)[0];
    mpsAnalyticsCustomTrack(Current_Element);

});


$(document).on('keydown', 'button:not(.filter-accordian-btn), a, input[type="checkbox"], input[type="date"], input[type="text"], select:not(.searchgrid-pager), li.search-filter-item,img.card-img', function (e) {
    var keyPressed = event.keyCode || event.which;  
    if (keyPressed === 13) {
        var Current_Element = $(e.currentTarget)[0];
        mpsAnalyticsCustomTrack(Current_Element);
    }
});;
