495538692fde539cac8462776fd441a36fd3834b1c936e98e4dd599cf145f376

Source Code:

jQuery(function () {
    initCommonExternalLinks();
    jQuery(".video-container").fitVids();
    //remove google plus links
    $('.icon-google-plus-1, a.google-plus, a.googleplus').closest('li').remove();
    $('.icon-google-plus-1').remove();



    function extractRootDomainForCommonExternalLinks(url) {

        var a = document.createElement('a');
        a.href = url;
        var hostname = a.hostname.toLowerCase();
        hostname = a.hostname.replace('http:', '').replace('https:', '').replace('/', '').replace('www.', '');

        return hostname;
    }

    function initCommonExternalLinks() {

        //ToDo: Would this be better done via server?
        window.whitelistSites = [
            'aafb.militarymwrguam.com',
            'cnic.navy.mil',
            'dineonthegocapecanaveral.com',
            'dineonthegocorpuschristi.com',
            'dineonthegofortworth.com',
            'dineonthegogtmo.com',
            'dineonthegoguantanamobay.com',
            'dineonthegogulfport.com',
            'dineonthegojacksonville.com',
            'dineonthegokeywest.com',
            'dineonthegokingsville.com',
            'dineonthegomayport.com',
            'dineonthegomeridian.com',
            'dineonthegomidlant.com',
            'dineonthegomidsouth.com',
            'dineonthegoneworleans.com',
            'dineonthegopanamacity.com',
            'dineonthegopaxriver.com',
            'dineonthegopensacola.com',
            'dineonthegopnw.com',
            'dineonthegowhitingfield.com',
            'dodcio.defense.gov',
            'dodwarriorgames.com',
            'elcentroairshow.com',
            'everett.navylifepnw.com',
            'greatlifehawaii.com',
            'kitsap.navylifepnw.com',
            'militarymwrguam.com',
            'mwrdigitallibrary.navy.mil',
            'mywfr.com',
            'nasjaxairshow.com',
            'nasni100.com',
            'naspensacolaairshow.com',
            'navy.com',
            'navy.mil',
            'navybaybridgerun.com',
            'navycyp.com',
            'navyfitness.org',
            'navygoldstar.com',
            'navyhalf.com',
            'navylifepnw.com',
            'navymwr.org',
            'navymwrannapolis.com',
            'navymwratsugi.com',
            'navymwrbahrain.com',
            'navymwrbethesda.com',
            'navymwrbusan.com',
            'navymwrcapecanaveral.com',
            'navymwrchinalake.com',
            'navymwrchinhae.com',
            'navymwrcorpuschristi.com',
            'navymwrcrane.com',
            'navymwrdahlgren.com',
            'navymwrdiegogarcia.com',
            'navymwrearle.com',
            'navymwrelcentro.com',
            'navymwrfallon.com',
            'navymwrfortworth.com',
            'navymwrgreatlakes.com',
            'navymwrguantanamobay.com',
            'navymwrgulfport.com',
            'navymwrhamptonroads.com',
            'navymwrindianhead.com',
            'navymwrjacksonville.com',
            'navymwrjapan.com',
            'navymwrjblittlecreekfortstory.com',
            'navymwrkeywest.com',
            'navymwrkingsbay.com',
            'navymwrkingsville.com',
            'navymwrkorea.com',
            'navymwrlemoore.com',
            'navymwrmayport.com',
            'navymwrmechanicsburg.com',
            'navymwrmeridian.com',
            'navymwrmidlant.com',
            'navymwrmidsouth.com',
            'navymwrmonterey.com',
            'navymwrnaples.com',
            'navymwrnavalstationnorfolk.com',
            'navymwrndw.com',
            'navymwrnewlondon.com',
            'navymwrneworleans.com',
            'navymwrnewport.com',
            'navymwrnorfolkshipyard.com',
            'navymwroceanadamneck.com',
            'navymwrokinawa.com',
            'navymwrpanamacity.com',
            'navymwrpaxriver.com',
            'navymwrpensacola.com',
            'navymwrphiladelphia.com',
            'navymwrportsmouthshipyard.com',
            'navymwrrota.com',
            'navymwrsandiego.com',
            'navymwrsaratoga.com',
            'navymwrsasebo.com',
            'navymwrsealbeach.com',
            'navymwrsigonella.com',
            'navymwrsingapore.com',
            'navymwrsolomons.com',
            'navymwrsoudabay.com',
            'navymwrsw.com',
            'navymwrventura.com',
            'navymwrwashington.com',
            'navymwrwhitingfield.com',
            'navymwryokosuka.com',
            'navymwryorktown.com',
            'navywoundedwarrior.com',
            'nbg.militarymwrguam.com',
            'ncis.navy.mil',
            'neworleansairshow.com',
            'oceanaairshow.com',
            'paxriverairexpo.com',
            'pmrf.greatlifehawaii.com',
            'jbphh.greatlifehawaii.com',
            'safehelpline.org',
            'veteranscrisisline.net',
            'www.veteranscrisisline.net',
            'whidbey.navylifepnw.com',
            'wingsoversouthtexas.com',
            'chinalake.navylifesw.com',
            'elcentro.navylifesw.com',
            'fallon.navylifesw.com',
            'lemoore.navylifesw.com',
            'monterey.navylifesw.com',
            'sandiego.navylifesw.com',
            'sealbeach.navylifesw.com',
            'ventura.navylifesw.com'

        ];


        if (window.ExternalLinkSettings && (window.ExternalLinkSettings.PartnerDomains.length || window.ExternalLinkSettings.WhitelistLinkDomains.length)) {
            links = document.getElementsByTagName('A');
            for (var i = 0; i < links.length; i++) {

                if (links[i].href
                    && links[i].href.indexOf(window.location.host) == -1
                    && links[i].href.indexOf("mailto:") != 0
                    && links[i].href != "#"
                    && links[i].href.indexOf("javascript") != 0

                ) {
                    if (window.ExternalLinkSettings.PartnerDomains.indexOf(extractRootDomainForCommonExternalLinks(links[i].href.toLowerCase().trim())) > -1) {
                        $(links[i]).addClass('partner-link');
                        links[i].onclick = function () {
                            return confirmPartnerLink(this.href);
                        }
                    }
                    else if (window.ExternalLinkSettings.WhitelistLinkDomains.indexOf(extractRootDomainForCommonExternalLinks(links[i].href.toLowerCase().trim())) < 0) {
                        $(links[i]).addClass('external-link');
                        links[i].onclick = function () {
                            return confirmExternalLink(this.href);
                        }
                    }
                }
            }
        }
    }
    function confirmPartnerLink(href) {
        if (confirm(window.ExternalLinkSettings.PartnerLinkMessage || "The appearance of external hyperlinks does not constitute endorsement by the United States Department of Defense, the United States Department of the Navy or U.S. Naval Observatory of the linked web sites, or the information, products or services contained therein. For other than authorized activities such as military exchanges and Morale, Welfare and Recreation (MWR) sites, the United States Department of Defense, the Department of the Navy or the U.S. Naval Observatory do not exercise any editorial control over the information you may find at these locations. Such links are provided consistent with the stated purpose of this DoD web site.")) {

            var extLink = href.replace(/^https?\:\/\//i, '');

            ga('send', 'event', 'PartnerLink', 'Click', extLink);;

            if (jQuery(this).attr('target') != undefined && jQuery(this).attr('target').toLowerCase() != '_blank') {
                setTimeout(function () { location.href = href; }, 200);
                return false;
            }


            return true;
        }
        return false;
    }


    function confirmExternalLink(href) {

        if (confirm(window.ExternalLinkSettings.ExternalLinkMessage || "The appearance of external hyperlinks does not constitute endorsement by the United States Department of Defense, the United States Department of the Navy or U.S. Naval Observatory of the linked web sites, or the information, products or services contained therein. For other than authorized activities such as military exchanges and Morale, Welfare and Recreation (MWR) sites, the United States Department of Defense, the Department of the Navy or the U.S. Naval Observatory do not exercise any editorial control over the information you may find at these locations. Such links are provided consistent with the stated purpose of this DoD web site.")) {

            var extLink = href.replace(/^https?\:\/\//i, '');

            ga('send', 'event', 'ExternalLink', 'Click', extLink);;

            if (jQuery(this).attr('target') != undefined && jQuery(this).attr('target').toLowerCase() != '_blank') {
                setTimeout(function () { location.href = href; }, 200);
                return false;
            }

            //window.open(href, '_blank');
            return true;
        }
        return false;

    }

});



/*global jQuery */
/*jshint browser:true */
/*!
* FitVids 1.1
*
* Copyright 2013, Chris Coyier - https://css-tricks.com + Dave Rupert - https://daverupert.com
* Credit to Thierry Koblentz - https://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
* Released under the WTFPL license - https://sam.zoy.org/wtfpl/
*
*/

(function ($) {

    "use strict";

    $.fn.fitVids = function (options) {
        var settings = {
            customSelector: null,
            ignore: null,
        };

        if (!document.getElementById('fit-vids-style')) {
            // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js
            var head = document.head || document.getElementsByTagName('head')[0];
            var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';
            var div = document.createElement('div');
            div.innerHTML = '<p>x</p><style id="fit-vids-style">' + css + '</style>';
            head.appendChild(div.childNodes[1]);
        }

        if (options) {
            $.extend(settings, options);
        }

        return this.each(function () {
            var selectors = [
                "iframe[src*='player.vimeo.com']",
                "iframe[src*='youtube.com']",
                "iframe[src*='youtube-nocookie.com']",
                "iframe[src*='kickstarter.com'][src*='video.html']",
                "object",
                "embed"
            ];

            if (settings.customSelector) {
                selectors.push(settings.customSelector);
            }

            var ignoreList = '.fitvidsignore';

            if (settings.ignore) {
                ignoreList = ignoreList + ', ' + settings.ignore;
            }

            var $allVideos = $(this).find(selectors.join(','));
            $allVideos = $allVideos.not("object object"); // SwfObj conflict patch
            $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.

            $allVideos.each(function () {
                var $this = $(this);
                if ($this.parents(ignoreList).length > 0) {
                    return; // Disable FitVids on this video.
                }
                if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
                if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) {
                    $this.attr('height', 9);
                    $this.attr('width', 16);
                }
                var height = (this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10)))) ? parseInt($this.attr('height'), 10) : $this.height(),
                    width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
                    aspectRatio = height / width;
                if (!$this.attr('id')) {
                    var videoID = 'fitvid' + Math.floor(Math.random() * 999999);
                    $this.attr('id', videoID);
                }
                $this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100) + "%");
                $this.removeAttr('height').removeAttr('width');
            });
        });
    };
    // Works with either jQuery or Zepto
})(window.jQuery || window.Zepto);