<!DOCTYPE html>
<html lang="en">
  <head>
        <script async src="https://www.googletagmanager.com/gtag/js?id=UA-147352802-1"></script>
        <script>
          window.dataLayer = window.dataLayer || [];
          function gtag(){dataLayer.push(arguments);}
          gtag('js', new Date());
    
          gtag('config', 'UA-147352802-1');
        </script>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="Printable view of your saved plans to visualize different possibilities for using points based on changing your vacation dates or the DVC resort you want to stay at.">

    <link rel="icon" href="/static/img/favicon.ico">

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

    <script src="https://code.jquery.com/jquery-3.4.1.min.js" defer></script>
    <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js" defer></script>

    <script src="/static/js/bundle-7211584267.min.js" defer></script>

    <script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js" defer></script>
    <script src="https://kit.fontawesome.com/56684c990a.js" crossorigin="anonymous" defer></script>

    <title>DVC Trip Planner :: Itinerary :: Compare</title>

    <link rel="stylesheet" href="/static/css/style-ec425774ae.min.css" />
  </head>
  <body>
    <nav id="dvct-navbar" class="navbar navbar-light border-bottom sticky-top dvct-mini-nav">
      <div class="container">
        <button id="dvct-hamburger" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#dvct-nav-menu" aria-controls="dvct-nav-menu" aria-expanded="false" aria-label="Toggle navigation">
          <i class="fas fa-bars"></i>
        </button>
        <span id="dvct-brand" class="navbar-brand mb-0 h1"><a class="dvct-link-logo" href="/">DVC Trip Planner<sup>&reg;</sup></a></span>
        <span id="dvct-slogan" class="navbar-text">Plan Your Trip Home!</span>
      </div>
    
      <div class="collapse" id="dvct-nav-menu">
        <li class="nav-item dropdown">
          <div class="dvct-resort-dropdown-menu">
            <a class="dropdown-item dvct-dropdown-item small" href="/">Home</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/itinerary">Full Itinerary</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/itinerary/compare">Compare Plans</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/dvc-point-charts">Point Charts</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/contact">Contact Us</a>
    
            <div class="dropdown-divider"></div>
    
            <h6 class="dropdown-header">Orlando Resorts</h6>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/disneys-animal-kingdom-villas">Animal Kingdom</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/bay-lake-tower-at-disneys-contemporary-resort">Bay Lake Tower</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/disneys-beach-club-villas">Beach Club</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/disneys-boardwalk-villas">BoardWalk</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/boulder-ridge-villas-at-disneys-wilderness-lodge">Boulder Ridge</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/copper-creek-villas-and-cabins-at-disneys-wilderness-lodge">Copper Creek</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/the-villas-at-disneys-grand-floridian-resort-and-spa">Grand Floridian</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/disneys-old-key-west-resort">Old Key West</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/disneys-polynesian-villas-and-bungalows">Polynesian</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/disneys-riviera-resort">Riviera</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/disneys-saratoga-springs-resort-and-spa">Saratoga Springs</a>
    
            <div class="dropdown-divider"></div>
    
            <h6 class="dropdown-header">Other Resorts</h6>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/aulani-disney-vacation-club-villas-ko-olina-hawaii">Aulani</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/the-villas-at-disneyland-hotel">Disneyland Hotel</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/the-villas-at-disneys-grand-californian-hotel-and-spa">Grand Californian</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/disneys-hilton-head-island-resort">Hilton Head</a>
            <a class="dropdown-item dvct-dropdown-item small" href="/resort/disneys-vero-beach-resort">Vero Beach</a>
    
            <div class="dropdown-divider"></div>
    
            <a class="dropdown-item dvct-dropdown-item small" href="/sites">DVC Websites</a>
            <a class="dropdown-item dvct-dropdown-item small" href="https://www.facebook.com/dvctripplanner" aria-label="Facebook"><i class="fab fa-facebook-square"></i></a>
            <a class="dropdown-item dvct-dropdown-item small" href="https://twitter.com/dvctripplanner" aria-label="Twitter"><i class="fab fa-twitter-square"></i></a>
          </div>
        </li>
      </div>
    </nav>

    <div class="content">
      <div class="row">
        <div class="col-1"></div>
        <div class="col-10">
          <div class="col-12 mt-4">
  <header class="page-header text-center">
    <h3>DVC Trip Comparison</h3>
  </header>
</div>

<div id="dvct-compare-table-wrapper">
  <div class="progress">
    <div class="dvct-compare-progress-bar progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100">Loading...</div>
  </div>
</div>

<script type="text/javascript">
function waitForPlans() {
  if (window.dvct && window.dvct.itinerary && window.dvct.itinerary.plansParsed) {
    return window.dvct.itinerary.buildCompareTable();
  }

  return window.setTimeout(waitForPlans, 10);
}

window.setTimeout(waitForPlans, 10);
</script>
        </div>
        <div class="col-1"></div>
      </div>
    </div>


    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" defer></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js" defer></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/intro.js/2.9.3/intro.min.js" defer></script>

<script type="text/javascript">
window.addEventListener('DOMContentLoaded', () => {
  window.dvct.init(true);
});
</script>

  </body>
</html>
