{"id":2800,"date":"2023-12-11T13:03:56","date_gmt":"2023-12-11T12:03:56","guid":{"rendered":""},"modified":"2025-11-04T10:04:17","modified_gmt":"2025-11-04T09:04:17","slug":"yrkesintroduktion","status":"publish","type":"program_orientation","link":"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/","title":{"rendered":"Yrkesintroduktion"},"content":{"rendered":"\n\t\n\t\n\t\n\t\n\t\n\n<section \n\tclass=\"ams-hero ams-hero--classic ams-hero--75 c-block l-stacked  \"\n\tdata-color-scheme=\"hero\"\n\tstyle=\"\">\n\t<div class=\"ams-hero__container u-items-start u-justify-center\">\n\t\t<div\n\t\t\tclass=\"ams-hero__content l-stack l-stack-xl is-left is-left@md\" >\n\t\t\t<div class=\"l-stack l-stack-lg\">\n\t\t\t\t\t\n\t<div\n\tclass=\"c-heading u-font-huge u-font-mobile\"\n\tstyle=\"--font-size: 45px;\">\n\t\t\n\t\t\t\t\t\t\t\t\t<span class=\"c-heading__sub is-above u-font-title-3\">\n\t\t\t\t\tIntroduktionsprogram\n\t\t\t\t<\/span>\n\t\t\t\tYrkes\u00adintroduktion\n\t\t\t\t\t\t\t\n\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"text l-stack u-font-body\">\n\t\t\t\t\t\t<p>Saknar du n\u00f6dv\u00e4ndiga betyg f\u00f6r ett yrkesprogram? Yrkesintroduktion erbjuder yrkesinriktad utbildning f\u00f6r att underl\u00e4tta intr\u00e4de i yrkesprogram eller arbetslivet.<\/p>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t<\/div>\n\n\t\n\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"c-bg c-bg--img\" data-settings=\"{&quot;desktop_settings&quot;:{&quot;size&quot;:&quot;cover&quot;,&quot;position&quot;:&quot;top-right&quot;},&quot;mobile_settings&quot;:{&quot;size&quot;:&quot;cover&quot;,&quot;position&quot;:&quot;top-right&quot;}}\" data-position=\"middle-center\" data-size=\"cover\">\n\t\t\t<img decoding=\"async\" width=\"1200\" height=\"1573\" src=\"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb-1200x1573.jpg\" class=\"attachment-xxl size-xxl\" alt=\"F\u00f6rem\u00e5l som representerar Praktiska Gymnasiets yrkesprogram ligger utlagda p\u00e5 m\u00f6rkt tr\u00e4.\" sizes=\"(max-width: 1200px) 100vw, 1200px\" srcset=\"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb-1200x1573.jpg 1200w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb-300x393.jpg 300w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb-400x524.jpg 400w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb-600x786.jpg 600w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb-800x1048.jpg 800w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb-1024x1342.jpg 1024w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb.jpg 1465w\" \/>\n\t\t<\/div>\n\t\n<\/section>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\t\n\t<h1\n\t\n\tclass=\"\n\tc-heading c-heading--icon\n\tu-font-title-1\n\t\n\t\n\t\n\tc-heading--left\n\tc-heading--left@md\n\t\"\n\tdata-color-scheme=\"white\"\n\tstyle=\"\">\n\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/introduktionsprogrampraktiskaikonerinriktningar94x94px.svg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Ikon i form av en linjal och penna.\" height=\"94\" width=\"94\" \/>\n\t\t\t\t<span class=\"text\">Yrkes\u00adintroduktion i Norrk\u00f6ping<\/span>\n\t\t\t\t\t\t<\/h1>\n\n\n\n\t<div class=\"module_wrapper ams_remote_pages_module \">\n\t\t\t\t\t\t\t<div class=\"container acf-preamble\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\n<p   class=\"site__ingress container text-left  site__text-color--dark  site__free_text--ingress p-0\">\n\tIntroduktionsprogrammet yrkesintroduktion (IMY) v\u00e4nder sig till dig som inte har de godk\u00e4nda betyg fr\u00e5n grundskolan som kr\u00e4vs f\u00f6r beh\u00f6righet till ett nationellt yrkesprogram. M\u00e5let \u00e4r att du ska f\u00e5 en yrkesinriktad utbildning f\u00f6r att du ska kunna s\u00f6ka n\u00e5got av v\u00e5ra yrkesprogram eller underl\u00e4tta f\u00f6r dig att kunna etablera dig p\u00e5 arbetsmarknaden.<\/p>\n\n\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"container core-paragraph\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\n<p><strong>N\u00e4r \u00e4r jag beh\u00f6rig till yrkesintroduktion?<br><\/strong>Du \u00e4r beh\u00f6rig till yrkesintroduktion om du saknar de godk\u00e4nda betyg som kr\u00e4vs f\u00f6r att s\u00f6ka till ett yrkesprogram.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"container core-paragraph\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\n<p><strong>Hur s\u00f6ker jag yrkesintroduktion?<br><\/strong>Om du riskerar att inte bli beh\u00f6rig till ett nationellt program \u00e4r det viktigt att du har minst ett introduktionsprogram i din ans\u00f6kan. Prata med studie- och yrkesv\u00e4gledaren p\u00e5 din grundskola om du \u00e4r os\u00e4ker p\u00e5 vilket introduktionsprogram som \u00e4r b\u00e4st f\u00f6r dig. Du s\u00f6ker till v\u00e5ra introduktionsprogram via gymnasieantagningen.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><\/div>\n<\/div>\n\n\n\n<div class=\"module_wrapper ams_background_module  site__secondary-bg--13   site__text-color--dark  cp-120\" >\n<div class=\"container_width--full_width_conIcon\">\n\t\n<!-- display message when browser is MSEI --- START -->\n<script>\n\tvar ua = window.navigator.userAgent;\n\tvar isIE = \/MSIE|Trident\/.test(ua);\n\tvar elem = document.createElement('div');\n\telem.style.cssText = 'border:4px solid #000;position:absolute;top:0;left:0;width:100%;min-height:200px;z-index:100000000000;background:#fff;color:#000;padding:30px 20px;font-size:26px;text-align:center;';\n\n\twindow.addEventListener('DOMContentLoaded', function () {\n\t\tif (isIE) {\n\t\t\tvar formElem = document.querySelector('.ams-form__form-wrapper');\n\t\t\telem.innerHTML = 'Vi st\u00f6djer inte Microsoft Explorer, v\u00e4nligen anv\u00e4nd en annan webbl\u00e4sare.';\n\t\t\tformElem.innerHTML = '';\n\t\t\tformElem.appendChild(elem);\n\t\t}\n\t});\n<\/script>\n<!-- display message when browser is MSEI --- END -->\n\n\n<style>\n\n<\/style>\n\n<script>\n\tvar blog_id = '27';\n\tvar post_id = '2800';\n\tvar saved_aca_form_id = 'cbljPn5TbY5L';\n\tvar orgUnitId = 'dcd80b57-ac9e-eb11-b1ac-000d3ab8a70a';\n\tvar current_api = 'ms_crm';\n\tvar current_api_type = 'leads-lead';\n<\/script>\n\n\n<div\n\t class=\"ams-form__two-columns ams-form__form-wrapper container ams-form__shape--sharp-corners  site__text-color--dark   site__secondary-bg--13  ams_active_form_state_default\"\n\t>\n\n\t\n\t<div\n\t\tclass=\"pb-5 \">\n\n\t\t\n\t\t\n\t\t\t\t\t<h3\n\t\t\t\tclass=\"site__heading-size-4 ams-form__headline text_align--Center  site__text-color--dark \">\n\t\t\t\tVill du veta mer om att l\u00e4sa yrkesintroduktion?\t\t\t<\/h3>\n\t\t\n\t\t\t\t\t<p\n\t\t\t   class=\"ams-form__description text_align--Center \">D\u00e5 ska du komma p\u00e5 \u00f6ppet hus och prata med v\u00e5ra l\u00e4rare och elever! Fyll i formul\u00e4ret s\u00e5 f\u00e5r du p\u00e5minnelser inf\u00f6r v\u00e5ra \u00f6ppna hus och annan rolig information om gymnasievalet och skolan.<\/p>\n\t\t\n\t\t<form   id=\"ams-form__69e20c7511916\"\n\t\t\t  autocomplete=\"on\"\n\t\t\t  class=\"ams-form\"\n\t\t\t  method=\"POST\">\n\n\t\t\t<input type=\"hidden\" id=\"aca_send_form_nonce\" name=\"aca_send_form_nonce\" value=\"698bac4eaf\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/norrkoping\/wp-json\/wp\/v2\/program_orientation\/2800\" \/>\t\t\t<input type=\"hidden\" name=\"aca_form_id\" value=\"cbljPn5TbY5L\"\/>\n\t\t\t\t\t\t<label\n\t\t\t\t   class=\"  ams-form__field-required ams-form__field ams-form__label\">\n\t\t\t\t<div class=\"_title site__subheading-11\">Epost<\/div>\n\t\t\t\t<input\n\t\t\t\t\t   data-nicename=\"Epost\" maxlength=\"100\" required\t\t\t\t\t   type=\"text\" name=\"email\"\/><\/label>\n\t\t\t\t\t\t<label\n\t\t\t\t   class=\"  ams-form__field-required ams-form__field ams-form__label\">\n\t\t\t\t<div class=\"_title site__subheading-11\">Mobilnummer<\/div>\n\t\t\t\t<input\n\t\t\t\t\t   data-nicename=\"Mobilnummer\" maxlength=\"50\" required\t\t\t\t\t   type=\"text\" name=\"mobilePhoneNumber\"\/><\/label>\n\t\t\t\t\t\t<fieldset   required\t\t\t\t\t  class=\" ams-form__checkbox-horizontal   ams-form__field-required ams-form__field ams-form__label ams-form__checkbox-wrapper\">\n\n\t\t\t\t<div   class=\"_title site__subheading-11\">\n\t\t\t\t\tN\u00e4r b\u00f6rjar du gymnasiet?\t\t\t\t<\/div>\n\n\t\t\t\t\n\t\n\t<div class=\"ams-form__boxes\">\n\t\t\t\t\n\t\t\t<div class=\"ams-form__box-wrapper\">\n\t\t\t\t<label   class=\"container-checkmark site__body_text-2\"\n\t\t\t\t\t   for=\"69e20c7528724\">\n\t\t\t\t\t2026\t\t\t\t\t<input   data-nicename=\"N\u00e4r b\u00f6rjar du gymnasiet?\"\n\t\t\t\t\t\t   type=\"radio\"\n\t\t\t\t\t\t   id=\"69e20c7528724\"\n\t\t\t\t\t\t   name=\"startOfStudies-252412\"\n\t\t\t\t\t\t\t\t\t\t\t\t   value=\"2026\">\n\t\t\t\t\t<span class=\"checkmark\"><\/span>\n\t\t\t\t<\/label>\n\t\t\t<\/div>\n\n\t\t\n\t\t\t<div class=\"ams-form__box-wrapper\">\n\t\t\t\t<label   class=\"container-checkmark site__body_text-2\"\n\t\t\t\t\t   for=\"69e20c7528727\">\n\t\t\t\t\t2027\t\t\t\t\t<input   data-nicename=\"N\u00e4r b\u00f6rjar du gymnasiet?\"\n\t\t\t\t\t\t   type=\"radio\"\n\t\t\t\t\t\t   id=\"69e20c7528727\"\n\t\t\t\t\t\t   name=\"startOfStudies-252412\"\n\t\t\t\t\t\t\t\t\t\t\t\t   value=\"2027\">\n\t\t\t\t\t<span class=\"checkmark\"><\/span>\n\t\t\t\t<\/label>\n\t\t\t<\/div>\n\n\t\t\n\t\t\t<div class=\"ams-form__box-wrapper\">\n\t\t\t\t<label   class=\"container-checkmark site__body_text-2\"\n\t\t\t\t\t   for=\"69e20c7528729\">\n\t\t\t\t\t2028\t\t\t\t\t<input   data-nicename=\"N\u00e4r b\u00f6rjar du gymnasiet?\"\n\t\t\t\t\t\t   type=\"radio\"\n\t\t\t\t\t\t   id=\"69e20c7528729\"\n\t\t\t\t\t\t   name=\"startOfStudies-252412\"\n\t\t\t\t\t\t\t\t\t\t\t\t   value=\"2028\">\n\t\t\t\t\t<span class=\"checkmark\"><\/span>\n\t\t\t\t<\/label>\n\t\t\t<\/div>\n\n\t\t\t<\/div>\n\n\t\t\t\t<\/fieldset>\n\t\t\t\t\t\t<div\n\t\t\t\tclass=\"ams-form__field-full-width  ams-form__field-required ams-form__field ams-form__label ams-form__checkbox-wrapper\">\n\t\t\t\t<div> <!-- Do not remove -->\n\t\t\t\t\t<div   class=\"ams-form__box-wrapper ams-form__consent\">\n\n\t\t\t\t\t\t<div   class=\"_title site__subheading-11\">\n\t\t\t\t\t\t\tSamtycke\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t   class=\"container-checkmark site__body_text-2\"\n\t\t\t\t\t\t\t   for=\"box_id_69e20c752872c\">\n\t\t\t\t\t\t\tJag samtycker (jag har fyllt 16 \u00e5r) eller har min v\u00e5rdnadshavares samtycke (jag har inte fyllt 16 \u00e5r) till att l\u00e4mna mina kontaktuppgifter h\u00e4r.\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t   data-nicename=\"Samtycke\"\n\t\t\t\t\t\t\t\t   type=\"checkbox\"\n\t\t\t\t\t\t\t\t   id=\"box_id_69e20c752872c\" name=\"specialField__combinedAcceptance\"\n\t\t\t\t\t\t\t\t   value=\"Samtycke\">\n\t\t\t\t\t\t\t<span class=\"checkmark\"><\/span>\n\t\t\t\t\t\t<\/label>\n\n\t\t\t\t\t\t<p   class=\"ams-form__integrity-popup-text site__body_text-3\"><b>L\u00e4s mer h\u00e4r. <\/b><\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div> <!-- END Do not remove -->\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<input type=\"hidden\" name=\"operation-type\" value=\"leads-lead\"\/>\n\t\t\t\n\t\t\t<div class=\"ams-form__submit-wrapper text_align--Center\">\n\t\t\t\t<button\n\t\t\t\t\t\tclass=\"btn btn-lg site__buttons-1 rounded-corners-btn-shape ams-form__submit site__cta-bg--100 site__text-color--light site__text-color--dark rounded-corners-btn-shape ams_active_button_state_default\"\n\t\t\t\t\t\ttype=\"submit\">\n\t\t\t\t\tSkicka\t\t\t\t<\/button>\n\t\t\t\t<!--\t\t\t\t<button class=\"btn btn-lg btn_outline__primary site__buttons-1 -->\n\t\t\t\t<!-- ams-form__submit -->\n\t\t\t\t<!--\" type=\"submit\">Skicka<\/button>-->\n\t\t\t\t<div class=\"ams-form__submit-sending\">\n\t\t\t\t\t<div class=\"ams-spinner\"><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/form>\n\n\t\t\n\t<\/div> <!-- END ams-form__form-wrapper-->\n<\/div>\n\n\n\t<div class=\"ams-form__integrity-popup-hidden-text\">\n\t\t<div class=\"ams-form__integrity-popup-holder global_body-color  site__text-color--dark \">\n\t\t\t<div class=\"ams-form__integrity-popup-hidden-text-inner\"><h3>HANTERING AV PERSONUPPGIFTER<\/h3>\n<p>N\u00e4r du eller dina f\u00f6r\u00e4ldrar skickar in en intresseanm\u00e4lan, anm\u00e4ler dig till \u00f6ppet hus\/annan skolvisning, \u00f6nskar information eller marknadsf\u00f6ring om v\u00e5ra skolor, beh\u00f6ver samtycke l\u00e4mnas. Samtycke \u00e4r frivilligt och avges n\u00e4r anm\u00e4lan eller \u00f6nskem\u00e5let skickas in. Praktiska Gymnasiet \u00e4r personuppgiftsansvarig p\u00e5 den skola som du har anm\u00e4lt intresse till. Skolan \u00e4r en del av AcadeMedia-koncernen.<\/p>\n<p>&nbsp;<\/p>\n<p>De personuppgifter vi behandlar \u00e4r namn, e-postadress och telefonnummer f\u00f6r samtliga kontakter med dig samt programval och \u00e5r f\u00f6r t\u00e4nkt studiestart f\u00f6r information och marknadsf\u00f6ring. Vissa utskick inneh\u00e5ller sp\u00e5rningspixlar s\u00e5 vi kan se antal \u00f6ppnade brev.<\/p>\n<p>&nbsp;<\/p>\n<p>Uppgifterna delas med anst\u00e4llda inom skoladministration och kommunikation p\u00e5 de skolor du visat intresse f\u00f6r. Syftena \u00e4r att administrera bes\u00f6k, skicka marknadsf\u00f6ring, andra meddelanden och p\u00e5minnelser. Vi kan \u00e4ven komma att dela uppgifter till kommunikat\u00f6rer p\u00e5 bolag inom koncernen f\u00f6r marknadsf\u00f6ring av liknande utbildningar. Vidare l\u00e4mnar vi information till myndigheter om vi \u00e4r skyldiga att g\u00f6ra s\u00e5 enligt lag.<\/p>\n<p>&nbsp;<\/p>\n<p>De r\u00e4ttsliga grunderna \u00e4r samtycke f\u00f6r administration av skolbes\u00f6k och svar p\u00e5 allm\u00e4nna fr\u00e5gor samt ber\u00e4ttigat intresse f\u00f6r den marknadsf\u00f6ring som inte f\u00f6ljer av samtycke. Reklam f\u00f6r liknande utbildningar anser vi motiverade i viss omfattning. Utl\u00e4mnande till myndigheter f\u00f6ljer av r\u00e4ttslig f\u00f6rpliktelse. Uppgifterna lagras i ett \u00e5r efter att ans\u00f6kningstiden f\u00f6r den s\u00f6kta utbildningen g\u00e5tt ut. Vid tillbakadraget samtycke gallras uppgifterna omg\u00e5ende.<\/p>\n<p>&nbsp;<\/p>\n<p>Till tekniskt st\u00f6d anlitas personuppgiftsbitr\u00e4dena AcadeMedia Support AB, Microsoft Ireland Operations Ltd och Infobip Sweden AB. Uppgifterna kan komma att behandlas i Sverige\/EU och i de s.k. tredjel\u00e4nderna USA, Brasilien, Kina, Indien, Vietnam, Malaysia och Ryssland. \u00d6verf\u00f6ring till tredjel\u00e4nderna sker med st\u00f6d av EU-kommissionens standardavtalsklausuler.<\/p>\n<p>&nbsp;<\/p>\n<p>Du kan n\u00e4r du vill dra tillbaka ditt samtycke, inv\u00e4nda mot behandlingen, beg\u00e4ra registerutdrag, r\u00e4ttelse eller att vi begr\u00e4nsar behandlingen. F\u00f6r att avregistrera dig fr\u00e5n digitala reklam- och kommunikationsutskick, f\u00f6lj instruktionerna i det SMS eller e-post som du har f\u00e5tt fr\u00e5n oss. Du kan \u00e4ven kontakta skolan f\u00f6r detta p\u00e5 fliken Kontakt i menyn.<\/p>\n<p>&nbsp;<\/p>\n<p>V\u00e5rt dataskyddsombud kontaktas p\u00e5 <a href=\"mailto:dataskydd@academedia.se\">dataskydd@academedia.se<\/a>. Vid klagom\u00e5l p\u00e5 personuppgiftsbehandlingen skickas det till tillsynsmyndigheten IMY (<a href=\"http:\/\/www.imy.se\">www.imy.se<\/a>).<\/p>\n<\/div>\t\t\t<button class=\"ams-form__integrity-popup-close site__links-9\">St\u00e4ng X<\/button>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<script>\n\n(function () {\n\tconst pageForms = Array.from(\n\t\tdocument.querySelectorAll(\"#ams-form__69e20c7511916\")\n\t);\n\n\tif (pageForms) {\n\t\tpageForms.forEach((formItem) => {\n\t\t\tinitForm(formItem);\n\t\t});\n\t}\n\n\tfunction initForm(formItem) {\n\t\t\/\/ clear form when back or forward was used to navigate to page\n\t\tif (window.performance && window.performance.navigation.type === window.performance.navigation.TYPE_BACK_FORWARD) {\n\n\t\twindow.addEventListener('DOMContentLoaded', function () {\n\t\t\tsetTimeout(function () {\n\t\t\t\tformItem.reset();\n\t\t\t}, 100);\n\t\t\t});\n\t\t}\n\n\t\tif ('NodeList' in window && !NodeList.prototype.forEach) {\n\t\t\tNodeList.prototype.forEach = function (callback, thisArg) {\n\t\t\t\tthisArg = thisArg || window;\n\t\t\t\tfor (var i = 0; i < this.length; i++) {\n\t\t\t\t\tcallback.call(thisArg, this[i], i, this);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t\/*! storejs v1.0.26 | MIT (c) 2019 kenny wang <wowohoo@qq.com> | https:\/\/github.com\/jaywcjlove\/store.js *\/\n\t\tvar store = function () {\n\t\t\"use strict\";\n\t\tvar t = window.localStorage;\n\n\t\tfunction r(t) {\n\t\t\treturn t = JSON.stringify(t), !!\/^\\{[\\s\\S]*\\}$\/.test(t)\n\t\t}\n\n\t\tfunction e(t) {\n\t\t\tif (\"string\" == typeof t) try {\n\t\t\t\treturn JSON.parse(t)\n\t\t\t} catch (r) {\n\t\t\t\treturn t\n\t\t\t}\n\t\t}\n\n\t\tfunction n(t) {\n\t\t\treturn \"[object Function]\" === {}.toString.call(t)\n\t\t}\n\n\t\tfunction i() {\n\t\t\tif (!(this instanceof i)) return new i\n\t\t}\n\n\t\tt = function (t) {\n\t\t\tvar r = \"_Is_Incognit\";\n\t\t\ttry {\n\t\t\t\tt.setItem(r, \"yes\")\n\t\t\t} catch (r) {\n\t\t\t\tif (\"QuotaExceededError\" === r.name) {\n\t\t\t\t\tvar e = function () {\n\t\t\t\t\t};\n\t\t\t\t\tt.__proto__ = {setItem: e, getItem: e, removeItem: e, clear: e}\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t\"yes\" === t.getItem(r) && t.removeItem(r)\n\t\t\t}\n\t\t\treturn t\n\t\t}(t), i.prototype = {\n\t\t\tset: function (e, n) {\n\t\t\t\tif (e && !r(e)) t.setItem(e, function (t) {\n\t\t\t\t\treturn void 0 === t || \"function\" == typeof t ? t + \"\" : JSON.stringify(t)\n\t\t\t\t}(n)); else if (r(e)) for (var i in e) this.set(i, e[i]);\n\t\t\t\treturn this\n\t\t\t}, get: function (r) {\n\t\t\t\tif (!r) {\n\t\t\t\t\tvar n = {};\n\t\t\t\t\treturn this.forEach((function (t, r) {\n\t\t\t\t\t\treturn n[t] = r\n\t\t\t\t\t})), n\n\t\t\t\t}\n\t\t\t\tif (\"?\" === r.charAt(0)) return this.has(r.substr(1));\n\t\t\t\tvar i = arguments;\n\t\t\t\tif (i.length > 1) {\n\t\t\t\t\tfor (var o = {}, f = 0, u = i.length; f < u; f++) {\n\t\t\t\t\t\tvar s = e(t.getItem(i[f]));\n\t\t\t\t\t\ts &#038;&#038; (o[i[f]] = s)\n\t\t\t\t\t}\n\t\t\t\t\treturn o\n\t\t\t\t}\n\t\t\t\treturn e(t.getItem(r))\n\t\t\t}, clear: function () {\n\t\t\t\treturn t.clear(), this\n\t\t\t}, remove: function (r) {\n\t\t\t\tvar e = this.get(r);\n\t\t\t\treturn t.removeItem(r), e\n\t\t\t}, has: function (t) {\n\t\t\t\treturn {}.hasOwnProperty.call(this.get(), t)\n\t\t\t}, keys: function () {\n\t\t\t\tvar t = [];\n\t\t\t\treturn this.forEach((function (r) {\n\t\t\t\t\tt.push(r)\n\t\t\t\t})), t\n\t\t\t}, forEach: function (r) {\n\t\t\t\tfor (var e = 0, n = t.length; e < n; e++) {\n\t\t\t\t\tvar i = t.key(e);\n\t\t\t\t\tr(i, this.get(i))\n\t\t\t\t}\n\t\t\t\treturn this\n\t\t\t}, search: function (t) {\n\t\t\t\tfor (var r = this.keys(), e = {}, n = 0, i = r.length; n < i; n++) r[n].indexOf(t) > -1 && (e[r[n]] = this.get(r[n]));\n\t\t\t\treturn e\n\t\t\t}\n\t\t};\n\t\tvar o = null;\n\n\t\tfunction f(t, e) {\n\t\t\tvar u, s = arguments, c = null;\n\t\t\tif (o || (o = i()), 0 === s.length) return o.get();\n\t\t\tif (1 === s.length) {\n\t\t\t\tif (\"string\" == typeof t) return o.get(t);\n\t\t\t\tif (r(t)) return o.set(t)\n\t\t\t}\n\t\t\tif (2 === s.length && \"string\" == typeof t) {\n\t\t\t\tif (!e) return o.remove(t);\n\t\t\t\tif (e && \"string\" == typeof e) return o.set(t, e);\n\t\t\t\te && n(e) && (c = null, c = e(t, o.get(t)), f.set(t, c))\n\t\t\t}\n\t\t\tif (2 === s.length && (u = t, \"[object Array]\" === Object.prototype.toString.call(u)) && n(e)) for (var a = 0, h = t.length; a < h; a++) c = e(t[a], o.get(t[a])), f.set(t[a], c);\n\t\t\treturn f\n\t\t}\n\n\t\tfor (var u in i.prototype) f[u] = i.prototype[u];\n\t\treturn f\n\t\t}();\n\n\t\tvar kiosk = false;\n\t\tvar the_form = formItem;\n\t\tconsole.log(the_form, formItem);\n\t\tvar submit_button = the_form.querySelector('.ams-form__submit');\n\n\t\tvar all_fields = the_form.querySelectorAll('.ams-form__field');\n\t\tvar all_required_fields = the_form.querySelectorAll('.ams-form__field-required');\n\n\t\tvar offline_ui = document.querySelector('.ams-form__offline-ui .offline-ui__feedback');\n\t\tvar show_saved_forms_button = document.querySelector('.ams-form__open-saved-forms');\n\t\tvar delete_saved_forms = document.querySelector('.delete_saved_forms');\n\t\tvar offline_ui_wrapper = document.querySelector('.ams-form__offline-ui');\n\t\tvar offline_sending_feedback = document.querySelector('.ams-form__offline-ui .offline-ui__sending-feedback');\n\t\tvar kiosk_feedback = document.querySelector('.ams-form__kiosk-feedback');\n\t\tvar send_saved_forms = document.querySelector('.send_saved_forms');\n\t\tvar form_sending = document.querySelector('.ams-form__submit-sending');\n\n\t\t\/\/ Pre-check all event checkboxes to speed up repeated submissions with support for offline save\n\t\tfunction precheckEventCheckboxes() {\n\t\t\tvar eventCheckboxes = the_form.querySelectorAll('input[type=\"checkbox\"][name=\"events\"]');\n\t\t\teventCheckboxes.forEach(function (box) {\n\t\t\t\tif (!box.checked) {\n\t\t\t\t\tbox.checked = true;\n\t\t\t\t\tbox.dispatchEvent(new Event('change'));\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\/\/ Initial pre-check\n\t\tprecheckEventCheckboxes();\n\n\t\t\/\/ Re-apply pre-check after any programmatic form reset (e.g., after offline save)\n\t\tthe_form.addEventListener('reset', function () {\n\t\t\tsetTimeout(precheckEventCheckboxes, 0);\n\t\t});\n\n\t\t\/\/ dropdown button\n\t\tvar dropdowns = document.querySelectorAll('.ams-form__checkbox-dropdown');\n\t\tvar dropdown_offset = 0;\n\n\t\t\/*\n\t\tdropdowns.forEach(function(dropdown, index) {\n\t\tdropdown.addEventListener('click', function(event) {\n\t\t\t\/\/ ams-form__dropdown-button\n\n\t\t\t\/\/ open dropdown\n\t\t\tif (event.target.className.indexOf('ams-form__dropdown-button') !== -1) {\n\t\t\t\tdropdown_offset = jQuery(the_form).position().top - jQuery(event.target).position().top;\n\t\t\t\tif (dropdown.className.indexOf('ams-form__checkbox-dropdown-open') === -1) {\n\t\t\t\t\tdropdown.classList.add('ams-form__checkbox-dropdown-open');\n\t\t\t\t} else {\n\t\t\t\t\tdropdown.classList.remove('ams-form__checkbox-dropdown-open');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\/\/ open category\n\t\t\tif (event.target.className.indexOf('ams-form__box-category-title') !== -1) {\n\t\t\t\tvar cat_panel = dropdown.querySelector('._cat_' + event.target.getAttribute('data-category'));\n\t\t\t\tif (cat_panel.className.indexOf('ams-form__box-category-open') === -1) {\n\t\t\t\t\tcat_panel.classList.add('ams-form__box-category-open');\n\t\t\t\t} else {\n\t\t\t\t\tcat_panel.classList.remove('ams-form__box-category-open');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t});\n\n\t\t\/\/ radio dropdown\n\t\tvar radio_dropdowns = document.querySelectorAll('.ams-form__radio-dropdown-button');\n\t\tdropdowns.forEach(function(dropdown, index) {\n\t\t\/\/ var list = dropdown.querySelector('.ams-form__integrity-popup-text');\n\t\tdropdown.addEventListener('focus', function(event) {\n\t\t\t\/\/ var list =\n\t\t});\n\t\t});\n\t\t*\/\n\n\t\t\/\/ popup hover\n\t\tvar integrity_popup = document.querySelector('.ams-form__integrity-popup-text');\n\t\tvar integrity_text = document.querySelector('.ams-form__integrity-popup-hidden-text');\n\t\tvar overlay = document.querySelector('.ams-form__integrity-popup-hidden-text');\n\t\tvar integrity_text_inner = document.querySelector('.ams-form__integrity-popup-hidden-text-inner');\n\t\tvar integrity_popup_button = document.querySelector('.ams-form__integrity-popup-button');\n\t\tvar integrity_popup_close = document.querySelector('.ams-form__integrity-popup-close');\n\n\t\tif (integrity_popup) {\n\t\tvar popup_tabindex = integrity_popup.getAttribute('tabindex');\n\t\tintegrity_popup.addEventListener('keypress', function () {\n\t\t\tintegrity_text.style.display = 'block';\n\t\t\tvar integrity_popup_content = document.querySelector('.ams-form__integrity-popup-holder');\n\t\t\tintegrity_popup_content.tabIndex = popup_tabindex;\n\t\t\tintegrity_popup_close.tabIndex = popup_tabindex;\n\t\t\tvar innerItems = integrity_text_inner.children;\n\t\t\tfor (let i = 0; i < innerItems.length; i++) {\n\t\t\t\tinnerItems[i].tabIndex = popup_tabindex;\n\t\t\t}\n\t\t});\n\t\tintegrity_popup.addEventListener('click', function (event) {\n\t\t\tintegrity_text.style.display = 'block';\n\t\t\tvar integrity_popup_content = document.querySelector('.ams-form__integrity-popup-holder');\n\t\t\tintegrity_popup_content.tabIndex = popup_tabindex;\n\t\t\tintegrity_popup_close.tabIndex = popup_tabindex;\n\t\t\tvar innerItems = integrity_text_inner.children;\n\t\t\tfor (let i = 0; i < innerItems.length; i++) {\n\t\t\t\tinnerItems[i].tabIndex = popup_tabindex;\n\t\t\t}\n\t\t});\n\t\t}\n\n\t\tif (integrity_popup) {\n\t\toverlay.addEventListener('click', function (event) {\n\t\t\tif (event.target.className == 'ams-form__integrity-popup-hidden-text' || event.target.classList.contains('ams-form__integrity-popup-close')) {\n\t\t\t\tintegrity_text.style.display = 'none';\n\t\t\t}\n\t\t});\n\t\t}\n\n\t\t\/\/ prefill form using variables from the URL\n\t\tvar prefillValues = function () {\n\n\t\tvar prefillParamsToCRMFields = {\n\t\t\t'email': 'email',\n\t\t\t'mobile': 'mobilePhoneNumber'\n\t\t}\n\n\t\tvar params = getParams(window.location.href);\n\t\tfor (var key in params) {\n\t\t\tif (typeof prefillParamsToCRMFields[key] !== 'undefined') {\n\t\t\t\tdocument.querySelector('input[name=' + prefillParamsToCRMFields[key] + ']').value = params[key];\n\t\t\t}\n\t\t}\n\t\t}\n\n\t\tprefillValues();\n\n\t\t\/**\n\t\t* 3 Event listeners below represent probably the worst validation logic ever witnessed\n\t\t* by mighty developer, and should be refactored asap\n\t\t*\/\n\n\t\tthe_form.addEventListener('focusout', function (event) {\n\n\t\tif (event.target.parentNode.parentNode.parentNode.parentNode.className.indexOf('_event-with-session-field_') !== -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.target.className.indexOf('ui-multiselect') !== -1 &#038;&#038; event.relatedTarget) {\n\n\t\t\tif (event.target.className.indexOf('ui-corner-all') !== -1) {\n\t\t\t\tdo_validation(event.target);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\t\tif (event.relatedTarget) {\n\t\t\tif (\n\t\t\t\t(event.target.name !== event.relatedTarget.name) &#038;&#038;\n\t\t\t\tevent.target.parentNode.parentNode.parentNode.parentNode.className.indexOf('ams-form__field-required') !== -1\n\t\t\t) {\n\t\t\t\tdo_validation(event.target);\n\t\t\t} else if ((event.target.name !== event.relatedTarget.name) &#038;&#038; event.target.parentNode.className.indexOf('ams-form__field-required') !== -1) {\n\t\t\t\tdo_validation(event.target);\n\t\t\t}\n\t\t} else {\n\t\t\tif (event.target.parentNode.parentNode.parentNode.parentNode.className.indexOf('ams-form__field-required') !== -1) {\n\t\t\t\tdo_validation(event.target);\n\t\t\t} else if (event.target.parentNode.className.indexOf('ams-form__field-required') !== -1) {\n\t\t\t\tdo_validation(event.target);\n\t\t\t}\n\t\t}\n\n\t\tif (!the_form.contains(event.relatedTarget)) {\n\t\t\tclose_drop_downs();\n\t\t}\n\t});\n\n\tthe_form.addEventListener('click', (e) => {\n\t\tif (e.target.parentNode && e.target.parentNode.tagName === 'FORM' || e.target.className.includes('subheading')) {\n\t\t\tclose_drop_downs();\n\t\t}\n\t})\n\n\tthe_form.addEventListener('change', function (event) {\n\n\t\tif(event.detail && event.detail.checkbox !== undefined) {\n\t\t\tdo_validation(event.detail.checkbox);\n\t\t\treturn;\n\t\t}\n\t\tif (event.target.parentNode.parentNode.parentNode.parentNode.className.indexOf('_event-with-session-field_') !== -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t(event.target.type === 'checkbox' || event.target.type === 'radio') &&\n\t\t\t(\n\t\t\t\tevent.target.parentNode.parentNode.parentNode.parentNode.className.indexOf('ams-form__field-required') !== -1 ||\n\t\t\t\tevent.target.parentNode.parentNode.parentNode.parentNode.parentNode.className.indexOf('ams-form__field-required') !== -1\n\t\t\t)\n\t\t) {\n\t\t\tdo_validation(event.target);\n\t\t} else if (\n\t\t\tevent.target.parentNode.className.indexOf('ams-form__field') !== -1 &&\n\t\t\tevent.target.parentNode.className.indexOf('ams-form__field-required') !== -1) {\n\t\t\tdo_validation(event.target);\n\t\t}\n\t\t});\n\n\t\tthe_form.addEventListener('keyup', function (event) {\n\t\treturn;\n\t\tif ((event.target.value.length > 3 && event.target.type !== 'checkbox') && event.target.parentNode.className.indexOf('ams-form__field-required') !== -1) {\n\t\t\tdo_validation(event.target);\n\t\t}\n\t\t});\n\n\tfunction close_drop_downs() {\n\t\tlet dropdownButtons = document.querySelectorAll('button[id*=aca-dropdown__]');\n\t\tdropdownButtons?.forEach(el => {\n\t\t\tif (el.className.includes('_open_')) {\n\t\t\t\tel.click();\n\t\t\t}\n\t\t})\n\t}\n\n\tfunction show_final_timer_message(elem) {\n\t\telem.querySelector('h3').innerHTML = 'Vi lyckades inte kontakta servern, sidan kommer nu laddas om, v\u00e4nligen f\u00f6rs\u00f6k igen senare.';\n\t\telem.style.display = 'flex';\n\t\tsetTimeout(function () {\n\t\t\tlocation.reload();\n\t\t}, 10000);\n\t\t}\n\n\t\tfunction start_waiting_message_timer() {\n\t\tvar waiting_message_timers = [];\n\t\tvar node = document.createElement('div');\n\t\tnode.id = 'fetch_timer_message';\n\t\tnode.style.width = '100%';\n\t\tnode.style.height = '100%';\n\t\tnode.style.position = 'fixed';\n\t\tnode.style.display = 'none';\n\t\tnode.style.flexDirection = 'column';\n\t\tnode.style.alignItems = 'center';\n\t\tnode.style.justifyContent = 'center';\n\t\tnode.style.top = '0';\n\t\tnode.style.left = '0';\n\t\tnode.style.zIndex = '99999';\n\t\tnode.style.background = '#fff';\n\t\tnode.innerHTML = '<h3 style=\"padding:30px;margin:0 auto;text-align:center;max-width:600px;font-size:26px;\">Vi upplever h\u00f6gt tryck p\u00e5 v\u00e5ra serverar f\u00f6r tillf\u00e4llet, v\u00e4nligen v\u00e4nta en liten stund<\/h3><svg style=\"display:block;width:150px;margin-left:60px;\" version=\"1.1\" id=\"L5\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 100 100\" enable-background=\"new 0 0 0 0\" xml:space=\"preserve\"><circle fill=\"#333\" stroke=\"none\" cx=\"6\" cy=\"50\" r=\"6\"><animateTransform attributeName=\"transform\" dur=\"1s\" type=\"translate\" values=\"0 15 ; 0 -15; 0 15\" repeatCount=\"indefinite\" begin=\"0.1\"><\/animateTransform><\/circle><circle fill=\"#333\" stroke=\"none\" cx=\"30\" cy=\"50\" r=\"6\"><animateTransform attributeName=\"transform\" dur=\"1s\" type=\"translate\" values=\"0 10 ; 0 -10; 0 10\" repeatCount=\"indefinite\" begin=\"0.2\"><\/animateTransform><\/circle><circle fill=\"#333\" stroke=\"none\" cx=\"54\" cy=\"50\" r=\"6\"><animateTransform attributeName=\"transform\" dur=\"1s\" type=\"translate\" values=\"0 5 ; 0 -5; 0 5\" repeatCount=\"indefinite\" begin=\"0.3\"><\/animateTransform><\/circle><\/svg>';\n\t\tdocument.body.appendChild(node);\n\n\t\tvar fetch_timer_message = document.querySelector('#fetch_timer_message');\n\n\t\twaiting_message_timers[0] = setTimeout(function () {\n\t\t\tfetch_timer_message.style.display = 'flex';\n\t\t}, 10000);\n\n\t\twaiting_message_timers[1] = setTimeout(function () {\n\t\t\tfetch_timer_message.style.display = 'flex';\n\t\t\tfetch_timer_message.querySelector('h3').innerHTML = 'Vi f\u00f6rs\u00f6ker fortfarande f\u00e5 kontakt med servern, v\u00e4nligen v\u00e4nta lite till.';\n\t\t}, 25000);\n\n\t\twaiting_message_timers[2] = setTimeout(function () {\n\t\t\tshow_final_timer_message(fetch_timer_message);\n\t\t}, 50000);\n\n\t\treturn waiting_message_timers;\n\t\t}\n\n\t\tfunction clear_all_waiting_timers(waiting_message_timers) {\n\t\tfor (var i = 0; i < waiting_message_timers.length; i++) {\n\t\t\tconsole.log(i);\n\t\t\tclearTimeout(waiting_message_timers[i]);\n\t\t}\n\t\t}\n\n\t\tvar waiting_message_timers = null;\n\n\t\tsubmit_button.addEventListener('click', function (event) {\n\t\tevent.preventDefault();\n\n\t\tif (do_validation()) {\n\n\t\t\tsubmit_button.setAttribute('disabled', true);\n\t\t\tsubmit_button.classList.add('ams-form__button-sending');\n\t\t\tform_sending.style.display = 'block';\n\n\t\t\tvar form_data = serializeArray(the_form);\n\n\t\t\tvar file_inputs = the_form.querySelectorAll('[type=\"file\"]');\n\n\t\t\tvar res_promise = send_form(form_data, file_inputs, the_form.querySelector('input[name=\"aca_form_id\"]').value);\n\n\t\t\twaiting_message_timers = start_waiting_message_timer();\n\n\t\t\tres_promise.then(function (response) {\n\t\t\t\treturn response.text();\n\t\t\t})\n\t\t\t\t.then(function (response) {\n\n\t\t\t\t\t\/\/ clear popup\n\t\t\t\t\tdocument.querySelector('#fetch_timer_message').style.display = 'none';\n\n\t\t\t\t\t\n\t\t\t\t\tif (response === 'failed') {\n\t\t\t\t\t\tsaveFormInLocalStorage(form_data);\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif (response.indexOf('LimitExceeded') !== -1) {\n\t\t\t\t\t\t\talert('Tiden du f\u00f6rs\u00f6kte boka \u00e4r inte l\u00e4ngre tillg\u00e4nglig');\n\t\t\t\t\t\t\tlocation.reload();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdo_tracking(form_data);\n\n\t\t\t\t\t\t\t\/\/ navigate_to_thankspage(form_data, response);\n\n\t\t\t\t\t\t\tif (kiosk) {\n\t\t\t\t\t\t\t\talert('Tack f\u00f6r din anm\u00e4lan!');\n\t\t\t\t\t\t\t\t\/\/ alert('Formul\u00e4ret har skickats!');\n\t\t\t\t\t\t\t\tlocation.reload();\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnavigate_to_thankspage(form_data, response);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t\n\t\t\t\t\tupdateOfflineUi();\n\t\t\t\t}).catch(function (err) {\n\t\t\t\tform_sending.style.display = 'none';\n\t\t\t\tclear_all_waiting_timers(waiting_message_timers);\n\t\t\t\tdocument.querySelector('#fetch_timer_message').style.display = 'none';\n\t\t\t\tsaveFormInLocalStorage(form_data);\n\t\t\t\tupdateOfflineUi();\n\t\t\t});\n\t\t} else {\n\t\t\tscroll_to_first_non_validated_field();\n\t\t}\n\t\t});\n\n\t\tfunction do_tracking(data) {\n\n\t\t\twindow.dataLayer = window.dataLayer || [];\n\t\t\twindow.dataLayer.push({event: \"signupform:sent\"}); \/\/ legacy\n\n\t\t\t\t\t}\n\n\t\tvar remove_session_from_form = function (form_data_) {\n\t\tvar selected_session = null;\n\t\tform_data_.forEach(function (item, i) {\n\t\t\tif (item.name === 'session') {\n\t\t\t\tselected_session = item.value;\n\t\t\t}\n\t\t});\n\t\tvar session_element = document.querySelector('input[value=' + selected_session + ']');\n\t\tvar container_element = session_element.parentNode.parentNode;\n\t\tcontainer_element.parentNode.removeChild(container_element);\n\t\tsubmit_button.removeAttribute('disabled');\n\t\tsubmit_button.classList.remove('ams-form__button-sending');\n\t\tform_sending.style.display = 'none';\n\t\t}\n\n\t\tfunction navigate_to_thankspage(form_data_, response_) {\n\n\t\t\/* Email AND getResponse success *\/\n\t\tif (response_ === 'email_success' || response_ === 'success') {\n\t\t\twindow.location.href = 'https:\/\/praktiska.se\/norrkoping\/tack-for-anmalan-oppet-hus\/?location=Norrk%C3%B6ping&#038;type=oppet-hus';\n\t\t\treturn;\n\t\t}\n\n\t\tvar response = JSON.parse(response_);\n\n\t\t\/* IF 'NORMAL' thankspage Quick-Exit *\/\n\t\tif (!response.createdRegistrations) {\n\t\t\twindow.location.href = 'https:\/\/praktiska.se\/norrkoping\/tack-for-anmalan-oppet-hus\/?location=Norrk%C3%B6ping&#038;type=oppet-hus';\n\t\t}\n\n\t\t\/* IF 'EVENTS with Sessions' thankspage *\/\n\t\tvar registrationId = null;\n\n\t\tif (response.createdRegistrations[0].registrationResult == 'Created') {\n\t\t\tregistrationId = response.createdRegistrations[0].registrationId;\n\t\t}\n\n\t\tif (response.createdRegistrations[0].registrationResult == 'AlreadyRegistered') {\n\t\t\talert('Du har redan bokat denna tid, om du vill forts\u00e4tta och boka en tid f\u00f6r en ytterligare bes\u00f6kare v\u00e4lj en annan tid.');\n\t\t\tlocation.reload();\n\t\t\treturn;\n\t\t}\n\n\t\t\/*   *\/\n\t\tvar event_session_date = extract_event_session(form_data_);\n\t\tvar event_session_displayName_address = extract_event_session_title_and_address(form_data_);\n\n\t\tvar session_url_part = '';\n\t\tif (event_session_date !== null) {\n\t\t\tsession_url_part = '&#038;startdateutc=' + event_session_date.startdateutc + '&#038;enddateutc=' + event_session_date.enddateutc;\n\t\t\tif (registrationId !== null) {\n\t\t\t\tsession_url_part += '&#038;registrationId=' + registrationId;\n\t\t\t\tsession_url_part += '&#038;displayname=' + event_session_displayName_address.displayName;\n\t\t\t\tsession_url_part += '&#038;address=' + event_session_displayName_address.address;\n\t\t\t}\n\t\t}\n\n\t\twindow.location.href = 'https:\/\/praktiska.se\/norrkoping\/tack-for-anmalan-oppet-hus\/?location=Norrk%C3%B6ping&#038;type=oppet-hus' + session_url_part;\n\t\t}\n\n\t\tvar extract_event_session_title_and_address = function (form_data_) {\n\n\t\tvar session_id = null;\n\t\tform_data_.forEach(function (data, i) {\n\t\t\tif (data.name === 'session') {\n\t\t\t\tsession_id = data.value;\n\t\t\t}\n\t\t});\n\t\tif (session_id !== null) {\n\t\t\tvar session_element = get_input_element_by_value('session', session_id);\n\n\t\t\treturn {\n\t\t\t\tdisplayName: session_element.getAttribute('data-displayname'),\n\t\t\t\taddress: session_element.getAttribute('data-eventaddress')\n\t\t\t}\n\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t\t}\n\n\t\tvar extract_event_session = function (form_data_) {\n\t\tvar event = null;\n\t\tvar session = null;\n\t\tform_data_.forEach(function (data, i) {\n\t\t\tif (data.name === 'events') {\n\t\t\t\tevent = data.value;\n\t\t\t}\n\t\t\tif (data.name === 'session') {\n\t\t\t\tsession = data.value;\n\t\t\t}\n\t\t});\n\t\tif (event !== null &#038;&#038; session !== null) {\n\t\t\tvar session_element = get_input_element_by_value('session', session);\n\n\t\t\treturn {\n\t\t\t\t'startdateutc': session_element.getAttribute('data-startdateutc'),\n\t\t\t\t'enddateutc': session_element.getAttribute('data-enddateutc')\n\t\t\t}\n\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t\t}\n\n\t\tvar get_input_element_by_value = function (name, value) {\n\t\tvar all_inputs = document.querySelectorAll('input[name=' + name + ']');\n\t\tvar found_element = null;\n\t\tall_inputs.forEach(function (item, i) {\n\t\t\tif (item.value === value) {\n\t\t\t\tfound_element = item;\n\t\t\t}\n\t\t});\n\t\treturn found_element;\n\t\t}\n\n\t\tvar scroll_to_first_non_validated_field = function () {\n\t\tvar first_unvalidated_field = document.querySelectorAll('.ams-form__not-validated')[0];\n\t\tif (first_unvalidated_field) {\n\t\t\tvar header_height = document.querySelector('.header_wrapper').offsetHeight;\n\t\t\twindow.scrollTo(0, findPos(first_unvalidated_field) - header_height);\n\t\t}\n\t\t}\n\n\t\tfunction findPos(obj) {\n\t\tvar curtop = 0;\n\t\tif (obj.offsetParent) {\n\t\t\tdo {\n\t\t\t\tcurtop += obj.offsetTop;\n\t\t\t} while (obj = obj.offsetParent);\n\t\t\treturn [curtop];\n\t\t}\n\t\t}\n\n\t\t\/*\n\t\twindow.addEventListener('DOMContentLoaded', () => {\n\t\twindow.addEventListener('online', () => {\n\t\t\tvar stored_forms_string = store.get('aca-stored-forms-' + saved_aca_form_id);\n\t\t\tvar stored_forms = JSON.parse(stored_forms_string);\n\t\t\tif (stored_forms) {\n\t\t\t\tvar send_index = 0;\n\t\t\t\tsendSavedForms(stored_forms, send_index);\n\t\t\t}\n\t\t}, false);\n\t\t});\n\t\t*\/\n\n\t\tif (send_saved_forms) {\n\t\tsend_saved_forms.addEventListener('click', function (event) {\n\t\t\tvar stored_forms_string = store.get('aca-stored-forms-' + saved_aca_form_id);\n\t\t\tvar stored_forms = JSON.parse(stored_forms_string);\n\t\t\tif (stored_forms) {\n\t\t\t\tvar send_index = 0;\n\t\t\t\tvar sent_forms = 0;\n\t\t\t\tsendSavedForms(stored_forms, send_index, sent_forms);\n\t\t\t\tsend_saved_forms.setAttribute('disabled', true);\n\t\t\t}\n\t\t});\n\t\t}\n\n\t\tvar sendSavedForms = function (stored_forms, send_index, sent_forms) {\n\n\t\toffline_sending_feedback.innerHTML = 'Skickar sparat formul\u00e4r nr ' + (send_index + 1);\n\n\t\tvar res_promise = send_form(stored_forms[send_index]);\n\n\t\tres_promise.then(function (result) {\n\t\t\treturn result.text();\n\t\t}).then(function (result) {\n\n\t\t\tif (result !== 'failed' && send_index < stored_forms.length) {\n\n\t\t\t\tsend_index++;\n\t\t\t\tsent_forms++;\n\t\t\t\t\/\/ var temp_stored_forms = stored_forms;\n\t\t\t\tvar temp_stored_forms = JSON.parse(JSON.stringify(stored_forms));\n\n\t\t\t\t\/\/ temp_stored_forms.splice(send_index, 1);\n\t\t\t\ttemp_stored_forms.splice(0, sent_forms);\n\t\t\t\tstore.set('aca-stored-forms-' + saved_aca_form_id, JSON.stringify(temp_stored_forms));\n\n\t\t\t\tif (send_index === stored_forms.length) {\n\t\t\t\t\toffline_sending_feedback.innerHTML = sent_forms + ' sparade formul\u00e4r skickade';\n\t\t\t\t} else {\n\t\t\t\t\tsendSavedForms(stored_forms, send_index, sent_forms);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toffline_sending_feedback.innerHTML = sent_forms + ' sparade formul\u00e4r skickade';\n\t\t\t}\n\n\t\t\tupdateOfflineUi();\n\t\t});\n\t\t}\n\n\t\t\/\/ var sendSavedForms = function (stored_forms, send_index, sent_forms) {\n\t\t\/\/\n\t\t\/\/ \toffline_sending_feedback.innerHTML = 'Skickar sparat formul\u00e4r nr ' + send_index;\n\t\t\/\/\n\t\t\/\/ \tvar res_promise = send_form(stored_forms[send_index]);\n\t\t\/\/\n\t\t\/\/ \tres_promise.then(function (result) {\n\t\t\/\/ \t\treturn result.text();\n\t\t\/\/ \t}).then(function (result) {\n\t\t\/\/ \t\tsend_index++;\n\t\t\/\/ \t\tif (result !== 'failed' &#038;&#038; send_index < stored_forms.length) {\n\t\t\/\/ \t\t\tsent_forms++;\n\t\t\/\/ \t\t\tvar temp_stored_forms = stored_forms;\n\t\t\/\/ \t\t\ttemp_stored_forms.splice(send_index, 1);\n\t\t\/\/ \t\t\tstore.set('aca-stored-forms-' + saved_aca_form_id, JSON.stringify(temp_stored_forms));\n\t\t\/\/\n\t\t\/\/ \t\t\tsendSavedForms(stored_forms, send_index, sent_forms);\n\t\t\/\/ \t\t} else {\n\t\t\/\/ \t\t\toffline_sending_feedback.innerHTML = sent_forms + ' sparade formul\u00e4r skickade';\n\t\t\/\/ \t\t}\n\t\t\/\/ \t\tupdateOfflineUi();\n\t\t\/\/ \t});\n\t\t\/\/ }\n\n\t\tupdateOfflineUi();\n\n\t\tvar send_form = function (form_data, files, saved_aca_form_id) {\n\n\t\t\/\/ \"fetch\" it to the backend wp ajax\n\t\t\/\/ var params = new URLSearchParams();\n\t\tvar params = new FormData(); \/\/ @recent\n\n\t\tparams.append('action', 'aca_send_form');\n\t\tparams.append('orgunitid', orgUnitId);\n\t\tparams.append('blog-id', blog_id);\n\t\tparams.append('post-id', post_id);\n\t\tparams.append('current_api', current_api);\n\t\tparams.append('current_api_type', current_api_type);\n\t\tparams.append('saved_aca_form_id', saved_aca_form_id);\n\t\tparams.append('form_page_url', window.location.href);\n\t\tparams.append('form', JSON.stringify(form_data));\n\n\t\tif (files) {\n\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\tparams.append(files[i].name, files[i].files[0]);\n\t\t\t}\n\t\t}\n\n\t\treturn fetch('\/wp-admin\/admin-ajax.php', {\n\t\t\tmethod: 'POST',\n\t\t\tcredentials: 'same-origin',\n\t\t\t\/\/ headers: {'Content-Type': 'application\/x-www-form-urlencoded'}, \/\/ @recent: will not work with FormData()\n\t\t\tbody: params,\n\t\t}) \/* .then(response => {\n\t\t\t\treturn response.text();\n\t\t\t})\n\t\t\t.then(response => {\n\t\t\t\tif (response === 'failed') {\n\t\t\t\t\tsaveFormInLocalStorage(form_data);\n\t\t\t\t}\n\t\t\t\tupdateOfflineUi();\n\t\t\t}).catch(err => {\n\t\t\t\tsaveFormInLocalStorage(form_data);\n\t\t\t\tupdateOfflineUi();\n\t\t\t});  *\/\n\t\t}\n\n\t\tvar checkOnlineStatus = function () {\n\t\tvar form = new FormData();\n\t\tform.append('action', 'check_online_status');\n\t\tvar params = new URLSearchParams(form);\n\n\t\tfetch('\/wp-admin\/admin-ajax.php', {\n\t\t\tmethod: 'POST',\n\t\t\tcredentials: 'same-origin',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application\/x-www-form-urlencoded',\n\t\t\t\t'Cache-Control': 'no-cache',\n\t\t\t},\n\t\t\tbody: params\n\t\t}).then(function (response) {\n\t\t\treturn response.text();\n\t\t})\n\t\t\t.then(function (response) {\n\t\t\t\tif (response === 'we-are-online') {\n\t\t\t\t\tconsole.log('We are online');\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log('We are OFFLINE');\n\t\t\t\t}\n\t\t\t}).catch(function (err) {\n\t\t\tconsole.log('We are OFFLINE');\n\t\t});\n\t\t}\n\n\t\tvar show_kiosk_feedback = function () {\n\n\t\tif (kiosk_feedback) {\n\n\t\t\tkiosk_feedback.querySelector('p').innerHTML = 'Tack! Dina uppgifter \u00e4r nu sparade hos oss!';\n\t\t\t\/\/ kiosk_feedback.querySelector('p').innerHTML = 'Vi f\u00e5r inte kontakt med servern f\u00f6r tillf\u00e4llet s\u00e5 formul\u00e4ret sparades lokalt i webbl\u00e4saren och kan skickas n\u00e4r det finns uppkoppling igen.';\n\n\t\t\tkiosk_feedback.classList.add('shown');\n\t\t\tkiosk_feedback.parentElement.classList.add('kiosk-enabled');\n\t\t}\n\t\t}\n\n\t\tvar saveFormInLocalStorage = function (form_data) {\n\n\t\tvar stored_forms = store.get('aca-stored-forms-' + saved_aca_form_id);\n\n\t\tif (!stored_forms || kiosk) {\n\t\t\t\/\/ show feedback\n\t\t\tshow_kiosk_feedback();\n\t\t}\n\n\t\tif (!store.get('?aca-stored-forms-' + saved_aca_form_id)) {\n\t\t\tstored_forms = [];\n\t\t} else {\n\t\t\tstored_forms = JSON.parse(stored_forms);\n\t\t}\n\n\t\tstored_forms.push(form_data);\n\t\tstore.set('aca-stored-forms-' + saved_aca_form_id, JSON.stringify(stored_forms));\n\n\t\tif(kiosk) {\n\t\t\tthe_form.reset();\n\t\t}\n\n\t\tsubmit_button.removeAttribute('disabled');\n\t\t}\n\n\t\tif (show_saved_forms_button) {\n\t\tshow_saved_forms_button.addEventListener('click', function (event) {\n\t\t\tif (offline_ui_wrapper.className.indexOf('shown') != -1) {\n\t\t\t\toffline_ui_wrapper.classList.remove('shown');\n\t\t\t} else {\n\t\t\t\toffline_ui_wrapper.classList.add('shown');\n\t\t\t}\n\t\t});\n\t\t}\n\n\t\tif (delete_saved_forms) {\n\t\tdelete_saved_forms.addEventListener('click', function (event) {\n\t\t\tstore.clear();\n\t\t\toffline_ui_wrapper.classList.remove('shown');\n\t\t\tupdateOfflineUi();\n\t\t});\n\t\t}\n\n\t\tfunction updateOfflineUi() {\n\t\tvar stored_forms = store.get('aca-stored-forms-' + saved_aca_form_id);\n\t\tif (!store.get('?aca-stored-forms-' + saved_aca_form_id)) {\n\t\t\tstored_forms = [];\n\t\t\tif (kiosk_feedback) {\n\t\t\t\tkiosk_feedback.classList.remove('shown');\n\t\t\t\tkiosk_feedback.parentElement.classList.remove('kiosk-enabled');\n\t\t\t}\n\t\t} else {\n\t\t\tif (kiosk_feedback) {\n\t\t\t\tkiosk_feedback.classList.add('shown');\n\t\t\t\tkiosk_feedback.parentElement.classList.add('kiosk-enabled');\n\t\t\t}\n\t\t\tstored_forms = JSON.parse(stored_forms);\n\t\t}\n\n\t\tif (offline_ui) {\n\n\t\t\toffline_ui.innerHTML = stored_forms.length + ' formul\u00e4r sparade';\n\n\t\t\tif (!stored_forms.length) {\n\n\t\t\t\tkiosk_feedback.classList.remove('shown');\n\t\t\t\toffline_ui.parentNode.classList.remove('shown');\n\t\t\t}\n\t\t}\n\t\t}\n\n\t\tfunction addValidationError(item, type) {\n\t\tvar text = item.querySelector('.ams-form__not-validated-text');\n\t\tif (text) {\n\t\t\treturn;\n\t\t}\n\t\tvar node = document.createElement('div');\n\t\tnode.className = 'ams-form__not-validated-text';\n\t\tnode.style.fontWeight = '300';\n\n\t\t\/*\n\t\tif (type === 'field') {\n\t\t\tvar textnode = document.createTextNode(item.querySelector('._title').textContent + ' m\u00e5ste vara ifyllt');\n\t\t} else {\n\t\t\tvar textnode = document.createTextNode('Ett ' + item.querySelector('._title').textContent + ' m\u00e5ste vara ikryssat');\n\t\t}*\/\n\t\tvar textnode = document.createTextNode('Detta f\u00e4lt m\u00e5ste fyllas i');\n\n\t\tnode.appendChild(textnode);\n\t\titem.appendChild(node);\n\n\t\t}\n\n\t\tfunction removeValidationError(item) {\n\n\t\t\/**\n\t\t * Due to a dubious nature of do_validation(), this method can be called with 'item' parameter\n\t\t * being entire '.ams_form' which, in tern, would hide validation messages on invalid\n\t\t * fields (while invalid (visual) feedback will remain). As code of do_validation()\n\t\t * is beyond fixable and has to be refactored, easiest way forward is to check\n\t\t * if 'item' is actually '.ams-form__field' element (class, which (hopefully)\n\t\t * is used for each and every input (group)).\n\t\t *\n\t\t * @see https:\/\/app.asana.com\/0\/1200531310718450\/1201976555254788\n\t\t *\/\n\n\t\tif (item.className.indexOf('ams-form__field') === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar text = item.querySelector('.ams-form__not-validated-text');\n\t\tif (text) {\n\t\t\ttext.remove();\n\t\t}\n\t\t}\n\n\t\tfunction do_validation(field) {\n\t\t\tvar is_validated = true;\n\n\t\t\tif (field) {\n\t\t\t\tif (field.type === 'checkbox' || field.type === 'radio') {\n\n\n\t\t\t\t\tvar fieldName = field.name;\n\t\t\t\t\t\/* for educationtree and City we need fifth parent *\/\n\t\t\t\t\tif (fieldName.indexOf('Educationtree') == 0 || fieldName.indexOf('City') == 0) {\n\t\t\t\t\t\tvar these_fields = [field.parentNode.parentNode.parentNode.parentNode.parentNode];\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tvar these_fields = [field.parentNode.parentNode.parentNode.parentNode];\n\t\t\t\t\t}\n\n\n\t\t\t\t\tif (these_fields[0].className.indexOf('ams-form__not-validated') === -1) {\n\n\t\t\t\t\t\t\/**\n\t\t\t\t\t\t * It's questionable if below selector should be the only one. Due to dubious\n\t\t\t\t\t\t * nature of this crap, leaving it within if() to prevent unforeseen bugs...\n\t\t\t\t\t\t *\/\n\n\t\t\t\t\t\tthese_fields = [field.parentNode.parentNode.parentNode.parentNode.parentNode];\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tvar these_fields = [field.parentNode];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar these_fields = all_required_fields;\n\t\t\t}\n\n\t\t\tthese_fields.forEach(function (item, i) {\n\n\t\t\t\t\/\/ don't validate a hidden field\n\t\t\t\tif (item.parentNode.className === 'conditional-container' && item.parentNode.style.display === 'none') {\n\n\t\t\t\t\t\/**\n\t\t\t\t\t * V.S. (25th of August 2021) - setting it true here would validate otherwise invalid form\n\t\t\t\t\t * if error occurred anywhere before conditional-container. It was discovered after\n\t\t\t\t\t * reported bug on: http:\/\/academedia-ams.development\/ronninge\/\n\t\t\t\t\t *\n\t\t\t\t\t * Scenario:\n\t\t\t\t\t *\n\t\t\t\t\t * ...\n\t\t\t\t\t * Email field -> required\n\t\t\t\t\t * ...\n\t\t\t\t\t * conditional container\n\t\t\t\t\t *\n\t\t\t\t\t * Even if email was empty (invalid), form was validated at this step...\n\t\t\t\t\t *\/\n\n\t\t\t\t\t\/\/ is_validated = true;\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (item.className.indexOf('_event-with-session-field_') !== -1) {\n\n\t\t\t\t\tvar boxes_validated = false;\n\t\t\t\t\tvar selected_session = getEventSessionValue(item);\n\t\t\t\t\tif (selected_session.length) {\n\t\t\t\t\t\tboxes_validated = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (boxes_validated === false) {\n\t\t\t\t\t\titem.classList.add('ams-form__not-validated');\n\t\t\t\t\t\titem.setAttribute('aria-invalid', true);\n\t\t\t\t\t\taddValidationError(item, 'boxes');\n\t\t\t\t\t\tis_validated = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\titem.classList.remove('ams-form__not-validated');\n\t\t\t\t\t\titem.setAttribute('aria-invalid', false);\n\t\t\t\t\t\tremoveValidationError(item);\n\t\t\t\t\t}\n\n\t\t\t\t} else if (item.className.indexOf('ams-form__checkbox-wrapper') !== -1 || item.className.indexOf('ams-form__radio-dropdown') !== -1) {\n\n\n\t\t\t\t\t\/\/ multiples\n\t\t\t\t\t\/\/ IF select\n\n\t\t\t\t\tif (item.className.indexOf('ams-form__checkbox-dropdown') !== -1) {\n\n\t\t\t\t\t\tvar boxes_validated = false;\n\t\t\t\t\t\tlet selectionListItem = document.querySelectorAll('.aca-dropdown-selection__item:not(.markup)');\n\t\t\t\t\t\tvar selected_options = item.querySelectorAll('input:checked');\n\t\t\t\t\t\tif (selected_options.length > 0 || selectionListItem.length > 0) {\n\t\t\t\t\t\t\tboxes_validated = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (boxes_validated === false) {\n\t\t\t\t\t\t\titem.classList.add('ams-form__not-validated');\n\t\t\t\t\t\t\titem.setAttribute('aria-invalid', true);\n\t\t\t\t\t\t\taddValidationError(item, 'boxes');\n\t\t\t\t\t\t\tis_validated = false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\titem.classList.remove('ams-form__not-validated');\n\t\t\t\t\t\t\titem.setAttribute('aria-invalid', false);\n\t\t\t\t\t\t\tremoveValidationError(item);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\/\/ IF checkboxes\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\/\/ var boxes_validated = false;\n\t\t\t\t\t\t\/\/ var boxes = item.querySelectorAll('input');\n\t\t\t\t\t\t\/\/ for (var i = 0; i < boxes.length; i++) {\n\t\t\t\t\t\t\/\/ \tif (boxes[i].checked) {\n\t\t\t\t\t\t\/\/ \t\tboxes_validated = true;\n\t\t\t\t\t\t\/\/ \t}\n\t\t\t\t\t\t\/\/ }\n\n\t\t\t\t\t\tvar boxes_validated = Boolean(item.querySelectorAll('input:checked').length);\n\n\t\t\t\t\t\tif (boxes_validated === false) {\n\t\t\t\t\t\t\titem.classList.add('ams-form__not-validated');\n\t\t\t\t\t\t\titem.setAttribute('aria-invalid', true);\n\t\t\t\t\t\t\taddValidationError(item, 'boxes');\n\t\t\t\t\t\t\tis_validated = false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\titem.classList.remove('ams-form__not-validated');\n\t\t\t\t\t\t\titem.setAttribute('aria-invalid', false);\n\t\t\t\t\t\t\tremoveValidationError(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (item.className.indexOf('ams-form__recaptcha-wrapper') !== -1) {\n\n\t\t\t\t\tif (typeof grecaptcha !== 'undefined') {\n\t\t\t\t\t\tif (!grecaptcha.getResponse().length) {\n\n\t\t\t\t\t\t\titem.setAttribute('aria-invalid', true);\n\t\t\t\t\t\t\titem.classList.add('ams-form__not-validated');\n\t\t\t\t\t\t\taddValidationError(item);\n\t\t\t\t\t\t\tis_validated = false;\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\titem.setAttribute('aria-invalid', false);\n\t\t\t\t\t\t\titem.classList.remove('ams-form__not-validated');\n\t\t\t\t\t\t\tremoveValidationError(item);\n\t\t\t\t\t\t\t\/\/ is_validated = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\n\t\t\t\t\t\/\/ other inputs\n\t\t\t\t\tvar field = item.querySelector('input');\n\n\t\t\t\t\tif (!field) {\n\t\t\t\t\t\tvar field = item.querySelector('textarea');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (field) {\n\t\t\t\t\t\tvar _field = item.querySelector('input');\n\t\t\t\t\t\tif (!_field) {\n\t\t\t\t\t\t\tvar _field = item.querySelector('textarea');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\/\/ IF childInformation__  YEAR and MONTH\n\t\t\t\t\t\tif (field.name === 'childInformation__birthyear') {\n\t\t\t\t\t\t\tvar field_year = field;\n\t\t\t\t\t\t\tvar field_month = field.parentNode.parentNode.querySelector('[name=\"childInformation__birthmonth\"]');\n\n\t\t\t\t\t\t\tif (((new RegExp(\"[0-9]\")).test(field_year.value) &#038;&#038; (field_year.value.length == 4)) &#038;&#038; ((new RegExp(\"[0-9]\")).test(field_month.value) &#038;&#038; (field_month.value < 13 &#038;&#038; field_month.value != 0))) {\n\t\t\t\t\t\t\t\t\/\/ if ((\/^\\d+$\/.test(field_year.value) &#038;&#038; (field_year.value.length == 4)) &#038;&#038; (\/^\\d+$\/.test(field_month.value) &#038;&#038; (field_month.value < 13 &#038;&#038; field_month.value != 0))) {\n\t\t\t\t\t\t\t\tremoveValidationError(item);\n\t\t\t\t\t\t\t\titem.classList.remove('ams-form__not-validated');\n\t\t\t\t\t\t\t\t_field.setAttribute('aria-invalid', false);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\titem.classList.add('ams-form__not-validated');\n\t\t\t\t\t\t\t\tfield.setAttribute('aria-invalid', true);\n\t\t\t\t\t\t\t\taddValidationError(item, 'field');\n\t\t\t\t\t\t\t\tis_validated = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (field.name === 'Email' || field.name === 'email') {\n\n\t\t\t\t\t\t\tif (!validate_email(field.value)) {\n\t\t\t\t\t\t\t\titem.classList.add('ams-form__not-validated');\n\t\t\t\t\t\t\t\t_field.setAttribute('aria-invalid', true);\n\t\t\t\t\t\t\t\tis_validated = false;\n\t\t\t\t\t\t\t\taddValidationError(item, 'field');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tremoveValidationError(item);\n\t\t\t\t\t\t\t\titem.classList.remove('ams-form__not-validated');\n\t\t\t\t\t\t\t\t_field.setAttribute('aria-invalid', false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (field.name === 'mobilePhoneNumber' || field.name === 'Phone') {\n\n\t\t\t\t\t\t\t\/\/ mobilePhoneNumber\n\t\t\t\t\t\t\tif (field.value.length > 8 && \/^\\d+$\/.test(field.value)) {\n\t\t\t\t\t\t\t\t\/\/ success\n\t\t\t\t\t\t\t\tremoveValidationError(item);\n\t\t\t\t\t\t\t\titem.classList.remove('ams-form__not-validated');\n\t\t\t\t\t\t\t\t_field.setAttribute('aria-invalid', false);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\/\/ Fail\n\t\t\t\t\t\t\t\titem.classList.add('ams-form__not-validated');\n\t\t\t\t\t\t\t\t_field.setAttribute('aria-invalid', true);\n\t\t\t\t\t\t\t\tis_validated = false;\n\t\t\t\t\t\t\t\taddValidationError(item, 'field');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else if (field.value.length < 2) {\n\t\t\t\t\t\t\titem.classList.add('ams-form__not-validated');\n\t\t\t\t\t\t\t_field.setAttribute('aria-invalid', true);\n\t\t\t\t\t\t\tis_validated = false;\n\t\t\t\t\t\t\taddValidationError(item, 'field');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tremoveValidationError(item);\n\t\t\t\t\t\t\titem.classList.remove('ams-form__not-validated');\n\t\t\t\t\t\t\t_field.setAttribute('aria-invalid', false);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn is_validated;\n\t\t}\n\n\t\tfunction validate_email(string) {\n\t\tif (\/[a-z0-9!#$%&#038;'*+\/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&#038;'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\/.test(string)) {\n\t\t\treturn (true);\n\t\t}\n\t\treturn (false);\n\t\t}\n\n\t\tfunction getEventSessionValue(field) {\n\t\tvar selected_session = field.querySelectorAll('input[name=session]:checked');\n\n\t\treturn selected_session;\n\t\t}\n\n\t\tfunction getMultiSelectValues(select) {\n\t\tvar result = [];\n\t\tvar options = select &#038;&#038; select.options;\n\t\tvar opt;\n\n\t\tfor (var i = 0, iLen = options.length; i < iLen; i++) {\n\t\t\topt = options[i];\n\n\t\t\tif (opt.selected) {\n\t\t\t\tresult.push(opt.value || opt.text);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t\t}\n\n\t\t\/*!\n\t\t* Serialize all form data into an array\n\t\t* (c) 2018 Chris Ferdinandi, MIT License, https:\/\/gomakethings.com\n\t\t* @param  {Node}   form The form to serialize\n\t\t* @return {String}      The serialized form data\n\t\t*\/\n\t\tvar serializeArray = function (form) {\n\n\t\t\/\/ Setup our serialized data\n\t\tvar serialized = [];\n\n\t\t\/\/ Loop through each field in the form\n\t\tfor (var i = 0; i < form.elements.length; i++) {\n\n\t\t\tvar field = form.elements[i];\n\n\t\t\t\/\/ Don't serialize fields without a name, submits, buttons, file and reset inputs, and disabled fields\n\t\t\tif (!field.name || field.type === 'file' || field.type === 'reset' || field.type === 'submit' || field.type === 'button') continue;\n\n\t\t\t\/\/ If a multi-select, get all selections\n\t\t\tif (field.type === 'select-multiple') {\n\n\t\t\t\tfor (var n = 0; n < field.options.length; n++) {\n\t\t\t\t\tif (!field.options[n].selected) continue;\n\t\t\t\t\tserialized.push({\n\t\t\t\t\t\tname: field.name,\n\t\t\t\t\t\tvalue: field.options[n].value\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\/\/ Convert field data to a query string\n\t\t\telse if ((field.type !== 'checkbox' &#038;&#038; field.type !== 'radio') || field.checked) {\n\t\t\t\tserialized.push({\n\t\t\t\t\tname: field.name,\n\t\t\t\t\tvalue: field.value,\n\t\t\t\t\tnicename: field.getAttribute('data-nicename')\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn serialized;\n\n\t\t};\n\n\t\tfunction getParams(url) {\n\t\tvar params = {};\n\t\tvar parser = document.createElement('a');\n\t\tparser.href = url;\n\t\tvar query = parser.search.substring(1);\n\t\tvar vars = query.split('&#038;');\n\t\tfor (var i = 0; i < vars.length; i++) {\n\t\t\tvar pair = vars[i].split('=');\n\t\t\tparams[pair[0]] = decodeURIComponent(pair[1]);\n\t\t}\n\t\treturn params;\n\t\t};\n\t}\n\n})();\n\n(function () {\n\n\twindow.addEventListener('DOMContentLoaded', function () {\n\n\t\tconst currentFormId = document.querySelector('input[name=\"aca_form_id\"]').value; \/\/Eductus Rusta och matcha form with id g6D2cDrGYSPf\n\n\t\tif(currentFormId == \"g6D2cDrGYSPf\"){\n\n\t\t\tlet isFormInteracted = false;\n\t\t\tlet formSubmitted = false;\n\t\t\tconst formId = \"ams-form__69e20c7511916\";\n\t\t\tconst form = document.querySelector(\"#\" + formId);\n\t\t\tconst inputFields = form.querySelectorAll('input:not([type=\"hidden\"])');\n\n\t\t\tform.addEventListener('submit', function() {\n\t\t\t\tformSubmitted = true;\n\t\t\t});\n\n\t\t\tinputFields.forEach(field => {\n\t\t\t\tfield.addEventListener('focus', function() {\n\t\t\t\t\tisFormInteracted = true;\n\t\t\t\t});\n\t\t\t});\n\n\t\t\twindow.addEventListener('beforeunload', function(event) {\n\t\t\t\tif (isFormInteracted && !formSubmitted) {\n\t\t\t\t\ttrackAbandonedField();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfunction getFieldsWithData(form) {\n\t\t\t\tlet data = {};\n\n\t\t\t\tfor (let inputElem of form.elements) {\n\t\t\t\t\tif (inputElem.tagName === 'INPUT' && inputElem.type !== \"hidden\") {\n\t\t\t\t\t\tlet niceName = inputElem.getAttribute('data-nicename');\n\t\t\t\t\t\tif(inputElem.type == \"text\"){\n\t\t\t\t\t\t\tdata[niceName] = inputElem.value ? \"true\" : \"false\";\n\t\t\t\t\t\t} else if(inputElem.type == \"checkbox\") {\n\t\t\t\t\t\t\tdata[niceName] = inputElem.checked ? \"true\" : \"false\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tfunction trackAbandonedField() {\n\t\t\t\tlet fieldsWithData = getFieldsWithData(form);\n\t\t\t\twindow.dataLayer = window.dataLayer || [];\n\t\t\t\twindow.dataLayer.push({\n\t\t\t\t\t'event': 'formStarted',\n\t\t\t\t\t'formFields': fieldsWithData\n\t\t\t\t});\n\t\t\t}\n\n\t\t}\n\n\t})\n\n})();\n\n<\/script>\n\n\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/div>\n\n\n\n\t\n\t\n\t\n\n\t\n\t\n\t\t\n<section  class=\"c-block l-stacked  \" data-color-scheme=\"white\">\n\t<div class=\"ams-fifty ams-fifty--container ams-fifty--left ams-fifty--top l-container u-pt-fluid-3xl-6xl u-pb-fluid-3xl-6xl\">\n\t\t<div class=\"ams-fifty__content l-stack l-stack-xl is-left is-left@lg\">\n\t\t\t<div class=\"ams-fifty__text l-stack l-stack-lg\">\n\t\t\t\t\t\n\t<h2\n\tclass=\"c-heading u-font-title-1 \"\n\tstyle=\"\">\n\t\t\n\t\t\t\t\tPraktik (APL)\n\t\t\t\t\n\t<\/h2>\n\n\t\t\t\t\t\t\t\t\t<div class=\"text l-stack u-font-body\">\n\t\t\t\t\t\t<p>Du som l\u00e4ser ett introduktionsprogram hos oss p\u00e5 Praktiska Gymnasiet kommer att vara ute p\u00e5 APL (arbetsplatsf\u00f6rlagt l\u00e4rande) p\u00e5 ett riktigt f\u00f6retag under utbildningstiden. M\u00e4ngden APL varierar eftersom din studieplan \u00e4r anpassad efter dig och de \u00e4mnen som du l\u00e4ser.<\/p>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\n\t\t <div class=\"ams-fifty__media u-ratio-square\">\n\t\t \t\t\t\t\t<img decoding=\"async\" width=\"600\" height=\"489\" src=\"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/praktiskagymnasietyrkesintroduktion202304web47-e1719324114677-600x489.jpg\" class=\"attachment-md size-md\" alt=\"Tv\u00e5 elever som jobbar med att fixa en d\u00f6rr.\" sizes=\"(min-width: 64em) 600px, calc(100vw - 160px)\" srcset=\"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/praktiskagymnasietyrkesintroduktion202304web47-e1719324114677-600x489.jpg 600w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/praktiskagymnasietyrkesintroduktion202304web47-e1719324114677-300x244.jpg 300w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/praktiskagymnasietyrkesintroduktion202304web47-e1719324114677-400x326.jpg 400w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/praktiskagymnasietyrkesintroduktion202304web47-e1719324114677-800x652.jpg 800w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/praktiskagymnasietyrkesintroduktion202304web47-e1719324114677-1024x834.jpg 1024w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/praktiskagymnasietyrkesintroduktion202304web47-e1719324114677-1200x978.jpg 1200w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/praktiskagymnasietyrkesintroduktion202304web47-e1719324114677.jpg 1675w\" \/>\n\t\t\t\n\t\t\t\n\t\t\t\t\t<\/div>\n\t<\/div>\n\n\t\t\n\n<\/section>\n\n\n\n\t<div class=\"module_wrapper ams_remote_pages_module \">\n\t\t\n\n<section  class=\"ams-cta ams-cta--stacked c-block l-stacked\" data-color-scheme=\"orange\">\n\t<div class=\"l-container-narrow l-stack l-stack-fluid-2xl u-pt-fluid-3xl-6xl u-pb-fluid-3xl-6xl is-center is-center@md\">\n\t\t\t\t\t<div class=\"ams-cta__intro l-stack l-stack-lg\">\n\t\t\t\t\t\n\t<h2\n\tclass=\"c-heading u-font-title-1 \"\n\tstyle=\"\">\n\t\t\n\t\t\t\t\tVill du bes\u00f6ka oss?\n\t\t\t\t\n\t<\/h2>\n\n\t\t\t\t\t\t\t\t\t<div class=\"c-text l-stack u-cs-xl u-font-body\">\n\t\t\t\t\t\t<p><span data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Alla v\u00e5ra gymnasieprogram p\u00e5 Sj\u00f6lins \u00e4r h\u00f6gskolef\u00f6rberedande och ger dig en tydlig koppling till samh\u00e4llet genom case-arbete.\\n\\n\\n&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:5025,&quot;3&quot;:{&quot;1&quot;:0},&quot;8&quot;:{&quot;1&quot;:[{&quot;1&quot;:2,&quot;2&quot;:0,&quot;5&quot;:{&quot;1&quot;:2,&quot;2&quot;:0}},{&quot;1&quot;:0,&quot;2&quot;:0,&quot;3&quot;:3},{&quot;1&quot;:1,&quot;2&quot;:0,&quot;4&quot;:1}]},&quot;10&quot;:0,&quot;11&quot;:4,&quot;12&quot;:0,&quot;15&quot;:&quot;Roboto&quot;}\"> Kom p\u00e5 \u00f6ppet hus och prata med l\u00e4rare och elever fr\u00e5n alla v\u00e5ra program och se dig om i v\u00e5ra lokaler. Du kan ocks\u00e5 anm\u00e4la dig till elev f\u00f6r en dag och h\u00e4nga med p\u00e5 en vanlig skoldag och k\u00e4nna hur det \u00e4r att vara elev hos oss. <\/span><\/p>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\n\t\t\n\t\t\t<div class=\"ams-cta__action u-inline-items\">\n\t\t\t\t\t\t\t\n\n\n<a href=\"https:\/\/praktiska.se\/norrkoping\/oppet-hus\/\"\n\t\n\tclass=\"c-btn \"\n\tdata-style=\"round\"\n\tdata-size=\"md\"\n\tdata-width=\"full-mobile\"\n\tdata-variant=\"default\"\n\ttarget=\"_self\">\n\t\t\t<span class=\"label\"> Kom p\u00e5 \u00f6ppet hus<\/span>\n\t\t\t<\/a>\n\t\t\t\t\t\t\t\n\n\n<a href=\"https:\/\/praktiska.se\/norrkoping\/elev-for-en-dag\/\"\n\t\n\tclass=\"c-btn \"\n\tdata-style=\"round\"\n\tdata-size=\"md\"\n\tdata-width=\"full-mobile\"\n\tdata-variant=\"outline\"\n\ttarget=\"_self\">\n\t\t\t<span class=\"label\"> Bli elev f\u00f6r en dag<\/span>\n\t\t\t<\/a>\n\t\t\t<\/div>\n\t<\/div>\n\n\t\t\n\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"c-bg c-bg--img\" data-settings=\"{&quot;desktop_settings&quot;:{&quot;size&quot;:&quot;cover&quot;,&quot;position&quot;:&quot;middle-center&quot;},&quot;mobile_settings&quot;:{&quot;size&quot;:&quot;cover&quot;,&quot;position&quot;:&quot;middle-center&quot;}}\" data-position=\"middle-center\" data-size=\"cover\">\n\t\t\t\n\t\t<\/div>\n\t\n<\/section>\n\t<\/div>\n\n\t\n\n\n\n<section  class=\"ams-courses-list c-block l-stacked\" data-color-scheme=\"kurslistning\">\n\t<div class=\"l-container l-stack l-stack-fluid-2xl u-pt-fluid-3xl-6xl u-pb-fluid-3xl-6xl is-center is-center@md\">\n\t\t\t\t\t<div class=\"ams-courses-list__intro l-stack l-stack-lg\">\n\t\t\t\t\t\n\t<h2\n\tclass=\"c-heading u-font-title-1 \"\n\tstyle=\"\">\n\t\t\n\t\t\t\t\tAndra Introduktions\u00adprogram i Norrk\u00f6ping\n\t\t\t\t\n\t<\/h2>\n\n\t\t\t\t\t\t\t<\/div>\n\t\t\n\t\t\n\t\t\t\n<ul class=\"ams-courses-list__list l-grid u-gap-fluid-2xl-4xl u-justify-center\">\n\t\t\t<li class=\"l-col-6@md l-col-4@lg\">\n\t\t\t<article class=\"c-card has-media-zoom  \"\n\t\t\t\t\t\tdata-variant=\"border-top\"\n\t\t\t\t\t\tdata-style=\"square\"\n\t\t\t\t\t\tdata-click-area>\n\t\t\t\t<div class=\"c-card__content l-stack l-stack-sm\">\n\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"c-card__title u-font-title-3\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"c-card__title-link\" href=\"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/programinriktat-val\/\">\n\t\t\t\t\t\t\t\t\tPrograminriktat val\n\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"c-card__list u-list-none l-stack-grow u-divider-top u-font-body\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<strong>Program<\/strong>\n\t\t\t\t\t\t\t\t\t<ul class=\"u-list-dash\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>Introduktionsprogram<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t<div class=\"c-card__icon c-card__icon--nl\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg class=\"ams-icon ams-icon--arrow-right\" width=\"32\" height=\"32\" viewbox=\"0 0 32 32\" fill=\"currentColor\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<path d=\"M15.4617 0.252159L14.9567 0.75931C14.6219 1.09545 14.6219 1.64048 14.9567 1.97669L27.7062 14.7806H0.857144C0.383786 14.7806 0 15.166 0 15.6414V16.3587C0 16.8341 0.383786 17.2195 0.857144 17.2195H27.7062L14.9567 30.0234C14.6219 30.3595 14.6219 30.9045 14.9567 31.2407L15.4617 31.7479C15.7964 32.084 16.3392 32.084 16.6739 31.7479L31.749 16.6087C32.0837 16.2725 32.0837 15.7275 31.749 15.3913L16.6739 0.252159C16.3392 -0.084053 15.7964 -0.084053 15.4617 0.252159Z\"\/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"c-card__media \" style=\" \">\n\t\t\t\t\t<img decoding=\"async\" width=\"347\" height=\"260\" src=\"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb347x260px.jpg\" class=\"attachment-sm size-sm wp-post-image\" alt=\"F\u00f6rem\u00e5l som representerar Praktiska Gymnasiets yrkesprogram ligger utlagda p\u00e5 m\u00f6rkt tr\u00e4.\" sizes=\"(min-width: 64em) 300px, (min-width: 48em) calc(.50 * (100vw - 240px)), calc(100vw - 160px)\" srcset=\"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb347x260px.jpg 347w, https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb347x260px-300x225.jpg 300w\" \/>\n\t\t\t\t<\/div>\n\t\t\t<\/article>\n\t\t<\/li>\n\t<\/ul>\n\t\n\n\t\t\t<div class=\"ams-courses-list__action u-inline-items\">\n\t\t\t\t\t\t\t\n\n\n<a href=\"https:\/\/praktiska.se\/norrkoping\/program\/\"\n\t\n\tclass=\"c-btn \"\n\tdata-style=\"round\"\n\tdata-size=\"md\"\n\tdata-width=\"full-mobile\"\n\tdata-variant=\"default\"\n\ttarget=\"_self\">\n\t\t\t<span class=\"label\"> Tillbaka till v\u00e5ra program<\/span>\n\t\t\t<\/a>\n\t\t\t<\/div>\n\t<\/div>\n\n\t\t\n\n<\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":2802,"parent":2799,"menu_order":0,"template":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Plugga Yrkesintroduktion i Norrk\u00f6ping - Praktiska Gymnasiet<\/title>\n<meta name=\"description\" content=\"Saknar du n\u00f6dv\u00e4ndiga betyg f\u00f6r ett yrkesprogram? Yrkesintroduktion \u00e4r utbildningen som kan ge intr\u00e4de till yrkesprogram eller arbetslivet.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Plugga Yrkesintroduktion i Norrk\u00f6ping - Praktiska Gymnasiet\" \/>\n<meta property=\"og:description\" content=\"Saknar du n\u00f6dv\u00e4ndiga betyg f\u00f6r ett yrkesprogram? Yrkesintroduktion \u00e4r utbildningen som kan ge intr\u00e4de till yrkesprogram eller arbetslivet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/\" \/>\n<meta property=\"og:site_name\" content=\"Norrk\u00f6ping\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-04T09:04:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb347x260px.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"347\" \/>\n\t<meta property=\"og:image:height\" content=\"260\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Plugga Yrkesintroduktion i Norrk\u00f6ping - Praktiska Gymnasiet\" \/>\n<meta name=\"twitter:description\" content=\"Saknar du n\u00f6dv\u00e4ndiga betyg f\u00f6r ett yrkesprogram? Yrkesintroduktion \u00e4r utbildningen som kan ge intr\u00e4de till yrkesprogram eller arbetslivet.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb347x260px.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/\",\"url\":\"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/\",\"name\":\"Plugga Yrkesintroduktion i Norrk\u00f6ping - Praktiska Gymnasiet\",\"isPartOf\":{\"@id\":\"https:\/\/praktiska.se\/norrkoping\/#website\"},\"datePublished\":\"2023-12-11T12:03:56+00:00\",\"dateModified\":\"2025-11-04T09:04:17+00:00\",\"description\":\"Saknar du n\u00f6dv\u00e4ndiga betyg f\u00f6r ett yrkesprogram? Yrkesintroduktion \u00e4r utbildningen som kan ge intr\u00e4de till yrkesprogram eller arbetslivet.\",\"breadcrumb\":{\"@id\":\"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\/\/praktiska.se\/norrkoping\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"V\u00e5ra program\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/praktiska.se\/norrkoping\/#website\",\"url\":\"https:\/\/praktiska.se\/norrkoping\/\",\"name\":\"Norrk\u00f6ping\",\"description\":\"Vi utbildar framtidens arbetskraft\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/praktiska.se\/norrkoping\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"sv-SE\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Plugga Yrkesintroduktion i Norrk\u00f6ping - Praktiska Gymnasiet","description":"Saknar du n\u00f6dv\u00e4ndiga betyg f\u00f6r ett yrkesprogram? Yrkesintroduktion \u00e4r utbildningen som kan ge intr\u00e4de till yrkesprogram eller arbetslivet.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/","og_locale":"sv_SE","og_type":"article","og_title":"Plugga Yrkesintroduktion i Norrk\u00f6ping - Praktiska Gymnasiet","og_description":"Saknar du n\u00f6dv\u00e4ndiga betyg f\u00f6r ett yrkesprogram? Yrkesintroduktion \u00e4r utbildningen som kan ge intr\u00e4de till yrkesprogram eller arbetslivet.","og_url":"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/","og_site_name":"Norrk\u00f6ping","article_modified_time":"2025-11-04T09:04:17+00:00","og_image":[{"url":"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb347x260px.jpg","width":347,"height":260,"type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_title":"Plugga Yrkesintroduktion i Norrk\u00f6ping - Praktiska Gymnasiet","twitter_description":"Saknar du n\u00f6dv\u00e4ndiga betyg f\u00f6r ett yrkesprogram? Yrkesintroduktion \u00e4r utbildningen som kan ge intr\u00e4de till yrkesprogram eller arbetslivet.","twitter_image":"https:\/\/praktiska.se\/wp-content\/uploads\/sites\/27\/2023\/12\/allaweb347x260px.jpg","twitter_misc":{"Est. reading time":"3 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/","url":"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/","name":"Plugga Yrkesintroduktion i Norrk\u00f6ping - Praktiska Gymnasiet","isPartOf":{"@id":"https:\/\/praktiska.se\/norrkoping\/#website"},"datePublished":"2023-12-11T12:03:56+00:00","dateModified":"2025-11-04T09:04:17+00:00","description":"Saknar du n\u00f6dv\u00e4ndiga betyg f\u00f6r ett yrkesprogram? Yrkesintroduktion \u00e4r utbildningen som kan ge intr\u00e4de till yrkesprogram eller arbetslivet.","breadcrumb":{"@id":"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/praktiska.se\/norrkoping\/program\/introduktionsprogram\/yrkesintroduktion\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/praktiska.se\/norrkoping"},{"@type":"ListItem","position":2,"name":"V\u00e5ra program"}]},{"@type":"WebSite","@id":"https:\/\/praktiska.se\/norrkoping\/#website","url":"https:\/\/praktiska.se\/norrkoping\/","name":"Norrk\u00f6ping","description":"Vi utbildar framtidens arbetskraft","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/praktiska.se\/norrkoping\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"sv-SE"}]}},"_links":{"self":[{"href":"https:\/\/praktiska.se\/norrkoping\/wp-json\/wp\/v2\/program_orientation\/2800"}],"collection":[{"href":"https:\/\/praktiska.se\/norrkoping\/wp-json\/wp\/v2\/program_orientation"}],"about":[{"href":"https:\/\/praktiska.se\/norrkoping\/wp-json\/wp\/v2\/types\/program_orientation"}],"version-history":[{"count":9,"href":"https:\/\/praktiska.se\/norrkoping\/wp-json\/wp\/v2\/program_orientation\/2800\/revisions"}],"predecessor-version":[{"id":3161,"href":"https:\/\/praktiska.se\/norrkoping\/wp-json\/wp\/v2\/program_orientation\/2800\/revisions\/3161"}],"up":[{"embeddable":true,"href":"https:\/\/praktiska.se\/norrkoping\/wp-json\/wp\/v2\/program_orientation\/2799"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/praktiska.se\/norrkoping\/wp-json\/wp\/v2\/media\/2802"}],"wp:attachment":[{"href":"https:\/\/praktiska.se\/norrkoping\/wp-json\/wp\/v2\/media?parent=2800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}