{"id":26277,"date":"2026-06-24T16:17:22","date_gmt":"2026-06-24T16:17:22","guid":{"rendered":"https:\/\/globalnewstoday.uk\/index.php\/2026\/06\/24\/state-theatre-new-jersey-brings-back-movie-series-town-topics\/"},"modified":"2026-06-24T16:17:22","modified_gmt":"2026-06-24T16:17:22","slug":"state-theatre-new-jersey-brings-back-movie-series-town-topics","status":"publish","type":"post","link":"https:\/\/globalnewstoday.uk\/index.php\/2026\/06\/24\/state-theatre-new-jersey-brings-back-movie-series-town-topics\/","title":{"rendered":"State Theatre New Jersey Brings Back Movie Series &#8211; Town Topics"},"content":{"rendered":"<p>State Theatre New Jersey in New Brunswick has announced the return of the Free Summer Movie Series starting on Tuesday, July 7. Tickets are free, but registration is required at STNJ.org.<br \/>Movies featured in the 2026 series include <em>A Minecraft Movie<\/em> on July 7, <em>Lilo and Stitch<\/em> on July 14, Zootopia 2 on July 21, <em>How to Train Your Dragon<\/em> on July 28, and <em>The SpongeBob Movie: Search for SquarePants<\/em> on August 4. Showings for all five movies will be at 10:30 a.m. and 6:30 p.m. All movie screenings will include Spanish subtitles.<br \/>The entire series is free of charge to the community, offering young people the chance to enjoy these films, whether with their families, summer camps, or other groups. The movies will be shown at the historic State Theatre New Jersey, a 1921 movie palace that has become one of New Jersey\u2019s premier venues for live performance. The State Theatre\u2019s state-of-the-art HD digital cinema projection system includes a 46\u2019 Stewart film screen, a Barco projector, and digital surround sound.<br \/>State Theatre New Jersey is located at 15 Livingston Avenue, New Brunswick.<br \/>June 17, 2026<br \/>Get the digital issue, daily stories, and the <strong>Town Topics Weekender<\/strong> for a free news recap in your inbox every week &#8211; <a href=\"https:\/\/mailchi.mp\/witherspoonmediagroup\/19wl29fcdl\"><strong>click here<\/strong><\/a><br \/><strong>Mailing Lists <\/strong><br \/><script type=\"text\/javascript\" src=\"\/\/s3.amazonaws.com\/downloads.mailchimp.com\/js\/mc-validate.js\"><\/script><script type=\"text\/javascript\">(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';}(jQuery));var $mcj = jQuery.noConflict(true);\n    \/\/ SMS Phone Multi-Country Functionality\n    if(!window.MC) {\n      window.MC = {};\n    }\n    window.MC.smsPhoneData = {\n      defaultCountryCode: 'US',\n      programs: [],\n      smsProgramDataCountryNames: []\n    };<\/p>\n<p>    function getCountryUnicodeFlag(countryCode) {\n       return countryCode.toUpperCase().replace(\/.\/g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397))\n    };<\/p>\n<p>    \/\/ HTML sanitization function to prevent XSS\n    function sanitizeHtml(str) {\n      if (typeof str !== 'string') return '';\n      return str\n        .replace(\/&\/g, '&amp;')\n        .replace(\/<\/g, '&lt;') .replace(\/>\/g, '&gt;')\n        .replace(\/\"\/g, '&quot;')\n        .replace(\/'\/g, '&#x27;')\n        .replace(\/\/\/g, '&#x2F;');\n    }<\/p>\n<p>    \/\/ URL sanitization function to prevent javascript: and data: URLs\n    function sanitizeUrl(url) {\n      if (typeof url !== 'string') return '';\n      const trimmedUrl = url.trim().toLowerCase();\n      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {\n        return '#';\n      }\n      return url;\n    }<\/p>\n<p>    const getBrowserLanguage = () => {\n      if (!window?.navigator?.language?.split('-')[1]) {\n        return window?.navigator?.language?.toUpperCase();\n      }\n      return window?.navigator?.language?.split('-')[1];\n    };<\/p>\n<p>    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {\n      if (!smsProgramData || smsProgramData.length === 0) {\n        return null;\n      }<\/p>\n<p>      const browserLanguage = getBrowserLanguage();<\/p>\n<p>      if (browserLanguage) {\n        const foundProgram = smsProgramData.find(\n          (program) => program?.countryCode === browserLanguage,\n        );\n        if (foundProgram) {\n          return foundProgram;\n        }\n      }<\/p>\n<p>      if (defaultCountryCode) {\n        const foundProgram = smsProgramData.find(\n          (program) => program?.countryCode === defaultCountryCode,\n        );\n        if (foundProgram) {\n          return foundProgram;\n        }\n      }<\/p>\n<p>      return smsProgramData[0];\n    }<\/p>\n<p>    function updateSmsLegalText(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }<\/p>\n<p>      const programs = window?.MC?.smsPhoneData?.programs;\n      if (!programs || !Array.isArray(programs)) {\n        return;\n      }<\/p>\n<p>      const program = programs.find(program => program?.countryCode === countryCode);\n      if (!program || !program.requiredTemplate) {\n        return;\n      }<\/p>\n<p>      const legalTextElement = document.querySelector('#legal-text-' + fieldName);\n      if (!legalTextElement) {\n        return;\n      }<\/p>\n<p>      \/\/ Remove HTML tags and clean up the text\n      const divRegex = new RegExp('<\/?[div][^>]*>', 'gi');\n      const fullAnchorRegex = new RegExp('<a.*?<\/a>', 'g');\n      const anchorRegex = new RegExp('<a href=\"(.*?)\" target=\"(.*?)\">(.*?)<\/a>');<\/p>\n<p>      const requiredLegalText = program.requiredTemplate\n        .replace(divRegex, '')\n        .replace(fullAnchorRegex, '')\n        .slice(0, -1);<\/p>\n<p>      const anchorMatches = program.requiredTemplate.match(anchorRegex);<\/p>\n<p>      if (anchorMatches && anchorMatches.length >= 4) {\n        \/\/ Create link element safely using DOM methods instead of innerHTML\n        const linkElement = document.createElement('a');\n        linkElement.href = sanitizeUrl(anchorMatches[1]);\n        linkElement.target = sanitizeHtml(anchorMatches[2]);\n        linkElement.textContent = sanitizeHtml(anchorMatches[3]);<\/p>\n<p>        legalTextElement.textContent = requiredLegalText + ' ';\n        legalTextElement.appendChild(linkElement);\n        legalTextElement.appendChild(document.createTextNode('.'));\n      } else {\n        legalTextElement.textContent = requiredLegalText + '.';\n      }\n    }<\/p>\n<p>    function generateDropdownOptions(smsProgramData) {\n      if (!smsProgramData || smsProgramData.length === 0) {\n        return '';\n      }<\/p>\n<p>      return smsProgramData.map(program => {\n        const flag = getCountryUnicodeFlag(program.countryCode);\n        const countryName = getCountryName(program.countryCode);\n        const callingCode = program.countryCallingCode || '';\n        \/\/ Sanitize all values to prevent XSS\n        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');\n        const sanitizedCountryName = sanitizeHtml(countryName || '');\n        const sanitizedCallingCode = sanitizeHtml(callingCode || '');\n        return '<option value=\"' + sanitizedCountryCode + '\">' + sanitizedCountryName + ' ' + sanitizedCallingCode + '<\/option>';\n      }).join('');\n    }<\/p>\n<p>    function getCountryName(countryCode) {\n      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames && Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {\n        for (let i = 0; i < window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {\n          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {\n            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;\n          }\n        }\n      }\n      return countryCode;\n    }\n\n    function getDefaultPlaceholder(countryCode) {\n      if (!countryCode || typeof countryCode !== 'string') {\n        return '+1 000 000 0000'; \/\/ Default US placeholder\n      }\n      \n      const mockPlaceholders = [\n        {\n      countryCode: 'US',\n      placeholder: '+1 000 000 0000',\n      helpText: 'Include the US country code +1 before the phone number',\n    },\n    {\n      countryCode: 'GB',\n      placeholder: '+44 0000 000000',\n      helpText: 'Include the GB country code +44 before the phone number',\n    },\n    {\n      countryCode: 'CA',\n      placeholder: '+1 000 000 0000',\n      helpText: 'Include the CA country code +1 before the phone number',\n    },\n    {\n      countryCode: 'AU',\n      placeholder: '+61 000 000 000',\n      helpText: 'Include the AU country code +61 before the phone number',\n    },\n    {\n      countryCode: 'DE',\n      placeholder: '+49 000 0000000',\n      helpText: 'F\u00fcgen Sie vor der Telefonnummer die DE-L\u00e4ndervorwahl +49 ein',\n    },\n    {\n      countryCode: 'FR',\n      placeholder: '+33 0 00 00 00 00',\n      helpText: 'Incluez le code pays FR +33 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n    },\n    {\n      countryCode: 'ES',\n      placeholder: '+34 000 000 000',\n      helpText: 'Incluya el c\u00f3digo de pa\u00eds ES +34 antes del n\u00famero de tel\u00e9fono',\n    },\n    {\n      countryCode: 'NL',\n      placeholder: '+31 0 00000000',\n      helpText: 'Voeg de NL-landcode +31 toe v\u00f3\u00f3r het telefoonnummer',\n    },\n    {\n      countryCode: 'BE',\n      placeholder: '+32 000 00 00 00',\n      helpText: 'Incluez le code pays BE +32 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n    },\n    {\n      countryCode: 'CH',\n      placeholder: '+41 00 000 00 00',\n      helpText: 'F\u00fcgen Sie vor der Telefonnummer die CH-L\u00e4ndervorwahl +41 ein',\n    },\n    {\n      countryCode: 'AT',\n      placeholder: '+43 000 000 0000',\n      helpText: 'F\u00fcgen Sie vor der Telefonnummer die AT-L\u00e4ndervorwahl +43 ein',\n    },\n    {\n      countryCode: 'IE',\n      placeholder: '+353 00 000 0000',\n      helpText: 'Include the IE country code +353 before the phone number',\n    },\n    {\n      countryCode: 'IT',\n      placeholder: '+39 000 000 0000',\n      helpText:\n        'Includere il prefisso internazionale IT +39 prima del numero di telefono',\n    },\n      ];\n\n      const selectedPlaceholder = mockPlaceholders.find(function(item) {\n        return item &#038;&#038; item.countryCode === countryCode;\n      });\n      \n      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;\n    }\n\n    function updatePlaceholder(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      const phoneInput = document.querySelector('#mce-' + fieldName);\n      if (!phoneInput) {\n        return;\n      }\n      \n      const placeholder = getDefaultPlaceholder(countryCode);\n      if (placeholder) {\n        phoneInput.placeholder = placeholder;\n      }\n    }\n\n    function updateCountryCodeInstruction(countryCode, fieldName) {\n      updatePlaceholder(countryCode, fieldName);\n      \n    }\n\n    function getDefaultHelpText(countryCode) {\n      const mockPlaceholders = [\n        {\n          countryCode: 'US',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the US country code +1 before the phone number',\n        },\n        {\n          countryCode: 'GB',\n          placeholder: '+44 0000 000000',\n          helpText: 'Include the GB country code +44 before the phone number',\n        },\n        {\n          countryCode: 'CA',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the CA country code +1 before the phone number',\n        },\n        {\n          countryCode: 'AU',\n          placeholder: '+61 000 000 000',\n          helpText: 'Include the AU country code +61 before the phone number',\n        },\n        {\n          countryCode: 'DE',\n          placeholder: '+49 000 0000000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die DE-L\u00e4ndervorwahl +49 ein',\n        },\n        {\n          countryCode: 'FR',\n          placeholder: '+33 0 00 00 00 00',\n          helpText: 'Incluez le code pays FR +33 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'ES',\n          placeholder: '+34 000 000 000',\n          helpText: 'Incluya el c\u00f3digo de pa\u00eds ES +34 antes del n\u00famero de tel\u00e9fono',\n        },\n        {\n          countryCode: 'NL',\n          placeholder: '+31 0 00000000',\n          helpText: 'Voeg de NL-landcode +31 toe v\u00f3\u00f3r het telefoonnummer',\n        },\n        {\n          countryCode: 'BE',\n          placeholder: '+32 000 00 00 00',\n          helpText: 'Incluez le code pays BE +32 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'CH',\n          placeholder: '+41 00 000 00 00',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die CH-L\u00e4ndervorwahl +41 ein',\n        },\n        {\n          countryCode: 'AT',\n          placeholder: '+43 000 000 0000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die AT-L\u00e4ndervorwahl +43 ein',\n        },\n        {\n          countryCode: 'IE',\n          placeholder: '+353 00 000 0000',\n          helpText: 'Include the IE country code +353 before the phone number',\n        },\n        {\n          countryCode: 'IT',\n          placeholder: '+39 000 000 0000',\n          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',\n        },\n      ];\n      \n      if (!countryCode || typeof countryCode !== 'string') {\n        return mockPlaceholders[0].helpText;\n      }\n      \n      const selectedHelpText = mockPlaceholders.find(function(item) {\n          return item &#038;&#038; item.countryCode === countryCode;\n        });\n        \n        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;\n    }\n\n    function setDefaultHelpText(countryCode) {\n      const helpTextSpan = document.querySelector('#help-text');\n      if (!helpTextSpan) {\n        return;\n      }\n\n        \n    }\n\n    function updateHelpTextCountryCode(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      setDefaultHelpText(countryCode);\n    }\n\n    function initializeSmsPhoneDropdown(fieldName) {\n      if (!fieldName || typeof fieldName !== 'string') {\n        return;\n      }\n      \n      const dropdown = document.querySelector('#country-select-' + fieldName);\n      const displayFlag = document.querySelector('#flag-display-' + fieldName);\n      \n      if (!dropdown || !displayFlag) {\n        return;\n      }\n\n      const smsPhoneData = window.MC?.smsPhoneData;\n      if (smsPhoneData &#038;&#038; smsPhoneData.programs &#038;&#038; Array.isArray(smsPhoneData.programs)) {\n        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);\n      }\n\n      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);\n      if (defaultProgram &#038;&#038; defaultProgram.countryCode) {\n        dropdown.value = defaultProgram.countryCode;\n        \n        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);\n        if (flagSpan) {\n          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);\n          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');\n        }\n        \n        updateSmsLegalText(defaultProgram.countryCode, fieldName);\n        updatePlaceholder(defaultProgram.countryCode, fieldName);\n        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);\n      }\n\n     \n      var smsNotRequiredRemoveCountryCodeEnabled = false;\n      var smsField = Object.values({\"EMAIL\":{\"name\":\"EMAIL\",\"label\":\"Email Address\",\"helper_text\":\"\",\"type\":\"email\",\"required\":true,\"audience_field_name\":\"Email Address\",\"merge_id\":0,\"help_text_enabled\":false,\"enabled\":true,\"order\":0,\"field_type\":\"merge\"},\"interests_18823\":{\"name\":\"interests_18823\",\"label\":\"Mailing Lists\",\"helper_text\":\"\",\"type\":\"checkbox\",\"required\":false,\"choices\":[{\"value\":\"2048\",\"label\":\"The Weekender\"},{\"value\":\"4096\",\"label\":\"Daily Topics\"},{\"value\":\"8192\",\"label\":\"Digital Issue\"}],\"audience_field_name\":\"Mailing Lists\",\"enabled\":true,\"order\":1,\"field_type\":\"group\",\"group_id\":18823}}).find(function(f) { return f.name === fieldName &#038;&#038; f.type === 'smsphone'; });\n      var isRequired = smsField ? smsField.required : false;\n      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;\n      \n      var phoneInput = document.querySelector('#mce-' + fieldName);\n      if (phoneInput &#038;&#038; defaultProgram.countryCallingCode &#038;&#038; shouldAppendCountryCode) {\n        phoneInput.value = defaultProgram.countryCallingCode;\n      }\n      \n\n\n      displayFlag?.addEventListener('click', function(e) {\n        dropdown.focus();\n      });\n\n\n      dropdown?.addEventListener('change', function() {\n        const selectedCountry = this.value;\n        \n        if (!selectedCountry || typeof selectedCountry !== 'string') {\n          return;\n        }\n        \n        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);\n        if (flagSpan) {\n          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);\n          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');\n        }\n\n         \n        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {\n          return program &#038;&#038; program.countryCode === selectedCountry;\n        });\n\n        var smsNotRequiredRemoveCountryCodeEnabled = false;\n        var smsField = Object.values({\"EMAIL\":{\"name\":\"EMAIL\",\"label\":\"Email Address\",\"helper_text\":\"\",\"type\":\"email\",\"required\":true,\"audience_field_name\":\"Email Address\",\"merge_id\":0,\"help_text_enabled\":false,\"enabled\":true,\"order\":0,\"field_type\":\"merge\"},\"interests_18823\":{\"name\":\"interests_18823\",\"label\":\"Mailing Lists\",\"helper_text\":\"\",\"type\":\"checkbox\",\"required\":false,\"choices\":[{\"value\":\"2048\",\"label\":\"The Weekender\"},{\"value\":\"4096\",\"label\":\"Daily Topics\"},{\"value\":\"8192\",\"label\":\"Digital Issue\"}],\"audience_field_name\":\"Mailing Lists\",\"enabled\":true,\"order\":1,\"field_type\":\"group\",\"group_id\":18823}}).find(function(f) { return f.name === fieldName &#038;&#038; f.type === 'smsphone'; });\n        var isRequired = smsField ? smsField.required : false;\n        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;\n        \n        var phoneInput = document.querySelector('#mce-' + fieldName);\n        if (phoneInput &#038;&#038; selectedProgram.countryCallingCode &#038;&#038; shouldAppendCountryCode) {\n          phoneInput.value = selectedProgram.countryCallingCode;\n        }\n        \n        \n        updateSmsLegalText(selectedCountry, fieldName);\n        updatePlaceholder(selectedCountry, fieldName);\n        updateCountryCodeInstruction(selectedCountry, fieldName);\n      });\n    }\n\n    document.addEventListener('DOMContentLoaded', function() {\n      const smsPhoneFields = document.querySelectorAll('[id^=\"country-select-\"]');\n      \n      smsPhoneFields.forEach(function(dropdown) {\n        const fieldName = dropdown?.id.replace('country-select-', '');\n        initializeSmsPhoneDropdown(fieldName);\n      });\n    });\n    <\/script><\/p>\n<p><a href=\"https:\/\/news.google.com\/rss\/articles\/CBMikgFBVV95cUxPd0czYndBc3RGR1RKbVd2czg1N0JDZERicEE0eFlsMUNZdWFHeEl6d2xmSmVWa3VPOFBWVWhxbkR3eVRfNzdlNXJoN1A0RldXbXp3bjhRLWs2UUVxQ0JOSnhMUTljVFgwNTVhX0VSYTloY2dHbXY2WGtkTUREZmxueDY2cVE2N29uVDlxcEdvdjlDdw?oc=5\">source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>State Theatre New Jersey in New Brunswick has announced the return of the Free Summer Movie Series starting on Tuesday, July 7. Tickets are free, but registration is required at STNJ.org.Movies featured in the 2026 series include A Minecraft Movie on July 7, Lilo and Stitch on July 14, Zootopia 2 on July 21, How [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":26278,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-26277","post","type-post","status-publish","format-standard","has-post-thumbnail","category-entertainment"],"_links":{"self":[{"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/posts\/26277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/comments?post=26277"}],"version-history":[{"count":0,"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/posts\/26277\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/media\/26278"}],"wp:attachment":[{"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/media?parent=26277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/categories?post=26277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/globalnewstoday.uk\/index.php\/wp-json\/wp\/v2\/tags?post=26277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}