{"id":2976,"date":"2026-03-11T15:21:46","date_gmt":"2026-03-11T13:21:46","guid":{"rendered":"https:\/\/www.perustele.fi\/?page_id=2976"},"modified":"2026-03-11T15:43:55","modified_gmt":"2026-03-11T13:43:55","slug":"quail-pro12-kuulokkeet","status":"publish","type":"page","link":"https:\/\/www.perustele.fi\/index.php\/muita-tuotteita\/quail-pro12-kuulokkeet\/","title":{"rendered":"Quail Pro12-kuulokkeet"},"content":{"rendered":"<h2 style=\"color: #4b2bbf; text-align: center;\">Quail Pro12 kuulokej\u00e4rjestelm\u00e4 myym\u00e4l\u00f6ihin<\/h2>\n<p style=\"font-size: 20px; max-width: 750px;\">Langaton kuulokej\u00e4rjestelm\u00e4 myym\u00e4l\u00e4n henkil\u00f6kunnalle.<br \/>\nNopeampi asiakaspalvelu ja tehokas tiimiviestint\u00e4 koko ty\u00f6vuoron ajan.<\/p>\n<p style=\"margin-top: 25px;\"><a style=\"display: inline-block; padding: 16px 30px; background: #4b2bbf; color: #ffffff; text-decoration: none; border-radius: 6px; font-weight: bold; font-size: 18px;\" href=\"#tarjous\"><br \/>\nPyyd\u00e4 tarjous<br \/>\n<\/a><\/p>\n<div style=\"max-width: 1100px; margin: 0 auto;\">\n<div style=\"background: #f7f9fc; padding: 35px 25px; border-radius: 12px; margin-bottom: 30px;\">\n<h1 style=\"margin-top: 0; font-size: 36px; line-height: 1.2;\">Quail Pro12 kuulokej\u00e4rjestelm\u00e4 myym\u00e4l\u00f6ihin<\/h1>\n<p style=\"font-size: 18px; margin-bottom: 20px;\">Quail Pro12 on langaton tiimiviestint\u00e4j\u00e4rjestelm\u00e4 myym\u00e4l\u00f6iden, varastojen ja palveluymp\u00e4rist\u00f6jen henkil\u00f6kunnalle.<br \/>\nJ\u00e4rjestelm\u00e4 auttaa nopeuttamaan asiakaspalvelua, parantamaan tiimiviestint\u00e4\u00e4 ja tehostamaan ty\u00f6skentely\u00e4.<\/p>\n<p style=\"margin: 0;\"><img decoding=\"async\" style=\"width: 100%; max-width: 900px; height: auto; border-radius: 10px;\" src=\"https:\/\/www.nettipuhelin.fi\/img\/cms\/ANOA_1.png\" alt=\"Quail Pro12 k\u00e4yt\u00f6ss\u00e4 myym\u00e4l\u00e4ss\u00e4\" \/><\/p>\n<\/div>\n<h2 style=\"color: #4b2bbf; text-align: center;\">Miksi Quail Pro12?<\/h2>\n<table style=\"width: 100%; border-collapse: separate; border-spacing: 15px 15px; margin-bottom: 30px;\">\n<tbody>\n<tr>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 20px; border-radius: 10px; width: 33%; vertical-align: top;\"><strong>Nopeampi asiakaspalvelu<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">Oikea henkil\u00f6 saadaan paikalle nopeasti ilman turhaa etsimist\u00e4 tai soittoja.<\/p>\n<\/td>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 20px; border-radius: 10px; width: 33%; vertical-align: top;\"><strong>Handsfree koko vuoron ajan<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">Kevyt kuuloke vapauttaa k\u00e4det ty\u00f6h\u00f6n ja pit\u00e4\u00e4 tiimin jatkuvasti yhteydess\u00e4.<\/p>\n<\/td>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 20px; border-radius: 10px; width: 33%; vertical-align: top;\"><strong>Selke\u00e4 viestint\u00e4<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">Melua vaimentava mikrofoni ja hyv\u00e4 \u00e4\u00e4nenlaatu toimivat my\u00f6s kiireisess\u00e4 ymp\u00e4rist\u00f6ss\u00e4.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"color: #4b2bbf; text-align: center;\">J\u00e4rjestelm\u00e4n komponentit<\/h2>\n<table style=\"width: 100%; border-collapse: separate; border-spacing: 15px 15px; margin-bottom: 30px;\">\n<tbody>\n<tr>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 18px; border-radius: 10px; width: 20%; text-align: center; vertical-align: top;\">\n<p style=\"margin-top: 0;\"><strong>Q-P12HS<\/strong><\/p>\n<p style=\"height: 150px; line-height: 150px; margin: 0;\"><img decoding=\"async\" style=\"max-width: 130px; max-height: 130px; vertical-align: middle;\" src=\"https:\/\/www.nettipuhelin.fi\/img\/cms\/1649_20240802_Pro%2012%20Headset%20side-493.png\" alt=\"Q-P12HS kuuloke\" \/><\/p>\n<p style=\"margin-bottom: 0;\">Kuuloke<\/p>\n<\/td>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 18px; border-radius: 10px; width: 20%; text-align: center; vertical-align: top;\">\n<p style=\"margin-top: 0;\"><strong>Q-P12BS<\/strong><\/p>\n<p style=\"height: 150px; line-height: 150px; margin: 0;\"><img decoding=\"async\" style=\"max-width: 130px; max-height: 130px; vertical-align: middle;\" src=\"https:\/\/www.nettipuhelin.fi\/img\/cms\/20240910_Pro%2012%20Base%20Station_Red-571-1.png\" alt=\"Q-P12BS tukiasema\" \/><\/p>\n<p style=\"margin-bottom: 0;\">Tukiasema<\/p>\n<\/td>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 18px; border-radius: 10px; width: 20%; text-align: center; vertical-align: top;\">\n<p style=\"margin-top: 0;\"><strong>Q-P12KP1<\/strong><\/p>\n<p style=\"height: 150px; line-height: 150px; margin: 0;\"><img decoding=\"async\" style=\"max-width: 130px; max-height: 130px; vertical-align: middle;\" src=\"https:\/\/www.nettipuhelin.fi\/img\/cms\/kutsunappi_1.png\" alt=\"Q-P12KP1 kuulutuspainike\" \/><\/p>\n<p style=\"margin-bottom: 0; white-space: nowrap;\">Myym\u00e4l\u00e4n sis\u00e4inen kutsupainike<\/p>\n<\/td>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 18px; border-radius: 10px; width: 20%; text-align: center; vertical-align: top;\">\n<p style=\"margin-top: 0;\"><strong>Q-P10CH<\/strong><\/p>\n<p style=\"height: 150px; line-height: 150px; margin: 0;\"><img decoding=\"async\" style=\"max-width: 130px; max-height: 130px; vertical-align: middle; margin-top: -18px;\" src=\"https:\/\/www.nettipuhelin.fi\/img\/cms\/Latausasema.png\" alt=\"Q-P10CH laturi\" \/><\/p>\n<p style=\"margin-bottom: 0;\">Laturi<\/p>\n<\/td>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 18px; border-radius: 10px; width: 20%; text-align: center; vertical-align: top;\">\n<p style=\"margin-top: 0;\"><strong>Q-P10SHELF<\/strong><\/p>\n<p style=\"height: 150px; line-height: 150px; margin: 0;\"><img decoding=\"async\" style=\"max-width: 130px; max-height: 130px; vertical-align: middle; margin-top: -8px;\" src=\"https:\/\/www.nettipuhelin.fi\/img\/cms\/Kuulokehylly.png\" alt=\"Q-P10SHELF teline\" \/><\/p>\n<p style=\"margin-bottom: 0;\">Teline<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"color: #4b2bbf; text-align: center;\">Valmiit pakettiratkaisut<\/h2>\n<table style=\"width: 100%; border-collapse: separate; border-spacing: 20px 0; margin-bottom: 30px;\">\n<tbody>\n<tr>\n<td style=\"background: #f9fafb; border: 1px solid #dbe1ea; padding: 25px; border-radius: 10px; width: 50%; vertical-align: top;\">\n<h3 style=\"margin-top: 0;\">Small Store \u2013 6 k\u00e4ytt\u00e4j\u00e4\u00e4<\/h3>\n<ul>\n<li>6 \u00d7 Q-P12HS kuuloke<\/li>\n<li>1 \u00d7 Q-P12BS tukiasema<\/li>\n<li>1 \u00d7 Q-P10CH laturi<\/li>\n<li>1 \u00d7 Q-P10SHELF teline<\/li>\n<\/ul>\n<\/td>\n<td style=\"background: #f9fafb; border: 1px solid #dbe1ea; padding: 25px; border-radius: 10px; width: 50%; vertical-align: top;\">\n<h3 style=\"margin-top: 0;\">Large Store \u2013 12 k\u00e4ytt\u00e4j\u00e4\u00e4<\/h3>\n<ul>\n<li>12 \u00d7 Q-P12HS kuuloke<\/li>\n<li>1 \u00d7 Q-P12BS tukiasema<\/li>\n<li>2 \u00d7 Q-P10CH laturia<\/li>\n<li>2 \u00d7 Q-P10SHELF teline<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"color: #4b2bbf; text-align: center;\">Kuinka paljon aikaa j\u00e4rjestelm\u00e4 s\u00e4\u00e4st\u00e4\u00e4<\/h2>\n<div style=\"background: #eef3fb; padding: 30px; border-radius: 12px; margin-bottom: 30px;\">\n<p style=\"font-size: 18px;\">Monissa myym\u00e4l\u00f6iss\u00e4 ty\u00f6ntekij\u00e4t k\u00e4ytt\u00e4v\u00e4t p\u00e4ivitt\u00e4in aikaa kollegoiden etsimiseen<br \/>\nmyym\u00e4l\u00e4st\u00e4 tai varastosta. Kuulokej\u00e4rjestelm\u00e4n avulla oikea henkil\u00f6 voidaan<br \/>\nkutsua paikalle sekunneissa.<\/p>\n<table style=\"width: 100%; border-collapse: separate; border-spacing: 15px;\">\n<tbody>\n<tr>\n<td style=\"background: #ffffff; padding: 20px; border-radius: 10px; text-align: center;\"><strong>8 ty\u00f6ntekij\u00e4\u00e4 vuorossa<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">tyypillinen myym\u00e4l\u00e4<\/p>\n<\/td>\n<td style=\"background: #ffffff; padding: 20px; border-radius: 10px; text-align: center;\"><strong>10 min s\u00e4\u00e4st\u00f6 \/ p\u00e4iv\u00e4<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">per ty\u00f6ntekij\u00e4<\/p>\n<\/td>\n<td style=\"background: #ffffff; padding: 20px; border-radius: 10px; text-align: center;\"><strong>\u2248 400 tuntia vuodessa<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">s\u00e4\u00e4stetty\u00e4 ty\u00f6aikaa<\/p>\n<\/td>\n<td style=\"background: #ffffff; padding: 20px; border-radius: 10px; text-align: center;\"><strong>\u2248 8 000 \u20ac vuodessa<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">(20 \u20ac\/h)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"margin-top: 20px;\">Kuulokej\u00e4rjestelm\u00e4 maksaa itsens\u00e4 usein takaisin nopeasti, kun<br \/>\nhenkil\u00f6kunnan ty\u00f6aikaa voidaan k\u00e4ytt\u00e4\u00e4 tehokkaammin asiakaspalveluun.<\/p>\n<\/div>\n<h2 style=\"color: #4b2bbf; text-align: center;\">Kaupan henkil\u00f6kunnan kuulokkeet<\/h2>\n<div style=\"text-align: center; margin: 25px 0;\">\n<p><img decoding=\"async\" style=\"width: 100%; max-width: 900px; height: auto; border-radius: 10px;\" src=\"https:\/\/www.nettipuhelin.fi\/img\/cms\/A08759~1.PNG\" alt=\"Myym\u00e4l\u00e4n henkil\u00f6kunta k\u00e4ytt\u00e4\u00e4 kuulokej\u00e4rjestelm\u00e4\u00e4 asiakaspalvelussa\" \/><\/p>\n<p style=\"font-size: 14px; color: #6b7280; margin-top: 8px;\">Myym\u00e4l\u00e4n henkil\u00f6kunta voi kommunikoida kesken\u00e4\u00e4n kuulokkeiden avulla ja<br \/>\nreagoida nopeasti asiakkaiden tarpeisiin.<\/p>\n<div style=\"max-width: 900px; margin: 0 auto 30px auto;\">\n<p>Monissa myym\u00e4l\u00f6iss\u00e4 henkil\u00f6kunnan v\u00e4linen viestint\u00e4 tapahtuu edelleen<br \/>\npuhelimilla, huutamalla tai etsim\u00e4ll\u00e4 kollegaa myym\u00e4l\u00e4st\u00e4.<br \/>\nT\u00e4m\u00e4 hidastaa asiakaspalvelua ja vie aikaa muulta ty\u00f6lt\u00e4.<\/p>\n<p>Quail Pro12 kuulokej\u00e4rjestelm\u00e4 on suunniteltu ratkaisemaan t\u00e4m\u00e4 ongelma.<br \/>\nLangattomien kuulokkeiden avulla koko myym\u00e4l\u00e4n henkil\u00f6kunta voi kommunikoida<br \/>\nkesken\u00e4\u00e4n v\u00e4litt\u00f6m\u00e4sti ja handsfree-tilassa koko ty\u00f6vuoron ajan.<\/p>\n<p>Kun asiakas tarvitsee apua esimerkiksi myym\u00e4l\u00e4ss\u00e4, kassalla tai<br \/>\nvarastossa, ty\u00f6ntekij\u00e4 voi kutsua kollegan paikalle yhdell\u00e4 painikkeella.<br \/>\nOikea henkil\u00f6 saadaan paikalle nopeasti ilman puheluita tai turhaa<br \/>\netsimist\u00e4 myym\u00e4l\u00e4ss\u00e4.<\/p>\n<\/div>\n<h3 style=\"color: #4b2bbf;\">Kuulokej\u00e4rjestelm\u00e4n hy\u00f6dyt myym\u00e4l\u00e4ss\u00e4<\/h3>\n<table style=\"width: 100%; border-collapse: separate; border-spacing: 15px 15px; margin-bottom: 25px;\">\n<tbody>\n<tr>\n<td style=\"background: #f3f6fb; border: 1px solid #e5e7eb; padding: 18px; border-radius: 10px; width: 33%; vertical-align: top;\"><strong>\u26a1 Nopeampi asiakaspalvelu<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">Oikea henkil\u00f6 saadaan paikalle nopeasti ilman turhaa etsimist\u00e4 myym\u00e4l\u00e4ss\u00e4.<\/p>\n<\/td>\n<td style=\"background: #f3f6fb; border: 1px solid #e5e7eb; padding: 18px; border-radius: 10px; width: 33%; vertical-align: top;\"><strong>\ud83e\udd1d Parempi tiimity\u00f6<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">Henkil\u00f6kunta voi kommunikoida kesken\u00e4\u00e4n jatkuvasti ilman puhelimia.<\/p>\n<\/td>\n<td style=\"background: #f3f6fb; border: 1px solid #e5e7eb; padding: 18px; border-radius: 10px; width: 33%; vertical-align: top;\"><strong>\u23f1 V\u00e4hemm\u00e4n turhaa liikkumista<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">Ty\u00f6ntekij\u00e4t voivat pyyt\u00e4\u00e4 apua nopeasti ilman kollegoiden etsimist\u00e4.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Quail Pro12 sopii erityisesti p\u00e4ivitt\u00e4istavarakauppoihin,<br \/>\nerikoisliikkeisiin, kauppakeskuksiin sek\u00e4 varasto- ja<br \/>\nlogistiikkaymp\u00e4rist\u00f6ihin, joissa henkil\u00f6kunnan nopea<br \/>\nkommunikointi on t\u00e4rke\u00e4\u00e4.<\/p>\n<div style=\"background: #f7f9fc; padding: 35px 30px; border-radius: 12px; margin: 50px 0;\">\n<h2 style=\"color: #4b2bbf; margin-top: 0;\">Miss\u00e4 Quail Pro12 -j\u00e4rjestelm\u00e4\u00e4 k\u00e4ytet\u00e4\u00e4n?<\/h2>\n<p style=\"max-width: 900px; margin: 0 auto 25px auto; text-align: center;\">Quail Pro12 soveltuu ymp\u00e4rist\u00f6ihin, joissa henkil\u00f6kunnan nopea<br \/>\nkommunikointi on t\u00e4rke\u00e4\u00e4 ja asiakaspalveluun pit\u00e4\u00e4 reagoida nopeasti.<br \/>\nJ\u00e4rjestelm\u00e4 toimii erityisen hyvin myym\u00e4l\u00f6iss\u00e4 ja palveluymp\u00e4rist\u00f6iss\u00e4,<br \/>\njoissa ty\u00f6ntekij\u00e4t liikkuvat eri puolilla tilaa.<\/p>\n<table style=\"width: 100%; border-collapse: separate; border-spacing: 15px 15px;\">\n<tbody>\n<tr>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 22px; border-radius: 10px; width: 25%; text-align: center;\">\n<div style=\"font-size: 34px;\">\ud83d\uded2<\/div>\n<p><strong>P\u00e4ivitt\u00e4istavarakaupat<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">nopea yhteisty\u00f6 myym\u00e4l\u00e4n eri osastojen v\u00e4lill\u00e4<\/p>\n<\/td>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 22px; border-radius: 10px; width: 25%; text-align: center;\">\n<div style=\"font-size: 34px;\">\ud83c\udfec<\/div>\n<p><strong>Erikoisliikkeet<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">asiakaspalvelu ja varaston v\u00e4linen viestint\u00e4<\/p>\n<\/td>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 22px; border-radius: 10px; width: 25%; text-align: center;\">\n<div style=\"font-size: 34px;\">\ud83c\udfe2<\/div>\n<p><strong>Kauppakeskukset<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">tiimiviestint\u00e4 suurissa myym\u00e4l\u00e4tiloissa<\/p>\n<\/td>\n<td style=\"background: #ffffff; border: 1px solid #e5e7eb; padding: 22px; border-radius: 10px; width: 25%; text-align: center;\">\n<div style=\"font-size: 34px;\">\ud83d\udce6<\/div>\n<p><strong>Varastot<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">nopea koordinointi varaston ja myym\u00e4l\u00e4n v\u00e4lill\u00e4<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div style=\"background: #f7f9fc; padding: 30px 25px; border-radius: 12px; margin-bottom: 30px;\">\n<h2 style=\"color: #4b2bbf; text-align: center;\">Miksi pyyt\u00e4\u00e4 tarjous<\/h2>\n<table style=\"width: 100%; border-collapse: separate; border-spacing: 20px 15px;\">\n<tbody>\n<tr>\n<td style=\"width: 33%; vertical-align: top;\"><strong>\u2714 Ratkaisu suunnitellaan myym\u00e4l\u00e4n mukaan<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">Kuulokej\u00e4rjestelm\u00e4 mitoitetaan myym\u00e4l\u00e4n koon,<br \/>\nhenkil\u00f6st\u00f6m\u00e4\u00e4r\u00e4n ja k\u00e4ytt\u00f6tarpeen mukaan.<\/p>\n<\/td>\n<td style=\"width: 33%; vertical-align: top;\"><strong>\u2714 Helppo k\u00e4ytt\u00f6\u00f6notto<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">J\u00e4rjestelm\u00e4 on nopea asentaa ja helppo k\u00e4ytt\u00e4\u00e4<br \/>\nilman monimutkaista koulutusta.<\/p>\n<\/td>\n<td style=\"width: 33%; vertical-align: top;\"><strong>\u2714 Tuki ja toimitus Suomesta<\/strong><\/p>\n<p style=\"margin-bottom: 0;\">Saat tarvittaessa apua k\u00e4ytt\u00f6\u00f6nottoon,<br \/>\nj\u00e4rjestelm\u00e4n laajentamiseen ja yll\u00e4pitoon.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div style=\"background: #eef3fb; padding: 30px 25px; border-radius: 12px; text-align: center; margin-bottom: 30px;\">\n<h2 style=\"color: #4b2bbf; margin-top: 60px; margin-bottom: 25px;\">Pyyd\u00e4 demo tai tarjous<\/h2>\n<p>Rakennamme Quail Pro12 -ratkaisun myym\u00e4l\u00e4n koon, henkil\u00f6st\u00f6m\u00e4\u00e4r\u00e4n ja k\u00e4ytt\u00f6tarpeen mukaan.<\/p>\n<p style=\"margin-bottom: 0;\">T\u00e4yt\u00e4 lomake, niin palaamme sinulle mahdollisimman pian.<\/p>\n<\/div>\n<form class=\"accua-form __accua-form__2 accua-form-view-sidebyside\" novalidate=\"novalidate\" action=\"#\" id=\"accua-form___accua-form__2_69e9da995a807\" method=\"post\"><input type=\"hidden\" name=\"_AccuaForm_ID\" value=\"__accua-form__2\" id=\"accua-form___accua-form__2_69e9da995a807-element-0\"\/><input type=\"hidden\" name=\"_AccuaForm_buildID\" value=\"accua-form___accua-form__2_69e9da995a807\" id=\"accua-form___accua-form__2_69e9da995a807-element-1\"\/><input type=\"hidden\" name=\"_AccuaForm_wpnonce\" value=\"bb82ac48be\" id=\"accua-form___accua-form__2_69e9da995a807-element-2\"\/><input type=\"hidden\" name=\"_AccuaForm_jsuuid\" id=\"accua-form___accua-form__2_69e9da995a807-element-3\"\/><input type=\"hidden\" name=\"_AccuaForm_referrer\" id=\"accua-form___accua-form__2_69e9da995a807-element-4\"\/><input type=\"hidden\" name=\"_AccuaForm_user_agent\" id=\"accua-form___accua-form__2_69e9da995a807-element-5\"\/><input type=\"hidden\" name=\"_AccuaForm_platform\" id=\"accua-form___accua-form__2_69e9da995a807-element-6\"\/><input type=\"hidden\" name=\"_AccuaForm_tentatives\" id=\"accua-form___accua-form__2_69e9da995a807-element-7\"\/><input type=\"hidden\" name=\"_AccuaForm_submit_method\" value=\"normal\" id=\"accua-form___accua-form__2_69e9da995a807-element-8\"\/><input type=\"hidden\" name=\"_AccuaForm_hash\" id=\"accua-form___accua-form__2_69e9da995a807-element-9\" value=\"LUTF4u\/jV9rtAW83Hv56kAMFeuM=\"\/><input type=\"hidden\" name=\"_AccuaForm_iv\" id=\"accua-form___accua-form__2_69e9da995a807-element-10\" value=\"WTZ8YixwcFZiPm93TCBmZyVyRGs3UVEjYz0+IztmV0MxY2FrcVdFYF42RVI0PE4hZkssTTdZJjgjXj5eWS98ZA==\"\/><input type=\"hidden\" name=\"_AccuaForm_data\" id=\"accua-form___accua-form__2_69e9da995a807-element-11\" value=\"1vmAiBf1JyX8JcKk0oJXJu+A5HpNfnN7i\/qUFQGyyCRPusclZbMmZGvf8W05zOrO3K8DkAZ\/eQz4eHBLH93wEpj5LY+mAc4pVeadASpNvbOr29AUukFF+pZ9VnKFw4\/bxMGWx0yRR+J09HdtvEBftK3iU8M5Lx8ryYeLRYc3T2FUWHmtr2BF8+TMI1jnMbWHVRO5pUFYEyYkBxNB6FUmVeARTqdDqrYBZGNo\/608TGWdD331\/c9gBxe6CeGqbPYHIyoWpEsCo5zySDhqJqGhQNmyp5kWRkq4S7G4J4RiFFHzKzaejEo\/Ejgy+KAeWSL8031TbvhCwiwCF8Bv8kRZt+rzgleBmD6E\/zqhPBK\/WFpUkGkb0H3shU1y5sTyb0PYLQa3SP5UKnimCgj8msjbYVWgSSBzzduAwODcg04YfgBLUxhGY1JlZzUP8X3qqRpJio5utjufKmw4ekFtmC\/nGRGiEvJ3fve9ZGcouPWZI8vwgVuLwkrMx5wwjW\/oqUPw26I5\/6oO55UrTOBz1ASs6VWr71I\/6RXL4qIEHZIQ\/9SaBHmnlMcUKy9Okr\/DD\/SHGIsh0ybTnLZNuPj+PexldfgmU5n7EYMBi+E3A4jjgqPGtd97bSx83t3I2eEcn9fcrDmp\/928Rqsq4PG3JDVD+7797pc9kvZBOnS7ZA7tybZsFK4bRlE4Nq1X\/3Rwwc1LkDmD\/AIQLWikItHguKopIj1NJI4m3b7pgbw6IPBYk9md3sMsP1WzK5S99Et3NOyPc3MQ9ewv36RlKjV0p9yZCrRbaFwJFMKhrKs6b9uDeqGvtqRqhppHBnpS387SPVcsjyIHqNq5qk02ctB18FjYGv9JBIf9w5vVZxheVbZrp1XgNdSxpCLJvomzEZftPe4u22WiBJ+4s1Ciu6YeR936x8agg3ncrZRIq1NUJttYR6yB3myslg+XeaBaFiiqcO7qBsjlSzxoXEpcteX3mKgqkK++yZeFFrDOjBhTNqk9wPAogD0xO9dUhJ8A4eMDc3BHQotcOpXvLK9sVeyFkM8AyLsvDCAH8+j5J31D9xtAFhT\/QsVhlFamif12IaBkaDs72DbSu95k5UKJshUWn61yynbo8pnLRSEIa5bw9VGjdt8W30fJHOyH0Qylw8D2ZyESiIBpjuXkkjc7x+DZVqzRd6cG1P4SMD40CupWW+KrVD5x3WW3gmsd3NV1qJgpL2uKzLEI0nZY7cahuITOLpXBlSgsJwv++zRbWog550gWnIlQluZLKqynJ+7J5koH\/1QfofmGmvwOLXGfCgtHWjbGAp5pUuypn2BmlgPkQzgYb5XYHqyOLITGBkfClAi5rWINC9dLcqXzi9o3VUFVZvIkf\/l4leWf+voT2igs6VYa0HR9blL+4tKol+5e6jTv2r6X2PN+8TUTR2sn+wus0qXdKsljtukhFNsjqf3gZ\/YQCGIKhZrTJ44\/56x1FCsZOPR8h6bA6l1eCnnSIiyeUTEstR7vzyGiOXbL+SvAqT4zwUw3rg+EAyO9R3JLGNABFcmYhBqOYrGp6GPeTqdKveWRDzRsYgTF+go50hIZe\/V0qoBVUiMCIqF6lcGCqed2XoDd4XtDOC59PVzmxesq+iwD5QsbqU+XXm2wtQ\/\/iH4XXeJHkj6xjbwQn4ckLOji4mtKhBD7E\/5hl0ZxXDpV5ufHuWdUNBItQzYOVcx\/yMYaLX2ADwrcpDMcuG6o\/2uZ\/bAfhmSydyPP3+z4WGv4eZO2SoGjWlf4C3jRsJyfScNCn2lPu86G3TyhPklWa5YU9HzSCvFuPwv8xID9\/ctAnIUK3WqS8CIJb8K1ftkS9jUCzOZ6rdbbZY7XtwUoIBBNM9cq02XnzqG8KpbxcEEAqZtvtZ8Ss9U3IRds4NSqIkhBkO7Bm67Y3iVlkAt4zhjCu+xfmNOFXXBMCev7PXjAlJze93VpHspKawoymMOhCl6aO5+MP9AXLzzlFyAFT0Aq6+4clivubMJiLQ7VOKvw9pRxfCkNoCOYNJT5H4AGq2bmZlXG9n0Qzaf0Ci5VdzLkSYtNkGcYuGvr+0NZ3TEXurtcGk+\/mKivNU84RYrOpBW9ILc22uL6tKXKc6yWA2GC5Iwqp\/Cqe8j+hC62V7D5nCx1dqBaPkMOqKWLW9L2KbIr3K3DwfS8tPMbg8ZyTq1UWPzf2Q+jBTagFn2q3pJGdrIdILFPZLhsiePTH6nnIxbaPRKdXWmoQQcyA4\/KIja0+G1SRPhIGd6QMm5pSsD4vkddt58\/8uzaeKQuDhH1IsJwcgR11LIl6I\/FVSbHXlZSIGWKSsRlo7o+dAURa7tqkwyjjnBhPZo3\/P8Qrn+v2\/s6QBWYk9ungzyQhsoMaRhtjwfMM+1WJ0J3wnRutU2VANk\/5q\/eMk2I9HotzdQcWE+Uqj48ZszqEDkvTjVY\/aYybSFoLwjVxYrphU3Qy1Hrh+asLAtcUDH4eSltQDiSMq4TFnbBrkdDuI1\/z+BeBh1HuW3NWQk7Uwdh0YEVDmlgAa0w7sFZEtBl03ox6hx3cNMyqNANHVihLO4PCdsDo2vCG8VwkgvWeuubmlM\/RqQJsKU1rUG0uTBOGSgHRjbFfPhTsOYmUJwuOjvsn2v9TnAdkYm\/NDj8OvAsDrJ7deInMXISR\/UlFXbufK6Ub\/xLF62G592Xk7nuyLutCbvVZWDdKR7Lt5GQF4UtjfOouPKH4vMSIDHvyZfScO1eOecIKo90IaqTrBHBdNbfwGu1dh5+f98pJTY7J4QwvBSarPbT1UuRl6yLBQJixg0FGfyiTifRkjUrM6bJVL3S4iqwo7S4oMG6k1AFNfopIGdGhmLqcw3Pn5OSCFAhl\/UBLgZCQNzzjLM0sLPEFaMekdsQ+g3rmOIYhdls4l0LvpmEvdrGLQsFhF2hhboL0hDb1u2y\/vsfB3cuqSIgkJ9h5XtTrGyz1m1FxJSRC0Yd9PrCtDCUJJfrkDsw5mNEYlG69tmJKc30GNMlxP6GY3kgg6BTYqArtO988oLJq0bcXJ3YraCcZ1uE0O9mHz8xoiUo14MCOLRGSn4qM+mz8QFf3wTuTS27Cwy\/MroGJ55phLiciQVfkDUmej6CFeSf76AHfaQ5yxMXfOa+BhJKvU1D4JKmdnoeR+6Qlnk9kzfN9Uu2ueR4xy5JuQp1lIooUWikgDR2H8kPQuRV5jtHWESSdk8zzcBwxJBY7CDtA7at6ay\/0uxz2YelNCeGxZXbxOJ7UnyHHgLmSCr\/CTrLB8KPZ5s\/OWVLn8u2qu91fWXgZcIM1mnLeXrBLuxTUA5X\/azd9h+r4Lm2S0+Dzu5OVQekUCglaONkRoT5kOrHZW9izAHsvEKtzjTK7Nktdj3cX52nd7ctmzaq2MQWJcfFtJHkH1fa1zkz7d2Vmr+v\/RQjDIs+dbkwgsk+mnvaDa\/URkLtsLD76G\/ENkW3qOeQQyZTEXe3NbvJt46D9Cwp6+wHXLwZgl0gpk20hGRnlZ9zPPPz\/pIlEmqrgic6tXCEZwnGGx4ZT5M\/mxL+0yc00QgLB++jcbcrvHImTWm4bubBnkKxqxMO0j8a6WCV4qQGHOik+YsH9cQoeDixRmPS106RnQDzqvbRB8pL\/t5nRK1L4GOpXYOGSFa\/s6suB4kptQOUjvU3Z6UXE\/jNb7ulUtnkF+5U30YE7t+DU9oguqPpUYNpWAqAYZdIPi4dqitNzXyTOvSJaXEF0FVE+MNxrG7acmGOBpTHoA+QDhx\/qyAtyLIHHlHgy88OSvNHy2kCIIgwKPrmRJnw9upVo7xp7TsoqKMWHm+jSCfjRU0ifQsw5yiPwesSnKu8LwyR2xRRteTjphnWi4+cYTX1cBr+WMvKa2r28yxRYiMC2AD4VpbUwhRTSm0XZzZDsWcjT+X+5N9xyBZ\/i4frwnElzk5wbScD7tAXTnZs6ztd0jDECnd1\/C5rKx3eJBiUyXvu4mF+xfmQYTuN\/tcYOP7MwsLTaBCZA+mI2OWEesRRJPR38E1KoqAg6ZRXEDZbbWMAQ8Ny6zP\/ho52zrSbYTLSIVqxa2uWBUDH00a6PC\/FyZr6TU8IkYiXvudLoBpv0+l4CSg8Cm19lZjIHLrKueFJ+bl7XfLDUP87k6dRZJllRog15ZcNB\/P2h+7KsBDfREVqiGg46QoPF81y1JZnqA2xVJCsl\/U2sIWhmLoCIAmKPt5Pb4Bbiw8hYcXNPtaYKSRk9baZ9GGpbTqEmNcaQTYs1CZBvaKaxyGsE0vxl6xL2eZETgOWSnfwt1tonLA9SVujN90sdDIyQo7bhyn\/53H3vKOk\/ygobIrybQAGhjd0vLO7eQFikinqd9yzWSD6iTqpp6faH4SGLcYecmmh3anAXWwuhuptlMrADd6Di355cFyEk7qqhhz0LFwCC\/eEH5N\/iJe5mYk3DThrWmPw0AsOnvs38yaYUGVujMRmOr9aHHGr7cMV3bXY\/zTDkctWHcBWMIdx0e+hALKUF3VCqO9o3C75H1LksJqGGPHERlcfOHh9uj7Y0Mt8\/LW4anB+76f4r1OTshFNlVUsQ+3N5LviRj1Q7s3DS74BSD+K83a28IKDoQxEOsRVYZSu57ePPvmDtY3TicLd9\/czqXfBayN5eD+r9A4h6frzQd5a0GlWG6pmJuf+Hu8E0OrZWoL0lfSL806Sqe1I6Vrn0Fw88\/yzkijDg0zhWQYjxbiY6rdunaH2XGAWkHHhv7IWO9gCBmgFcm0Q45RXytT+QBc+hzM4MyXSuzeC0rF+pvdA2CrI\/ez3w953PmnwhFzr5BDmZuUM2jLsnBl6GAyDa6pdkM9Yt3p+MYlVf\/ZpFKJTE7+b56ViSg8JYx9XdiXwwmvdkaTTaQ+SqpJH8WIM0m\/nyLXl7ae5HV54ww+M2HNR\/xfP1MOlMUZkC6gd9jY3X0jswxUudRRlN4U8qqSKIKNHMyXZ9XHG6z\/FO6ixCFByUcQjSEC5tQoyF2bgp6+obdVB+19xzAgtFCInyGlq5XH4KWmj52belUPVRa1xpLixHWzNM3TgnuTNdqcJxmYJ4irrdlH\/zc6OOlF+ziuGtClTuMHxPWOw09gPOIisPSYbQbih1frpw8wMRiDBRNoA35USR6IPSRYkfVo\/FQnknBMEwrX10GkCHRQfGTDulLO3pZZpMIUmK9VFeZtW82PT1IUjy\/Yk\/oQ90RKp454mZDKBOAyFJxRO4alpslA8nCxlJwp0kN7xrtC8HnHQo1lYh7cat7GtYO7L3YZ6tvoNNUcoLtXzTeXxCzI3Cp\/aMVsj82TumrZyE4KipIuyhFyKMRjKcoEFjV9SpMwwKd+4TJ3G0tUHdCOs1ywcjOeBRJbikk2DI+1jaiW\/kV2SvukKhrNh46fM8vZUxQSvERVO46lTWrwp3lg\/VDuh+LABcmmS5ihlb2lOfEE9CMiYHJt5bM0heK8OAkwYHfVD9pAbTIdIVaLimFwUSLnnYjb2lR7\/9rhBN1zF77MqF+1PiYd2D1fYpEbU\/AvACTCEXbkKOvasqlWM435NoLp9bBFvqbn6QaGbyRoVBUx+qebMf4\/pUZ3pFlas05VD9ElUvssqbtQN1G8FdJAM2HQE5Xp4Xt6m7qhulc4jZsdzWYWcVGu5UcItlNwpuNV2ZHGOwW2W35TzbDVpGnmTCyzfRHXq2fb+qXbTL2fDe1AFpPYPwLnNEb2EFnuT5zgskleial0P0REkT9a9zn9tC0XklJWZwMkYPLf1mbzWJiyOOCoNZjNkXdsYa9dz94y1igUlbmKqAWTdmBv\/62ZCwXz9sui4FbjViBC4uYSvXyJ\/p7OqbR7X8Bpo9u1MVU2YuzxSpjvLCZfJaQZS1BTfGV82bwyOZn7plzareJrvq0OT2KygV2TC729H9c561\/5z6Ev8+04hYCG1mvpQzoiHMtRfOgjDevCTy7+EmiP\/ZEL8O5meea586NmnCWkLYNZnFji\/tJGXjgrozRnkzOI6419voxE1c\/NxhZuKP+vPKZS5ct6nnJgyq4njoA4+Zz5o+JjQHUVVKyvQkhyy\/Ag4IDTH17usnAE\/S8I2NjwTERD61j19U69KEN1YGHLhjFoYN4Gkhf9NuTfdtWnvXoBm5aOJCUw7HQlRLHtvk6vwdvvfZSpndJXQnJROD3VFsFM\/+SRf8RK9G8aRRmlL32Kf21QAInS2KwQxL5kAwhDZtdnk1aXqNbDByHGKOfUoGnjBOU0QufxbVE6VQ45yjel5XMSQkXj+nVMlQcBEplS8CuGYRaxkfKIchEo8FGoxezrBsx07aOfLdpCKuwY677EnADlDzCEpQSvFjTDtyzO12acSfyUVsZ5XTdpNhvbxHCYJxk33j9JL7E2cgQuwVovd3PjnyRJpyALulj8d3OsAaWWr7Zg3vf+VCt8RZF3m47EL1tKVfp0pFMXBz4nTdgWE7+SjZ78vuBAXqBEwZ\/S5lnM3h9vANiv5XkKneMAlokRWb25pvInnmGCbxGv9z3YT\/UQVmPD\/58LYGfJaMDRSv7dEMQfMbquMQ1X3tqvez1eEgwNgn647kFeTjjOUpzrTuBezUjsaOa9VobuhMcsy96LpAkYBTEtG07Jyp2WOkE4TezTTbKQIRgRe3PC0dI5jpFe3aatPD1tpLZO64c445v4xvWP96PIarSnV4ioPYBN1Vs8rtz5DbatLxBYkKZJvItkq67cV6l\/uW8SufYotrlMnJByVouLCQ\/kGqj4fcd2cwSQOmZiRQ3DpHOhyEZwUIPUYFQww+vf52OeLeCFcMaTQ3ieXRWlpDgn8UHdcJ7FuCZ4qxvzrwXKowD4+bQ+nV0mijHG\/2XIg+eQpjqwZtPJfOOWOdvAGSVy6nBNB291eAOq3HVzDSlwlDzU+leLlmaQEitKvsmsGBlc4hdA1gOYeN6vHbRF\/OYsRozygQHJaRf0vwxSJsYsDeGMgndhB4ggFTkvzn1eg7QMgbHjHPWe0U+pxA3+JToKXVyjWLDWtlE88S5AFKQZiG7Iu+sWcvvrb14mIKA\/+GKjTEXG4Kt7aVwN3eegaP+rPsT4dmZywdjcjUaUMfmQ6xxWbgVxKLJJoWyDlXHpK1\/HCmobT7nGU5EkJJa+MkNqPWzmiSOdQ4D7Na4ovyrNDhu4oRub+8hQ9uKWUJOddj2XjnF2zZVjjVGWgUFutYT4WZQ0DWfnOqSvXCP92cSgWVC3QB3jiiHUTRelsWakca+UEmNbfmXhx3wIUB+NbF0bCOCFLmb35GMXTuz4b\/zDhw8P\/LAYuQ6aCCfWUYfYgGbeDbdDchTGYvGcQcww7M+Svjf9dKbf42CWrREFYDMu0ZXHMeV12JYgW1yoBdgGFr55UKfcaLsLgOuN\/D3eSKgUdjNtGETjkS1eJdNSk1Ip9sHxWOgGaGc\/YWthHQ48\/QnlX3CiPYiNIgzHivySeRW4gSpWmmBTw3HwNLzt\/3Mv6SXXDNkyEHW4M0ziu3kg6V7SWksyQ8Gm\/4cZnJzeOgOaStTP1F\/puRenEV4mqf8JLHTE5JCE3A2Sq6w8zzjdYOsb9t8XjxiItLF0oIIKPu65yuR+zRKh+DNSHjPR216nUYbed2bToMd4haNNpR785JQ0D6FCd13EG5JMzKNX7X5+jwREm2PocgmDvSrU8niKCZ7UtxiV6UGPFmCaHuvLzMuoTyI+mYnN2r0O+dm7eoOPo8YngtLzHbmYgPH+PhpkirNSCoIEiJHzoHEugRPt7ZIdFiHHgKRNDtcG4RR8uDyZh0juuIqTEeg3iq9vcPlBA4quLaoUUL1jW2A3ggVF06x0zwViYfcQLBQwaKhllnbX2xe82tY\/ZAHUmvHzCxB48ylZHUuXYNCVVUxMupBcicbKtF1\/3Iu87xVSDiYtdY1tg\/QZr3F1RAX0pmEuNagqrJNcweCQapIQ0Vr6gw5MQW1YOHdd1HUayceD5gM+4PzXDCgYDcuT9enUS4jFtLnDv652eI7X5cm2yfAtWBp7MB1lVi3LiZI8AmaeUbWYjr47E9Np23AYJdXEeZFPrb+ax2zta53cVOhyB\/WTlaMWGdz2cq1iN3ThVmPVnlDZScUpe5yd9NDAhApN+k8WxFMo9iq\/YzrXlUGIP1UwdS\/1MUgsqo0acx\/gSHXUPBsTfwgQN6S2CfN08acF0DAUFdi+w0gd+RoQuvnigVkR352jS3T0SeA2fV\/aD+KMAgKeWUBQb+bHfatyLd5QUG1faNCvLSZiGzfKahWn3fOCI0w\/fykPE3kVw0Jku+InpleNmNCHQAmiGGdRf0KTJZfzRp+gEwmZR85O4tQU8kpJQxEbzT0Tmd6rxcVOJ7GQjLSNxHZeh57+cbzJlFSG8711y66AzfSEZquAo8sZFBgdrngNARKbjMkYugyz8kNA1TleXzkiDt\/pheW31enzrodQTGL+hxE622zOT+M8dvcOiznBczOz6AjmLho7Mzxk1leSXP2cCqHySUQ2J4Pl+3EE4GxMRRKJrrl5bA3ZwLzOAzsnbjk+WKS\/c2nP5rx1ERCJE\/Bat6DcY3eDBy9anJDouKGSDJDs0tvQQQDR+etH\/+DdqFqN8KhcKLZiiJaVxgWSFya+GBAROsbosYg+fp2pvexCTdR9z0BkAxKGZZyjP\/B58VbPipZEFWqd0dEOLVeCAak6FX5vAPWXM5Z7q0IE84dpzAgKLFtesRUdN03ihQnh\/TZ8+gw5KoTN5OABPpyxVXeFRP\/wwZutvsawBJylZc+vYscp1ohUf64dp3220QXim0C6yN3TQcMBK4DXrO3981mygVPeKccdwktvWM9QEyJONzWkgFAH8iSzpSkYakGqJ5hlQYtUHNgYO8ceTySYxOw44nANlpI9dB65ZW8wi1dqH+f92UYceF+7NDS5D02eQ7ikzs\/JCLmI7tZ9+PFtAAHXeF3btgFN25iKDrd2GeBiw1iDSEYmXQBjUtR8QYbEjGwFTpesNqzxiWy29Rj3qOKMICnYseL2JeMTKyvs4tLjMVaswOa0xeebSWgBuWO0Q3Xg2uI5MnxHQuZqGT4zLMkBWhVfQ5T3M0eb8NZCdefp+1+qe91fLe8UFJpS1NPM22kEn5bjHSlmvxv0CxnBoojqxiLN9eUJFxjkOlRMnEn6IZ\/vi8ld8p9JT848BaR0DTOq479GLvFVIoZZ6fcYqrwW0AwokOCxID8GkA+iZYyLu6MG5HuG2BQdxnZp0ZZ8Bnu+6btdjgiPoRRapGiDyGxCqEH\/o+tIoXDZ15h1ANO3CfOGW5byEkbqUa3AeEpQ0MiRPA4DekyVL3Ea+t+E5ft2K71E+IK5k5UM00ESKz4qdTIar9LUQqVnO40BOjMn3+Nm6f4lvLfiysOuyPusdJX+wlEMHDHSHq+bfdEnxaXbk+\/QQxVTWFZCFPXi24eQ1gk6pZyEXV5nghJXp2BfdJD8nLBIYNwjwBjTQK7B7G9oLQXCCSvbUaOUSwYPTQM1F65q9s1\/GPU1r7qvOcSyslwkCm4rqr78fv9VJ28FqqtsJ5hyPisGb3AogUrMII2FFtzBIWIR\/wxsG6Bbwx2RsveLvpy9JfUMMwq1XN+5u8HQ0Bbeoyr7SpSUfVpBXJcql2hVjNjOgqvctbkEE1pW8ku+qpmxk43QLftUC3rrUUmk8WEvlkMcBiqLE54leG+GR0PelLQvNNlmPNCXo4JjIVul7lBzNeOkVLNTUUnOFLKU7meiVrUc6hwCEab\/p2DFa4ZvX\/iNbNvksH7sipMxWWA9B1UDKsVwQTt94ynsLLOj6wjKYcg\/ZvQ7mGaw+PeH+36FRNtfWl4r8+L1nmM9m+gfjFYfqhrMBos1qdPLRK5QBB6rrI6SPbAuuPbj8jkhKyDKKAIUBRJHj7nrn36GRyWT4tmbRPdbNPjyH9PzgCnZdHWMc+TAo4IKrJGOyAQzZWFf1iZDxLy1DtNXl3g2BXC0Sh2fkW6O3+k2W09HNctqftzCjnrlWQjZ0CeAyQ\/9SY8h4DDYioCrEoZ06CqRwDfREm1IkzcSbt3BRI1RorzJ4+PnTWzqLfoOuqNt6y\/ZmOQO2pMrRuGCWyOzXmZvbCMTCgnJNi+jf3PQ3shcaFc7qO7AuY7UruVhicva6RJ\/ho2b5U77nn\/RAYqYMNlvwzLTGjaCcJxIjtAFgFHmH7yO09bGUh+QxCT4miOdgw8fLJ8TehbEgR\/8oWai+mPdifkyksfBaBbblilIn356N2sTYvKYx32Yd\/2DjfFi5tiAwK3MgiBECCUv2EiOVN99mUYnCufVs1oqoKFENf8Ay64rnFEKXgMbep4frj9aXq88k\/RXIHxSnSFTSXEV8RssfHyxfo6kY3XgFaduErAuE43aLAYwo2s+U5U7kcX\/tcBVO8\/Y+bu9bT4FnkcnzYUn0nWkeWYI1Tlo8dnC1ZGDLrj0iDWcuLQmB31FfzBDHhccTs+trV1Q7rVGCxd0YY1YCdgcR\/25Tceh0Rl2tOltn7ktR2R69Vl9GhxVg7JncnfSV3FACpaT6Fpvh\/nq69lkcPu0+ygFRlKHYeyiinKTVn04A1XePyzE2MgWd317NAaIzVQBPOOWHLwrWq2MzRkpbb8HY8taRcbosJSOc3ekvIWj3RDMLKZ04E7TX2gce2eBhsuzcDV0e3l8LFagLLs128VQladuZeoY\/jP1L5738BYtNiybkBTn0RHVJEkafBCqOLul+YFt\/5sLFEGR66GNLF551oJrXjzb3fuQ8\/kckYoGwv5DSzLNv+FkhEPj9ONCVDBK8aGCKjnsGU2BgED4ovdQz9tgvCPNBx90TzFFkktr2C8fSkP2qCxQ9+CIy6u6sObbK3HrOUJTuRavTPaI9a8dRpGm+501cXeIaeQX9YOkUZ3wjLQ6w3lfYL40Sh7zbaw+bAaPRWBEOzzD\/oyoFKYMxIBwV5KY6imUshOJGyJiZ7bV3MTaQKG738bNCr8W\/I0QhZg==\"\/><div class=\"pfbc-element-0 pfbc-element\"><div class=\"pfbc-label\"><label for=\"accua-form___accua-form__2_69e9da995a807-element-12\">Yritys <span class=\"pfbc-required\" aria-label=\"required\">*<\/span><\/label><\/div><div class=\"pfbc-fieldwrap\"><input type=\"text\" class=\"pfbc-textbox accuaforms-field-required accuaform-fieldname-yritys accuaform-fieldtype-textfield\" name=\"yritys\" value=\"\" id=\"accua-form___accua-form__2_69e9da995a807-element-12\" required=\"required\" aria-required=\"true\"\/><\/div><div class=\"pfbc-elementbottom\"><\/div><\/div><div class=\"pfbc-element-1 pfbc-element\"><div class=\"pfbc-label\"><label for=\"accua-form___accua-form__2_69e9da995a807-element-13\">Etunimi <span class=\"pfbc-required\" aria-label=\"required\">*<\/span><\/label><\/div><div class=\"pfbc-fieldwrap\"><input type=\"text\" class=\"pfbc-textbox accuaforms-field-required accuaform-fieldname-first_name accuaform-fieldtype-textfield\" name=\"first_name\" value=\"\" id=\"accua-form___accua-form__2_69e9da995a807-element-13\" required=\"required\" aria-required=\"true\"\/><\/div><div class=\"pfbc-elementbottom\"><\/div><\/div><div class=\"pfbc-element-2 pfbc-element\"><div class=\"pfbc-label\"><label for=\"accua-form___accua-form__2_69e9da995a807-element-14\">Sukunimi <span class=\"pfbc-required\" aria-label=\"required\">*<\/span><\/label><\/div><div class=\"pfbc-fieldwrap\"><input type=\"text\" class=\"pfbc-textbox accuaforms-field-required accuaform-fieldname-last_name accuaform-fieldtype-textfield\" name=\"last_name\" value=\"\" id=\"accua-form___accua-form__2_69e9da995a807-element-14\" required=\"required\" aria-required=\"true\"\/><\/div><div class=\"pfbc-elementbottom\"><\/div><\/div><div class=\"pfbc-element-3 pfbc-element\"><div class=\"pfbc-label\"><label for=\"accua-form___accua-form__2_69e9da995a807-element-15\">Email <span class=\"pfbc-required\" aria-label=\"required\">*<\/span><\/label><\/div><div class=\"pfbc-fieldwrap\"><input type=\"email\" class=\"pfbc-textbox accuaforms-field-required accuaform-fieldname-email accuaform-fieldtype-autoreply_email\" name=\"email\" value=\"\" id=\"accua-form___accua-form__2_69e9da995a807-element-15\" required=\"required\" aria-required=\"true\"\/><\/div><div class=\"pfbc-elementbottom\"><\/div><\/div><div class=\"pfbc-element-4 pfbc-element\"><div class=\"pfbc-label\"><label for=\"accua-form___accua-form__2_69e9da995a807-element-16\">Puhelinnumero <span class=\"pfbc-required\" aria-label=\"required\">*<\/span><\/label><\/div><div class=\"pfbc-fieldwrap\"><input type=\"text\" class=\"pfbc-textbox accuaforms-field-required accuaform-fieldname-puhelinnumero accuaform-fieldtype-textfield\" name=\"puhelinnumero\" value=\"\" id=\"accua-form___accua-form__2_69e9da995a807-element-16\" required=\"required\" aria-required=\"true\"\/><\/div><div class=\"pfbc-elementbottom\"><\/div><\/div><div class=\"pfbc-element-5 pfbc-element\"><div class=\"pfbc-label\"><label for=\"accua-form___accua-form__2_69e9da995a807-element-17\">Lis\u00e4tietoja<\/label><\/div><div class=\"pfbc-fieldwrap\"><textarea class=\"pfbc-textarea accuaform-fieldname-message accuaform-fieldtype-textarea\" rows=\"5\" name=\"message\" cols=\"50\" id=\"accua-form___accua-form__2_69e9da995a807-element-17\"><\/textarea><\/div><div class=\"pfbc-elementbottom\"><\/div><\/div><div class=\"pfbc-element pfbc-buttons\"><button type=\"submit\" value=\"L\u00e4het\u00e4\" name=\"laheta\" class=\"accuaform-fieldname-laheta accuaform-fieldtype-submit\" id=\"accua-form___accua-form__2_69e9da995a807-element-18\">L\u00e4het\u00e4<\/button><\/div><\/form><script type=\"text\/javascript\">\r\n<!-- \r\njQuery(document).ready(function() {    \r\n    \/\/ If there are errors on page load, focus the error summary or first invalid field\r\n    if (jQuery('.pfbc-error', '#accua-form___accua-form__2_69e9da995a807').length > 0) {\r\n      setTimeout(function() {\r\n        var errorContainer = jQuery('.pfbc-error', '#accua-form___accua-form__2_69e9da995a807').first();\r\n        errorContainer.attr('tabindex', '-1').focus();\r\n      }, 100);\r\n    } else if (jQuery('.pfbc-element-has-error', '#accua-form___accua-form__2_69e9da995a807').length > 0) {\r\n      setTimeout(function() {\r\n        var firstInvalidField = jQuery('.pfbc-element-has-error :input:visible:enabled:first', '#accua-form___accua-form__2_69e9da995a807').first();\r\n        if (firstInvalidField.length) {\r\n          firstInvalidField.focus();\r\n        }\r\n      }, 100);\r\n    }\r\n    jQuery(\"#accua-form___accua-form__2_69e9da995a807 .pfbc-element:last\").css({ \"margin-bottom\": \"0\", \"padding-bottom\": \"0\", \"border-bottom\": \"none\" });\t});\r\n\/\/ -->\r\n<\/script><script type=\"text\/javascript\">\r\n<!--\r\nvar _handle_ajax_submit_accua_form___accua_form__2_69e9da995a807 = function() {return true;}\r\nvar _handle_ajax_submit_complete_accua_form___accua_form__2_69e9da995a807 = function() {return false;}\r\nvar _handle_ajax_submit_timeout_accua_form___accua_form__2_69e9da995a807 = function() {return false;}\r\nvar _handle_ajax_submit_message_accua_form___accua_form__2_69e9da995a807 = function() {}\r\nvar _handle_ajax_submit_response_accua_form___accua_form__2_69e9da995a807 = function() {}\r\n\r\njQuery(function($) {\r\n  var thisform = $(\"#accua-form___accua-form__2_69e9da995a807\");\r\n  var ajax_enabled = \"www.perustele.fi\" == location.hostname ;\r\n  var anchor_id = \"2\" ;\r\n\r\n  var response_messages = $(\"#_response_messages_accua-form___accua-form__2_69e9da995a807\");\r\n  if (! response_messages.length) {\r\n    \/\/ Create all three anchors for success, invalid, and error states\r\n    thisform.before('\\x3Ca id=\"formSubmitSuccess-'+anchor_id+'\" name=\"formSubmitSuccess-'+anchor_id+'\" class=\"accua-form-anchor\" \/\\x3E');\r\n    thisform.before('\\x3Ca id=\"formSubmitInvalid-'+anchor_id+'\" name=\"formSubmitInvalid-'+anchor_id+'\" class=\"accua-form-anchor\" \/\\x3E');\r\n    thisform.before('\\x3Ca id=\"formSubmitError-'+anchor_id+'\" name=\"formSubmitError-'+anchor_id+'\" class=\"accua-form-anchor\" \/\\x3E');\r\n    response_messages = $('\\x3Cdiv id=\"_response_messages_accua-form___accua-form__2_69e9da995a807\" class=\"accua-form-messages\"\\x3E\\x3C\/div\\x3E');\r\n    thisform.before(response_messages);\r\n  }\r\n  \r\n  \/\/ Smooth scroll helper function - also updates URL hash for GA tracking and bookmarkability\r\n  var smoothScrollToElement = function(elementId) {\r\n    var target = document.getElementById(elementId);\r\n    if (target) {\r\n      target.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n      \/\/ Update URL hash without adding a browser history entry (replaceState prevents instant jump)\r\n      if (history.replaceState) {\r\n        history.replaceState(null, '', '#' + elementId);\r\n      }\r\n    }\r\n  };\r\n\r\n  var _ajax_submitting_accua_form___accua_form__2_69e9da995a807 = false;\r\n  var timeout_handler = false;\r\n  var timeout_count = 0;\r\n  var fail_count = 0;\r\n  var disabled_fields = false;\r\n  var submitBtn = $('button[type=\"submit\"]', thisform);\r\n  var submitBtnOriginalText = submitBtn.text();\r\n  var submitBtnSendingText = \"Sending...\";\r\n\r\n  var jsuuid_field = $('input[name=\"_AccuaForm_jsuuid\"]', thisform);\r\n  var jsuuid = jsuuid_field.val();\r\n  if (jsuuid == '') {\r\n    var chars = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');\r\n    var radix = chars.length\r\n    for (i = 0; i < 25; i++) {\r\n      jsuuid += chars[0 | Math.random()*radix];\r\n    }\r\n    jsuuid_field.val(jsuuid);\r\n  }\r\n\r\n  var ga_track = {\"title\":\"Tarjouspyynt\\u00f6 Quail Pro12-kuulokkeista\",\"track_submit\":false,\"track_fields\":false} ;\r\n  var ga_event, ga_submit_event, ga_field_event, ga_field_events_fired = {};\r\n  ga_event = function(eventCategory, eventAction){\r\n    \/* matomo *\/ \r\n    if (window._mtm && (typeof window._mtm.push == 'function')) {\r\n      window._mtm.push({'event': 'ContactForms', 'eventAction': eventAction, 'eventCategory': eventCategory, 'eventLabel': ga_track.title});\r\n    }\r\n      \r\n    if (typeof window.gtag == 'function') {\r\n      window.gtag('event', eventAction, {'event_category': eventCategory, 'event_label': ga_track.title});\r\n    } else if (window.dataLayer && (typeof window.dataLayer.push == 'function')) {\r\n      dataLayer.push({'event': 'ContactForms', 'eventAction': eventAction, 'eventCategory': eventCategory, 'eventLabel': ga_track.title});\r\n      \/\/backward compatibility\r\n      var gtag = function(){window.dataLayer.push(arguments);}\r\n      gtag('event', eventAction, {'event_category': eventCategory, 'event_label': ga_track.title});\r\n    } else if (typeof window.ga == 'function') {\r\n      window.ga('send', 'event', eventCategory, eventAction, ga_track.title);\r\n    } else if (window._gaq && (typeof window._gaq.push == 'function')) {\r\n      window._gaq.push(['_trackEvent', eventCategory, eventAction, ga_track.title]);\r\n    } else if (window.gaq && (typeof window.gaq.push == 'function')) {\r\n      window.gaq.push(['_trackEvent', eventCategory, eventAction, ga_track.title]);\r\n    } else if (window.pageTracker && (typeof window.pageTracker._trackEvent == 'function')) {\r\n      window.pageTracker._trackEvent(eventCategory, eventAction, ga_track.title);\r\n    }\r\n  }\r\n  ga_submit_event = function(eventAction){\r\n    if (ga_track.track_submit) {\r\n      ga_event('ContactFormsSubmit', eventAction);\r\n    }\r\n    thisform.trigger('ContactFormsSubmit', [eventAction]);\r\n  }\r\n  ga_field_event = function(field_name){\r\n    if (!ga_field_events_fired[field_name]){\r\n      if (ga_track.track_fields) {\r\n        ga_event('ContactFormsFieldFilledIn', field_name);\r\n        ga_field_events_fired[field_name] = true;\r\n      }\r\n      thisform.trigger('ContactFormsFieldFilledIn', [field_name]);\r\n    }\r\n  }\r\n  $('input, textarea, select', thisform).change(function(){\r\n    ga_field_event($(this).attr('name'));\r\n  });\r\n  \r\n  \/\/ Disable submit button during form submission\r\n  var disableSubmitButton = function() {\r\n    submitBtn.prop('disabled', true).attr('aria-busy', 'true').text(submitBtnSendingText);\r\n  };\r\n  \r\n  \/\/ Re-enable submit button (on failure or completion)\r\n  var enableSubmitButton = function() {\r\n    submitBtn.prop('disabled', false).removeAttr('aria-busy').text(submitBtnOriginalText);\r\n  };\r\n  \r\n  \/\/ Get field label from the field's container element\r\n  var getFieldLabel = function(field) {\r\n    var container = field.closest('.pfbc-element');\r\n    if (!container.length) {\r\n      return '';\r\n    }\r\n    \r\n    \/\/ Try floating label first (inline labels mode)\r\n    var label = container.find('.pfbc-floating-label').first();\r\n    if (!label.length) {\r\n      \/\/ Try standard label in .pfbc-label\r\n      label = container.find('.pfbc-label label').first();\r\n    }\r\n    if (!label.length) {\r\n      \/\/ Try any label element\r\n      label = container.find('label').first();\r\n    }\r\n    \r\n    if (label.length) {\r\n      \/\/ Get text content, removing the required asterisk\r\n      var text = label.clone().find('.pfbc-required').remove().end().text().trim();\r\n      return text;\r\n    }\r\n    \r\n    return '';\r\n  };\r\n  \r\n  \/\/ Build required field error message with field name\r\n  \/\/ Checks per-field data-custom-required-msg attribute first, then falls back to global template\r\n  var getRequiredMessage = function(fieldLabel, field) {\r\n    var template = \"%s is a required field\";\r\n    if (field) {\r\n      var custom = field.attr('data-custom-required-msg');\r\n      if (custom) {\r\n        template = custom;\r\n      }\r\n    }\r\n    if (fieldLabel) {\r\n      return template.replace('%s', fieldLabel);\r\n    }\r\n    return template.replace('%s', '');\r\n  };\r\n  \r\n  \/\/ Build email validation error message with field name\r\n  \/\/ Checks per-field data-custom-format-msg attribute first, then falls back to global template\r\n  var getEmailMessage = function(fieldLabel, field) {\r\n    var template = \"%s: please enter a valid email address\";\r\n    if (field) {\r\n      var custom = field.attr('data-custom-format-msg');\r\n      if (custom) {\r\n        template = custom;\r\n      }\r\n    }\r\n    if (fieldLabel) {\r\n      return template.replace('%s', fieldLabel);\r\n    }\r\n    return template.replace('%s', '');\r\n  };\r\n  \r\n  \/\/ Build phone validation error message with field name\r\n  \/\/ Checks per-field data-custom-format-msg attribute first, then falls back to global template\r\n  var getPhoneMessage = function(fieldLabel, field) {\r\n    var template = \"%s: please enter a valid phone number (e.g. +39 333 1234567)\";\r\n    if (field) {\r\n      var custom = field.attr('data-custom-format-msg');\r\n      if (custom) {\r\n        template = custom;\r\n      }\r\n    }\r\n    if (fieldLabel) {\r\n      return template.replace('%s', fieldLabel);\r\n    }\r\n    return template.replace('%s', '');\r\n  };\r\n  \r\n  \/\/ Check if a telephone field contains only a country prefix (e.g. \"+39\")\r\n  \/\/ These values should be treated as empty \u2014 the user hasn't entered a real number.\r\n  var isTelephonePrefixOnly = function(field) {\r\n    if (!field.hasClass('accuaform-telephone')) return false;\r\n    var val = field.val();\r\n    if (!val) return false;\r\n    val = val.trim();\r\n    if (val === '' || val.charAt(0) !== '+') return false;\r\n    return val.replace(\/\\D\/g, '').length <= 4;\r\n  };\r\n  \r\n  \/\/ Scroll to first invalid field, then focus after scroll completes\r\n  var focusFirstInvalidField = function() {\r\n    var firstInvalidContainer = $('#accua-form___accua-form__2_69e9da995a807 .pfbc-element-has-error').first();\r\n    if (!firstInvalidContainer.length) {\r\n      return;\r\n    }\r\n    \r\n    \/\/ Try to find a focusable element in the invalid container\r\n    var focusTarget = null;\r\n    \r\n    \/\/ Check for radio\/checkbox groups first\r\n    var radioOrCheckbox = firstInvalidContainer.find('input[type=\"radio\"], input[type=\"checkbox\"]').first();\r\n    if (radioOrCheckbox.length) {\r\n      focusTarget = radioOrCheckbox;\r\n    }\r\n    \r\n    \/\/ Check for file input (focus the dropzone button if available)\r\n    if (!focusTarget) {\r\n      var fileDropzone = firstInvalidContainer.find('.accua-file-dropzone');\r\n      if (fileDropzone.length) {\r\n        focusTarget = fileDropzone;\r\n      } else {\r\n        var fileInput = firstInvalidContainer.find('input[type=\"file\"]');\r\n        if (fileInput.length) {\r\n          focusTarget = fileInput;\r\n        }\r\n      }\r\n    }\r\n    \r\n    \/\/ Check for custom select buttons (post select, etc.)\r\n    if (!focusTarget) {\r\n      var customSelectBtn = firstInvalidContainer.find('.pfbc-post-select-trigger, button[aria-haspopup=\"listbox\"]').first();\r\n      if (customSelectBtn.length) {\r\n        focusTarget = customSelectBtn;\r\n      }\r\n    }\r\n    \r\n    \/\/ Standard inputs (text, email, select, textarea)\r\n    if (!focusTarget) {\r\n      focusTarget = firstInvalidContainer.find('input:not([type=\"hidden\"]), textarea, select').first();\r\n    }\r\n    \r\n    if (focusTarget && focusTarget.length) {\r\n      \/\/ Scroll into view first with smooth animation\r\n      if (focusTarget[0].scrollIntoView) {\r\n        focusTarget[0].scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n      }\r\n      \/\/ Focus after scroll animation completes (typical scroll animation is ~300-500ms)\r\n      setTimeout(function() {\r\n        focusTarget.focus();\r\n      }, 500);\r\n    }\r\n  };\r\n  \r\n  \/\/ Scroll to a specific field by ID and focus it\r\n  var scrollToFieldAndFocus = function(fieldId) {\r\n    var element = $('#' + fieldId);\r\n    if (!element.length) {\r\n      return;\r\n    }\r\n    \r\n    var focusTarget = element;\r\n    \r\n    \/\/ If it's already an input\/select\/textarea, use it directly\r\n    if (element.is('input, select, textarea')) {\r\n      focusTarget = element;\r\n    }\r\n    \/\/ For containers (pfbc-element), find the first focusable element\r\n    else if (element.hasClass('pfbc-element')) {\r\n      var radioOrCheckbox = element.find('input[type=\"radio\"], input[type=\"checkbox\"]').first();\r\n      if (radioOrCheckbox.length) {\r\n        focusTarget = radioOrCheckbox;\r\n      } else {\r\n        var fileDropzone = element.find('.accua-file-dropzone');\r\n        if (fileDropzone.length) {\r\n          focusTarget = fileDropzone;\r\n        } else {\r\n          focusTarget = element.find('input:not([type=\"hidden\"]), textarea, select').first();\r\n        }\r\n      }\r\n    }\r\n    \/\/ For file dropzone wrapper, focus the dropzone\r\n    else if (element.find('.accua-file-dropzone').length) {\r\n      focusTarget = element.find('.accua-file-dropzone').first();\r\n    }\r\n    \r\n    if (focusTarget && focusTarget.length) {\r\n      if (focusTarget[0].scrollIntoView) {\r\n        focusTarget[0].scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n      }\r\n      setTimeout(function() {\r\n        focusTarget.focus();\r\n      }, 500);\r\n    }\r\n  };\r\n  \r\n  \/\/ Track if form submission has been attempted\r\n  var submitAttempted = false;\r\n  \r\n  \/\/ Array to collect field errors for summary\r\n  var fieldErrorsList = [];\r\n  \r\n  \/\/ Get the error ID for a radio\/checkbox group (DRY helper)\r\n  var getGroupErrorId = function(field) {\r\n    var groupWrapper = field.closest('.pfbc-radio-buttons, .pfbc-checkboxes').parent();\r\n    var groupId = groupWrapper.attr('id') || field.attr('id');\r\n    return groupId + '-error';\r\n  };\r\n  \r\n  \/\/ Remove an error element with smooth animation (generic helper for any field type)\r\n  var removeErrorAnimated = function(errorId) {\r\n    var errorEl = $('#' + errorId);\r\n    if (errorEl.length) {\r\n      errorEl.addClass('pfbc-error-removing');\r\n      setTimeout(function() {\r\n        errorEl.remove();\r\n      }, 150); \/\/ Match CSS animation duration\r\n    }\r\n  };\r\n  \r\n  \/\/ Remove all existing errors for a group with smooth fade-out (handles both potential IDs)\r\n  var removeGroupErrors = function(field, fieldName, animate) {\r\n    var groupContainer = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n    var errors = groupContainer.find('.pfbc-inline-error');\r\n    \r\n    \/\/ Also collect errors by potential IDs\r\n    var groupWrapper = field.closest('.pfbc-radio-buttons, .pfbc-checkboxes').parent();\r\n    var wrapperId = groupWrapper.attr('id');\r\n    if (wrapperId) {\r\n      errors = errors.add($('#' + wrapperId + '-error'));\r\n    }\r\n    var firstField = $(\"[name='\"+fieldName+\"']\", thisform).first();\r\n    if (firstField.attr('id')) {\r\n      errors = errors.add($('#' + firstField.attr('id') + '-error'));\r\n    }\r\n    \r\n    if (animate && errors.length) {\r\n      \/\/ Smooth fade-out animation\r\n      errors.addClass('pfbc-error-removing');\r\n      setTimeout(function() {\r\n        errors.remove();\r\n      }, 150); \/\/ Match CSS transition duration\r\n    } else {\r\n      errors.remove();\r\n    }\r\n  };\r\n  \r\n  \/\/ Show or update the error\/success\/loading summary area\r\n  \/\/ state: true (success), false (error), 'loading' (submitting)\r\n  var updateSummaryArea = function(state) {\r\n    var summaryArea = $('#accua-form___accua-form__2_69e9da995a807-validation-summary');\r\n    \r\n    if (!submitAttempted && state !== 'loading') {\r\n      summaryArea.remove();\r\n      return;\r\n    }\r\n    \r\n    \/\/ Ensure summary area exists\r\n    if (!summaryArea.length) {\r\n      summaryArea = $('<div id=\"accua-form___accua-form__2_69e9da995a807-validation-summary\" class=\"pfbc-validation-summary\" role=\"status\" aria-live=\"polite\"><\/div>');\r\n      thisform.find('.pfbc-error').remove();\r\n      thisform.append(summaryArea);\r\n    }\r\n    \r\n    if (state === 'loading') {\r\n      \/\/ Show loading state - neutral blue with spinner and text\r\n      summaryArea\r\n        .removeClass('pfbc-validation-error pfbc-validation-success')\r\n        .addClass('pfbc-validation-loading')\r\n        .attr('role', 'status')\r\n        .attr('aria-live', 'polite')\r\n        .attr('aria-busy', 'true')\r\n        .html('<span class=\"pfbc-summary-spinner\" aria-hidden=\"true\"><\/span>' + \"Submitting your form, please wait...\");\r\n    } else if (state === true) {\r\n      \/\/ Show success state\r\n      summaryArea\r\n        .removeClass('pfbc-validation-error pfbc-validation-loading')\r\n        .addClass('pfbc-validation-success')\r\n        .attr('role', 'status')\r\n        .attr('aria-live', 'polite')\r\n        .removeAttr('aria-busy')\r\n        .html('<span class=\"pfbc-summary-icon\">\u2713<\/span> ' + \"All fields are valid. Ready to submit!\");\r\n    } else {\r\n      \/\/ Show error state with field list\r\n      summaryArea\r\n        .removeClass('pfbc-validation-success pfbc-validation-loading')\r\n        .addClass('pfbc-validation-error')\r\n        .attr('role', 'alert')\r\n        .attr('aria-live', 'assertive')\r\n        .removeAttr('aria-busy');\r\n      \r\n      var html = '<p class=\"pfbc-summary-header\">' + \"Check the following fields to continue:\" + '<\/p><ul class=\"pfbc-summary-list\">';\r\n      for (var i = 0; i < fieldErrorsList.length; i++) {\r\n        var err = fieldErrorsList[i];\r\n        html += '<li><a href=\"#\" class=\"pfbc-summary-link\" data-field-id=\"' + err.fieldId + '\">' + err.label + '<\/a> \u2013 ' + err.errorType + '<\/li>';\r\n      }\r\n      html += '<\/ul>';\r\n      summaryArea.html(html);\r\n      \r\n      \/\/ Attach click handlers to links\r\n      summaryArea.find('.pfbc-summary-link').on('click', function(e) {\r\n        e.preventDefault();\r\n        var fieldId = $(this).data('field-id');\r\n        scrollToFieldAndFocus(fieldId);\r\n      });\r\n    }\r\n  };\r\n  \r\n  var show_error_messages = function(message) {\r\n    \/\/ Show error message in the validation summary area\r\n    \/\/ Used when AJAX submission fails (network error, server error, etc.)\r\n    var summaryArea = thisform.find('.pfbc-validation-summary');\r\n    if (summaryArea.length) {\r\n      summaryArea.html('<div class=\"pfbc-validation-error\" role=\"alert\"><strong>' + accua_forms_i18n.check_fields + '<\/strong><ul>' + message + '<\/ul><\/div>').show();\r\n    }\r\n  }\r\n  \r\n  \/\/ Update summary area with server-side errors (called from AJAX error response)\r\n  var updateSummaryWithServerErrors = function(errors, elementErrors) {\r\n    \/\/ Collect server errors for the summary\r\n    fieldErrorsList = [];\r\n    \r\n    if (elementErrors) {\r\n      jQuery.each(elementErrors, function(fieldName, fieldErrors) {\r\n        var field = jQuery('[name=\"' + fieldName + '\"]', thisform);\r\n        var fieldId = field.attr('id') || fieldName;\r\n        var fieldLabel = getFieldLabel(field);\r\n        \r\n        \/\/ If no label found, try to get from the field container or use field name\r\n        if (!fieldLabel || fieldLabel === fieldName) {\r\n          var container = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n          fieldLabel = container.find('label').first().text().replace(\/\\s*\\*\\s*$\/, '').trim();\r\n          if (!fieldLabel) {\r\n            \/\/ Fallback: humanize the field name\r\n            fieldLabel = fieldName.replace(\/[-_]\/g, ' ').replace(\/\\b\\w\/g, function(l){ return l.toUpperCase(); });\r\n          }\r\n        }\r\n        \r\n        for (var i = 0; i < fieldErrors.length; i++) {\r\n          fieldErrorsList.push({\r\n            fieldId: fieldId,\r\n            label: fieldLabel,\r\n            errorType: fieldErrors[i]\r\n          });\r\n        }\r\n      });\r\n    }\r\n    \r\n    \/\/ Also add any general errors from the errors array\r\n    if (errors && errors.length > 0) {\r\n      for (var i = 0; i < errors.length; i++) {\r\n        \/\/ Check if this error is already in fieldErrorsList\r\n        var alreadyAdded = false;\r\n        for (var j = 0; j < fieldErrorsList.length; j++) {\r\n          if (fieldErrorsList[j].errorType === errors[i]) {\r\n            alreadyAdded = true;\r\n            break;\r\n          }\r\n        }\r\n        if (!alreadyAdded) {\r\n          fieldErrorsList.push({\r\n            fieldId: '',\r\n            label: '',\r\n            errorType: errors[i]\r\n          });\r\n        }\r\n      }\r\n    }\r\n    \r\n    \/\/ Update the summary area to show errors\r\n    if (fieldErrorsList.length > 0) {\r\n      updateSummaryArea(false);\r\n    }\r\n  }\r\n\r\n  _handle_ajax_submit_accua_form___accua_form__2_69e9da995a807 = function() {\r\n    if (_ajax_submitting_accua_form___accua_form__2_69e9da995a807) {\r\n      return false;\r\n    }\r\njQuery(\"#accua-form___accua-form__2_69e9da995a807 .pfbc-error\").remove();\r\n    \/\/ Mark that submit was attempted\r\n    submitAttempted = true;\r\n    \r\n    var valid_empty = true;\r\n    var valid_mail = true;\r\n    var valid_phone = true;\r\n    var fieldErrors = {};\r\n    \r\n    \/\/ Reset field errors list for summary\r\n    fieldErrorsList = [];\r\n\r\n    $(\"#accua-form___accua-form__2_69e9da995a807 .pfbc-element\").removeClass('pfbc-invalid');\r\n    $(\"#accua-form___accua-form__2_69e9da995a807 .pfbc-element\").removeClass('pfbc-element-has-error');\r\n    $(\"#accua-form___accua-form__2_69e9da995a807 input, #accua-form___accua-form__2_69e9da995a807 textarea, #accua-form___accua-form__2_69e9da995a807 select\").attr('aria-invalid', 'false');\r\n    $(\"#accua-form___accua-form__2_69e9da995a807 .pfbc-inline-error\").remove();\r\n\r\n    var processedGroups = {}; \/\/ Track radio\/checkbox groups to avoid duplicate errors\r\n\r\n    $('.accuaforms-field-required', thisform).each(function(){\r\n      var field = $(this);\r\n      var type = field.attr('type');\r\n      var fieldName = field.attr('name');\r\n\r\n      if (type === 'checkbox' || type === 'radio') {\r\n        \/\/ Skip if we've already processed this group\r\n        if (processedGroups[fieldName]) {\r\n          return true;\r\n        }\r\n        processedGroups[fieldName] = true;\r\n\r\n        if ($(\"[name='\"+fieldName+\"']:checked\", \"#accua-form___accua-form__2_69e9da995a807\").length > 0) {\r\n          return true;\r\n        }\r\n\r\n        valid_empty = false;\r\n        \r\n        \/\/ Find the container for the radio\/checkbox group\r\n        var groupContainer = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n        groupContainer.addClass('pfbc-invalid pfbc-element-has-error');\r\n        \r\n        \/\/ Remove any existing errors before adding new one (prevents duplicates)\r\n        removeGroupErrors(field, fieldName);\r\n        \r\n        \/\/ Get consistent error ID using helper\r\n        var errorId = getGroupErrorId(field);\r\n        \r\n        \/\/ Find the last radio\/checkbox in the group\r\n        var lastInGroup = $(\"[name='\"+fieldName+\"']\", \"#accua-form___accua-form__2_69e9da995a807\").last();\r\n        \r\n        \/\/ Apply ARIA attributes to all inputs in the group\r\n        $(\"[name='\"+fieldName+\"']\", \"#accua-form___accua-form__2_69e9da995a807\").attr('aria-invalid', 'true');\r\n        $(\"[name='\"+fieldName+\"']\", \"#accua-form___accua-form__2_69e9da995a807\").attr('aria-describedby', errorId);\r\n        \r\n        \/\/ Get field label and build error message\r\n        var fieldLabel = getFieldLabel(field);\r\n        var firstInput = $(\"[name='\"+fieldName+\"']\", \"#accua-form___accua-form__2_69e9da995a807\").first();\r\n        var errorMessage = getRequiredMessage(fieldLabel, firstInput);\r\n        \r\n        \/\/ Add to field errors list for summary (use first input ID for focusing)\r\n        fieldErrorsList.push({\r\n          fieldId: firstInput.attr('id'),\r\n          label: fieldLabel,\r\n          errorType: \"required field\"\r\n        });\r\n        \r\n        \/\/ Add error message after the last item in the group\r\n        var inlineError = $('<div class=\"pfbc-inline-error\" id=\"' + errorId + '\" role=\"alert\" aria-live=\"polite\"><div class=\"pfbc-error-message\">' + errorMessage + '<\/div><\/div>');\r\n        \r\n        \/\/ Insert after the last radio\/checkbox wrapper\r\n        var lastWrapper = lastInGroup.closest('.pfbc-radio, .pfbc-checkbox');\r\n        if (lastWrapper.length) {\r\n          lastWrapper.after(inlineError);\r\n        } else {\r\n          lastInGroup.after(inlineError);\r\n        }\r\n      } else {\r\n        var val = field.val();\r\n        if (typeof(val) == \"string\") {\r\n          \/\/ Treat \"-\" and \"Select...\" as invalid only for dropdowns\r\n          \/\/ For telephone fields, prefix-only values (e.g. \"+39\") are also empty\r\n          var isSelect = field.is('select');\r\n          if (! val.match(\/^\\s*$\/) && (!isSelect || (val !== \"Select...\" && val !== \"-\")) && !isTelephonePrefixOnly(field)) {\r\n            return true;\r\n          }\r\n        } else if (Array.isArray(val)) {\r\n          \/\/ Multiselect: empty array means no selection\r\n          if (val.length > 0) {\r\n            return true;\r\n          }\r\n        } else if (val) {\r\n          return true;\r\n        }\r\n\r\n        valid_empty = false;\r\n        var parent = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n        parent.addClass('pfbc-invalid pfbc-element-has-error');\r\n        \r\n        \/\/ Apply ARIA attributes\r\n        field.attr('aria-invalid', 'true');\r\n        var errorId = field.attr('id') + '-error';\r\n        field.attr('aria-describedby', errorId);\r\n        \r\n        \/\/ Get field label and build error message\r\n        var fieldLabel = getFieldLabel(field);\r\n        var errorMessage = getRequiredMessage(fieldLabel, field);\r\n        fieldErrorsList.push({\r\n          fieldId: field.attr('id'),\r\n          label: fieldLabel,\r\n          errorType: \"required field\"\r\n        });\r\n        \r\n        var inlineError = $('<div class=\"pfbc-inline-error\" id=\"' + errorId + '\" role=\"alert\" aria-live=\"polite\"><div class=\"pfbc-error-message\">' + errorMessage + '<\/div><\/div>');\r\n        \r\n        \/\/ For file inputs with help text, insert error after help text\r\n        var helpText = field.siblings('.pfbc-help').last();\r\n        if (field.is('[type=\"file\"]') && helpText.length) {\r\n          helpText.after(inlineError);\r\n        } else {\r\n          field.after(inlineError);\r\n        }\r\n      }\r\n    });\r\n\r\n    $('.pfbc-textbox[type=\"email\"]', thisform).each(function(){\r\n      var field = $(this);\r\n\r\n      if (field.val().match(\/^\\s*$\/)) {\r\n        return true;\r\n      }\r\n\r\n      if (field.val().match( \/^([a-zA-Z0-9_.+%-])+@(([a-zA-Z0-9-])+\\.)+([a-zA-Z0-9])+$\/ )) {\r\n        return true;\r\n      }\r\n\r\n      valid_mail = false;\r\n      var parent = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n      parent.addClass('pfbc-invalid pfbc-element-has-error');\r\n      \r\n      \/\/ Apply ARIA attributes\r\n      field.attr('aria-invalid', 'true');\r\n      var errorId = field.attr('id') + '-error';\r\n      field.attr('aria-describedby', errorId);\r\n      \r\n      \/\/ Get field label and build error message\r\n      var fieldLabel = getFieldLabel(field);\r\n      var errorMessage = getEmailMessage(fieldLabel, field);\r\n      \r\n      \/\/ Add to field errors list for summary (use field ID for focusing)\r\n      fieldErrorsList.push({\r\n        fieldId: field.attr('id'),\r\n        label: fieldLabel,\r\n        errorType: \"invalid email address\"\r\n      });\r\n      \r\n      var inlineError = $('<div class=\\\"pfbc-inline-error\\\" id=\\\"' + errorId + '\\\" role=\\\"alert\\\" aria-live=\\\"polite\\\"><div class=\\\"pfbc-error-message\\\">' + errorMessage + '<\/div><\/div>');\r\n      \r\n      \/\/ For file inputs with help text, insert error after help text\r\n      var helpText = field.siblings('.pfbc-help').last();\r\n      if (field.is('[type=\\\"file\\\"]') && helpText.length) {\r\n        helpText.after(inlineError);\r\n      } else {\r\n        field.after(inlineError);\r\n      }\r\n\r\n    });\r\n\r\n    \/\/ Phone validation - runs for all non-empty phone fields\r\n    $('.accuaform-telephone', thisform).each(function(){\r\n        var field = $(this);\r\n        var value = field.val();\r\n        \r\n        \/\/ Skip empty fields (Required validation handles mandatory)\r\n        if (!value || value.trim() === '') {\r\n          return true;\r\n        }\r\n        \r\n        \/\/ Skip prefix-only values (e.g. \"+39\") \u2014 treated as empty\r\n        var phoneTrimmed = value.trim();\r\n        if (phoneTrimmed.charAt(0) === '+' && phoneTrimmed.replace(\/\\D\/g, '').length <= 4) {\r\n          return true;\r\n        }\r\n        \r\n        \/\/ Get country code from data attribute\r\n        var countryCode = field.attr('data-country') || 'IT';\r\n        \r\n        \/\/ Use AccuaPhoneValidation if available, otherwise skip validation\r\n        if (typeof window.AccuaPhoneValidation !== 'undefined' && window.AccuaPhoneValidation.isValid) {\r\n          if (window.AccuaPhoneValidation.isValid(value, countryCode)) {\r\n            return true;\r\n          }\r\n        } else {\r\n          \/\/ Fallback: basic validation matching server-side Phone.php\r\n          var trimmed = value.trim();\r\n          \/\/ Check for invalid characters\r\n          if (!\/^[\\d\\s\\-\\.\\\/\\(\\)\\+]+$\/.test(trimmed)) {\r\n            \/\/ Invalid characters - fail validation\r\n          } else {\r\n            var plusIndex = trimmed.indexOf('+');\r\n            if (plusIndex > 0 || (trimmed.match(\/\\+\/g) || []).length > 1) {\r\n              \/\/ Plus in wrong position or multiple plus signs - fail validation\r\n            } else {\r\n              var digitCount = trimmed.replace(\/\\D\/g, '').length;\r\n              \/\/ Prefix-only (1-4 digits with +) treated as empty\r\n              if (trimmed.charAt(0) === '+' && digitCount <= 4) {\r\n                return true;\r\n              }\r\n              \/\/ Valid if 5-15 digits (matches server-side Phone.php)\r\n              if (digitCount >= 5 && digitCount <= 15) {\r\n                return true;\r\n              }\r\n            }\r\n          }\r\n        }\r\n        \r\n        valid_phone = false;\r\n        var parent = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n        parent.addClass('pfbc-invalid pfbc-element-has-error');\r\n        \r\n        \/\/ Remove any existing blur validation error to avoid duplicates\r\n        $('#' + field.attr('id') + '-phone-error').remove();\r\n        \r\n        \/\/ Apply ARIA attributes\r\n        field.attr('aria-invalid', 'true');\r\n        var errorId = field.attr('id') + '-error';\r\n        field.attr('aria-describedby', errorId);\r\n        \r\n        \/\/ Get field label and build error message\r\n        var fieldLabel = getFieldLabel(field);\r\n        var errorMessage = getPhoneMessage(fieldLabel, field);\r\n        \r\n        \/\/ Add to field errors list for summary\r\n        fieldErrorsList.push({\r\n          fieldId: field.attr('id'),\r\n          label: fieldLabel,\r\n          errorType: \"invalid phone number\"\r\n        });\r\n        \r\n        var inlineError = $('<div class=\"pfbc-inline-error pfbc-phone-format-error\" id=\"' + errorId + '\" role=\"alert\" aria-live=\"polite\"><div class=\"pfbc-error-message\">' + errorMessage + '<\/div><\/div>');\r\n        \r\n        var helpText = field.siblings('.pfbc-help').last();\r\n        if (helpText.length) {\r\n          helpText.after(inlineError);\r\n        } else {\r\n          field.after(inlineError);\r\n        }\r\n      });\r\n\r\n    if (valid_empty && valid_mail && valid_phone) {\r\n      \/\/ Show loading state in summary during AJAX submission\r\n      updateSummaryArea('loading');\r\n      \r\n      _ajax_submitting_accua_form___accua_form__2_69e9da995a807 = true;\r\n      disableSubmitButton();\r\n      $('input[name=\"_AccuaForm_tentatives\"]', thisform).val(fail_count);\r\n      disabled_fields = $(\"input, textarea, button, select\", thisform).not('[type=\"submit\"]').not(':disabled');\r\n      disabled_fields.attr('readonly','readonly');\r\n      timeout_count = 0;\r\n      if (ajax_enabled) {\r\n        $(\"#submit_target_accua_form___accua_form__2_69e9da995a807\").attr('src','').removeAttr('src');\r\n        timeout_handler = setTimeout(_handle_ajax_submit_timeout_accua_form___accua_form__2_69e9da995a807, 5000);\r\n      }\r\n      return true;\r\n    } else {\r\n      ga_submit_event('formSubmitInvalid');\r\n      \r\n      \/\/ Update URL hash to reflect invalid state (for GA tracking and bookmarkability)\r\n      if (history.replaceState) {\r\n        history.replaceState(null, '', '#formSubmitInvalid-'+anchor_id);\r\n      }\r\n      \r\n      \/\/ Update summary area with error list\r\n      updateSummaryArea(false);\r\n      \r\n      \/\/ Focus on first invalid field for accessibility\r\n      focusFirstInvalidField();\r\n      \r\n      return false;\r\n    }\r\n  }\r\n\r\n\r\n  _handle_ajax_submit_timeout_accua_form___accua_form__2_69e9da995a807 = function() {\r\n    if (_ajax_submitting_accua_form___accua_form__2_69e9da995a807) {\r\n      if (timeout_count < 60) {\r\n        timeout_count++;\r\n        timeout_handler = setTimeout(_handle_ajax_submit_timeout_accua_form___accua_form__2_69e9da995a807, 500);\r\n        _handle_ajax_submit_complete_accua_form___accua_form__2_69e9da995a807();\r\n      } else {\r\n        timeout_handler = false;\r\n        _handle_ajax_submit_complete_accua_form___accua_form__2_69e9da995a807();\r\n        if (_ajax_submitting_accua_form___accua_form__2_69e9da995a807) {\r\n          _handle_ajax_submit_response_accua_form___accua_form__2_69e9da995a807(false);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  _handle_ajax_submit_complete_accua_form___accua_form__2_69e9da995a807 = function() {\r\n    if (_ajax_submitting_accua_form___accua_form__2_69e9da995a807) {\r\n      var response = false;\r\n      try {\r\n        var responsedoc = frames['submit_target_accua_form___accua_form__2_69e9da995a807'].document;\r\n        if (responsedoc.getElementById(\"accua-form-ajax-response-loaded\")) {\r\n          response = $.parseJSON(responsedoc.getElementById(\"accua-form-ajax-response\").innerHTML);\r\n        }\r\n      } catch (err) {\r\n        response = false;\r\n      }\r\n      if (response) {\r\n        return _handle_ajax_submit_response_accua_form___accua_form__2_69e9da995a807 (response);\r\n      }\r\n    }\r\n  }\r\n\r\n  _handle_ajax_submit_message_accua_form___accua_form__2_69e9da995a807 = function(message) {\r\n    if (_ajax_submitting_accua_form___accua_form__2_69e9da995a807) {\r\n      var response = false;\r\n      try {\r\n        response = $.parseJSON(message.data);\r\n        \/\/ Accept response if jsuuid matches AND buildID matches or is null (server rejection)\r\n        if (response.jsuuid != jsuuid || (response.buildID != null && response.buildID != \"accua-form___accua-form__2_69e9da995a807\")) {\r\n          response = false;\r\n        }\r\n      } catch (err) {\r\n        response = false;\r\n      }\r\n      if (response) {\r\n        return _handle_ajax_submit_response_accua_form___accua_form__2_69e9da995a807 (response);\r\n      }\r\n    }\r\n  }\r\n\r\n  _handle_ajax_submit_response_accua_form___accua_form__2_69e9da995a807 = function(response) {\r\n    if (_ajax_submitting_accua_form___accua_form__2_69e9da995a807) {\r\n      if(response && typeof(response) == \"object\" && typeof(response.submitted) == \"boolean\") {\r\n        \/\/ Only show message container if there's actual content\r\n        if (response.messages && response.messages.trim() !== '') {\r\n          response_messages.html(response.messages).show();\r\n        } else {\r\n          response_messages.empty().hide();\r\n        }\r\n        if (response.submitted) {\r\n          if (response.valid) {\r\n            var gads_track_code = \"\";\r\n            if(gads_track_code != ''){            \r\n              gtag('event', 'conversion', {'send_to': gads_track_code});\r\n            }\r\n            \r\n            ga_submit_event('formSubmitSuccess');\r\n            smoothScrollToElement('formSubmitSuccess-'+anchor_id);\r\n            \r\n            $('#accua-form___accua-form__2_69e9da995a807').hide();          } else {\r\n            ga_submit_event('formSubmitInvalid');\r\n            smoothScrollToElement('formSubmitInvalid-'+anchor_id);var errorSize = response.errors.length;\r\nvar errorHTML = '';\r\nfor(e = 0; e < errorSize; ++e) {\r\n  errorHTML += '\\x3Cli\\x3E' + response.errors[e] + '\\x3C\/li\\x3E';\r\n}\r\n\r\n\/* Update summary area with server-side errors *\/\r\nif (typeof updateSummaryWithServerErrors === 'function') {\r\n  updateSummaryWithServerErrors(response.errors, response.elementErrors);\r\n}\r\n\r\n\/* Apply ARIA attributes and inline errors for accessibility *\/\r\nif (response.elementErrors) {\r\n  jQuery.each(response.elementErrors, function(fieldName, fieldErrors) {\r\n    var field = jQuery('[name=\"' + fieldName + '\"]');\r\n    if (field.length) {\r\n      var parent = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n      var errorId = field.attr('id') + '-error';\r\n      \r\n      \/* Add ARIA attributes *\/\r\n      field.attr('aria-invalid', 'true');\r\n      field.attr('aria-describedby', errorId);\r\n      \r\n      \/* Add error class to parent *\/\r\n      parent.addClass('pfbc-element-has-error');\r\n      \r\n      \/* Remove existing inline error if any *\/\r\n      parent.find('.pfbc-inline-error').remove();\r\n      \r\n      \/* Add inline error message *\/\r\n      var inlineErrorHTML = '<div class=\\\"pfbc-inline-error\\\" id=\\\"' + errorId + '\\\" role=\\\"alert\\\" aria-live=\\\"polite\\\">';\r\n      for (var i = 0; i < fieldErrors.length; i++) {\r\n        inlineErrorHTML += '<div class=\\\"pfbc-error-message\\\">' + fieldErrors[i] + '<\/div>';\r\n      }\r\n      inlineErrorHTML += '<\/div>';\r\n      \r\n      \/* For file inputs with help text, insert error after help text *\/\r\n      var helpText = field.siblings('.pfbc-help').last();\r\n      if (field.is('[type=\\\"file\\\"]') && helpText.length) {\r\n        helpText.after(inlineErrorHTML);\r\n      } else {\r\n        field.after(inlineErrorHTML);\r\n      }\r\n    }\r\n  });\r\n}\r\n            for (var name in response.files) {\r\n              $(\".pfbc-fieldwrap:has(input[type='file'][name='\"+name+\"'])\", thisform).html(response.files[name]);\r\n            }\r\n\r\n            $(\"input[name='_AccuaForm_hash']\",thisform).val(response._AccuaForm_hash);\r\n            $(\"input[name='_AccuaForm_iv']\",  thisform).val(response._AccuaForm_iv);\r\n            $(\"input[name='_AccuaForm_data']\",thisform).val(response._AccuaForm_data);\r\n\r\n            disabled_fields.removeAttr('readonly');\r\n            enableSubmitButton();\r\n          }\r\n        } else {\r\n          \/\/ Server did not recognize the form submission (e.g. expired nonce, stale cached page)\r\n          ga_submit_event('formSubmitError');\r\n          smoothScrollToElement('formSubmitError-'+anchor_id);\r\n          fail_count++;\r\n          if (fail_count > 2) {\r\n            ajax_enabled = false;\r\n            thisform.attr(\"action\", \"https:\\\/\\\/www.perustele.fi:443\\\/index.php\\\/wp-json\\\/wp\\\/v2\\\/pages\\\/2976\" );\r\n            thisform.removeAttr(\"target\");\r\n            $('input[name=\"_AccuaForm_submit_method\"]', thisform).val('fallback');\r\n          }\r\n          show_error_messages( \"\\u003Cli\\u003EForm submission failed. Please try again.\\u003C\\\/li\\u003E\" );\r\n          disabled_fields.removeAttr('readonly');\r\n          enableSubmitButton();\r\n        }\r\n      } else {\r\n        ga_submit_event('formSubmitError');\r\n        smoothScrollToElement('formSubmitError-'+anchor_id);\r\n        fail_count++;\r\n        if (fail_count > 2) {\r\n          ajax_enabled = false;\r\n          thisform.attr(\"action\", \"https:\\\/\\\/www.perustele.fi:443\\\/index.php\\\/wp-json\\\/wp\\\/v2\\\/pages\\\/2976\" );\r\n          thisform.removeAttr(\"target\");\r\n          $('input[name=\"_AccuaForm_submit_method\"]', thisform).val('fallback');\r\n        }\r\n        show_error_messages( \"\\u003Cli\\u003EForm submission failed. Please try again.\\u003C\\\/li\\u003E\" );\r\n        enableSubmitButton();\r\n      }\r\n      $('.accua_forms_show_recaptcha_button', thisform).click();\r\n      if (((typeof accuaform_recaptcha2_initialized) != 'undefined') && accuaform_recaptcha2_initialized) {\r\n        $('.accua_forms_recaptcha2_container', thisform).each(function(){\r\n          accua_forms_reload_recaptcha2($(this).attr('id'));\r\n        });\r\n      }\r\n      _ajax_submitting_accua_form___accua_form__2_69e9da995a807 = false;\r\n      if (timeout_handler) {\r\n        clearTimeout(timeout_handler);\r\n        timeout_handler = false;\r\n      }\r\n    }\r\n  }\r\n\r\n  if (ajax_enabled) {\r\n    thisform.attr(\"action\", \"https:\\\/\\\/www.perustele.fi\\\/wp-admin\\\/admin-ajax.php?action=accua_form_submit\" );\r\n    thisform.attr(\"target\",\"submit_target_accua_form___accua_form__2_69e9da995a807\");\r\n    try {\r\n      window.addEventListener('message', _handle_ajax_submit_message_accua_form___accua_form__2_69e9da995a807, false);\r\n    } catch (e) { }\r\n    $('input[name=\"_AccuaForm_submit_method\"]', thisform).val('iframe');\r\n  } else {\r\n    thisform.attr(\"action\", \"https:\\\/\\\/www.perustele.fi:443\\\/index.php\\\/wp-json\\\/wp\\\/v2\\\/pages\\\/2976\" );\r\n  }\r\n  thisform.attr(\"onsubmit\",\"return _handle_ajax_submit_accua_form___accua_form__2_69e9da995a807()\");\r\n  \r\n  \/\/ Real-time validation for better UX - use change only for checkbox\/radio to avoid double-firing\r\n  $('.accuaforms-field-required', thisform).on('change', function() {\r\n    var field = $(this);\r\n    var type = field.attr('type');\r\n    if (type !== 'checkbox' && type !== 'radio') return; \/\/ Only handle checkbox\/radio on change\r\n    \r\n    var fieldName = field.attr('name');\r\n    var isChecked = $(\"[name='\"+fieldName+\"']:checked\", thisform).length > 0;\r\n    var groupContainer = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n    var hasError = groupContainer.hasClass('pfbc-element-has-error');\r\n    \r\n    \/\/ Only act if state actually changed to avoid flashing\r\n    if (isChecked && hasError) {\r\n      \/\/ Valid now - remove error with animation\r\n      groupContainer.removeClass('pfbc-invalid pfbc-element-has-error');\r\n      $(\"[name='\"+fieldName+\"']\", thisform).attr('aria-invalid', 'false');\r\n      $(\"[name='\"+fieldName+\"']\", thisform).removeAttr('aria-describedby');\r\n      removeGroupErrors(field, fieldName, true); \/\/ animate=true\r\n    } else if (!isChecked && !hasError && submitAttempted) {\r\n      \/\/ Invalid now and we've attempted submit - show error\r\n      var errorId = getGroupErrorId(field);\r\n      groupContainer.addClass('pfbc-invalid pfbc-element-has-error');\r\n      $(\"[name='\"+fieldName+\"']\", thisform).attr('aria-invalid', 'true');\r\n      $(\"[name='\"+fieldName+\"']\", thisform).attr('aria-describedby', errorId);\r\n      \r\n      var fieldLabel = getFieldLabel(groupContainer);\r\n      var firstField = $(\"[name='\"+fieldName+\"']\", thisform).first();\r\n      var errorMessage = getRequiredMessage(fieldLabel, firstField);\r\n      var inlineError = $('<div class=\"pfbc-inline-error\" id=\"' + errorId + '\" role=\"alert\" aria-live=\"polite\"><div class=\"pfbc-error-message\">' + errorMessage + '<\/div><\/div>');\r\n      \r\n      var lastInGroup = $(\"[name='\"+fieldName+\"']\", thisform).last();\r\n      var lastWrapper = lastInGroup.closest('.pfbc-radio, .pfbc-checkbox');\r\n      if (lastWrapper.length) {\r\n        lastWrapper.after(inlineError);\r\n      } else {\r\n        lastInGroup.after(inlineError);\r\n      }\r\n    }\r\n  });\r\n  \r\n  \/\/ Blur handler for text-like fields only\r\n  $('.accuaforms-field-required', thisform).on('blur', function() {\r\n    var field = $(this);\r\n    var type = field.attr('type');\r\n    var fieldName = field.attr('name');\r\n    var isEmpty = false;\r\n    \r\n    \/\/ Skip checkbox\/radio - handled by change event above\r\n    if (type === 'checkbox' || type === 'radio') return;\r\n    \r\n    var val = field.val();\r\n      if (typeof(val) == \"string\") {\r\n        \/\/ Treat \"-\" and \"Select...\" as invalid only for dropdowns\r\n        \/\/ For telephone fields, prefix-only values (e.g. \"+39\") are also empty\r\n        var isSelect = field.is('select');\r\n        isEmpty = val.match(\/^\\s*$\/) || (isSelect && (val === \"Select...\" || val === \"-\")) || isTelephonePrefixOnly(field);\r\n      } else if (typeof(val) == \"object\") {\r\n        isEmpty = !val || val.length === 0;\r\n      } else {\r\n        isEmpty = !val;\r\n      }\r\n      \r\n      var parent = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n      var errorId = field.attr('id') + '-error';\r\n      \r\n      if (isEmpty) {\r\n        \/\/ For telephone: phone-validation.js blur handler runs AFTER this one and may\r\n        \/\/ still have pfbc-element-has-error set from a previous format error. Check for\r\n        \/\/ the specific required error div instead of the parent class to avoid skipping.\r\n        var alreadyHasError = field.hasClass('accuaform-telephone')\r\n          ? $('#' + errorId).length > 0\r\n          : parent.hasClass('pfbc-element-has-error');\r\n        if (!alreadyHasError) {\r\n          \/\/ For telephone: remove leftover phone format error since the field is now\r\n          \/\/ empty (required error takes priority). phone-validation.js will also clean\r\n          \/\/ up on its blur, but this handler runs first.\r\n          if (field.hasClass('accuaform-telephone')) {\r\n            $('#' + field.attr('id') + '-phone-error').remove();\r\n          }\r\n          parent.addClass('pfbc-invalid pfbc-element-has-error');\r\n          field.attr('aria-invalid', 'true');\r\n          field.attr('aria-describedby', errorId);\r\n          \r\n          \/\/ Get field label for error message\r\n          var fieldLabel = getFieldLabel(parent);\r\n          var errorMessage = getRequiredMessage(fieldLabel, field);\r\n          var inlineError = $('<div class=\"pfbc-inline-error\" id=\"' + errorId + '\" role=\"alert\" aria-live=\"polite\"><div class=\"pfbc-error-message\">' + errorMessage + '<\/div><\/div>');\r\n          \r\n          \/\/ For file inputs with help text, insert error after help text\r\n          var helpText = field.siblings('.pfbc-help').last();\r\n          if (field.is('[type=\"file\"]') && helpText.length) {\r\n            helpText.after(inlineError);\r\n          } else {\r\n            field.after(inlineError);\r\n          }\r\n        }\r\n      } else {\r\n        \/\/ Field is not empty \u2014 clear required-related errors.\r\n        if (field.hasClass('accuaform-telephone')) {\r\n          \/\/ For telephone fields: clear only the required error ({id}-error).\r\n          \/\/ phone-validation.js has already run on this same blur event and set the\r\n          \/\/ correct error state (phone-error or clean). We must not undo its work.\r\n          \/\/ Only remove the required-error div; preserve phone-validation.js state.\r\n          $('#' + errorId).remove();\r\n          \/\/ If phone-validation.js left no errors, clear the container state too\r\n          if (!parent.find('.pfbc-inline-error').length) {\r\n            parent.removeClass('pfbc-invalid pfbc-element-has-error');\r\n            field.attr('aria-invalid', 'false');\r\n            field.removeAttr('aria-describedby');\r\n          }\r\n        } else {\r\n          \/\/ For non-telephone fields: animated removal for smoother UX\r\n          removeErrorAnimated(errorId);\r\n          parent.removeClass('pfbc-invalid pfbc-element-has-error');\r\n          field.attr('aria-invalid', 'false');\r\n          field.removeAttr('aria-describedby');\r\n        }\r\n      }\r\n  });\r\n  \r\n  $('.pfbc-textbox[type=\"email\"]', thisform).on('blur change', function() {\r\n    var field = $(this);\r\n    var val = field.val();\r\n    \r\n    if (val.match(\/^\\s*$\/)) {\r\n      return; \/\/ Empty is handled by required validation\r\n    }\r\n    \r\n    var isValid = val.match(\/^([a-zA-Z0-9_.+%-])+@(([a-zA-Z0-9-])+\\.)+([a-zA-Z0-9])+$\/);\r\n    var parent = field.closest('.pfbc-element, .pfbc-fieldwrap');\r\n    var errorId = field.attr('id') + '-error';\r\n    \r\n    if (!isValid) {\r\n      if (!parent.hasClass('pfbc-element-has-error')) {\r\n        parent.addClass('pfbc-invalid pfbc-element-has-error');\r\n        field.attr('aria-invalid', 'true');\r\n        field.attr('aria-describedby', errorId);\r\n        \r\n        \/\/ Get field label for error message\r\n        var fieldLabel = getFieldLabel(parent);\r\n        var errorMessage = getEmailMessage(fieldLabel, field);\r\n        var inlineError = $('<div class=\\\"pfbc-inline-error\\\" id=\\\"' + errorId + '\\\" role=\\\"alert\\\" aria-live=\\\"polite\\\"><div class=\\\"pfbc-error-message\\\">' + errorMessage + '<\/div><\/div>');\r\n        \r\n        \/\/ For file inputs with help text, insert error after help text\r\n        var helpText = field.siblings('.pfbc-help').last();\r\n        if (field.is('[type=\\\"file\\\"]') && helpText.length) {\r\n          helpText.after(inlineError);\r\n        } else {\r\n          field.after(inlineError);\r\n        }\r\n      }\r\n    } else {\r\n      parent.removeClass('pfbc-invalid pfbc-element-has-error');\r\n      field.attr('aria-invalid', 'false');\r\n      field.removeAttr('aria-describedby');\r\n      removeErrorAnimated(errorId);\r\n    }\r\n  });\r\n});\r\n\/\/ -->\r\n<\/script>\r\n<iframe id=\"submit_target_accua_form___accua_form__2_69e9da995a807\" title=\"Notification Message\" name=\"submit_target_accua_form___accua_form__2_69e9da995a807\" onload=\"_handle_ajax_submit_complete_accua_form___accua_form__2_69e9da995a807()\" onerror=\"_handle_ajax_submit_complete_accua_form___accua_form__2_69e9da995a807()\" style=\"width:0;height:0;border:0px solid #fff\"><\/iframe><script type=\"text\/javascript\">\r\n<!--\r\njQuery(function($){\r\n  var referrerfield = $(\"#accua-form___accua-form__2_69e9da995a807 input[name='_AccuaForm_referrer']\");\r\n  if (referrerfield.val() == '') {\r\n    referrerfield.val(document.referrer);\r\n  }\r\n  $(\"#accua-form___accua-form__2_69e9da995a807 input[name='_AccuaForm_user_agent']\").val(navigator.userAgent);\r\n  $(\"#accua-form___accua-form__2_69e9da995a807 input[name='_AccuaForm_platform']\").val(navigator.platform);\r\n});\r\n\/\/ -->\r\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Quail Pro12 kuulokej\u00e4rjestelm\u00e4 myym\u00e4l\u00f6ihin Langaton kuulokej\u00e4rjestelm\u00e4 myym\u00e4l\u00e4n henkil\u00f6kunnalle. Nopeampi asiakaspalvelu ja tehokas tiimiviestint\u00e4 koko ty\u00f6vuoron ajan. Pyyd\u00e4 tarjous Quail Pro12 kuulokej\u00e4rjestelm\u00e4 myym\u00e4l\u00f6ihin Quail Pro12 on langaton tiimiviestint\u00e4j\u00e4rjestelm\u00e4 myym\u00e4l\u00f6iden, varastojen ja palveluymp\u00e4rist\u00f6jen henkil\u00f6kunnalle. J\u00e4rjestelm\u00e4 auttaa nopeuttamaan asiakaspalvelua, parantamaan tiimiviestint\u00e4\u00e4 ja tehostamaan ty\u00f6skentely\u00e4. Miksi Quail Pro12? Nopeampi asiakaspalvelu Oikea henkil\u00f6 saadaan paikalle nopeasti ilman turhaa etsimist\u00e4 tai [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2796,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2976","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.perustele.fi\/index.php\/wp-json\/wp\/v2\/pages\/2976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.perustele.fi\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.perustele.fi\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.perustele.fi\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.perustele.fi\/index.php\/wp-json\/wp\/v2\/comments?post=2976"}],"version-history":[{"count":4,"href":"https:\/\/www.perustele.fi\/index.php\/wp-json\/wp\/v2\/pages\/2976\/revisions"}],"predecessor-version":[{"id":2983,"href":"https:\/\/www.perustele.fi\/index.php\/wp-json\/wp\/v2\/pages\/2976\/revisions\/2983"}],"up":[{"embeddable":true,"href":"https:\/\/www.perustele.fi\/index.php\/wp-json\/wp\/v2\/pages\/2796"}],"wp:attachment":[{"href":"https:\/\/www.perustele.fi\/index.php\/wp-json\/wp\/v2\/media?parent=2976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}