{"id":260,"date":"2019-04-19T15:23:44","date_gmt":"2019-04-19T22:23:44","guid":{"rendered":"http:\/\/107.161.67.165\/~rail\/?page_id=260"},"modified":"2025-12-16T13:43:35","modified_gmt":"2025-12-16T21:43:35","slug":"register","status":"publish","type":"page","link":"http:\/\/174.142.205.70\/~newrail\/register\/","title":{"rendered":"Register"},"content":{"rendered":"<div id=\"cs-content\" class=\"cs-content\"><div class=\"x-section e260-e1 m78-0 m78-1\"><div class=\"x-row e260-e2 m78-3 m78-5 m78-6\"><div class=\"x-row-inner\"><div class=\"x-col e260-e3 m78-8\"><h1  class=\"h-custom-headline page-header-title h3\" ><span>Register<\/span><\/h1><\/div><\/div><\/div><\/div><div class=\"x-section e260-e5 m78-0 m78-2 fixpadding\"><div class=\"x-row e260-e6 m78-3 m78-4 m78-5 m78-7 fix-mobile-spacing\"><div class=\"x-row-inner\"><div class=\"x-col e260-e7 m78-8\"><h2  class=\"h-custom-headline twentyeight h5\" ><span>Register to be the first to receive updates as they become available!<\/span><\/h2><hr class=\"x-line e260-e9 m78-9\"><\/hr><div  class=\"x-raw-content spark-form\" ><form\n  id=\"spark-registration-form\"\n  action=\"https:\/\/spark.re\/infinity-properties-ltd\/raildistrict\/register\/registration-form\"\n  accept-charset=\"UTF-8\"\n  method=\"post\"\n>\n  <input\n    type=\"hidden\"\n    name=\"authenticity_token\"\n    value=\"mvnYqcfmWEwz8q4vApIVjfIGz-YoDcHg5dbwWV6AWs2SV0xRQSKos_d7OQxUnZ_c02wOC3rZI34DHR5rWX2VqQ\"\n    autocomplete=\"off\"\n  \/>\n\n  <div class=\"grid\">\n    <div class=\"form-item\">\n      <label>First Name *<\/label>\n      <input\n        class=\"disable-require\"\n        id=\"contact_first_name\"\n        maxlength=\"50\"\n        name=\"contact[first_name]\"\n        required\n        type=\"text\"\n      \/>\n    <\/div>\n    <div class=\"form-item\">\n      <label>Last Name *<\/label>\n      <input\n        class=\"disable-require\"\n        id=\"contact_last_name\"\n        maxlength=\"50\"\n        name=\"contact[last_name]\"\n        required\n        type=\"text\"\n      \/>\n    <\/div>\n    <div class=\"form-item\">\n      <label>Email Address *<\/label>\n      <input class=\"disable-require\" id=\"contact_email\" maxlength=\"255\" name=\"contact[email]\" required type=\"email\" \/>\n    <\/div>\n    <div class=\"form-item\">\n      <label>Phone Number *<\/label>\n      <input id=\"contact_phone\" maxlength=\"255\" name=\"contact[phone]\" required type=\"tel\" \/>\n    <\/div>\n    <div class=\"form-item\">\n      <label for=\"Are_you_working_with_a_realtor_\">Are you working with a realtor? *<\/label>\n      <div class=\"dropdown-wrapper\">\n        <div class=\"answer\">\n          <select name=\"answers[25199][answers]\" id=\"answers_25199\" class=\"false\" required>\n            <option value=\"false\">No<\/option>\n            <option value=\"true\">Yes<\/option>\n          <\/select>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"form-item\">\n      <label class=\"label-text\" for=\"Agent\">Are you an Realtor? *<\/label>\n      <div class=\"answer\">\n        <select name=\"agent\" id=\"agent\" required>\n          <option value=\"false\">No<\/option>\n          <option value=\"true\">Yes<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div class=\"form-item\">\n      <label for=\"Where_did_you_hear_about_us___\">Where did you hear about us? *<\/label>\n      <div class=\"dropdown-wrapper\">\n        <div class=\"answer\">\n          <select name=\"answers[25198][answers]\" id=\"answers_25198\" class=\"false\" required>\n            <option value=\"\"><\/option>\n            <option value=\"Online Search\">Online Search<\/option>\n            <option value=\"Facebook\/Instagram\">Facebook\/Instagram<\/option>\n            <option value=\"Friend\/Referral\">Friend\/Referral<\/option>\n            <option value=\"Realtor\">Realtor<\/option>\n            <option value=\"Signage\">Signage<\/option>\n            <option value=\"Banner Ad\">Banner Ad<\/option>\n            <option value=\"Email\">Email<\/option>\n            <option value=\"MLS\">MLS<\/option>\n            <option value=\"Newspaper\">Newspaper<\/option>\n            <option value=\"Real Estate Guide\">Real Estate Guide<\/option>\n            <option value=\"New Home Guide\">New Home Guide<\/option>\n            <option value=\"Infinity Properties&#39; Website\">Infinity Properties&#39; Website<\/option>\n            <option value=\"Other\">Other<\/option>\n          <\/select>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"form-item\">\n      <label for=\"What_type_of_home_are_you_looking_for_\">What Type of Home Are You Looking For? *<\/label>\n      <div class=\"dropdown-wrapper\">\n        <div class=\"answer\">\n          <select name=\"answers[25200][answers]\" id=\"answers_25200\" class=\"false\" required>\n            <option value=\"\"><\/option>\n            <option value=\"Condos\">Condos<\/option>\n            <option value=\"Townhomes\">Townhomes<\/option>\n            <option value=\"Either Condos or Townhomes\">Either Condos or Townhomes<\/option>\n          <\/select>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"form-item form-item-checkbox\">\n      <div class=\"checkbox-wrapper\">\n        <div class=\"answer\">\n          <input\n            type=\"checkbox\"\n            name=\"answers[25227][answers]\"\n            value=\"I agree to be contacted by Infinity Properties Ltd. and\/or Breakside Realty with further information\"\n            required\n          \/>\n          <label for=\"answers[25227][answers]\">\n            I agree to be contacted by Infinity Properties Ltd. with further information\n          <\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <button name=\"button\" type=\"submit\" class=\"button submit template-button\">Submit<\/button>\n\n  <input type=\"hidden\" name=\"source\" id=\"source\" autocomplete=\"off\" \/>\n  <input\n    type=\"hidden\"\n    name=\"redirect_success\"\n    id=\"redirect_success\"\n    value=\"http:\/\/174.142.205.70\/~newrail\/thank-you\/\"\n    autocomplete=\"off\"\n  \/>\n  <input\n    type=\"hidden\"\n    name=\"redirect_error\"\n    id=\"redirect_error\"\n    value=\"http:\/\/174.142.205.70\/~newrail\/404-page-not-found\/\"\n    autocomplete=\"off\"\n  \/>\n  <input type=\"text\" name=\"are_you_simulated\" id=\"are_you_simulated\" placeholder=\"Leave this field blank\" \/>\n  <input\n    type=\"hidden\"\n    name=\"g-recaptcha-response\"\n    id=\"g-recaptcha-response\"\n    class=\"g-recaptcha-response\"\n    autocomplete=\"off\"\n  \/>\n  <!-- \/ ENSURE THAT THIS CONTAINS YOUR RECAPTCHA v3 SITE KEY -->\n  <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?render=6Lc8MyopAAAAAJ1qoA7R9n76BP6_JPTXJ1_2hs8c\"><\/script>\n  <script>\n    window.addEventListener(\"load\", function () {\n      \/\/ Hides spam trap\n      document.getElementById(\"are_you_simulated\").style.display = \"none\";\n\n      \/\/ set the email pattern attribute for input type email fields. it is used for email validation\n      document.querySelectorAll(\"input[type='email']\").forEach(function (el) {\n        el.pattern = \"[^@\\\\s]+@[^@\\\\s]+\\\\.[^@\\\\s]+\";\n      });\n\n      initializeCustomFieldOtherTracking();\n      document.querySelectorAll(\".custom-field-widget\").forEach((customFieldContainer) => {\n        addMultiSelectListSelection(customFieldContainer);\n      });\n\n      \/\/ remove required attribute for questions with other option so the main question does not trigger the validation\n      document\n        .querySelectorAll(\".project-question.answers.single.required, .project-question.answers.custom.required\")\n        .forEach(function (question_root) {\n          const qid = question_root.dataset.qid;\n          const other_q = document.querySelector(`#answers_${qid}_other_text`);\n          const input = question_root.querySelector(`#answers_${qid}`);\n\n          if (other_q) {\n            input.required = false;\n          }\n        });\n    });\n\n    \/\/ eslint-disable-next-line no-unused-vars\n    function validateOtherQuestions() {\n      const validation_errors = [];\n      let question_text = \"the required questions\";\n      const question_roots = document.querySelectorAll(\n        \".project-question.answers.single.required, .project-question.answers.custom.required\"\n      );\n\n      question_roots.forEach(function (question_root) {\n        const qid = question_root.dataset.qid;\n        const other_q = document.querySelector(`#answers_${qid}_other_text`);\n        const question_label = question_root.querySelector(\".question-text\");\n        const input = question_root.querySelector(`#answers_${qid}`);\n\n        if (question_label) {\n          question_text = question_label.textContent.replace(\" *\", \"\");\n        }\n\n        if (other_q && input) {\n          if (input.value === \"\" && other_q.value === \"\") {\n            validation_errors.push(`- Please select at least one option from ${question_text}`);\n          }\n        }\n      });\n\n      return validation_errors;\n    }\n\n    \/\/ eslint-disable-next-line no-unused-vars\n    function validateMultipleTypeQuestions() {\n      const validation_errors = [];\n      let question_text = \"the required questions\";\n      const question_roots = document.querySelectorAll(\".project-question.multiple.required\");\n\n      question_roots.forEach(function (item) {\n        const qid = item.dataset.qid;\n        const other_q = document.querySelector(`#answers_${qid}_other_text`);\n        const checkboxes = item.querySelectorAll(\"input[type='checkbox']:checked\");\n        const question = item.querySelector(\".question-text\");\n\n        if (question) {\n          question_text = question.textContent.replace(\" *\", \"\");\n        }\n\n        if (other_q) {\n          if (checkboxes.length < 1 && other_q.value === \"\") {\n            validation_errors.push(`- Please select at least one option from ${question_text}`);\n          }\n        } else {\n          if (checkboxes.length < 1) {\n            validation_errors.push(`- Please select at least one option from ${question_text}`);\n          }\n        }\n      });\n\n      return validation_errors;\n    }\n\n    \/\/ Custom fields that are styled with hidden inputs (ex checkboxes) can't be\n    \/\/ validated with the default HTML5 form validation. Instead, required fields\n    \/\/ are given a class of 'custom-field-required' and are validated on submit.\n    function validateHiddenCustomFieldCheckboxes() {\n      const validation_errors = [];\n      let inputGroups = {};\n      document.querySelectorAll(\".custom-field-required\").forEach(function (input) {\n        inputGroups[input.name] = inputGroups[input.name] || [];\n        inputGroups[input.name].push(input);\n      });\n\n      Object.values(inputGroups).forEach(function (inputs) {\n        const valid = inputs.find((input) => input.checked);\n\n        if (!valid) {\n          const label = inputs[0].closest(\".custom-field-widget\").querySelector(\".label-text\").textContent;\n          validation_errors.push(`- Please select at least one option for ${label}`);\n        }\n      });\n\n      return validation_errors;\n    }\n\n    function validateReCaptcha(form) {\n      \/\/ If you are hosting this form on your own site and have reCAPTCHA enabled,\n      \/\/ ensure that this is populated with your own site key, as well as include\n      \/\/ the following script before this code:\n      \/\/   <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?render=YOUR_SITE_KEY\">\n      \/\/ For more information, see: https:\/\/developers.google.com\/recaptcha\/docs\/v3\n      var siteKey = \"6Lc8MyopAAAAAJ1qoA7R9n76BP6_JPTXJ1_2hs8c\";\n      grecaptcha.ready(function () {\n        grecaptcha.execute(siteKey, { action: \"registration\" }).then(function (token) {\n          const tokenInput = document.querySelector(\".g-recaptcha-response\");\n          if (tokenInput) {\n            tokenInput.value = token;\n            form.appendChild(tokenInput);\n            form.submit();\n          }\n        });\n      });\n    }\n\n    \/\/ BEGIN: Custom field other tracking\n\n    \/\/ This function initializes the custom field other tracking. It creates a\n    \/\/ map of option trackers for each input. The option tracker is used to store\n    \/\/ the initial options for each input. It then determines which input type\n    \/\/ is being used and calls the appropriate handler function.\n    function initializeCustomFieldOtherTracking(container = null) {\n      const targetContainer = container ? container : document;\n      const otherInputs = targetContainer.querySelectorAll(\".custom-field-other\");\n\n      if (otherInputs.length === 0) return;\n\n      const optionTracker = new Map();\n\n      otherInputs.forEach((input) => {\n        const widget = input.closest(\".custom-field-widget\");\n        if (!widget) return;\n\n        const select = widget.querySelector(\"select\");\n        const checkboxRadioWrapper = widget.querySelector(\".checkbox-radio-table\");\n\n        if (!select && !checkboxRadioWrapper) return;\n\n        \/\/ Store initial options based on input type\n        let initialOptions;\n        if (select) {\n          initialOptions = Array.from(select.options).map((opt) => ({\n            value: opt.value,\n            label: opt.label,\n          }));\n        } else {\n          const inputs = widget.querySelectorAll(\"input[type='checkbox'], input[type='radio']\");\n          initialOptions = Array.from(inputs).map((input) => ({\n            value: input.value,\n            label: input.nextElementSibling?.textContent || input.value,\n          }));\n        }\n\n        optionTracker.set(input, new Set());\n\n        if (select) {\n          otherInputChangeHandlerForSelect(input, select, optionTracker, initialOptions);\n        } else {\n          otherInputChangeHandlerForRadioCheckbox(input, widget, optionTracker, initialOptions);\n        }\n      });\n    }\n\n    \/\/ BEGIN: Multi-select list selection\n\n    function addMultiSelectListSelection(container) {\n      const multiSelectLists = container.querySelector(\"select[multiple]\");\n\n      if (!multiSelectLists) {\n        return;\n      }\n\n      clickOrTouchSelection(multiSelectLists);\n    }\n\n    \/\/ This function processes the value of the input and returns an array of values.\n    \/\/ It also filters out values that match initial options. This prevents new\n    \/\/ options from being added with each input.\n    function processInputValues(input, initialOptions) {\n      \/\/ Get all existing input values\n      const existingValues = new Set(initialOptions.map((opt) => opt.value.toLowerCase()));\n\n      \/\/ Remove malicious characters\n      const cleanValue = input.value.replace(\/[<>'\"&]\/g, \"\");\n\n      return cleanValue\n        .split(\";\")\n        .map((v) => v.trim().replace(\/\\s+\/g, \" \")) \/\/ Trim and normalize spaces in one pass)\n        .filter((v) => {\n          if (!v) {\n            return false;\n          }\n          const lowerValue = v.toLowerCase();\n          \/\/ Check case-insensitive duplicates\n          return !existingValues.has(lowerValue);\n        });\n    }\n\n    function otherInputChangeHandlerForSelect(input, select, optionTracker, initialOptions) {\n      input.addEventListener(\"input\", function () {\n        const currentOptions = optionTracker.get(input);\n\n        \/\/ Store currently selected values before removing dynamic options\n        const selectedValues = Array.from(select.selectedOptions).map((opt) => opt.value);\n\n        \/\/ Remove only the dynamically added options.\n        currentOptions.forEach((option) => {\n          select.removeChild(option);\n        });\n        currentOptions.clear();\n\n        const values = processInputValues(input, initialOptions);\n\n        \/\/ Add new options\n        values.forEach((value) => {\n          const option = document.createElement(\"option\");\n          option.value = value;\n          option.label = value;\n          select.appendChild(option);\n          currentOptions.add(option);\n          \/\/ Make new options selected by default and add to\n          \/\/ selectedValues array\n          option.selected = true;\n          selectedValues.push(value);\n        });\n\n        \/\/ Restore previously selected values\n        Array.from(select.options).forEach((option) => {\n          option.selected = selectedValues.includes(option.value);\n        });\n      });\n    }\n\n    \/\/ This function handles the pointerdown event for the select element.\n    \/\/ It prevents the default multiple selection behavior and toggles the\n    \/\/ selected state of the option.\n    function clickOrTouchSelection(select) {\n      if (!select.multiple) return;\n\n      select.addEventListener(\"pointerdown\", (e) => {\n        const option = e.target;\n        e.preventDefault();\n        e.stopPropagation();\n        option.selected = !option.selected;\n      });\n    }\n\n    \/\/ END: Multi-select list selection\n\n    \/\/ This function creates a new option cell for the checkbox or radio input.\n    \/\/ It clones the template cell and updates the input and label attributes.\n    function createNewOptionCell(templateCell, value, isCheckbox) {\n      const newCell = templateCell.cloneNode(true);\n      const input = newCell.querySelector(\"input\");\n      const label = newCell.querySelector(\"label\");\n\n      \/\/ Update input attributes. Preserve the base ID and append the new value.\n      const baseId = input.id.substring(0, input.id.lastIndexOf(\"_\") + 1);\n      input.id = baseId + value.toLowerCase().replace(\/\\s+\/g, \"-\");\n\n      input.value = value;\n      input.dataset.other = \"true\";\n      input.checked = true;\n      label.textContent = value;\n      label.setAttribute(\"for\", input.id);\n\n      return newCell;\n    }\n\n    \/\/ This function handles the input change event for radio and checkbox inputs.\n    \/\/ It removes the previously added dynamic options and adds new options based on\n    \/\/ the input value.\n    function otherInputChangeHandlerForRadioCheckbox(input, widget, optionTracker, initialOptions) {\n      input.addEventListener(\"input\", function () {\n        const currentOptions = optionTracker.get(input);\n        const wrapper = widget.querySelector(\".checkbox-radio-table\");\n        const isCheckbox = wrapper.dataset.inputType === \"checkbox\";\n        const tableRow = wrapper.querySelector(\".checkbox-radio-table tr\");\n\n        \/\/ Remove previously added dynamic options\n        currentOptions.forEach((cell) => {\n          tableRow.removeChild(cell);\n        });\n        currentOptions.clear();\n\n        const values = processInputValues(input, initialOptions);\n\n        \/\/ Add new options\n        values.forEach((value) => {\n          const templateCell = tableRow.querySelector(\".checkbox-radio-cell\");\n          const newCell = createNewOptionCell(templateCell, value, isCheckbox);\n          tableRow.appendChild(newCell);\n          newCell.querySelector(\"input\").checked = true;\n          currentOptions.add(newCell);\n        });\n      });\n    }\n\n    window.addEventListener(\"load\", function () {\n      \/\/ Hides Employer\/Brokerage field at the start\n      hideBrokerageEmployer();\n    });\n\n    const agentField = document.getElementById(\"agent\");\n\n    \/\/ Show\/Hides Brokerage\/Employer field based on Yes\/No selection.\n    if (agentField) {\n      document.getElementById(\"agent\").onchange = function () {\n        hideBrokerageEmployer();\n      };\n    }\n\n    function hideBrokerageEmployer() {\n      if (agentField === null || agentField === undefined) {\n        return;\n      }\n      if (agentField.options[agentField.selectedIndex].text == \"No\") {\n        document.getElementById(\"hidden-agent\").style.display = \"none\";\n      } else {\n        document.getElementById(\"hidden-agent\").style.display = \"table\";\n      }\n    }\n  <\/script>\n<\/form>\n<\/div><\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>RegisterRegister to be the first to receive updates as they become available! First Name * &#8230; <a href=\"http:\/\/174.142.205.70\/~newrail\/register\/\" class=\"more-link\">Read More<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-blank-4.php","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-260","page","type-page","status-publish","hentry","no-post-thumbnail"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Register - Rail District<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/raildistrict.ca\/register\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Register - Rail District\" \/>\n<meta property=\"og:description\" content=\"RegisterRegister to be the first to receive updates as they become available! First Name * ... Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/raildistrict.ca\/register\/\" \/>\n<meta property=\"og:site_name\" content=\"Rail District\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-16T21:43:35+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/raildistrict.ca\/register\/\",\"url\":\"https:\/\/raildistrict.ca\/register\/\",\"name\":\"Register - Rail District\",\"isPartOf\":{\"@id\":\"https:\/\/raildistrict.ca\/#website\"},\"datePublished\":\"2019-04-19T22:23:44+00:00\",\"dateModified\":\"2025-12-16T21:43:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/raildistrict.ca\/register\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/raildistrict.ca\/register\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/raildistrict.ca\/register\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/174.142.205.70\/~newrail\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Register\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/raildistrict.ca\/#website\",\"url\":\"https:\/\/raildistrict.ca\/\",\"name\":\"Rail District\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/raildistrict.ca\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Register - Rail District","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/raildistrict.ca\/register\/","og_locale":"en_US","og_type":"article","og_title":"Register - Rail District","og_description":"RegisterRegister to be the first to receive updates as they become available! First Name * ... Read More","og_url":"https:\/\/raildistrict.ca\/register\/","og_site_name":"Rail District","article_modified_time":"2025-12-16T21:43:35+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/raildistrict.ca\/register\/","url":"https:\/\/raildistrict.ca\/register\/","name":"Register - Rail District","isPartOf":{"@id":"https:\/\/raildistrict.ca\/#website"},"datePublished":"2019-04-19T22:23:44+00:00","dateModified":"2025-12-16T21:43:35+00:00","breadcrumb":{"@id":"https:\/\/raildistrict.ca\/register\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/raildistrict.ca\/register\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/raildistrict.ca\/register\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/174.142.205.70\/~newrail\/"},{"@type":"ListItem","position":2,"name":"Register"}]},{"@type":"WebSite","@id":"https:\/\/raildistrict.ca\/#website","url":"https:\/\/raildistrict.ca\/","name":"Rail District","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/raildistrict.ca\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"http:\/\/174.142.205.70\/~newrail\/wp-json\/wp\/v2\/pages\/260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/174.142.205.70\/~newrail\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/174.142.205.70\/~newrail\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/174.142.205.70\/~newrail\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/174.142.205.70\/~newrail\/wp-json\/wp\/v2\/comments?post=260"}],"version-history":[{"count":53,"href":"http:\/\/174.142.205.70\/~newrail\/wp-json\/wp\/v2\/pages\/260\/revisions"}],"predecessor-version":[{"id":4458,"href":"http:\/\/174.142.205.70\/~newrail\/wp-json\/wp\/v2\/pages\/260\/revisions\/4458"}],"wp:attachment":[{"href":"http:\/\/174.142.205.70\/~newrail\/wp-json\/wp\/v2\/media?parent=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}