{"id":5571,"date":"2023-10-10T05:22:18","date_gmt":"2023-10-09T16:22:18","guid":{"rendered":"https:\/\/www.zoyinc.com\/?p=5571"},"modified":"2026-01-06T20:07:00","modified_gmt":"2026-01-06T07:07:00","slug":"wheres-my-train","status":"publish","type":"post","link":"http:\/\/www.zoyinc.com\/?p=5571","title":{"rendered":"Find My Train"},"content":{"rendered":"<p><script>\r\n\/\/ We need to run this function after the complete page has been loaded thus using \"window.addEventListener('load'...\"\r\nwindow.addEventListener('load', function () {\t\r\n\t\r\n\t\/\/ Grab a reference to the master WordPress group\r\n\tbyClassElementList = document.getElementsByClassName(\"zoyinc_train_select_form_master_group\");\r\n\tif ( byClassElementList.length != 1){ \r\n\t\talert(\"Could not find the master group element. Length = \" + byClassElementList.length); \r\n\t};\r\n\tmasterGroup = byClassElementList[0];\r\n\r\n\t\/\/ Create a train select form\r\n\tvar trainSelectForm = document.createElement(\"form\");\r\n\ttrainSelectForm.setAttribute(\"method\", \"get\");\r\n\ttrainSelectForm.setAttribute(\"id\", \"train_select_form_id\");\r\n\t\r\n\t\/\/ Wrap the train select form around the master group block\r\n\tmasterGroup.replaceWith(trainSelectForm);\r\n\ttrainSelectForm.appendChild(masterGroup);\r\n\t\r\n\t\/\/ Get the dummy submit button\r\n\t\/\/ In WordPress this is a \"Button\" block but in html it ends up as a div\r\n\tdivElementsList = document.getElementsByClassName(\"zoyinc_dummy_submit_button\");\r\n\tif ( divElementsList.length != 1){ \r\n\t\talert(\"Could not find the submit button. Length = \" + byClassElementList.length); \r\n\t};\r\n\tsubmitButtonDiv = divElementsList[0];\r\n\t\/\/ Get the anchor within the button\r\n\tanchorElements = submitButtonDiv.getElementsByTagName('a');\r\n\tif ( anchorElements.length != 1){ \r\n\t\talert(\"Could not find the anchor inside the dummy button. Length = \" + byClassElementList.length); \r\n\t};\r\n\tsubmitButtonAnchor = anchorElements[0];\r\n\t\/\/ Change the anchor so on click it submits the form\r\n\tsubmitButtonAnchor.setAttribute('href', '#');\r\n\tsubmitButtonAnchor.setAttribute('onclick','document.getElementById(\\'train_select_form_id\\').submit();');\r\n\t\t\r\n\t\/\/ Create a hidden \"input\" field\r\n\t\/\/ This will cause WordPress to return to this page\r\n\tvar trainPostNoInput = document.createElement(\"input\");\r\n\ttrainPostNoInput.setAttribute(\"type\", \"hidden\");\r\n\ttrainPostNoInput.setAttribute(\"id\", \"p\");\r\n\ttrainPostNoInput.setAttribute(\"name\", \"p\");\r\n\ttrainPostNoInput.setAttribute(\"value\", \"\");\r\n\r\n\t\r\n\t\/\/ We are using the button with class \"zoyinc_dummy_select_list_button\" as the\r\n\t\/\/ template for the dynamic select box\r\n\t\/\/ The button ends up in html as an anchor, and a div. The class ends up on the div\r\n\t\/\/ so we have to find the anchor and will assume there is only one\r\n\t \r\n\t\/\/ Get a reference to the div that surrounds the dummy select button\r\n\tbyClassElementList = document.getElementsByClassName(\"zoyinc_dummy_select_list\");\r\n\tif ( byClassElementList.length != 1){ \r\n\t\talert(\"Could not find \\\"div\\\" for dummy list box. Length = \" + byClassElementList.length); \r\n\t};\r\n\tdummyListDiv = byClassElementList[0];\r\n\t\r\n\t\/\/ Find the anchor inside the div\r\n\t\/\/ This is the element that contains the text for the dummy button. As such it contains the settings\r\n\t\/\/ for the font of the dummy button and so on.\r\n\tanchorElements = dummyListDiv.getElementsByTagName('a');\r\n\tif ( anchorElements.length != 1){ \r\n\t\talert(\"Could not find the anchor inside the dummy button. Length = \" + byClassElementList.length); \r\n\t};\r\n\tdummyButtonAnchor = anchorElements[0];\r\n\r\n\t\/\/ Create a select element for train number\r\n\tvar trainSelect = document.createElement(\"select\");\r\n\ttrainSelect.id = \"train_number\";\r\n\ttrainSelect.name = \"train_number\";\r\n\ttrainSelect.style.font = getComputedStyle(dummyListDiv, null).getPropertyValue(\"font\");\r\n\ttrainSelect.style.backgroundColor = getComputedStyle(byClassElementList[0], null).getPropertyValue(\"background-color\");\r\n\ttrainSelect.style.width = getComputedStyle(byClassElementList[0], null).getPropertyValue(\"width\");\r\n\ttrainSelect.style.height = getComputedStyle(dummyListDiv, null).getPropertyValue(\"height\");\r\n\ttrainSelect.style.color = getComputedStyle(byClassElementList[0], null).getPropertyValue(\"color\");\t\r\n\ttrainSelect.style.border  = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"border\");\r\n\t\/\/ Align the height and font of the submit button with the details for the select dropdown\r\n\t\/\/ Its actually quite hard to get this working for both PC and mobile browsers\r\n\t\/\/ What we have done is the best we can\r\n\tsubmitButtonDiv.style.height = trainSelect.style.height;\r\n\tsubmitButtonDiv.style.font = trainSelect.style.font;\r\n\tsubmitButtonAnchor.style.height = trainSelect.style.height;\r\n\tsubmitButtonAnchor.style.font = trainSelect.style.font;\r\n\tvar option = document.createElement(\"option\"); \n\toption.value = \"103\";  \n\toption.text = \"AM103\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"116\";  \n\toption.text = \"AM116\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"129\";  \n\toption.text = \"AM129\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"131\";  \n\toption.text = \"AM131\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"144\";  \n\toption.text = \"AM144\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"157\";  \n\toption.text = \"AM157\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"172\";  \n\toption.text = \"AM172\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"185\";  \n\toption.text = \"AM185\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"198\";  \n\toption.text = \"AM198\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"212\";  \n\toption.text = \"AM212\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"225\";  \n\toption.text = \"AM225\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"238\";  \n\toption.text = \"AM238\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"240\";  \n\toption.text = \"AM240\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"253\";  \n\toption.text = \"AM253\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"266\";  \n\toption.text = \"AM266\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"279\";  \n\toption.text = \"AM279\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"281\";  \n\toption.text = \"AM281\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"294\";  \n\toption.text = \"AM294\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"306\";  \n\toption.text = \"AM306\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"319\";  \n\toption.text = \"AM319\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"321\";  \n\toption.text = \"AM321 - Lots Of Bikes And Prams\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"334\";  \n\toption.text = \"AM334\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"347\";  \n\toption.text = \"AM347\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"362\";  \n\toption.text = \"AM362\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"375\";  \n\toption.text = \"AM375\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"388\";  \n\toption.text = \"AM388\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"390\";  \n\toption.text = \"AM390\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"402\";  \n\toption.text = \"AM402\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"415\";  \n\toption.text = \"AM415\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"428\";  \n\toption.text = \"AM428\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"430\";  \n\toption.text = \"AM430\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"443\";  \n\toption.text = \"AM443\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"456\";  \n\toption.text = \"AM456\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"469\";  \n\toption.text = \"AM469\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"471\";  \n\toption.text = \"AM471 - See Tracks Expect Trains\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"484\";  \n\toption.text = \"AM484\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"497\";  \n\toption.text = \"AM497\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"509\";  \n\toption.text = \"AM509 - Heads Up Ears Out Trains About\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"511\";  \n\toption.text = \"AM511\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"524\";  \n\toption.text = \"AM524\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"537\";  \n\toption.text = \"AM537\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"552\";  \n\toption.text = \"AM552\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"565\";  \n\toption.text = \"AM565\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"578\";  \n\toption.text = \"AM578 - Mission Electric\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"580\";  \n\toption.text = \"AM580\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"593\";  \n\toption.text = \"AM593 - Stop Look Listen Look Both Ways Avoid Distractions\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"605\";  \n\toption.text = \"AM605\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"618\";  \n\toption.text = \"AM618\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"620\";  \n\toption.text = \"AM620 - Look Listen\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"633\";  \n\toption.text = \"AM633\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"646\";  \n\toption.text = \"AM646\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"659\";  \n\toption.text = \"AM659\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"661\";  \n\toption.text = \"AM661 - Look Both Ways\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"674\";  \n\toption.text = \"AM674 - Kia Mataara. Kia Haumaru Te Haere\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"687\";  \n\toption.text = \"AM687\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"701\";  \n\toption.text = \"AM701\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"714\";  \n\toption.text = \"AM714 - Uber Eats\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"810\";  \n\toption.text = \"AM810\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"823\";  \n\toption.text = \"AM823\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"836\";  \n\toption.text = \"AM836\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"849\";  \n\toption.text = \"AM849\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"851\";  \n\toption.text = \"AM851\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"864\";  \n\toption.text = \"AM864\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"877\";  \n\toption.text = \"AM877\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"892\";  \n\toption.text = \"AM892\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"904\";  \n\toption.text = \"AM904\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"917\";  \n\toption.text = \"AM917\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"932\";  \n\toption.text = \"AM932\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"945\";  \n\toption.text = \"AM945\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"958\";  \n\toption.text = \"AM958\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"960\";  \n\toption.text = \"AM960\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"973\";  \n\toption.text = \"AM973\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1005\";  \n\toption.text = \"AM1005\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1018\";  \n\toption.text = \"AM1018\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1020\";  \n\toption.text = \"AM1020\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1033\";  \n\toption.text = \"AM1033\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1046\";  \n\toption.text = \"AM1046\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1059\";  \n\toption.text = \"AM1059\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1061\";  \n\toption.text = \"AM1061\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1074\";  \n\toption.text = \"AM1074\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1087\";  \n\toption.text = \"AM1087\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1101\";  \n\toption.text = \"AM1101\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1114\";  \n\toption.text = \"AM1114\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1127\";  \n\toption.text = \"AM1127\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1142\";  \n\toption.text = \"AM1142\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1155\";  \n\toption.text = \"AM1155\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1168\";  \n\toption.text = \"AM1168\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1170\";  \n\toption.text = \"AM1170\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1183\";  \n\toption.text = \"AM1183\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1196\";  \n\toption.text = \"AM1196\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1208\";  \n\toption.text = \"AM1208\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1210\";  \n\toption.text = \"AM1210\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1223\";  \n\toption.text = \"AM1223\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1236\";  \n\toption.text = \"AM1236\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\tvar option = document.createElement(\"option\"); \n\toption.value = \"1249\";  \n\toption.text = \"AM1249\";  \n\toption.style.color = getComputedStyle(dummyButtonAnchor, null).getPropertyValue(\"color\"); \n\ttrainSelect.appendChild(option); \n\t\r\n\t\/\/ Append the various elements to the form\r\n\tdummyListDiv.replaceWith(trainSelect);\r\n\ttrainSelectForm.append(trainPostNoInput);\r\n\t\r\n});\t\r\n<\/script><!-- Find My Train - Train Select Dropdown --><\/p>\n\n\n<p><script>\r\n\/\/\r\n\/\/ Special Train Status\r\n\/\/ ====================\r\n\/\/ \r\n\/\/ This shortcode takes a group with class:\r\n\/\/     zoyinc-find_my_train-train_statuses_group\r\n\/\/     \r\n\/\/ It then hides this original group and replicates it for each \"special\", or wrapped train\r\n\/\/ updating the various fields and image at the same time. \r\n\/\/\r\n\r\n\/\/ We need to run this function after the complete page has been loaded thus using \"window.addEventListener('load'...\"\r\nwindow.addEventListener('load', function () {\r\n\tdivElements = document.getElementsByTagName('div');\r\n\tstatusDivIndex = -1;\r\n\tfor (var i=0, im=divElements.length; im>i; i++) {\r\n\t\tif (divElements[i].classList.contains(\"zoyinc-find_my_train-train_statuses_group\")){\r\n\t\t\tstatusDivIndex = i;\r\n\t\t};\r\n    };\r\n\tif (statusDivIndex == -1){\r\n\t\talert(\"Train info group element not found!\");\r\n\t};\t\r\n\tdefaultStatusGroup = divElements[statusDivIndex];\r\n\tdefaultStatusGroup.style.display = 'none'; \/\/ Hide the original WordPress group\t\r\n\tcurrStatusGroup = defaultStatusGroup;\r\n\t\r\ncurrStatusGroup.after(defaultStatusGroup.cloneNode(true)); \ncurrStatusGroup = currStatusGroup.nextSibling;  \/\/ Add After the default group \ncurrStatusGroup.style.display = ''; \/\/ Unhide the new group \nheadingElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_heading\"); \nif ( headingElementList.length != 1){ \n\talert(\"Status info heading not found\"); \n}; \nheadingElementList[0].textContent = \"AM321 - Lots Of Bikes And Prams\"; \nfigureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_table\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableElementList = figureElementList[0].getElementsByTagName(\"table\"); \nif ( tableElementList.length != 1){ \n\talert(\"Status table not found\"); \n}; \nstatusTableElement = tableElementList[0]; \nrouteFullName = \"Out Of Service\";statusTableElement.rows[0].cells[0].width = \"30%\"; \nstatusTableElement.rows[1].cells[0].width = \"30%\"; \nstatusTableElement.rows[2].cells[0].width = \"30%\"; \nstatusTableElement.rows[3].cells[0].width = \"30%\"; \nstatusTableElement.rows[0].cells[1].innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-37.0000527777778,174.861172222222'>Wiri Stabling Yard<\/a>\"; \nstatusTableElement.rows[1].cells[1].innerHTML = routeFullName; \nstatusTableElement.rows[2].cells[1].innerHTML = \"321\"; \nstatusTableElement.rows[3].cells[1].innerHTML = \"09\/05\/2026 - 8:57 pm\"; \ntestElement = statusTableElement.rows[3].cells[1];figureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_img\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableImgElementList = figureElementList[0].getElementsByTagName(\"img\"); \nif ( tableImgElementList.length != 1){ \n\talert(\"Status table image not found\"); \n}; \ntableImgElement = tableImgElementList[0];tableImgElement.src= \"\/wp-content\/uploads\/2025\/06\/FindMyTrainFSmallAMP321_01.jpg\"; \ntableImgElement.srcset= \"\/wp-content\/uploads\/2025\/06\/FindMyTrainFSmallAMP321_01.jpg\" + \" 600w\"; \ndelete tableImgElement.style.removeProperty('aspect-ratio'); \ntableAnchorElementList = figureElementList[0].getElementsByTagName(\"a\"); \nif ( tableAnchorElementList.length != 1){ \n\talert(\"Status table image link\/anchor not found\"); \n}; \ntableAnchorElement = tableAnchorElementList[0];tableAnchorElement.href= \"\/?p=5571&train_number=321\"; \ncurrStatusGroup.after(defaultStatusGroup.cloneNode(true)); \ncurrStatusGroup = currStatusGroup.nextSibling;  \/\/ Add After the default group \ncurrStatusGroup.style.display = ''; \/\/ Unhide the new group \nheadingElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_heading\"); \nif ( headingElementList.length != 1){ \n\talert(\"Status info heading not found\"); \n}; \nheadingElementList[0].textContent = \"AM471 - See Tracks Expect Trains\"; \nfigureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_table\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableElementList = figureElementList[0].getElementsByTagName(\"table\"); \nif ( tableElementList.length != 1){ \n\talert(\"Status table not found\"); \n}; \nstatusTableElement = tableElementList[0]; \nrouteFullName = \"Out Of Service\";statusTableElement.rows[0].cells[0].width = \"30%\"; \nstatusTableElement.rows[1].cells[0].width = \"30%\"; \nstatusTableElement.rows[2].cells[0].width = \"30%\"; \nstatusTableElement.rows[3].cells[0].width = \"30%\"; \nstatusTableElement.rows[0].cells[1].innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-36.866175,174.576341666667'>Swanson Station<\/a>\"; \nstatusTableElement.rows[1].cells[1].innerHTML = routeFullName; \nstatusTableElement.rows[2].cells[1].innerHTML = \"471*, 509 (471,471,471,471,471,471,471,471,471,471)\"; \nstatusTableElement.rows[3].cells[1].innerHTML = \"12\/05\/2026 - 8:19 am\"; \ntestElement = statusTableElement.rows[3].cells[1];figureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_img\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableImgElementList = figureElementList[0].getElementsByTagName(\"img\"); \nif ( tableImgElementList.length != 1){ \n\talert(\"Status table image not found\"); \n}; \ntableImgElement = tableImgElementList[0];tableImgElement.src= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP471Small_01.jpg\"; \ntableImgElement.srcset= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP471Small_01.jpg\" + \" 600w\"; \ndelete tableImgElement.style.removeProperty('aspect-ratio'); \ntableAnchorElementList = figureElementList[0].getElementsByTagName(\"a\"); \nif ( tableAnchorElementList.length != 1){ \n\talert(\"Status table image link\/anchor not found\"); \n}; \ntableAnchorElement = tableAnchorElementList[0];tableAnchorElement.href= \"\/?p=5571&train_number=471\"; \ncurrStatusGroup.after(defaultStatusGroup.cloneNode(true)); \ncurrStatusGroup = currStatusGroup.nextSibling;  \/\/ Add After the default group \ncurrStatusGroup.style.display = ''; \/\/ Unhide the new group \nheadingElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_heading\"); \nif ( headingElementList.length != 1){ \n\talert(\"Status info heading not found\"); \n}; \nheadingElementList[0].textContent = \"AM509 - Heads Up Ears Out Trains About\"; \nfigureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_table\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableElementList = figureElementList[0].getElementsByTagName(\"table\"); \nif ( tableElementList.length != 1){ \n\talert(\"Status table not found\"); \n}; \nstatusTableElement = tableElementList[0]; \nrouteFullName = \"Out Of Service\";statusTableElement.rows[0].cells[0].width = \"30%\"; \nstatusTableElement.rows[1].cells[0].width = \"30%\"; \nstatusTableElement.rows[2].cells[0].width = \"30%\"; \nstatusTableElement.rows[3].cells[0].width = \"30%\"; \nstatusTableElement.rows[0].cells[1].innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-36.8663194444444,174.577133333333'>Swanson Station<\/a>\"; \nstatusTableElement.rows[1].cells[1].innerHTML = routeFullName; \nstatusTableElement.rows[2].cells[1].innerHTML = \"471*, 509 (471,471,471,471,471,471,471,471,471,471)\"; \nstatusTableElement.rows[3].cells[1].innerHTML = \"12\/05\/2026 - 8:19 am\"; \ntestElement = statusTableElement.rows[3].cells[1];figureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_img\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableImgElementList = figureElementList[0].getElementsByTagName(\"img\"); \nif ( tableImgElementList.length != 1){ \n\talert(\"Status table image not found\"); \n}; \ntableImgElement = tableImgElementList[0];tableImgElement.src= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP509Small_01.jpg\"; \ntableImgElement.srcset= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP509Small_01.jpg\" + \" 600w\"; \ndelete tableImgElement.style.removeProperty('aspect-ratio'); \ntableAnchorElementList = figureElementList[0].getElementsByTagName(\"a\"); \nif ( tableAnchorElementList.length != 1){ \n\talert(\"Status table image link\/anchor not found\"); \n}; \ntableAnchorElement = tableAnchorElementList[0];tableAnchorElement.href= \"\/?p=5571&train_number=509\"; \ncurrStatusGroup.after(defaultStatusGroup.cloneNode(true)); \ncurrStatusGroup = currStatusGroup.nextSibling;  \/\/ Add After the default group \ncurrStatusGroup.style.display = ''; \/\/ Unhide the new group \nheadingElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_heading\"); \nif ( headingElementList.length != 1){ \n\talert(\"Status info heading not found\"); \n}; \nheadingElementList[0].textContent = \"AM578 - Mission Electric\"; \nfigureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_table\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableElementList = figureElementList[0].getElementsByTagName(\"table\"); \nif ( tableElementList.length != 1){ \n\talert(\"Status table not found\"); \n}; \nstatusTableElement = tableElementList[0]; \nrouteFullName = \"Out Of Service\";statusTableElement.rows[0].cells[0].width = \"30%\"; \nstatusTableElement.rows[1].cells[0].width = \"30%\"; \nstatusTableElement.rows[2].cells[0].width = \"30%\"; \nstatusTableElement.rows[3].cells[0].width = \"30%\"; \nstatusTableElement.rows[0].cells[1].innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-36.8655055555556,174.8282'>Between Meadowbank and Glen Innes<\/a>\"; \nstatusTableElement.rows[1].cells[1].innerHTML = routeFullName; \nstatusTableElement.rows[2].cells[1].innerHTML = \"578\"; \nstatusTableElement.rows[3].cells[1].innerHTML = \"12\/05\/2026 - 8:19 am\"; \ntestElement = statusTableElement.rows[3].cells[1];figureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_img\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableImgElementList = figureElementList[0].getElementsByTagName(\"img\"); \nif ( tableImgElementList.length != 1){ \n\talert(\"Status table image not found\"); \n}; \ntableImgElement = tableImgElementList[0];tableImgElement.src= \"\/wp-content\/uploads\/2025\/06\/FindMyTrainAMP578_MissionElectric_01.jpg\"; \ntableImgElement.srcset= \"\/wp-content\/uploads\/2025\/06\/FindMyTrainAMP578_MissionElectric_01.jpg\" + \" 600w\"; \ndelete tableImgElement.style.removeProperty('aspect-ratio'); \ntableAnchorElementList = figureElementList[0].getElementsByTagName(\"a\"); \nif ( tableAnchorElementList.length != 1){ \n\talert(\"Status table image link\/anchor not found\"); \n}; \ntableAnchorElement = tableAnchorElementList[0];tableAnchorElement.href= \"\/?p=5571&train_number=578\"; \ncurrStatusGroup.after(defaultStatusGroup.cloneNode(true)); \ncurrStatusGroup = currStatusGroup.nextSibling;  \/\/ Add After the default group \ncurrStatusGroup.style.display = ''; \/\/ Unhide the new group \nheadingElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_heading\"); \nif ( headingElementList.length != 1){ \n\talert(\"Status info heading not found\"); \n}; \nheadingElementList[0].textContent = \"AM593 - Stop Look Listen Look Both Ways Avoid Distractions\"; \nfigureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_table\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableElementList = figureElementList[0].getElementsByTagName(\"table\"); \nif ( tableElementList.length != 1){ \n\talert(\"Status table not found\"); \n}; \nstatusTableElement = tableElementList[0]; \nrouteFullName = \"Waitemata To Swanson\";statusTableElement.rows[0].cells[0].width = \"30%\"; \nstatusTableElement.rows[1].cells[0].width = \"30%\"; \nstatusTableElement.rows[2].cells[0].width = \"30%\"; \nstatusTableElement.rows[3].cells[0].width = \"30%\"; \nstatusTableElement.rows[0].cells[1].innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-36.8595361111111,174.780125'>Between Newmarket and Parnell<\/a>\"; \nstatusTableElement.rows[1].cells[1].innerHTML = routeFullName; \nstatusTableElement.rows[2].cells[1].innerHTML = \"593*, 633 (593,593,593,593,593,)\"; \nstatusTableElement.rows[3].cells[1].innerHTML = \"12\/05\/2026 - 8:19 am\"; \ntestElement = statusTableElement.rows[3].cells[1];figureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_img\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableImgElementList = figureElementList[0].getElementsByTagName(\"img\"); \nif ( tableImgElementList.length != 1){ \n\talert(\"Status table image not found\"); \n}; \ntableImgElement = tableImgElementList[0];tableImgElement.src= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP593Small_01.jpg\"; \ntableImgElement.srcset= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP593Small_01.jpg\" + \" 600w\"; \ndelete tableImgElement.style.removeProperty('aspect-ratio'); \ntableAnchorElementList = figureElementList[0].getElementsByTagName(\"a\"); \nif ( tableAnchorElementList.length != 1){ \n\talert(\"Status table image link\/anchor not found\"); \n}; \ntableAnchorElement = tableAnchorElementList[0];tableAnchorElement.href= \"\/?p=5571&train_number=593\"; \ncurrStatusGroup.after(defaultStatusGroup.cloneNode(true)); \ncurrStatusGroup = currStatusGroup.nextSibling;  \/\/ Add After the default group \ncurrStatusGroup.style.display = ''; \/\/ Unhide the new group \nheadingElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_heading\"); \nif ( headingElementList.length != 1){ \n\talert(\"Status info heading not found\"); \n}; \nheadingElementList[0].textContent = \"AM620 - Look Listen\"; \nfigureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_table\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableElementList = figureElementList[0].getElementsByTagName(\"table\"); \nif ( tableElementList.length != 1){ \n\talert(\"Status table not found\"); \n}; \nstatusTableElement = tableElementList[0]; \nrouteFullName = \"Pukekohe To Waitemata\";statusTableElement.rows[0].cells[0].width = \"30%\"; \nstatusTableElement.rows[1].cells[0].width = \"30%\"; \nstatusTableElement.rows[2].cells[0].width = \"30%\"; \nstatusTableElement.rows[3].cells[0].width = \"30%\"; \nstatusTableElement.rows[0].cells[1].innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-36.8553944444444,174.777752777778'>Parnell Station<\/a>\"; \nstatusTableElement.rows[1].cells[1].innerHTML = routeFullName; \nstatusTableElement.rows[2].cells[1].innerHTML = \"362, 620* (620,620,620,620,620,620,620,620,620,620)\"; \nstatusTableElement.rows[3].cells[1].innerHTML = \"12\/05\/2026 - 8:19 am\"; \ntestElement = statusTableElement.rows[3].cells[1];figureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_img\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableImgElementList = figureElementList[0].getElementsByTagName(\"img\"); \nif ( tableImgElementList.length != 1){ \n\talert(\"Status table image not found\"); \n}; \ntableImgElement = tableImgElementList[0];tableImgElement.src= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP620Small_01.jpg\"; \ntableImgElement.srcset= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP620Small_01.jpg\" + \" 600w\"; \ndelete tableImgElement.style.removeProperty('aspect-ratio'); \ntableAnchorElementList = figureElementList[0].getElementsByTagName(\"a\"); \nif ( tableAnchorElementList.length != 1){ \n\talert(\"Status table image link\/anchor not found\"); \n}; \ntableAnchorElement = tableAnchorElementList[0];tableAnchorElement.href= \"\/?p=5571&train_number=620\"; \ncurrStatusGroup.after(defaultStatusGroup.cloneNode(true)); \ncurrStatusGroup = currStatusGroup.nextSibling;  \/\/ Add After the default group \ncurrStatusGroup.style.display = ''; \/\/ Unhide the new group \nheadingElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_heading\"); \nif ( headingElementList.length != 1){ \n\talert(\"Status info heading not found\"); \n}; \nheadingElementList[0].textContent = \"AM661 - Look Both Ways\"; \nfigureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_table\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableElementList = figureElementList[0].getElementsByTagName(\"table\"); \nif ( tableElementList.length != 1){ \n\talert(\"Status table not found\"); \n}; \nstatusTableElement = tableElementList[0]; \nrouteFullName = \"Pukekohe To Waitemata\";statusTableElement.rows[0].cells[0].width = \"30%\"; \nstatusTableElement.rows[1].cells[0].width = \"30%\"; \nstatusTableElement.rows[2].cells[0].width = \"30%\"; \nstatusTableElement.rows[3].cells[0].width = \"30%\"; \nstatusTableElement.rows[0].cells[1].innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-36.84500686222133,174.7710431274042'>Waitemata Station<\/a>\"; \nstatusTableElement.rows[1].cells[1].innerHTML = routeFullName; \nstatusTableElement.rows[2].cells[1].innerHTML = \"661\"; \nstatusTableElement.rows[3].cells[1].innerHTML = \"12\/05\/2026 - 8:16 am\"; \ntestElement = statusTableElement.rows[3].cells[1];figureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_img\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableImgElementList = figureElementList[0].getElementsByTagName(\"img\"); \nif ( tableImgElementList.length != 1){ \n\talert(\"Status table image not found\"); \n}; \ntableImgElement = tableImgElementList[0];tableImgElement.src= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP661Small_01.jpg\"; \ntableImgElement.srcset= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP661Small_01.jpg\" + \" 600w\"; \ndelete tableImgElement.style.removeProperty('aspect-ratio'); \ntableAnchorElementList = figureElementList[0].getElementsByTagName(\"a\"); \nif ( tableAnchorElementList.length != 1){ \n\talert(\"Status table image link\/anchor not found\"); \n}; \ntableAnchorElement = tableAnchorElementList[0];tableAnchorElement.href= \"\/?p=5571&train_number=661\"; \ncurrStatusGroup.after(defaultStatusGroup.cloneNode(true)); \ncurrStatusGroup = currStatusGroup.nextSibling;  \/\/ Add After the default group \ncurrStatusGroup.style.display = ''; \/\/ Unhide the new group \nheadingElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_heading\"); \nif ( headingElementList.length != 1){ \n\talert(\"Status info heading not found\"); \n}; \nheadingElementList[0].textContent = \"AM674 - Kia Mataara. Kia Haumaru Te Haere\"; \nfigureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_table\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableElementList = figureElementList[0].getElementsByTagName(\"table\"); \nif ( tableElementList.length != 1){ \n\talert(\"Status table not found\"); \n}; \nstatusTableElement = tableElementList[0]; \nrouteFullName = \"Waitemata To Swanson\";statusTableElement.rows[0].cells[0].width = \"30%\"; \nstatusTableElement.rows[1].cells[0].width = \"30%\"; \nstatusTableElement.rows[2].cells[0].width = \"30%\"; \nstatusTableElement.rows[3].cells[0].width = \"30%\"; \nstatusTableElement.rows[0].cells[1].innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-36.9106666666667,174.665016666667'>Between Glen Eden and Fruitvale Rd<\/a>\"; \nstatusTableElement.rows[1].cells[1].innerHTML = routeFullName; \nstatusTableElement.rows[2].cells[1].innerHTML = \"306, 674* (674,674,674,674,)\"; \nstatusTableElement.rows[3].cells[1].innerHTML = \"12\/05\/2026 - 8:19 am\"; \ntestElement = statusTableElement.rows[3].cells[1];figureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_img\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableImgElementList = figureElementList[0].getElementsByTagName(\"img\"); \nif ( tableImgElementList.length != 1){ \n\talert(\"Status table image not found\"); \n}; \ntableImgElement = tableImgElementList[0];tableImgElement.src= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP674Small_01.jpg\"; \ntableImgElement.srcset= \"\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP674Small_01.jpg\" + \" 600w\"; \ndelete tableImgElement.style.removeProperty('aspect-ratio'); \ntableAnchorElementList = figureElementList[0].getElementsByTagName(\"a\"); \nif ( tableAnchorElementList.length != 1){ \n\talert(\"Status table image link\/anchor not found\"); \n}; \ntableAnchorElement = tableAnchorElementList[0];tableAnchorElement.href= \"\/?p=5571&train_number=674\"; \ncurrStatusGroup.after(defaultStatusGroup.cloneNode(true)); \ncurrStatusGroup = currStatusGroup.nextSibling;  \/\/ Add After the default group \ncurrStatusGroup.style.display = ''; \/\/ Unhide the new group \nheadingElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_heading\"); \nif ( headingElementList.length != 1){ \n\talert(\"Status info heading not found\"); \n}; \nheadingElementList[0].textContent = \"AM714 - Uber Eats\"; \nfigureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_table\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableElementList = figureElementList[0].getElementsByTagName(\"table\"); \nif ( tableElementList.length != 1){ \n\talert(\"Status table not found\"); \n}; \nstatusTableElement = tableElementList[0]; \nrouteFullName = \"Waitemata To Manukau\";statusTableElement.rows[0].cells[0].width = \"30%\"; \nstatusTableElement.rows[1].cells[0].width = \"30%\"; \nstatusTableElement.rows[2].cells[0].width = \"30%\"; \nstatusTableElement.rows[3].cells[0].width = \"30%\"; \nstatusTableElement.rows[0].cells[1].innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-36.9356277777778,174.831552777778'>Westfield<\/a>\"; \nstatusTableElement.rows[1].cells[1].innerHTML = routeFullName; \nstatusTableElement.rows[2].cells[1].innerHTML = \"687, 714* (714,714,714,714,714,714,714,714,714,714)\"; \nstatusTableElement.rows[3].cells[1].innerHTML = \"12\/05\/2026 - 8:19 am\"; \ntestElement = statusTableElement.rows[3].cells[1];figureElementList = currStatusGroup.getElementsByClassName(\"zoyinc_status_group_img\"); \nif ( figureElementList.length != 1){ \n\talert(\"Status table surrounding figure element not found\"); \n}; \ntableImgElementList = figureElementList[0].getElementsByTagName(\"img\"); \nif ( tableImgElementList.length != 1){ \n\talert(\"Status table image not found\"); \n}; \ntableImgElement = tableImgElementList[0];tableImgElement.src= \"\/wp-content\/uploads\/2025\/12\/FindMyTrainAMP714_UberEatsSmall_01.jpg\"; \ntableImgElement.srcset= \"\/wp-content\/uploads\/2025\/12\/FindMyTrainAMP714_UberEatsSmall_01.jpg\" + \" 600w\"; \ndelete tableImgElement.style.removeProperty('aspect-ratio'); \ntableAnchorElementList = figureElementList[0].getElementsByTagName(\"a\"); \nif ( tableAnchorElementList.length != 1){ \n\talert(\"Status table image link\/anchor not found\"); \n}; \ntableAnchorElement = tableAnchorElementList[0];tableAnchorElement.href= \"\/?p=5571&train_number=714\"; \n\t\r\n\r\n});\r\n<\/script><!-- Find My Train - Special Train Statuses --><\/p>\n\n\n<p><script>\r\n\/\/\r\n\/\/ Update the details for the currently selected train\r\n\/\/\r\n\r\n\/\/ We need to wait until the entire page is loaded so use \"window.addEventListener('load'...\"\r\nwindow.addEventListener('load', function () {\r\n\t\r\n\t\/\/ Get reference to current train status heading\r\n\tcurrTrainStatusElement = document.getElementsByClassName(\"zoyinc-find_my_train-curr_train_status\")[0];\r\n\t\r\n\t\/\/ Get a reference to the title heading\r\n\tcurrTrainTitleElement = document.getElementsByClassName(\"zoyinc_post_title\")[0];\r\n\t\r\n\t\/\/ Get a reference to the current train group\r\n\tcurrTrainGroupElement = document.getElementsByClassName(\"zoyinc_curr_train_details\")[0];\r\n\t\r\n\t\/\/ Get references to the current train status\r\n\tcurrTrainCustomName = currTrainGroupElement.getElementsByClassName(\"zoyinc_curr_train_custom_name\")[0];\r\n\tcurrTrainDescription = currTrainGroupElement.getElementsByClassName(\"zoyinc_curr_train_description\")[0];\r\n\t\r\n\t\/\/\r\n\t\/\/ The status details for the current train are in separate tables and\r\n\t\/\/ also using columns. This was primarily done so that it displayed correctly on phones\r\n\t\/\/ \r\n\t\r\n\t\/\/ Get a reference to the cell containing location details\r\n\tcurrTrainLocationTable = currTrainGroupElement.getElementsByClassName(\"zoyinc_curr_train_location\")[0].getElementsByTagName('table')[0];\r\n\tcurrTrainLocationTable.rows[0].cells[0].width = \"35%\";\r\n\tcurrTrainLocationStr = currTrainLocationTable.rows[0].cells[1];\r\n\t\r\n\t\/\/ Get a reference to the cell containing the list of trains in this set details\r\n\tcurrTrainConnectedTrainsTable = currTrainGroupElement.getElementsByClassName(\"zoyinc_curr_train_connected_trains\")[0].getElementsByTagName('table')[0];\r\n\tcurrTrainConnectedTrainsTable.rows[0].cells[0].width = \"35%\";\r\n\tcurrTrainConnectedTrainsStr = currTrainConnectedTrainsTable.rows[0].cells[1];\r\n\t\r\n\t\/\/ Get a reference to the cell containing service details\r\n\tcurrTrainServiceTable = currTrainGroupElement.getElementsByClassName(\"zoyinc_curr_train_service\")[0].getElementsByTagName('table')[0];\r\n\tcurrTrainServiceTable.rows[0].cells[0].width = \"35%\";\r\n\tcurrTrainServiceStr = currTrainServiceTable.rows[0].cells[1];\r\n\t\r\n\t\/\/ Get a reference to the cell containing updated time details\r\n\tcurrTrainUpdatedTable = currTrainGroupElement.getElementsByClassName(\"zoyinc_curr_train_updated_trains\")[0].getElementsByTagName('table')[0];\r\n\tcurrTrainUpdatedTable.rows[0].cells[0].width = \"35%\";\r\n\tcurrTrainUpdatedStr = currTrainUpdatedTable.rows[0].cells[1];\r\n\r\nrouteFullName = \"Waitemata To Manukau\";currTrainTitleElement.innerHTML = currTrainTitleElement.innerHTML + \" - AM714\"; \ncurrTrainCustomName.innerText = \"AM714 - Uber Eats\"; \ncurrTrainDescription.innerHTML = \"Uber Eats 2025 outdoor campaign. \"; \ncurrTrainLocationStr.innerHTML = \"<a href='https:\/\/www.google.com\/maps\/search\/?api=1&query=-36.9356277777778,174.831552777778'>Westfield<\/a>\"; \ncurrTrainServiceStr.innerHTML  = routeFullName; \ncurrTrainConnectedTrainsStr.innerHTML = \"687, 714* (714,714,714,714,714,714,714,714,714,714) [N]\"; \ncurrTrainUpdatedStr.innerHTML = \"12\/05\/2026 - 8:19 am\"; \ntrainFeaturedImgURL = \"\/wp-content\/uploads\/2025\/12\/FindMyTrainAMP714_UberEats_01_01.jpg\"; \ncurrTrainStatusElement.innerText = \"Train is early by 1 minute.\"; \nheightLocationTable = currTrainLocationTable.rows[0].offsetHeight; \nheightConnectedTrainsTable = currTrainConnectedTrainsTable.rows[0].offsetHeight; \nif ( heightLocationTable > heightConnectedTrainsTable){  \n\tcurrTrainConnectedTrainsTable.setAttribute(\"height\", heightLocationTable);  \n} else { \n\tcurrTrainLocationTable.setAttribute(\"height\", heightConnectedTrainsTable);  \n}; \nheightTrainServiceTable = currTrainServiceTable.rows[0].offsetHeight; \nheightTrainUpdatedTable = currTrainUpdatedTable.rows[0].offsetHeight; \nif ( heightTrainServiceTable > heightTrainUpdatedTable){  \n\tcurrTrainUpdatedTable.setAttribute(\"height\", heightTrainServiceTable);  \n} else { \n\tcurrTrainServiceTable.setAttribute(\"height\", heightTrainUpdatedTable);  \n}; \n\t\r\n\t\/\/\r\n\t\/\/ Update the trip details table for the current train\r\n\t\/\/  \r\n\tfigureElement = document.getElementsByClassName(\"zoyinc-find_my_train-cur_train_trips\")[0]; \r\n\tcurTrainTripTable = figureElement.getElementsByTagName(\"table\")[0];\r\n\r\ncurTrainTripTable.rows[1].cells[0].innerHTML = \"Waitemata Train Station 1\";curTrainTripTable.rows[1].cells[1].innerHTML = \"7:56 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[2].cells[0].innerHTML = \"Orakei Train Station 2\";curTrainTripTable.rows[2].cells[1].innerHTML = \"8:02 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[3].cells[0].innerHTML = \"Meadowbank Train Station 2\";curTrainTripTable.rows[3].cells[1].innerHTML = \"8:04 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[4].cells[0].innerHTML = \"Glen Innes Train Station 2\";curTrainTripTable.rows[4].cells[1].innerHTML = \"8:08 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[5].cells[0].innerHTML = \"Panmure Train Station 2\";curTrainTripTable.rows[5].cells[1].innerHTML = \"8:11 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[6].cells[0].innerHTML = \"Sylvia Park Train Station 2\";curTrainTripTable.rows[6].cells[1].innerHTML = \"8:14 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[7].cells[0].innerHTML = \"Otahuhu Train Station 3\";curTrainTripTable.rows[7].cells[1].innerHTML = \"8:21 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[8].cells[0].innerHTML = \"Middlemore Train Station 2\";curTrainTripTable.rows[8].cells[1].innerHTML = \"8:24 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[9].cells[0].innerHTML = \"Papatoetoe Train Station 2\";curTrainTripTable.rows[9].cells[1].innerHTML = \"8:27 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[10].cells[0].innerHTML = \"Puhinui Train Station 2\";curTrainTripTable.rows[10].cells[1].innerHTML = \"8:29 am\";newRow = curTrainTripTable.insertRow(curTrainTripTable.rows.length);newRow.insertCell(0);newRow.insertCell(1);curTrainTripTable.rows[11].cells[0].innerHTML = \"Manukau Train Station 1\";curTrainTripTable.rows[11].cells[1].innerHTML = \"8:34 am\";\t\/\/\r\n\t\/\/ Update the Featured image\r\n\t\/\/ \r\n\tfeaturedImageFigureElement = document.getElementsByClassName(\"zoyinc_featured_image_single\")[0]; \r\n\tfeaturedImgElement = featuredImageFigureElement.getElementsByTagName(\"img\")[0];\r\n\tfeaturedImgElement.src= trainFeaturedImgURL;\r\n\tfeaturedImgElement.srcset= trainFeaturedImgURL + \" 1200w\";\r\n\tdelete featuredImgElement.style.removeProperty('aspect-ratio');\r\n\t\r\n\r\n\r\n});\t\r\n\r\n<\/script>\t<!-- Find My Train - Update Current Train Details --><\/p>\n\n\n\n<div class=\"wp-block-group zoyinc_curr_train_details has-global-padding is-layout-constrained wp-container-core-group-is-layout-3 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\">\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-1 wp-block-group-is-layout-flex\">\n<h5 class=\"wp-block-heading zoyinc_curr_train_custom_name\" style=\"padding-bottom:1%;line-height:1.7\">Biggest Coolest Train In Auckland<\/h5>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-2 wp-block-group-is-layout-flex\" style=\"margin-top:3%;margin-bottom:3%\">\n<p class=\"zoyinc_curr_train_description\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">This train is the latest and coolest train to be on the Auckland transport network. Enjoy the luxury of well appointed carriages and a superb loco.<\/p>\n<\/div>\n\n\n\n<div style=\"height:21px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<figure class=\"wp-block-table zoyinc_curr_train_location\" style=\"margin-top:2%;margin-right:2%;margin-bottom:2%;margin-left:2%;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;line-height:1.1\"><table class=\"has-custom-zoyinc-5-background-color has-background\" style=\"border-style:none;border-width:0px\"><tbody><tr><td><strong>Location<\/strong><\/td><td>Unknown location<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-container-core-column-is-layout-2 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<figure class=\"wp-block-table zoyinc_curr_train_connected_trains\" style=\"margin-top:2%;margin-right:2%;margin-bottom:2%;margin-left:2%;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;line-height:1.1\"><table class=\"has-custom-zoyinc-5-background-color has-background\" style=\"border-style:none;border-width:0px\"><tbody><tr><td><strong>Trains<\/strong><\/td><td>Unknown trains<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<figure class=\"wp-block-table zoyinc_curr_train_service\" style=\"margin-top:2%;margin-right:2%;margin-bottom:2%;margin-left:2%;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;line-height:1.1\"><table class=\"has-custom-zoyinc-5-background-color has-background\" style=\"border-style:none;border-width:0px\"><tbody><tr><td><strong>Service<\/strong><\/td><td>Unknown service<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-4 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<figure class=\"wp-block-table zoyinc_curr_train_updated_trains\" style=\"margin-top:2%;margin-right:2%;margin-bottom:2%;margin-left:2%;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;line-height:1.1\"><table class=\"has-custom-zoyinc-5-background-color has-background\" style=\"border-style:none;border-width:0px\"><tbody><tr><td><strong>Updated<\/strong><\/td><td>Unknown update<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"margin-top:0;margin-bottom:0;height:44px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h5 class=\"wp-block-heading has-text-align-center zoyinc-find_my_train-curr_train_status\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\">Train status message<\/h5>\n\n\n\n<div style=\"margin-top:0;margin-bottom:0;height:17px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\">\n<figure class=\"wp-block-table is-style-stripes zoyinc-find_my_train-cur_train_trips\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;line-height:1\"><table class=\"has-custom-zoyinc-5-background-color has-background\"><thead><tr><th>Platform<\/th><th>Depart<\/th><\/tr><\/thead><tbody><tr><td>Train is out of service.<\/td><td>.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n\n<div style=\"margin-top:0;margin-bottom:0;height:28px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group zoyinc_train_select_form_master_group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\">\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-5 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile wp-container-content-1 is-layout-flex wp-container-core-columns-is-layout-3 wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:var(--wp--preset--spacing--30);padding-bottom:0;padding-left:var(--wp--preset--spacing--30)\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:80%\">\n<div class=\"wp-block-buttons is-layout-flex wp-container-core-buttons-is-layout-1 wp-block-buttons-is-layout-flex\" style=\"margin-top:0;margin-bottom:0\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100 has-custom-font-size zoyinc_dummy_select_list has-medium-font-size\"><a class=\"wp-block-button__link has-contrast-color has-base-background-color has-text-color has-background wp-element-button\" style=\"border-width:1px;padding-top:2.5%;padding-right:10px;padding-bottom:2.5%;padding-left:10px\">List of trains that are running<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:20%\">\n<div class=\"wp-block-buttons is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-2 wp-block-buttons-is-layout-flex\" style=\"margin-top:0;margin-bottom:0\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100 has-custom-font-size zoyinc_dummy_submit_button has-medium-font-size\"><a class=\"wp-block-button__link has-base-color has-custom-zoyinc-3-background-color has-text-color has-background wp-element-button\" style=\"border-style:none;border-width:0px;padding-top:4%;padding-right:0px;padding-bottom:4%;padding-left:0px\">Go<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"margin-top:0;margin-bottom:0;height:39px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\">Special Trains<\/h3>\n\n\n\n<div style=\"margin-top:0;margin-bottom:0;height:21px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group zoyinc-find_my_train-train_statuses_group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\">\n<h5 class=\"wp-block-heading zoyinc_status_group_heading\" style=\"margin-bottom:1%;padding-right:0;padding-left:0\">AMP123 &#8211; A new wrapped train about train safety<\/h5>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-4 wp-block-columns-is-layout-flex\" style=\"margin-top:1%;margin-bottom:1%\">\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-7 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-bottom:0;flex-basis:38%\">\n<figure class=\"wp-block-image size-full has-custom-border zoyinc_status_group_img\"><a  href=\"https:\/\/www.zoyinc.com\/?train_number=212&#038;p=5571\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"315\" src=\"http:\/\/www.zoyinc.com\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP000Small_01.jpg\" alt=\"\" class=\"wp-image-5639\" style=\"border-style:none;border-width:0px;aspect-ratio:1.607717041800643;object-fit:cover\" srcset=\"http:\/\/www.zoyinc.com\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP000Small_01.jpg 600w, http:\/\/www.zoyinc.com\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP000Small_01-300x158.jpg 300w, http:\/\/www.zoyinc.com\/wp-content\/uploads\/2023\/11\/FindMyTrainAMP000Small_01-250x131.jpg 250w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-8 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-bottom:0\">\n<figure class=\"wp-block-table is-style-stripes zoyinc_status_group_table\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-bottom:0;line-height:1\"><table><tbody><tr><td><strong>Location<\/strong><\/td><td>A New Train Station<\/td><\/tr><tr><td><strong>Service<\/strong><\/td><td>From Here To There<\/td><\/tr><tr><td><strong>Trains<\/strong><\/td><td>AMP00 and AMP01<\/td><\/tr><tr><td><strong>Updated<\/strong><\/td><td>01\/01\/1980 &#8211; 12:00am<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"margin-top:0;margin-bottom:0;height:66px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Biggest Coolest Train In Auckland This train is the latest and coolest train to be on the Auckland transport network. Enjoy the luxury of well appointed carriages and a superb loco. Location Unknown location Trains Unknown trains Service Unknown service Updated Unknown update Train status message Platform Depart Train is out of service. . Special [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":5617,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[761,837],"tags":[],"class_list":["post-5571","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trains","category-yarpp-group-find-my-train"],"_links":{"self":[{"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=\/wp\/v2\/posts\/5571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5571"}],"version-history":[{"count":184,"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=\/wp\/v2\/posts\/5571\/revisions"}],"predecessor-version":[{"id":6534,"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=\/wp\/v2\/posts\/5571\/revisions\/6534"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=\/wp\/v2\/media\/5617"}],"wp:attachment":[{"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5571"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.zoyinc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}