{"version":3,"file":"main.js","sources":["../../../../../html/source/js/main.js","../../../../../html/source/js/lib/jquery.alphanumeric.js","../../../../../html/source/js/lib/jquery.formrestrict.js"],"names":["windowWidth","window","innerWidth","document","documentElement","clientWidth","body","staticHeaderHeight","height","$header","$","$subnav","find","length","getIndexFromClass","selector","className","exp","regex","RegExp","replace","$obj","index","parseInt","exec","attr","e","jQuery","fn","alphanumeric","r","alphanumericHelper","this","numeric","alpha","alphanumericSpaces","numericSpaces","alphaSpaces","obj","restraints","spaces","undefined","allcaps","nocaps","allow","escape","regexRestrict","text","inputEvents","restrict","sanitizationFunc","each","$this","bind","val","sanitizedVal","sanitize","resize","resizeTO","clearTimeout","setTimeout","trigger","scroll","scrollTO","on","utilities","init","drFinder","trackNpiVerified","verifiedFlag","evoAnalytics","trackEvent","trackUpdateProfileClick","sender","css","$sender","hasClass","display","refreshRightISI","rightISI","staticHeader","initDesktop","top","initMobile","evoke","core","isMobile","staticHeaderDisabled","httpUtility","cookie","get","disable","enabled","currentScroll","$window","scrollTop","headerPosTop","position","headerNavHeight","headerHeight","$nav","navHeight","lastScroll","animatingUp","animatingDown","stop","animate","duration","complete","showMenu","menu","mobile","show","toString","lastHide","isVisible","hide","mView","outerHeight","enable","$document","ready","winWidth","breakPoint","findSpecialist","zipCode","zipQueryString","location","winW","bp","mobileInit","desktopInit","mobileOn","desktopOff","mobileOff","desktopOn","scrollTo","scrollOffset","offset","nav","slideUp","menuButton","removeClass","slideDown","addClass","_this","slideToggle","toggleClass","menuOn","subnav","subTrigger","not","removeAttr","off","parentLink","parents","markerPos","left","width","children","tooltip","createPopup","placement","t","term","defHeader","definition","data","tip","append","boundry","trigLeft","trigRight","outerWidth","leftEdge","rightEdge","popup","tPos","popupLeft","popupRight","right","mobileIsiDisabled","staticBox","activeMaxWidth","hideWhenViewable","click","preventDefault","box","jquery","extraY","callback","FAQ","allTrigger","thisTrigger","sectionHandler","questionHandler","section","answers","question","parseAnalyticsData","gtm","answer","siblings","toggleChecked","$objs","checkedClass","label","toggleRadioButton","first","checked","initCheckboxes","initRadioButtons","pathname","hostname","target","hash","slice","$html","href","keyup","which","blur","parent","prev","hover","is","$zipLink","next","scrollIntoView","$target","modalDialog","modalRedraw","redraw","$modal","$ok","rebind","$cancel","dataClose","$close","onHide","onGrayClick","$body","category","tabs","element","open_tab_content","_thisID","data_tab","tabButton1","tabButton2","tabButton3","tab1","tab2","tab3","tabTop1","tabTop2","tabTop3","Date","prototype","toStringFormat","formatString","makeUTC","addLeadingZero","trim","rtnVal","utc","indexOf","getFullYear","getUTCMonth","getMonth","getUTCDate","getDate","getUTCHours","getHours","getUTCMinutes","getMinutes","getUTCSeconds","getSeconds","toUTCStringFormat","trackScrollBottom","action","scrollTracked","winHeight","$isi","footerTop","$footer","trackOnLoad","isiTop","trackModules","$sectionsToUse","$sections","push","$patientDir","i","Math","floor","liveRamp","args","track","$container","$tabs","$contents"],"mappings":"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","sourcesContent":["/**\r\n * [Create resizeEnd Event]\r\n */\r\n$(window).resize(function() {\r\n    if(this.resizeTO) clearTimeout(this.resizeTO);\r\n    this.resizeTO = setTimeout(function() {\r\n        $(this).trigger('resizeEnd');\r\n    }, 100);\r\n});\r\n/**\r\n * [Create scrollEnd Event]\r\n */\r\n$(window).scroll(function() {\r\n    if(this.scrollTO) clearTimeout(this.scrollTO);\r\n    this.scrollTO = setTimeout(function() {\r\n        $(this).trigger('scrollEnd');\r\n    }, 100);\r\n});\r\n\r\n$(window).on('resizeEnd', function() {\r\n    utilities.init();\r\n});\r\n\r\n//$(window).on('scroll', function () {\r\n//   isiJS.peekabooOn();\r\n//});\r\n\r\n\r\nvar drFinder = (function () {\r\n    return {\r\n        trackNpiVerified: function (verifiedFlag) {\r\n            evoAnalytics.trackEvent(\"Edit doctor profile\", \"Verify NPI Number\", verifiedFlag ? \"Verified\" : \"Not Verified\");\r\n        },\r\n        trackUpdateProfileClick: function (sender) {\r\n            if ($(\"#finderEdit\").css(\"display\") != \"none\") {\r\n                var $sender = $(sender);\r\n                if ($sender.hasClass(\"finder-update-link-bottom\")) {\r\n                    evoAnalytics.trackEvent(['Edit doctor profile', 'Click Edit Profile', 'Bottom Link']);\r\n                } else {\r\n                    evoAnalytics.trackEvent(['Edit doctor profile', 'Click Edit Profile', 'Top Link']);\r\n                }\r\n            }\r\n        }\r\n    }\r\n})();\r\n\r\nvar display = (function () {\r\n\r\n    var staticHeader = (function () {\r\n        var lastScroll = -1;\r\n        var currentScroll = 0;\r\n        var $window = $(window);\r\n        var $document = $(document);\r\n        var $header = $(\"header\");\r\n        var headerHeight = $header.outerHeight();\r\n        var $nav = $header.find(\"nav.nav-main\");\r\n        var navHeight = $nav.height();\r\n        var animatingUp = false;\r\n        var animatingDown = false;\r\n        var isMobile = false;\r\n        var showMenu = false;\r\n        var enabled = true;\r\n\r\n        function initDesktop() {\r\n            $header.css({\r\n                \"top\": \"0px\"\r\n            });\r\n        }\r\n        function initMobile() {\r\n            $header.css({\r\n                \"top\": \"0px\"\r\n            });\r\n        }\r\n\r\n        function init() {\r\n            if (evoke.core.windowWidth() < 1000) {\r\n                if (!isMobile) {\r\n                    isMobile = true;\r\n                    initMobile();\r\n                }\r\n            } else {\r\n                if (isMobile) {\r\n                    isMobile = false;\r\n                    initDesktop();\r\n                }\r\n            }\r\n            var staticHeaderDisabled = httpUtility.cookie.get(\"staticHeaderDisabled\");\r\n            if (staticHeaderDisabled === \"true\") {\r\n                disable();\r\n            }\r\n        }\r\n\r\n        function resize() {\r\n            if (evoke.core.windowWidth() < 1000) {\r\n                if (!isMobile) {\r\n                    isMobile = true;\r\n                    initMobile();\r\n                }\r\n            } else {\r\n                if (isMobile) {\r\n                    isMobile = false;\r\n                    initDesktop();\r\n                }\r\n            }\r\n        }\r\n\r\n        function scroll() {\r\n            if (evoke.core.windowWidth() < 1000) {\r\n                if (!isMobile) {\r\n                    initMobile();\r\n                }\r\n                isMobile = true;\r\n\r\n                if (enabled) {\r\n                    currentScroll = $window.scrollTop();\r\n\r\n                    var headerPosTop = $header.position().top;\r\n                    var headerNavHeight = headerHeight;\r\n                    if ($nav.css(\"display\") != \"none\") {\r\n                        headerNavHeight += navHeight;\r\n                    }\r\n                    if (currentScroll < lastScroll) { //scrolling up, show header\r\n                        if (!animatingUp && headerPosTop != 0) {\r\n                            animatingDown = false;\r\n                            animatingUp = true;\r\n                            $header.stop().animate({ \"top\": \"0px\" }, { duration: 300, complete: function () { animatingUp = false; } });\r\n                            if (showMenu) {\r\n                                showMenu = false;\r\n                                menu.mobile.show();\r\n                            }\r\n                        }\r\n                    } else if (currentScroll > headerHeight) { //scrolling down, hide header\r\n                        if (lastScroll < 0) {\r\n                            $header.css({ \"top\": \"-\" + headerHeight.toString() + \"px\" });\r\n                        } else if (!animatingDown && headerPosTop != -headerHeight) {\r\n                            animatingUp = false;\r\n                            animatingDown = true;\r\n                            lastHide = currentScroll;\r\n                            if (menu.mobile.isVisible()) {\r\n                                showMenu = true;\r\n                                menu.mobile.hide();\r\n                            }\r\n                            $header.stop().animate({ \"top\": \"-\" + headerHeight.toString() + \"px\" }, { duration: 300, complete: function () { animatingDown = false; } });\r\n                        }\r\n                    }\r\n\r\n                    lastScroll = currentScroll;\r\n                }\r\n\r\n            } else {\r\n                lastScroll = 0;\r\n                if (isMobile) {\r\n                    initDesktop();\r\n                }\r\n                isMobile = false;\r\n            }\r\n        }\r\n\r\n        function show() {\r\n            if (utilities.mView()) {\r\n                $header.css({\r\n                    \"position\": \"fixed\",\r\n                    \"top\": \"0px\"\r\n                });\r\n            }\r\n        }\r\n        function hide() {\r\n            if (utilities.mView()) {\r\n                $header.css({\r\n                    \"position\": \"fixed\",\r\n                    \"top\": $header.outerHeight().toString() + \"px\"\r\n                });\r\n            }\r\n        }\r\n\r\n        function disable() {\r\n            enabled = false;\r\n            $header.css({ \"position\": \"absolute\", \"top\": \"0px\" });\r\n        }\r\n        function enable() {\r\n            enabled = true;\r\n            $header.css({ \"position\": \"fixed\", \"top\": \"0px\" });\r\n            scroll();\r\n        }\r\n\r\n        $document.ready(init);\r\n        $window.on(\"resize\", resize);\r\n        $window.on(\"scroll\", scroll);\r\n\r\n        return {\r\n            scroll: scroll,\r\n            show: show,\r\n            hide: hide,\r\n            disable: disable,\r\n            enable: enable\r\n        };\r\n    })();\r\n\r\n    function refreshRightISI() {\r\n        rightISI.scroll();\r\n        //$(\".sticky-isi\").each(function () {\r\n        //    this.stickyBox.refresh();\r\n        //});\r\n    }\r\n\r\n    return {\r\n        refreshRightISI: refreshRightISI,\r\n        staticHeader: staticHeader\r\n    };\r\n})();\r\n\r\n/**\r\n* [Basic functions]\r\n*/\r\nvar utilities  = (function() {\r\n\r\n  var breakPoint  = 1000;\r\n\r\n  function winWidth() {\r\n    return window.innerWidth;\r\n  }\r\n\r\n  function isMobile() {\r\n    if (winWidth() < breakPoint) {\r\n      return true;\r\n    }\r\n  }\r\n\r\n  function findSpecialist(zipCode) {\r\n    var zipQueryString = \"\";\r\n\r\n    if (zipCode.length === 5) {\r\n      zipQueryString = '?loc=' + zipCode;\r\n    }\r\n\r\n    document.location = \"/getting-started/find-a-specialist\" + zipQueryString;\r\n  }\r\n\r\n  return {\r\n\r\n    findSpecialist: findSpecialist,\r\n    winW: winWidth,\r\n    bp: breakPoint,\r\n    mView: isMobile,\r\n    init: function () {\r\n\r\n      /**\r\n      * [Initialize scripts based on screen width]\r\n      */\r\n      if (isMobile()) {\r\n        utilities.mobileInit();\r\n      } else {\r\n        utilities.desktopInit();\r\n      }\r\n\r\n    },\r\n    mobileInit: function() {\r\n      menu.mobileOn();\r\n      //isiJS.peekabooOn();\r\n      menu.desktopOff();\r\n    },\r\n    desktopInit: function() {\r\n      menu.mobileOff();\r\n      //isiJS.peekabooOff();\r\n      menu.desktopOn();\r\n    },\r\n    scrollTo: function(selector) {\r\n\r\n      var scrollOffset = $('.container').css('padding-top').replace(/[^-\\d\\.]/g, '');\r\n\r\n      $('html,body').animate({\r\n        scrollTop: $(selector).offset().top - scrollOffset\r\n      }, 500);\r\n    }\r\n\r\n  };\r\n\r\n})();\r\n\r\n\r\n/**\r\n * [Functions for Main Navigation]\r\n */\r\nvar menu = (function() {\r\n\r\n  var menuButton  = $('.hamburger'),\r\n      nav         = $('.nav-main'),\r\n      subnav      = $('.sub-nav'),\r\n      subTrigger  = $('.nav-main > ul > li').not('.find-a-specialist'),\r\n      menuOn;\r\n  function isVisible() {\r\n      return (nav.css(\"display\") != \"none\");\r\n  }\r\n  function hide() {\r\n      if (isVisible()) {\r\n          nav.slideUp(\"fast\", function () {\r\n              menuButton.removeClass(\"open\");\r\n          });\r\n      }\r\n  }\r\n  function show() {\r\n      if (!isVisible()) {\r\n          nav.slideDown(\"fast\", function () {\r\n              menuButton.addClass(\"open\");\r\n          });\r\n      }\r\n  }\r\n  var mobile = {\r\n      isVisible: isVisible,\r\n      show: show,\r\n      hide: hide\r\n  }\r\n  function showMenu() {\r\n      var _this = $(this);\r\n\r\n      nav.slideToggle('fast', function () {\r\n          _this.toggleClass('open');\r\n      });\r\n  }\r\n\r\n  return {\r\n\r\n      mobile: mobile,\r\n    mobileOn: function() {\r\n\r\n      if (!menuOn) {\r\n\r\n        menuButton.on('click', showMenu);\r\n\r\n        menuOn = true;\r\n\r\n      }\r\n\r\n    },\r\n    mobileOff: function() {\r\n        menuButton.removeAttr('style').off('click', showMenu);\r\n      nav.removeAttr('style');\r\n      menuOn = false;\r\n    },\r\n    desktopOn: function() {\r\n\r\n      $('.marker').each(function() {\r\n        var _this = $(this),\r\n            parentLink = _this.parents('li'),\r\n            markerPos = parentLink.position().left + (parentLink.width() / 2) - 4;\r\n\r\n            _this.css('left', markerPos);\r\n\r\n      });\r\n\r\n      subTrigger.on('mouseenter', function() {\r\n        subnav.hide();\r\n        $(this).children('.sub-nav').show(0);\r\n      });\r\n\r\n      nav.on('mouseleave', function() {\r\n        subnav.removeAttr('style');\r\n      });\r\n\r\n    },\r\n    desktopOff: function() {\r\n      subTrigger.off('mouseenter mouseleave');\r\n      subnav.removeAttr('style');\r\n    }\r\n\r\n  };\r\n\r\n})();\r\n\r\nvar tooltip = (function() {\r\n\r\n  var tip = '<div class=\"tooltip-popup\"></div>';\r\n\r\n  return {\r\n\r\n    init: function() {\r\n      $('*[data-tooltip]').each(function() {\r\n        var _this = $(this);\r\n        tooltip.createPopup(_this);\r\n      });\r\n      $(window).on('resizeEnd', function() {\r\n        tooltip.resize();\r\n      });\r\n    },\r\n    resize: function() {\r\n      $('*[data-tooltip]').each(function() {\r\n        var _this = $(this);\r\n        tooltip.placement(_this);\r\n      });\r\n    },\r\n    createPopup: function(t) {\r\n      var term        = t.text(),\r\n          defHeader   = '<strong>' + term + '</strong>',\r\n          definition  = defHeader + \" \" + t.data('tooltip'),\r\n          tip         = $('<div class=\"tooltip-popup\">' + definition + '</div>');\r\n\r\n      t.append(tip);\r\n      tooltip.placement(t);\r\n    },\r\n    placement: function(t) {\r\n      var boundry     = t.parents('.left-col'),\r\n          trigLeft    = t.offset().left,\r\n          trigRight   = t.offset().left + t.outerWidth(),\r\n          leftEdge    = boundry.offset().left,\r\n          rightEdge   = boundry.offset().left + boundry.outerWidth(),\r\n          popup       = t.children('.tooltip-popup'),\r\n          tPos        = (t.outerWidth()/2) - (popup.outerWidth() / 2),\r\n          popupLeft   = popup.offset().left,\r\n          popupRight  = popup.offset().left + popup.outerWidth();\r\n\r\n      popup.removeAttr('style').css('left', tPos);\r\n\r\n      if (popupLeft <= leftEdge) {\r\n        popup.css('left', (trigLeft - leftEdge) * -1);\r\n      } else if (popupRight > rightEdge) {\r\n        popup.css({\r\n          left: 'inherit',\r\n          right: (rightEdge - trigRight) * -1\r\n        });\r\n      }\r\n\r\n    }\r\n\r\n  };\r\n\r\n})();\r\n\r\nif ($(\"#isi-fixed\").length > 0) {\r\n    var mobileIsiDisabled = httpUtility.cookie.get(\"mobileIsiDisabled\");\r\n    if (mobileIsiDisabled !== \"true\") {\r\n        $(\"#isi-fixed\").staticBox({\r\n            activeMaxWidth: 999,\r\n            hideWhenViewable: \"#isi\"\r\n        });\r\n    }\r\n}\r\n\r\n$(\"a[href='#isi']\").each(function () {\r\n    $(this).click(function (e) {\r\n        e.preventDefault();\r\n        var box = $(\"#isi-fixed\")[0].staticBox;\r\n        box.hide();\r\n        box.disable();\r\n        evoke.jquery.scrollTo(\"#isi\", {\r\n            extraY: -10,\r\n            callback: function () {\r\n                box.enable();\r\n            }\r\n        });\r\n    });\r\n});\r\n\r\n/**\r\n * [Functions for ISI persistance]\r\n\r\nvar isiJS = (function () {\r\n\r\n    var ISI = $('#isi'),\r\n      fixedISI = $('#isi-fixed'),\r\n      inputs = $('input[type=\"text\"], input[type=\"email\"], select'),\r\n      isiHeight = 106;\r\n\r\n    return {\r\n\r\n        fieldFocus: inputs,\r\n        peekabooOn: function () {\r\n                   if (ISI.length > 0) {\r\n                     if (utilities.mView()) {\r\n\r\n                       if ($(window).scrollTop() > ISI.offset().top - $(window).height() + isiHeight) {\r\n                         fixedISI.fadeOut();\r\n                       } else {\r\n                         if (!inputs.is(':focus')) {\r\n                           fixedISI.fadeIn();\r\n                         }\r\n                       }\r\n\r\n                     }\r\n                 }\r\n        },\r\n        peekabooOff: function () {\r\n\r\n                 fixedISI.removeAttr('style');\r\n\r\n        }\r\n\r\n    };\r\n\r\n})();\r\n */\r\n\r\n/**\r\n * [Functions for FAQ]\r\n */\r\nvar FAQ = (function () {\r\n\r\n    var allTrigger = $('.faq .expandAll'),\r\n      thisTrigger = $('dt');\r\n\r\n    return {\r\n\r\n        init: function () {\r\n\r\n            allTrigger.on('click', function () {\r\n                var t = $(this);\r\n                FAQ.sectionHandler(t);\r\n            });\r\n\r\n            thisTrigger.on('click', function () {\r\n                var t = $(this);\r\n                FAQ.questionHandler(t);\r\n            });\r\n\r\n        },\r\n        sectionHandler: function (t) {\r\n          var section = t.parents('li'),\r\n          answers = section.find('dd'),\r\n          question = section.find('dt');\r\n\r\n            if (!t.hasClass('expanded')) {\r\n                evoAnalytics.trackEvent(evoAnalytics.parseAnalyticsData(t.data(\"ga-expand\")));\r\n                evoke.gtm.trackEvent(t.data(\"gtm-expand\"));\r\n                answers.slideDown('fast', function () {\r\n                    t.addClass('expanded').text('COLLAPSE ALL [-]');\r\n                    question.addClass('open');\r\n                });\r\n\r\n            } else {\r\n                evoAnalytics.trackEvent(evoAnalytics.parseAnalyticsData(t.data(\"ga-collapse\")));\r\n                evoke.gtm.trackEvent(t.data(\"gtm-collapse\"));\r\n                answers.slideUp('fast', function () {\r\n                    t.removeClass('expanded').text('EXPAND ALL [+]');\r\n                    question.removeClass('open');\r\n                    answers.removeAttr('style');\r\n                });\r\n            }\r\n\r\n        },\r\n        questionHandler: function (t) {\r\n          var answer = t.siblings('dd'),\r\n          section = t.parents('li').find('button'),\r\n          siblings = t.parents('dl').siblings().find('dt');\r\n\r\n            if (!t.hasClass('open')) {\r\n                evoAnalytics.trackEvent(evoAnalytics.parseAnalyticsData(t.data(\"ga-expand\")));\r\n                evoke.gtm.trackEvent({ data: t.data(\"gtm-expand\"), selector: t });\r\n                answer.slideDown('fast', function () {\r\n                    section.addClass('expanded').text('COLLAPSE ALL [-]');\r\n                    t.addClass('open');\r\n                });\r\n\r\n            } else {\r\n                evoAnalytics.trackEvent(evoAnalytics.parseAnalyticsData(t.data(\"ga-collapse\")));\r\n                evoke.gtm.trackEvent({ data: t.data(\"gtm-collapse\"), selector: t });\r\n                answer.slideUp('fast', function () {\r\n                    t.removeClass('open');\r\n                    answer.removeAttr('style');\r\n\r\n                    if (!siblings.hasClass('open')) {\r\n                        section.removeClass('expanded').text('EXPAND ALL [+]');\r\n                    }\r\n\r\n                });\r\n\r\n            }\r\n\r\n        }\r\n\r\n    };\r\n\r\n})();\r\n\r\n\r\n/**\r\n* [Checkbox/Radio Button Styler]\r\n*/\r\n(function () {\r\n    //taken from evoke.jquery.evokeUI\r\n    function toggleChecked($objs, checkedClass) {\r\n        $objs.each(function () {\r\n            var label = $(this);\r\n            if (label.find(\"input:checked\").length > 0) {\r\n                if (!label.hasClass(checkedClass)) {\r\n                    label.addClass(checkedClass);\r\n                }\r\n            } else {\r\n                label.removeClass(checkedClass);\r\n            }\r\n        });\r\n    }\r\n    function toggleRadioButton($obj, checkedClass) {\r\n        $(\"input[name='\" + $obj.attr(\"name\") + \"']\").each(function () {\r\n            var label = $(this).parents(\"label\").first();\r\n            if (this.checked) {\r\n                if (!label.hasClass(checkedClass)) {\r\n                    label.addClass(checkedClass);\r\n                }\r\n            } else {\r\n                label.removeClass(checkedClass);\r\n            }\r\n        });\r\n    }\r\n    function initCheckboxes($objs, checkedClass) {\r\n        $objs.each(function () {\r\n            var label = $(this);\r\n            label.on(\"click\", function () {\r\n                toggleChecked($(this), checkedClass);\r\n            });\r\n            label.find(\"input[type='checkbox']\").each(function () {\r\n                $(this).on(\"change\", function () {\r\n                    toggleChecked($(this).parents(\"label:first\"), checkedClass);\r\n                });\r\n            });\r\n            toggleChecked($(this), checkedClass);\r\n        });\r\n    }\r\n    function initRadioButtons($objs, checkedClass) {\r\n        var groups = [];\r\n        $objs.each(function () {\r\n            $(this).find(\"input[type='radio']\").each(function () {\r\n                $(this).on(\"change\", function () {\r\n                    toggleRadioButton($(this), checkedClass);\r\n                });\r\n                toggleRadioButton($(this), checkedClass);\r\n            });\r\n        });\r\n    }\r\n    $(document).ready(function() {\r\n        initRadioButtons($(\".label_check\"), \"c_on\");\r\n        initCheckboxes($(\".label_checkbox\"), \"c_on\");\r\n    });\r\n})();\r\n\r\n/*\r\nvar customUI = {\r\n    update: function () {\r\n        var _this = $(this);\r\n\r\n        if ($('#content').hasClass('ready')) {\r\n            _this.parents('ul').find(\".label_check, .label_checkbox\").removeClass(\"c_on\");\r\n        } else{\r\n            _this.parent().find(\".label_check, .label_checkbox\").removeClass(\"c_on\");\r\n        }\r\n\r\n        if (_this.find(\"input:checked\").length > 0) {\r\n            _this.addClass(\"c_on\");\r\n        }\r\n    },\r\n    init: function () {\r\n        $(\".label_check, .label_checkbox\").each(function () {\r\n            var _this = $(this);\r\n            _this.change(customUI.update);\r\n            if (_this.find(\"input:checked\").length > 0) {\r\n                _this.addClass(\"c_on\");\r\n            }\r\n        });\r\n    }\r\n};\r\n$(document).ready(customUI.init);\r\n*/\r\n\r\n/**\r\n* [Smooth Anchor Link Scroller]\r\n*/\r\n$('body').on('click', 'a[href*=#]:not([href=#],[href=#isi])', function () {\r\n  if (location.pathname.replace(/^\\//,'') == this.pathname.replace(/^\\//,'') && location.hostname == this.hostname) {\r\n    var target = $(this.hash);\r\n    target = target.length ? target : $('[name=' + this.hash.slice(1) +']');\r\n    if (target.length) {\r\n      utilities.scrollTo(target);\r\n      return false;\r\n    }\r\n  }\r\n});\r\n\r\n$(document).ready(function () {\r\n\r\n  // remove phone numbers from desktop/tablet\r\n  var $html = $(\"html\");\r\n  if ($html.hasClass(\"d_desktop\") || $html.hasClass(\"d_tablet\")) {\r\n    $(\"a[href^='tel:']\").each(function () {\r\n      this.href = \"javascript:void(0);\";\r\n    });\r\n  }\r\n\r\n  // numbers ony for ZIP code field\r\n  $('.find-zip-field').numeric();\r\n  // specialist finder - hit return\r\n  $('.find-zip-field').keyup(function (e) {\r\n    var $this = $(this);\r\n    var zipCode = $this.val();\r\n\r\n    if (zipCode.length === 5) {\r\n        if (e.which == 13) {\r\n            //evoAnalytics.trackEvent($this.parent().find('.find-zip-submit').data('analytics-event'));\r\n            //evoke.gtm.trackEvent($(this).next('.find-zip-submit').data('evo-gtm'));\r\n\r\n            $this.blur();\r\n            $this.parent().find('.find-zip-submit').click();\r\n        } else if (e.which >= 48 && e.which <= 57) {\r\n            evoAnalytics.trackEvent($(this).data('analytics-event'));\r\n            //evoke.gtm.trackEvent($(this).data('evo-gtm'));\r\n        }\r\n    }\r\n  });\r\n\r\n  // specialist finder - on click\r\n  $('body').on('click', '.find-zip-submit', function(e) {\r\n\r\n    e.preventDefault();\r\n\r\n    var zipCode = $(this).prev('.find-zip-field').val();\r\n\r\n    utilities.findSpecialist(zipCode);\r\n\r\n  });\r\n\r\n  // specialist finder - on click\r\n  // commented out because tracking for this is handled elsewhere\r\n  // $('.find-zip-field').on('focus', function(e) {\r\n\r\n  //   evoke.gtm.trackEvent($(this).data('evo-gtm'), {action: \"Form Clicked\"});\r\n\r\n  // });\r\n\r\n  // specialist finder top nav hover\r\n  $('.nav-main .find-a-specialist').hover(\r\n    function() {\r\n      $(this).addClass('show-zip');\r\n      evoAnalytics.trackEvent('Global Header','Hover','Click to find a specialist');\r\n    }, function() {\r\n      if (!$(this).find('.find-zip-input input').is(':focus')) {\r\n        $(this).removeClass('show-zip');\r\n      }\r\n    }\r\n  );\r\n\r\n  $('.find-a-specialist a').on('click', function(e) {\r\n    e.preventDefault();\r\n\r\n    var $zipLink = $('.find-zip-field');\r\n\r\n    if ($zipLink.val().length === 5) {\r\n      evoAnalytics.trackEvent($(this).data('analytics-event'));\r\n      utilities.findSpecialist($zipLink.val());\r\n    }\r\n\r\n  });\r\n\r\n  // read more/less\r\n  $('.read-more-trigger').on('click', function(e) {\r\n\r\n    e.preventDefault();\r\n\r\n    if (!$(this).hasClass('open')) {\r\n      $(this).addClass('open').text('Read Less').parent().next('.read-more-target').slideDown(function() {\r\n        if ($('#about-three .about-genotype').length > 0) {\r\n          $.scrollIntoView('#about-three .about-genotype');\r\n        }\r\n        if ($('#treatment-three .treatment-consider').length > 0) {\r\n          $.scrollIntoView('#treatment-three .treatment-consider');\r\n        }\r\n      });\r\n    }\r\n    else {\r\n      $(this).removeClass('open').text('Read More').parent().next('.read-more-target').slideUp();\r\n    }\r\n  });\r\n\r\n  $(\".modal-external\").find(\"a\").click(function (e) {\r\n      var $target = $(e.target);\r\n      if (!($target.hasClass(\"ok\"))) {\r\n          e.preventDefault();\r\n      }\r\n      $.modalDialog.hide();\r\n  });\r\n  $(\"a.external\").each(function () {\r\n      function modalRedraw() {\r\n          $.modalDialog.redraw();\r\n      }\r\n      $(this).click(function (e) {\r\n          var $this = $(this);\r\n          e.preventDefault();\r\n          var $modal = $(\".modal-external\");\r\n\r\n          var $ok = $modal.find(\".ok\");\r\n          $ok.attr(\"href\", $this.attr(\"href\"));\r\n          $ok.attr(\"data-evo-gtm\", $this.data(\"modal-ok\"));\r\n          evoke.gtm.rebind($ok);\r\n\r\n          var $cancel = $modal.find(\".cancel\");\r\n          $cancel.attr(\"data-evo-gtm\", $this.data(\"modal-cancel\"));\r\n          evoke.gtm.rebind($cancel);\r\n\r\n          var dataClose = $this.data(\"modal-close\");\r\n          var $close = $modal.find(\".close\");\r\n          $close.attr(\"data-evo-gtm\", dataClose);\r\n          evoke.gtm.rebind($close);\r\n\r\n          $.modalDialog.show($modal, null, {\r\n              callback: function () {\r\n                  evoke.$window.on(\"resize\", modalRedraw);\r\n              },\r\n              onHide: function () {\r\n                  evoke.$window.off(\"resize\", modalRedraw);\r\n              },\r\n              onGrayClick: function () {\r\n                  evoke.gtm.trackEvent(dataClose);\r\n              }\r\n          });\r\n      });\r\n  });\r\n\r\n});\r\n\r\n//isiJS.fieldFocus.on('focus', function() {\r\n// isiJS.peekabooOff();\r\n//});\r\n\r\n//isiJS.fieldFocus.on('blur', function() {\r\n// isiJS.peekabooOn();\r\n//});\r\n\r\nutilities.init();\r\nFAQ.init();\r\ntooltip.init();\r\n\r\n\r\n/**\r\n* Returns the window width, including the scrollbar width, for media query matching. $(window).width() does not include the scrollbar width.\r\n*/\r\nfunction windowWidth() {\r\n    return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n}\r\n\r\nfunction staticHeaderHeight() {\r\n    var height = 0;\r\n    if (windowWidth() >= 1000) {\r\n        var $header = $(\"header\");\r\n        var $subnav = $header.find(\"nav > ul > li.active > .sub-nav\");\r\n        height = $header.height() + ($subnav.length == 1 ? $subnav.height() : 0);\r\n    }\r\n    return height;\r\n}\r\n\r\n\r\n\r\nfunction getIndexFromClass(selector, className) {\r\n    var exp = className + \"\\\\d\";\r\n    var regex = new RegExp(exp, \"i\");\r\n    var replace = new RegExp(className, \"i\");\r\n    var $obj = $(selector);\r\n    var index = \"\";\r\n    if ($obj.length > 0) {\r\n        try {\r\n            index = parseInt(regex.exec($obj.attr(\"class\"))[0].replace(replace, \"\"), 10);\r\n        } catch (e) { }\r\n    }\r\n    return index;\r\n}\r\n\r\n\r\n(function () {\r\n    var $body = $(document.body);\r\n    if ($body.hasClass(\"support-path\")) {\r\n        evoAnalytics.category = \"HARVONI Support Path Video\";\r\n    } else if ($body.hasClass(\"next-steps\")) {\r\n        evoAnalytics.category = \"Your Next Steps Patient Statements\";\r\n    }\r\n})();\r\n\r\n// var contentVideoPlayer = (function () {\r\n//     var videoPlayerID = \"contentVideoPlayer\";\r\n//     var vimeoPlayerID = \"contentVimeoPlayer\";\r\n//     var videoID = \"\";\r\n//     var embedded = false;\r\n//     var currentSlide = 0;\r\n//     var slides = [];\r\n//     var dots = [];\r\n//     var queuePoints = [];\r\n//     var queueLabels = [];\r\n//     var autoSlides = true;\r\n//     var autoSlidesTimeout = 0;\r\n//     var autoSlideShow = false;\r\n//     var isSeeking = false;\r\n//     var isSliding = false;\r\n//     var wasPaused = false;\r\n//     var initialized = false;\r\n//     var shouldEmbed = true;\r\n//     var autoplay = httpUtility.queryString(\"autoplay\") == \"true\";\r\n\r\n//     var events = {\r\n//         onFirstPlay: function () { },\r\n//         onPlay: function () { },\r\n//         onPlayProgress: function (seconds) { },\r\n//         onPause: function () { },\r\n//         onFullscreen: function () { },\r\n//         onSeek: function () { },\r\n//         onFinish: function () { },\r\n//         onClose: function () { },\r\n//         onSlideNavClick: function () { },\r\n//         onSlideNavClickLeft: function () { },\r\n//         onSlideNavClickRight: function () { },\r\n//         onSlideNavVideo: function () { },\r\n//         onSlideNavVideoAuto: function () { }\r\n//     };\r\n\r\n//     var tracking = {\r\n//         firstPlay: { action: \"Video Event\", label: \"##videoName## Play\" },\r\n//         play: { action: \"Video Event\", label: \"##videoName## Play After Stop/Pause\" },\r\n//         pause: { action: \"Video Event\", label: \"##videoName## Stop/Pause\" },\r\n//         fullscreen: { action: \"Video Event\", label: \"##videoName## Video Expand\" },\r\n//         seek: { action: \"Video Event\", label: \"##videoName## Seek\" },\r\n//         finish: { action: \"Video Event\", label: \"##videoName## Finish\" },\r\n//         close: { action: \"Close\", label: \"Exit Video\" },\r\n//         slideNavClick: { action: \"Click\", label: \"click to ##label##\" },\r\n//         slideNavClickLeft: { action: \"Click\", label: \"left to ##label##\" },\r\n//         slideNavClickRight: { action: \"Click\", label: \"right to ##label##\" },\r\n//         slideNavVideo: { action: \"Video Event\", label: \"##label##\" },\r\n//         slideNavVideoAuto: { action: \"Auto Event\", label: \"auto back to ##label##\" }\r\n//     }\r\n//     function setTrackingDataVideoName(videoName) {\r\n//         for (var data in tracking) {\r\n//             if (typeof (tracking[data].label) != \"undefined\" && tracking[data].label.indexOf(\"##videoName##\") != -1) {\r\n//                 tracking[data].label = tracking[data].label.replace(\"##videoName##\", videoName).trim();\r\n//             }\r\n//         }\r\n//     }\r\n//     function getTrackingData(eventData, labelData) {\r\n//         var data = {\r\n//             action: eventData.action,\r\n//             label: eventData.label\r\n//         };\r\n//         if (labelData != undefined) {\r\n//             if (typeof (labelData) == \"string\") {\r\n//                 data.label = labelData;\r\n//             } else {\r\n//                 for (var token in labelData) {\r\n//                     data.label = data.label.replace(\"##\" + token + \"##\", labelData[token]);\r\n//                 }\r\n//             }\r\n//         }\r\n//         return data;\r\n//     }\r\n\r\n//     var $root = null;\r\n//     var $video = null;\r\n//     var $iframe = null;\r\n//     var $slides = null;\r\n//     function setAutoSlides(flag) {\r\n//         window.clearTimeout(autoSlidesTimeout);\r\n//         autoSlides = flag;\r\n//         if (!autoSlides) {\r\n//             autoSlidesTimeout = window.setTimeout(function () {\r\n//                 autoSlideShow = true;\r\n//                 autoSlides = true;\r\n//             }, 10000);\r\n//         }\r\n//     }\r\n//     function showSlide(num, from) {\r\n//         if (!isSeeking && !isSliding) {\r\n//             if (num != currentSlide && num >= 0 && num < slides.length) {\r\n//                 isSliding = true;\r\n//                 var width = $slides.width();\r\n//                 if (num > currentSlide) {\r\n//                     slides[num].css({\r\n//                         left: width,\r\n//                         display: \"block\"\r\n//                     });\r\n//                     slides[currentSlide].animate({\r\n//                         left: -(width)\r\n//                     }, { complete: function () { $(this).hide(); } });\r\n//                     slides[num].animate({\r\n//                         left: 0\r\n//                     }, {\r\n//                         complete: function () {\r\n//                             dots[currentSlide].removeClass(\"active\");\r\n//                             dots[num].addClass(\"active\");\r\n//                             currentSlide = num;\r\n//                             isSliding = false;\r\n//                         }\r\n//                     });\r\n//                 } else {\r\n//                     slides[num].css({\r\n//                         left: -(width),\r\n//                         display: \"block\"\r\n//                     });\r\n//                     slides[currentSlide].animate({\r\n//                         left: width\r\n//                     }, { complete: function () { $(this).hide(); } });\r\n//                     slides[num].animate({\r\n//                         left: 0\r\n//                     }, {\r\n//                         complete: function () {\r\n//                             dots[currentSlide].removeClass(\"active\");\r\n//                             dots[num].addClass(\"active\");\r\n//                             currentSlide = num;\r\n//                             isSliding = false;\r\n//                         }\r\n//                     });\r\n//                 }\r\n\r\n//                 var eventFrom = \"video\";\r\n//                 if (from != undefined && from != null) {\r\n//                     eventFrom = from;\r\n//                 }\r\n\r\n//                 switch (eventFrom.toLowerCase()) {\r\n//                     case \"click\":\r\n//                         evoAnalytics.trackEvent(getTrackingData(tracking.slideNavClick, { label: queueLabels[num] }));\r\n//                         events.onSlideNavClick();\r\n//                         break;\r\n//                     case \"clickleft\":\r\n//                         evoAnalytics.trackEvent(getTrackingData(tracking.slideNavClickLeft, { label: queueLabels[num] }));\r\n//                         events.onSlideNavClickLeft();\r\n//                         break;\r\n//                     case \"clickright\":\r\n//                         evoAnalytics.trackEvent(getTrackingData(tracking.slideNavClickRight, { label: queueLabels[num] }));\r\n//                         events.onSlideNavClickRight();\r\n//                         break;\r\n//                     case \"auto\":\r\n//                         autoSlideShow = false;\r\n//                         evoAnalytics.trackEvent(getTrackingData(tracking.slideNavVideoAuto, { label: queueLabels[num] }));\r\n//                         events.onSlideNavVideoAuto();\r\n//                         break;\r\n//                     case \"video\":\r\n//                     default:\r\n//                         evoAnalytics.trackEvent(getTrackingData(tracking.slideNavVideo, { label: queueLabels[num] })); //[\"Video Event\", queueLabels[num]]);\r\n//                         events.onSlideNavVideo();\r\n//                         break;\r\n//                 }\r\n\r\n//                 //slides[currentSlide].hide();\r\n//                 //slides[num].show();\r\n//             }\r\n//         }\r\n//     }\r\n//     function embed(autoPlay) {\r\n//         if (!embedded) {\r\n//             evoke.vimeo.embed({\r\n//                 target: \"#\" + videoPlayerID + \" > .video\",\r\n//                 id: vimeoPlayerID,\r\n//                 video: videoID,\r\n//                 events: {\r\n//                     play: onPlay,\r\n//                     playProgress: onPlayProgress,\r\n//                     pause: onPause,\r\n//                     seek: onSeek,\r\n//                     finish: onFinish,\r\n//                     onFullscreenChange: function (flag) {\r\n//                         if (flag === true) {\r\n//                             evoAnalytics.trackEvent(tracking.fullscreen);\r\n//                             events.onFullscreen();\r\n//                         }\r\n//                     }\r\n//                 },\r\n//                 autoPlay: autoPlay || false\r\n//             });\r\n//             embedded = true;\r\n//         }\r\n//     }\r\n//     function play() {\r\n//         if (!embedded) {\r\n//             embed(true);\r\n//         } else {\r\n//             evoke.vimeo.play(vimeoPlayerID);\r\n//         }\r\n//     }\r\n//     function pause() {\r\n//         evoke.vimeo.pause(vimeoPlayerID);\r\n//     }\r\n//     function onPlay() {\r\n//         if (wasPaused) {\r\n//             evoAnalytics.trackEvent(tracking.play);\r\n//             events.onPlay();\r\n//         } else {\r\n//             evoAnalytics.trackEvent(tracking.firstPlay);\r\n//             events.onFirstPlay();\r\n//         }\r\n//     }\r\n//     function onPlayProgress(data, id) {\r\n//         isSeeking = false;\r\n//         var index = -1;\r\n//         if (autoSlides) {\r\n//             var seconds = parseInt(data.seconds, 10);\r\n//             for (var i = 0; i < queuePoints.length; i++) {\r\n//                 if (i == queuePoints.length - 1) {\r\n//                     index = i;\r\n//                     break;\r\n//                 } else {\r\n//                     if (seconds < queuePoints[i + 1]) {\r\n//                         index = i;\r\n//                         break;\r\n//                     }\r\n//                 }\r\n//             }\r\n//         }\r\n//         if (index > -1) {\r\n//             var from = autoSlideShow ? \"auto\" : null;\r\n//             showSlide(index, from);\r\n//         }\r\n//         events.onPlayProgress(data);\r\n//     }\r\n//     function onPause() {\r\n//         evoAnalytics.trackEvent(tracking.pause);\r\n//         events.onPause();\r\n//         wasPaused = true;\r\n//     }\r\n//     function onSeek(data, id) {\r\n//         if (!isSeeking) {\r\n//             evoAnalytics.trackEvent(tracking.seek);\r\n//             events.onSeek();\r\n//         }\r\n//         isSeeking = true;\r\n//     }\r\n//     function onFinish() {\r\n//         evoAnalytics.trackEvent(tracking.finish);\r\n//         events.onFinish();\r\n//     }\r\n//     function resize() {\r\n//         var isModal = false;\r\n//         switch ($root.css(\"position\")) {\r\n//             case \"fixed\":\r\n//             case \"absolute\":\r\n//                 isModal = true;\r\n//                 break;\r\n//             default:\r\n//                 isModal = $root.css(\"display\") == \"none\";\r\n//                 break;\r\n//         }\r\n//         var width = 0;\r\n//         if (isModal) {\r\n//             var winWidth = windowWidth();\r\n//             if (winWidth >= 1000) {\r\n//                 width = 642;\r\n//             } else if (winWidth < 767) {\r\n//                 width = winWidth - 20;\r\n//                 if (width > 480) {\r\n//                     width = 480;\r\n//                 }\r\n//             } else {\r\n//                 width = 600;\r\n//             }\r\n//         } else {\r\n//             width = $video.width();\r\n//         }\r\n//         var height = Math.floor(width * 0.5625); //16x9\r\n//         $video.css({ height: height });\r\n//         $iframe.css({ height: height });\r\n//         if (isModal) {\r\n//             $root.css({ width: width });\r\n//             $.modalDialog.refresh(true);\r\n//         }\r\n//     }\r\n\r\n//     function documentReady() {\r\n//         if (initialized) {\r\n//             $root = $(\"#\" + videoPlayerID);\r\n//             if ($root.length == 1) {\r\n//                 var $videoID = $root.find(\".videoID\");\r\n//                 if ($videoID.length == 1) {\r\n//                     videoID = $videoID.val();\r\n//                 }\r\n//                 var $videoName = $root.find(\".videoName\");\r\n//                 if ($videoName.length == 1) {\r\n//                     setTrackingDataVideoName($videoName.val());\r\n//                 }\r\n//                 $(window).resize(resize);\r\n//                 $video = $root.find(\".video:first\");\r\n//                 $iframe = $video.find(\"iframe:first\");\r\n//                 if ($root.css(\"display\") != \"none\") {\r\n//                     resize();\r\n//                 }\r\n//                 $slides = $root.find(\".slides\");\r\n//                 $slides.find(\".slide\").each(function () {\r\n//                     var $this = $(this);\r\n//                     var index = getIndexFromClass(this, \"slide\") - 1;\r\n//                     slides[index] = $this;\r\n//                     queuePoints[index] = parseInt($this.data(\"queue-point\"), 10);\r\n//                     queueLabels[index] = $this.data(\"queue-label\");\r\n//                 });\r\n//                 $root.find(\".dot\").each(function () {\r\n//                     dots[getIndexFromClass(this, \"dot\") - 1] = $(this);\r\n//                 });\r\n//                 if (shouldEmbed) {\r\n//                     embed(autoplay);\r\n//                 }\r\n//             }\r\n//         } else {\r\n//             window.setTimeout(documentReady, 100);\r\n//         }\r\n//     }\r\n//     $(document).ready(function () {\r\n//         documentReady();\r\n//     });\r\n//     return {\r\n//         init: function (data) {\r\n//             if (data != undefined) {\r\n//                 if (typeof (data.playerID) != \"undefined\") {\r\n//                     videoPlayerID = data.playerID;\r\n//                 } if (typeof (data.vimeoPlayerID) != \"undefined\") {\r\n//                     vimeoPlayerID = data.vimeoPlayerID;\r\n//                 }\r\n//                 if (typeof (data.videoID) != \"undefined\") {\r\n//                     videoID = data.videoID;\r\n//                 }\r\n//                 if (typeof (data.videoName) != \"undefined\") {\r\n//                     setTrackingDataVideoName(data.videoName);\r\n//                 }\r\n//                 if (typeof (data.tracking) != \"undefined\") {\r\n//                     $.extend(true, tracking, data.tracking);\r\n//                 }\r\n//                 if (typeof (data.events) != \"undefined\") {\r\n//                     $.extend(true, events, data.events);\r\n//                 }\r\n//                 if (typeof (data.embed) != \"undefined\") {\r\n//                     shouldEmbed = data.embed;\r\n//                 }\r\n//                 if (typeof (data.autoplay) != \"undefined\") {\r\n//                     autoplay = data.autoplay;\r\n//                 }\r\n//             }\r\n//             initialized = true;\r\n//         },\r\n//         videoID: function (id) {\r\n//             videoID = id;\r\n//         },\r\n//         showSlide: function (num) {\r\n//             setAutoSlides(false);\r\n//             showSlide(num - 1, \"click\");\r\n//         },\r\n//         nextSlide: function () {\r\n//             setAutoSlides(false);\r\n//             showSlide(currentSlide + 1, \"clickright\");\r\n//         },\r\n//         prevSlide: function () {\r\n//             setAutoSlides(false);\r\n//             showSlide(currentSlide - 1, \"clickleft\");\r\n//         },\r\n//         show: function () {\r\n//             $.modalDialog.show(\"#\" + videoPlayerID, document.forms[0], {\r\n//                 callback: function () {\r\n//                     resize();\r\n//                     play();\r\n//                 },\r\n//                 onHide: function () {\r\n//                     pause();\r\n//                     evoAnalytics.trackEvent(tracking.close);\r\n//                     events.onClose();\r\n//                 }\r\n//             });\r\n//         },\r\n//         play: function () {\r\n//             play();\r\n//         },\r\n//         pause: function () {\r\n//             pause();\r\n//         }\r\n//     };\r\n// })();\r\n\r\n\r\n// var spVideo = (function () {\r\n//     var args = {\r\n//         playerID: \"spVideo\",\r\n//         vimeoPlayerID: \"spVideoPlayer\",\r\n//         events: {\r\n//             onFirstPlay: function () {\r\n//                 //liveRamp.track(\"play_supportpath\");\r\n//             },\r\n//             onPlay: function () {\r\n//                 //liveRamp.track(\"play_supportpath\");\r\n//             }\r\n//         }\r\n//     };\r\n//     return {\r\n//         init: function () {\r\n//             contentVideoPlayer.init(args);\r\n//         },\r\n//         initModal: function () {\r\n//             args.embed = false;\r\n//             contentVideoPlayer.init(args);\r\n//         },\r\n//         show: function () {\r\n//             contentVideoPlayer.show();\r\n//         },\r\n//         prevSlide: function () {\r\n//             contentVideoPlayer.prevSlide();\r\n//         },\r\n//         showSlide: function (num) {\r\n//             contentVideoPlayer.showSlide(num);\r\n//         },\r\n//         nextSlide: function () {\r\n//             contentVideoPlayer.nextSlide();\r\n//         }\r\n//     }\r\n// })();\r\n\r\nvar tabs={\r\n\r\n    init: function(element){\r\n\r\n    },\r\n    open_tab_content:function(){\r\n\r\n    }\r\n};\r\n$('a.tab-button').on('click',function(){\r\n    var _this = $(this),\r\n        _thisID = _this.attr('id')\r\n    data_tab = _this.attr('data-tab');\r\n\r\n    var tabButton1 = $('a#tab-button1'), tabButton2 = $('a#tab-button2'), tabButton3 = $('a#tab-button3'),\r\n        tab1 = $('div#tab1'), tab2 = $('div#tab2'), tab3 = $('div#tab3');\r\n    var tabTop1 = $('div#tab-top1'), tabTop2 = $('div#tab-top2'), tabTop3 = $('div#tab-top3');\r\n    switch(_thisID){\r\n        case 'tab-button1':\r\n            tabButton1.addClass('active').removeClass('inactive');\r\n            tab1.addClass('active').removeClass('inactive');\r\n            tabButton2.addClass('inactive').removeClass('active');\r\n            tab2.addClass('inactive').removeClass('active');\r\n            tabButton3.addClass('inactive').removeClass('active');\r\n            tab3.addClass('inactive').removeClass('active');\r\n            tabTop1.addClass('active');\r\n            tabTop2.removeClass('active');\r\n            tabTop3.removeClass('active');\r\n            break;\r\n        case 'tab-button2':\r\n            tabButton2.addClass('active').removeClass('inactive');\r\n            tab2.addClass('active').removeClass('inactive');\r\n            tabButton1.addClass('inactive').removeClass('active');\r\n            tab1.addClass('inactive').removeClass('active');\r\n            tabButton3.addClass('inactive').removeClass('active');\r\n            tab3.addClass('inactive').removeClass('active');\r\n            tabTop1.removeClass('active');\r\n            tabTop2.addClass('active');\r\n            tabTop3.removeClass('active');\r\n            break;\r\n        case 'tab-button3':\r\n            tabButton3.addClass('active').removeClass('inactive');\r\n            tab3.addClass('active').removeClass('inactive');\r\n            tabButton1.addClass('inactive').removeClass('active');\r\n            tab1.addClass('inactive').removeClass('active');\r\n            tabButton2.addClass('inactive').removeClass('active');\r\n            tab2.addClass('inactive').removeClass('active');\r\n            tabTop1.removeClass('active');\r\n            tabTop2.removeClass('active');\r\n            tabTop3.addClass('active');\r\n            break;\r\n    }\r\n\r\n});\r\n\r\n\r\n\r\nif (typeof (Date.toStringFormat) == \"undefined\") {\r\n    Date.prototype.toStringFormat = function (formatString, makeUTC) {\r\n        function addLeadingZero(val) {\r\n            return val < 10 ? \"0\" + val.toString() : val.toString();\r\n        }\r\n        if (formatString == undefined || formatString == null || formatString.trim() == \"\") {\r\n            return this.toString();\r\n        } else {\r\n            var rtnVal = formatString;\r\n            var utc = typeof(makeUTC) == \"boolean\" ? makeUTC : false;\r\n            if (formatString.indexOf(\"yyyy\") != -1) {\r\n                rtnVal = rtnVal.replace(\"yyyy\", utc ? this.getFullYear() : this.getFullYear());\r\n            }\r\n            if (formatString.indexOf(\"MM\") != -1) {\r\n                rtnVal = rtnVal.replace(\"MM\", addLeadingZero((utc ? this.getUTCMonth() : this.getMonth()) + 1));\r\n            }\r\n            if (formatString.indexOf(\"dd\") != -1) {\r\n                rtnVal = rtnVal.replace(\"dd\", addLeadingZero(utc ? this.getUTCDate() : this.getDate()));\r\n            }\r\n            if (formatString.indexOf(\"HH\") != -1) {\r\n                rtnVal = rtnVal.replace(\"HH\", addLeadingZero(utc ? this.getUTCHours() : this.getHours()));\r\n            }\r\n            if (formatString.indexOf(\"mm\") != -1) {\r\n                rtnVal = rtnVal.replace(\"mm\", addLeadingZero(utc ? this.getUTCMinutes() : this.getMinutes()));\r\n            }\r\n            if (formatString.indexOf(\"ss\") != -1) {\r\n                rtnVal = rtnVal.replace(\"ss\", addLeadingZero(utc ? this.getUTCSeconds() : this.getSeconds()));\r\n            }\r\n            return rtnVal;\r\n        }\r\n    }\r\n}\r\nif (typeof (Date.toUTCStringFormat) == \"undefined\") {\r\n    Date.prototype.toUTCStringFormat = function (formatString) {\r\n        return this.toStringFormat(formatString, true);\r\n    }\r\n}\r\n//var siteAnalytics = (function () {\r\n(function () {\r\n    var $window = $(window);\r\n    var $footer = $(\"footer\");\r\n    var $isi = $(\"#isi\");\r\n    function trackScrollBottom(category, action, label) {\r\n        $window.scroll(function () {\r\n            var scrollTracked = $window.data(\"scrollTrackedBottom\");\r\n            if (scrollTracked !== true) {\r\n                var winHeight = parseInt($window.height(), 10);\r\n                var scrollTop = parseInt($window.scrollTop(), 10);\r\n                if ($isi.length == 0 || $isi.css(\"display\") == \"none\") {\r\n                    var footerTop = parseInt($footer.offset().top, 10);\r\n                    if (winHeight + scrollTop >= footerTop) {\r\n                        evoAnalytics.trackOnLoad([evoAnalytics.category, \"Scroll\", \"Scroll down to view bottom of page\"]);\r\n                        $window.data(\"scrollTrackedBottom\", true);\r\n                    }\r\n                } else {\r\n                    var isiTop = parseInt($isi.offset().top, 10);\r\n                    if (winHeight + scrollTop >= isiTop) {\r\n                        evoAnalytics.trackOnLoad([evoAnalytics.category, \"Scroll\", \"Scroll down to view bottom of page\"]);\r\n                        $window.data(\"scrollTrackedBottom\", true);\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    }\r\n    function trackModules() {\r\n        var $sections = [],\r\n            $sectionsToUse;\r\n\r\n        if ($('body').hasClass('harvoni-wall')) {\r\n          $sectionsToUse = $('main > .foreground > section');\r\n        }\r\n        else {\r\n          $sectionsToUse = $('main > section');\r\n        }\r\n\r\n        $sectionsToUse.each(function () {\r\n            $sections.push($(this));\r\n        });\r\n\r\n        if ($sections.length > 1) {\r\n          $window.scroll(function () {\r\n            var winHeight = parseInt($window.height(), 10);\r\n            var scrollTop = parseInt($window.scrollTop(), 10);\r\n            var modulesY = [];\r\n            var $patientDir = $('#wall-two .patient-directory');\r\n\r\n            for (var i = 1; i < $sections.length; i++) {\r\n              if ($sections[i].data(\"scrollTracked\") == undefined && (winHeight + scrollTop >= parseInt($sections[i].offset().top, 10) + Math.floor(parseInt($sections[i].height(), 10) / 3))) {\r\n                  evoAnalytics.trackOnLoad([evoAnalytics.category, \"Scroll\", (\"Module \" + (i+1))]);\r\n                  $sections[i].data(\"scrollTracked\", true);\r\n                  break;\r\n              }\r\n            }\r\n\r\n            // for \"Choose A Story Below\" on RPS\r\n            if ($patientDir.length > 0 && $patientDir.data(\"scrollTracked\") == undefined && (winHeight + scrollTop >= parseInt($patientDir.offset().top, 10) + Math.floor(parseInt($patientDir.height(), 10) / 3))) {\r\n                evoAnalytics.trackEvent($patientDir.data('analytics-scrollintoview'));\r\n                $patientDir.data(\"scrollTracked\", true);\r\n            }\r\n\r\n          });\r\n        }\r\n    }\r\n    $(document).ready(function () {\r\n        trackModules();\r\n        trackScrollBottom();\r\n    });\r\n//    return {\r\n//        trackScrollBottom: function () {\r\n//            var category = evoAnalytics.category;\r\n//            var action = null;\r\n//            var label = null;\r\n//            if (arguments.length >= 1) {\r\n//                if (arguments.length >= 2) {\r\n//                    if (arguments.length >= 3) {\r\n//                        category = arguments[0];\r\n//                        action = arguments[1];\r\n//                        label = arguments[2];\r\n//                    } else {\r\n//                        action = arguments[0];\r\n//                        label = arguments[1];\r\n//                    }\r\n//                } else {\r\n//                    action = arguments[0];\r\n//                }\r\n//            }\r\n//            trackScrollBottom(category, action, label);\r\n//        }\r\n//    }\r\n})();\r\nvar liveRamp = (function () {\r\n    /*var events = {\r\n        dr_discussion_guide_download: \"keyAct1\",\r\n        find_a_doctor: \"keyAct2\",\r\n        rm_opt_in: \"keyAct3\",\r\n        download_coupon: \"keyAct4\",\r\n        play_commercial: \"keyAct5\",\r\n        play_supportpath: \"keyAct6\",\r\n        play_carol: \"keyAct7\"\r\n    }\r\n    var defaultData = {};\r\n    var serverLoadDate = new Date();\r\n    var clientLoadDate = new Date();\r\n    function getCurrentTimestamp() {\r\n        return new Date(new Date().getTime() - clientLoadDate.getTime() + serverLoadDate.getTime()).toUTCStringFormat(\"yyyyMMddHHmmss\");\r\n    }\r\n    function serializeData(data) {\r\n        var arr = [];\r\n        for (var key in data) {\r\n            switch (key) {\r\n                case \"event\":\r\n                    arr.push(data[key] + \"=1\");\r\n                    break;\r\n                default:\r\n                    arr.push(key + \"=\" + data[key]);\r\n                    break;\r\n            }\r\n        }\r\n        return encodeURIComponent(arr.join(\",\"));\r\n    }\r\n    function track(args) {\r\n        var data = defaultData;\r\n        if (args != undefined) {\r\n            $.extend(data, args);\r\n        }\r\n        document.getElementById(\"ifLiveRamp\").src = (location.protocol + \"//di.rlcdn.com/396996.html?pdata=\" + serializeData(data));\r\n    }\r\n    $(document).ready(function () {\r\n        $(\"*[data-liveramp-event]\").each(function () {\r\n            var $this = $(this);\r\n            var keyVal = $this.data(\"liveramp-event\");\r\n            if (keyVal != undefined) {\r\n                var key = null;\r\n                var val = null;\r\n                var args = {};\r\n                if (keyVal.indexOf(\"=\") != -1) {\r\n                    key = keyVal.substring(0, keyVal.indexOf(\"=\"));\r\n                    val = keyVal.substring(keyVal.indexOf(\"=\") + 1);\r\n                    args[key] = val;\r\n                } else {\r\n                    args.event = keyVal;\r\n                }\r\n                $this.click(function () {\r\n                    liveRamp.track(args);\r\n                });\r\n            }\r\n        });\r\n    });*/\r\n    return {\r\n        init: function (args) {\r\n            /*if (args != undefined) {\r\n                if (typeof (args.data) != \"undefined\") {\r\n                    defaultData = args.data;\r\n                }\r\n                if (typeof (args.serverDate) != \"undefined\") {\r\n                    serverLoadDate = args.serverDate;\r\n                }\r\n            }*/\r\n        },\r\n        track: function (args) {\r\n            /*var opts = {\r\n                timestamp: getCurrentTimestamp()\r\n            }\r\n            if (args != undefined) {\r\n                if (typeof (args) == \"string\") {\r\n                    var key = null;\r\n                    var val = null;\r\n                    if (args.indexOf(\"=\") != -1) {\r\n                        key = args.substring(0, args.indexOf(\"=\"));\r\n                        val = args.substring(args.indexOf(\"=\") + 1);\r\n                        opts[key] = val;\r\n                    } else {\r\n                        var nonAlphaNumeric = /[^a-z0-9]/gi;\r\n                        var e = events[args.toLowerCase().replace(nonAlphaNumeric, \"_\")];\r\n                        if (e != undefined) {\r\n                            opts.event = e;\r\n                        } else {\r\n                            opts.event = args;\r\n                        }\r\n                    }\r\n                } else {\r\n                    if (typeof (args.event) != \"undefined\") {\r\n                        var nonAlphaNumeric = /[^a-z0-9]/gi;\r\n                        var e = events[args.event.toLowerCase().replace(nonAlphaNumeric, \"_\")];\r\n                        if (e != undefined) {\r\n                            opts.event = e;\r\n                        } else {\r\n                            opts.event = args.event;\r\n                        }\r\n                    } else {\r\n                        $.extend(opts, args);\r\n                    }\r\n                }\r\n            }\r\n            track(opts);\r\n            */\r\n        }\r\n    };\r\n})();\r\n\r\n// $(document).ready(function() {\r\n//   if($('body').hasClass('harvoni-wall'))\r\n//     wall.init();\r\n// })\r\n\r\n/*** CONTENT TABS ***/\r\n$(document).ready(function () {\r\n    $(\".tab-container\").each(function () {\r\n        var $container = $(this);\r\n        var $tabs = $container.find(\".tabs\");\r\n        var $contents = $container.find(\".tab-contents\");\r\n        $tabs.find(\".tab\").each(function (i) {\r\n            $(this).find(\"a\").each(function () {\r\n                $(this).click(function (e) {\r\n                    e.preventDefault();\r\n                    $tabs.find(\".active\").removeClass(\"active\");\r\n                    $tabs.find(\".tab\" + (i + 1)).addClass(\"active\");\r\n                    $contents.find(\".active\").removeClass(\"active\");\r\n                    $contents.find(\".tab\" + (i + 1)).addClass(\"active\");\r\n                });\r\n            });\r\n        });\r\n    });\r\n});","/* These functions require the jquery.formrestrict.js functions to work!\n *\n * These functions can be used to replace the functionality of the jQuery\n * AlphaNumeric plugin. The usage of this plugin is almost identical to that of\n * the AlphaNumeric plugin.\n */\n\n(function ($) {\n    jQuery.fn.alphanumeric = function(r) {\n        alphanumericHelper(this, r, true, true, false);\n    };\n    jQuery.fn.numeric = function(r) {\n        alphanumericHelper(this, r, false, true, false);\n    };\n    jQuery.fn.alpha = function(r) {\n        alphanumericHelper(this, r, true, false, false);\n    };\n    jQuery.fn.alphanumericSpaces = function(r) {\n        alphanumericHelper(this, r, true, true, true);\n    };\n    jQuery.fn.numericSpaces = function(r) {\n        alphanumericHelper(this, r, false, true, true);\n    };\n    jQuery.fn.alphaSpaces = function(r) {\n        alphanumericHelper(this, r, true, false, true);\n    };\n    var alphanumericHelper = function(obj, restraints, alpha, numeric, spaces) {\n        var regex = \"\";\n        if (spaces)\n            regex += \" \";\n        if (numeric)\n            regex += \"0-9\";\n        if (alpha) {\n            if (restraints == undefined || !restraints.allcaps)\n                regex += \"a-z\";\n            if (restraints == undefined || !restraints.nocaps)\n                regex += \"A-Z\";\n        }\n        if (restraints != undefined && restraints.allow != undefined)\n            regex += RegExp.escape(restraints.allow);\n\n        $(obj).regexRestrict(RegExp(\"[^\"+regex+\"]\", \"g\"))\n    };\n})(jQuery);\n\n/*\n * Function created by Colin Snover in response to an article by Simon Willison\n * on Regular Expression escaping in JavaScript:\n * http://simonwillison.net/2006/Jan/20/escape/\n */\nRegExp.escape = function(text) {\n    return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n};\n","/*\n * Every time the form field is changed, sanitize its contents with the given\n * function to only allow input of a certain form.\n */\n(function ($) {\n    'use strict';\n\n    var inputEvents = \"input\";\n    if (!(\"oninput\" in document || \"oninput\" in $(\"<input>\")[0])) {\n        inputEvents += \" keypress keyup\";\n    }\n\n    jQuery.fn.restrict = function(sanitizationFunc) {\n\n        return this.each(function(){\n            // the element(s) to be restricted\n            var $this = $(this);\n\n            $this.bind(inputEvents, function() {\n                var val = $this.val();\n                var sanitizedVal = sanitizationFunc(val);\n\n                if (val !== sanitizedVal) {\n                    $this.val(sanitizedVal);\n                }\n            });\n        });\n    };\n\n    /*\n     * Every time the form field is changed, modify its contents by eliminating\n     * matches for the given regular expression within the field.\n     */\n    jQuery.fn.regexRestrict = function(regex){\n        var sanitize = function(text) {\n            return text.replace(regex, '');\n        };\n        $(this).restrict(sanitize);\n    };\n})(jQuery);\n"]}