{"id":1451,"date":"2026-03-17T09:31:01","date_gmt":"2026-03-17T09:31:01","guid":{"rendered":"https:\/\/klikattavaa.fi\/belbin\/"},"modified":"2026-03-17T11:20:44","modified_gmt":"2026-03-17T11:20:44","slug":"belbin","status":"publish","type":"page","link":"https:\/\/klikattavaa.fi\/en\/belbin\/","title":{"rendered":"Belbin"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1451\" class=\"elementor elementor-1451 elementor-1449\" data-elementor-post-type=\"page\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-270112a e-flex e-con-boxed e-con e-parent\" data-id=\"270112a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-afb4e17 elementor-widget elementor-widget-html\" data-id=\"afb4e17\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"belbin-test\">\r\n  <form id=\"belbin-form\" class=\"belbin-card\">\r\n    <div class=\"belbin-hero\">\r\n      <span class=\"belbin-badge\">Belbin Team Role Test<\/span>\r\n      <h2>Discover your team role profile<\/h2>\r\n      <p>\r\n Please fill in your contact information first. In each section, select 3 statements and assign them points:\r\n        <strong>6, 3, and 1<\/strong>. The total points must always be <strong>10 \/ section<\/strong>. \r\n      <\/p>\r\n    <\/div>\r\n\r\n    <div class=\"belbin-grid\">\r\n      <div class=\"question\">\r\n        <label for=\"nimi\">Name<\/label>\r\n        <input type=\"text\" id=\"nimi\" name=\"nimi\" required=\"\">\r\n      <\/div>\r\n\r\n      <div class=\"question\">\r\n        <label for=\"puhelin\">Phone<\/label>\r\n        <input type=\"tel\" id=\"puhelin\" name=\"puhelin\" required=\"\">\r\n      <\/div>\r\n\r\n      <div class=\"question\">\r\n        <label for=\"sahkoposti\">Email<\/label>\r\n        <input type=\"email\" id=\"sahkoposti\" name=\"sahkoposti\" required=\"\">\r\n      <\/div>\r\n\r\n      <div class=\"question\">\r\n        <label for=\"rooli\">Your role (in the team\/organization)<\/label>\r\n        <input type=\"text\" id=\"rooli\" name=\"rooli\" required=\"\">\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <button type=\"button\" id=\"aloita-testi\" class=\"cta-button\">\r\n      <img decoding=\"async\" src=\"https:\/\/temporary.klikattavaa.fi\/wp-content\/uploads\/2025\/04\/KLIK-ikoni.svg\" alt=\"Icon\" class=\"cta-icon\">\r\n Start test\r\n    <\/button>\r\n\r\n    <div id=\"kysymysalue\" style=\"display:none;\">\r\n      <div class=\"instructions-box\">\r\n        <h3>Instructions<\/h3>\r\n        <p>\r\n In each section, select exactly three statements and assign them points 6, 3, and 1.\r\n Leave the others at 0.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div id=\"belbin-osat\"><\/div>\r\n\r\n      <div id=\"belbin-errors\" class=\"belbin-errors\" style=\"display:none;\"><\/div>\r\n\r\n      <button type=\"submit\" class=\"cta-button\">\r\n        <img decoding=\"async\" src=\"https:\/\/temporary.klikattavaa.fi\/wp-content\/uploads\/2025\/04\/KLIK-ikoni.svg\" alt=\"Icon\" class=\"cta-icon\">\r\n Submit test\r\n      <\/button>\r\n    <\/div>\r\n  <\/form>\r\n\r\n  <div id=\"tulos-container\"><\/div>\r\n<\/div>\r\n\r\n<style>\r\n  #belbin-test {\r\n    --bg: #f6f8fc;\r\n    --card: #ffffff;\r\n    --card-soft: #f9fbff;\r\n    --text: #1f2a37;\r\n    --muted: #667085;\r\n    --border: #dbe4f0;\r\n    --primary: #1f6fff;\r\n    --primary-soft: #edf4ff;\r\n    --accent: #fffb81;\r\n    --success: #eafaf1;\r\n    --danger: #fff1f2;\r\n    --danger-text: #b42318;\r\n    max-width: 980px;\r\n    margin: 0 auto;\r\n    padding: 20px;\r\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Inter, Roboto, sans-serif;\r\n    color: var(--text);\r\n  }\r\n\r\n  #belbin-test * {\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .belbin-card {\r\n    background: var(--card);\r\n    border: 1px solid var(--border);\r\n    border-radius: 24px;\r\n    padding: 28px;\r\n    box-shadow: 0 10px 35px rgba(16, 24, 40, 0.06);\r\n  }\r\n\r\n  .belbin-hero {\r\n    margin-bottom: 28px;\r\n  }\r\n\r\n  .belbin-badge {\r\n    display: inline-block;\r\n    background: var(--primary-soft);\r\n    color: var(--primary);\r\n    border-radius: 999px;\r\n    padding: 8px 14px;\r\n    font-size: 13px;\r\n    font-weight: 700;\r\n    margin-bottom: 14px;\r\n  }\r\n\r\n  #belbin-test h2,\r\n  #belbin-test h3,\r\n  #belbin-test h4 {\r\n    margin: 0 0 12px;\r\n    color: var(--text);\r\n    line-height: 1.2;\r\n  }\r\n\r\n  #belbin-test p {\r\n    margin: 0;\r\n    color: var(--muted);\r\n    line-height: 1.6;\r\n  }\r\n\r\n  .belbin-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, minmax(0, 1fr));\r\n    gap: 18px;\r\n    margin-bottom: 12px;\r\n  }\r\n\r\n  .question {\r\n    margin-bottom: 10px;\r\n  }\r\n\r\n  .question label {\r\n    display: block;\r\n    font-size: 14px;\r\n    font-weight: 600;\r\n    margin-bottom: 8px;\r\n    color: var(--text);\r\n  }\r\n\r\n  #belbin-test input[type=\"text\"],\r\n  #belbin-test input[type=\"tel\"],\r\n  #belbin-test input[type=\"email\"],\r\n  #belbin-test select {\r\n    width: 100%;\r\n    border: 1px solid var(--border);\r\n    background: #fff;\r\n    color: var(--text);\r\n    border-radius: 14px;\r\n    padding: 14px 16px;\r\n    font-size: 15px;\r\n    outline: none;\r\n    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;\r\n  }\r\n\r\n  #belbin-test input:focus,\r\n  #belbin-test select:focus {\r\n    border-color: var(--primary);\r\n    box-shadow: 0 0 0 4px rgba(31, 111, 255, 0.12);\r\n  }\r\n\r\n  .cta-button {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 12px;\r\n    background: var(--text);\r\n    color: #fff;\r\n    font-weight: 700;\r\n    border: none;\r\n    padding: 14px 22px;\r\n    border-radius: 14px;\r\n    font-size: 16px;\r\n    transition: transform 0.15s ease, box-shadow 0.2s ease, opacity 0.2s ease;\r\n    margin-top: 18px;\r\n    cursor: pointer;\r\n    box-shadow: 0 8px 20px rgba(16, 24, 40, 0.12);\r\n  }\r\n\r\n  .cta-button:hover {\r\n    transform: translateY(-1px);\r\n    opacity: 0.96;\r\n  }\r\n\r\n  .cta-button[disabled] {\r\n    opacity: 0.7;\r\n    cursor: not-allowed;\r\n  }\r\n\r\n  .cta-icon {\r\n    width: 28px;\r\n    height: 28px;\r\n    background: var(--accent);\r\n    padding: 5px;\r\n    border-radius: 8px;\r\n    flex-shrink: 0;\r\n  }\r\n\r\n  #kysymysalue {\r\n    padding-top: 28px;\r\n  }\r\n\r\n  .instructions-box {\r\n    background: var(--card-soft);\r\n    border: 1px solid var(--border);\r\n    border-radius: 18px;\r\n    padding: 20px;\r\n    margin-bottom: 24px;\r\n  }\r\n\r\n  .osio {\r\n    background: #fff;\r\n    border: 1px solid var(--border);\r\n    border-radius: 20px;\r\n    padding: 22px;\r\n    margin-bottom: 20px;\r\n    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.04);\r\n  }\r\n\r\n  .osio h4 {\r\n    margin-bottom: 18px;\r\n    font-size: 19px;\r\n  }\r\n\r\n  .question-row {\r\n    display: grid;\r\n    grid-template-columns: 1fr 110px;\r\n    align-items: start;\r\n    gap: 16px;\r\n    padding: 12px 0;\r\n    border-bottom: 1px solid #eef2f7;\r\n  }\r\n\r\n  .question-row:last-child {\r\n    border-bottom: none;\r\n  }\r\n\r\n  .question-row label {\r\n    font-size: 15px;\r\n    line-height: 1.5;\r\n    color: var(--text);\r\n  }\r\n\r\n  .question-row select {\r\n    min-width: 90px;\r\n  }\r\n\r\n  .section-total {\r\n    margin-top: 16px;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    padding: 8px 12px;\r\n    border-radius: 999px;\r\n    background: var(--primary-soft);\r\n    color: var(--primary);\r\n    font-size: 13px;\r\n    font-weight: 700;\r\n  }\r\n\r\n  .section-total.invalid {\r\n    background: var(--danger);\r\n    color: var(--danger-text);\r\n  }\r\n\r\n  .belbin-errors {\r\n    margin: 0 0 18px;\r\n    padding: 16px 18px;\r\n    border: 1px solid #fecdd3;\r\n    background: var(--danger);\r\n    color: var(--danger-text);\r\n    border-radius: 16px;\r\n    line-height: 1.6;\r\n  }\r\n\r\n  #tulos-container {\r\n    margin-top: 24px;\r\n  }\r\n\r\n  .results-card {\r\n    background: #fff;\r\n    border: 1px solid var(--border);\r\n    border-radius: 24px;\r\n    padding: 24px;\r\n    box-shadow: 0 10px 35px rgba(16, 24, 40, 0.06);\r\n  }\r\n\r\n  .results-top {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 12px;\r\n    margin-bottom: 18px;\r\n  }\r\n\r\n  .result-pill {\r\n    background: var(--primary-soft);\r\n    color: var(--primary);\r\n    border-radius: 999px;\r\n    padding: 10px 14px;\r\n    font-weight: 700;\r\n    font-size: 14px;\r\n  }\r\n\r\n  .results-table {\r\n    width: 100%;\r\n    border-collapse: collapse;\r\n    margin-top: 12px;\r\n    overflow: hidden;\r\n    border-radius: 16px;\r\n  }\r\n\r\n  .results-table th,\r\n  .results-table td {\r\n    border-bottom: 1px solid #eef2f7;\r\n    padding: 14px 12px;\r\n    text-align: left;\r\n    font-size: 15px;\r\n  }\r\n\r\n  .results-table th {\r\n    background: #f8fafc;\r\n    color: var(--text);\r\n    font-weight: 700;\r\n  }\r\n\r\n  .results-table tr:last-child td {\r\n    border-bottom: none;\r\n  }\r\n\r\n  .loading-state {\r\n    margin-top: 16px;\r\n    color: var(--muted);\r\n    font-size: 14px;\r\n  }\r\n\r\n  @media (max-width: 767px) {\r\n    .belbin-card {\r\n      padding: 20px;\r\n      border-radius: 18px;\r\n    }\r\n\r\n    .belbin-grid {\r\n      grid-template-columns: 1fr;\r\n    }\r\n\r\n    .question-row {\r\n      grid-template-columns: 1fr;\r\n    }\r\n\r\n    .question-row select {\r\n      width: 100%;\r\n    }\r\n\r\n    .results-table th,\r\n    .results-table td {\r\n      font-size: 14px;\r\n      padding: 12px 10px;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n(function() {\r\n  const osiot = [\r\n    {\r\n      title: \"Mill\u00e4 tavoin ryhm\u00e4 hy\u00f6tyy panoksestani?\",\r\n      options: [\r\n        \"Uskon, ett\u00e4 voin nopeasti havaita ja hy\u00f6dynt\u00e4\u00e4 eteeni tulevat uudet mahdollisuudet.\",\r\n        \"Ty\u00f6skentelen hyvin monenlaisten ihmisten kanssa.\",\r\n        \"Olen hyv\u00e4 ideoimaan.\",\r\n        \"Olen ryhm\u00e4lle hy\u00f6dyksi siin\u00e4 mieless\u00e4, ett\u00e4 huomaan jos jollain ryhm\u00e4n j\u00e4senell\u00e4 on projektin kannalta jotain arvokasta annettavaa.\",\r\n        \"Ty\u00f6skentelen tehokkaasti ja minun on helppo vied\u00e4 projektit loppuun asti.\",\r\n        \"Minua ei haittaa, vaikka minusta ei v\u00e4lill\u00e4 pidet\u00e4, jos sen ansiosta ryhm\u00e4ty\u00f6n lopputuloksesta tulee hyv\u00e4.\",\r\n        \"Keksin nopeasti, mik\u00e4 keino tehoaa, kun ryhm\u00e4ty\u00f6ss\u00e4 t\u00f6rm\u00e4\u00e4mme ongelmaan, joka on minulle entuudestaan tuttu.\",\r\n        \"Osaan tarjota perusteluja vaihtoehtoisille toimintatavoille puolueettomasti ja ennakkoluulottomasti.\"\r\n      ]\r\n    },\r\n    {\r\n      title: \"Jos minulla on ehk\u00e4 jokin puute ryhm\u00e4ty\u00f6skentelyss\u00e4, niin se olisi:\",\r\n      options: [\r\n        \"En tunne oloani mukavaksi, jos ryhm\u00e4tilanne ei ole hyvin suunniteltu, l\u00e4piviety tai johdettu.\",\r\n        \"Saatan liian helposti hyv\u00e4ksy\u00e4 sellaisetkin ideat, joita ei ole viel\u00e4 mietitty ryhm\u00e4ss\u00e4 tarpeeksi.\",\r\n        \"Innostun ehk\u00e4 joskus liiaksi puhumaan ideointivaiheessa.\",\r\n        \"Yrit\u00e4n tarkastella asioita monelta kannalta ja siit\u00e4 johtuu, ett\u00e4 en heti kovin helposti innostu ryhm\u00e4l\u00e4isteni uusista ideoista.\",\r\n        \"Minua pidet\u00e4\u00e4n joskus turhan 'p\u00e4\u00e4llek\u00e4yv\u00e4n\u00e4' ja pomottavana.\",\r\n        \"Minusta on vaikea asettua johtoon, koska seuraan liian helposti ryhm\u00e4n mielipidett\u00e4.\",\r\n        \"Innostun joskus liiaksi mieleeni tulevista ideoista ja saatan hetkeksi unohtaa, mist\u00e4 olikaan puhe.\",\r\n        \"Ryhm\u00e4l\u00e4isteni mielest\u00e4 olen joskus tarpeettoman huolissani yksityiskohdista ja siit\u00e4 mahdollisuudesta, ett\u00e4 jokin voi menn\u00e4 pieleen.\"\r\n      ]\r\n    },\r\n    {\r\n      title: \"Kun ty\u00f6skentelen yhteisiss\u00e4 projekteissa muiden kanssa:\",\r\n      options: [\r\n        \"Minulla on kyky vaikuttaa ihmisiin painostamatta heit\u00e4.\",\r\n        \"Yleinen valppauteni est\u00e4\u00e4 ryhm\u00e4\u00e4 tekem\u00e4st\u00e4 huolimattomuusvirheit\u00e4 tai v\u00e4\u00e4rin arviointeja.\",\r\n        \"Olen valmis panostamaan toimintaan varmistaakseni, ett\u00e4 ryhm\u00e4ss\u00e4 ei haaskata aikaa, eik\u00e4 et\u00e4\u00e4nnyt\u00e4 p\u00e4\u00e4asioista.\",\r\n        \"Minuun voidaan aina luottaa siin\u00e4 mieless\u00e4, ett\u00e4 annan aina ryhm\u00e4lle jotain omaper\u00e4isi\u00e4 ideoita.\",\r\n        \"Olen aina valmis tukemaan hyv\u00e4\u00e4 ehdotusta yleisen edun nimiss\u00e4.\",\r\n        \"Haluan aina pit\u00e4\u00e4 itseni ajan tasalla uusien ideoiden ja viimeisimm\u00e4n kehityksen suhteen.\",\r\n        \"Uskon, ett\u00e4 kykyni tehd\u00e4 harkittuja johtop\u00e4\u00e4t\u00f6ksi\u00e4 saa muilta arvostusta.\",\r\n        \"Muut voivat luottaa minun huolehtivan siit\u00e4, ett\u00e4 kaikki v\u00e4ltt\u00e4m\u00e4tt\u00f6m\u00e4t teht\u00e4v\u00e4t hoidetaan.\"\r\n      ]\r\n    },\r\n    {\r\n      title: \"Tyypillinen suhtautumiseni ryhm\u00e4ty\u00f6h\u00f6n:\",\r\n      options: [\r\n        \"Minulla on usein hiljainen toive siit\u00e4, ett\u00e4 oppisin tuntemaan ryhm\u00e4n muut j\u00e4senet paremmin.\",\r\n        \"Uskallan haastaa ryhm\u00e4n muiden j\u00e4senten n\u00e4kemykset, enk\u00e4 pelk\u00e4\u00e4 yhty\u00e4 v\u00e4hemmist\u00f6\u00f6n j\u00e4\u00e4v\u00e4\u00e4n mielipiteeseen.\",\r\n        \"Keksin yleens\u00e4 perusteita hatarien p\u00e4\u00e4t\u00f6sten kumoamiseksi.\",\r\n        \"Minulla on mielest\u00e4ni taito saada hommat hoitumaan, kun suunnitelma pit\u00e4\u00e4 pist\u00e4\u00e4 k\u00e4yt\u00e4nt\u00f6\u00f6n.\",\r\n        \"Minulla on tapana v\u00e4ltt\u00e4\u00e4 itsest\u00e4\u00e4nselvyyksi\u00e4 ja keksi\u00e4 sen sijaan odottamattomia ideoita.\",\r\n        \"Tuon annoksen t\u00e4ydellisyyden tavoittelua jokaiseen osallistumaani ryhm\u00e4ty\u00f6h\u00f6n.\",\r\n        \"Olen valmis hy\u00f6dynt\u00e4m\u00e4\u00e4n ryhm\u00e4n ulkopuolisia kontakteja.\",\r\n        \"Vaikka olenkin halukas punnitsemaan kaikkia n\u00e4k\u00f6kantoja, en silti ep\u00e4r\u00f6i tehd\u00e4 p\u00e4\u00e4t\u00f6st\u00e4, kun sen aika koittaa.\"\r\n      ]\r\n    },\r\n    {\r\n      title: \"Seuraavista syist\u00e4 pid\u00e4n ryhm\u00e4ty\u00f6st\u00e4:\",\r\n      options: [\r\n        \"Nautin tilanteiden analysoimisesta ja kaikkien mahdollisten vaihtoehtojen puntaroimisesta.\",\r\n        \"Olen kiinnostunut l\u00f6yt\u00e4m\u00e4\u00e4n k\u00e4yt\u00e4nn\u00f6n ratkaisuja ongelmiin.\",\r\n        \"Minulle on t\u00e4rke\u00e4\u00e4 pit\u00e4\u00e4 yll\u00e4 hyvi\u00e4 suhteita ryhm\u00e4l\u00e4isiini.\",\r\n        \"Voin kokea, ett\u00e4 minulla on ollut voimakas vaikutus tehtyihin p\u00e4\u00e4t\u00f6ksiin.\",\r\n        \"Saan tavata ihmisi\u00e4, joilla on jotain uutta annettavaa.\",\r\n        \"Saan ihmiset p\u00e4\u00e4sem\u00e4\u00e4n yksimielisyyteen siit\u00e4, miten on tarpeellista toimia.\",\r\n        \"Olen elementiss\u00e4ni, kun saan tosissani paneutua teht\u00e4v\u00e4\u00e4n.\",\r\n        \"Haluan ty\u00f6skennell\u00e4 sellaisten asioiden parissa, jotka vaativat paljon mielikuvitukseltani.\"\r\n      ]\r\n    },\r\n    {\r\n      title: \"Jos minulle annetaan yll\u00e4tt\u00e4en vaikea teht\u00e4v\u00e4, jonka toteuttamiseen on rajoitetusti aikaa ja minulle tuntemattomat ihmiset:\",\r\n      options: [\r\n        \"Tunnen joutuvani umpikujaan, jos en voi ensin rauhassa mietti\u00e4, miten tilanteesta selvi\u00e4n.\",\r\n        \"Olisin valmis ty\u00f6skentelem\u00e4\u00e4n sen ihmisen kanssa, joka suhtautuu asiaan parhaiten, vaikka h\u00e4n olisikin ihmisen\u00e4 hankala.\",\r\n        \"L\u00f6yt\u00e4isin jonkin tavan jakaa teht\u00e4v\u00e4\u00e4 siten, ett\u00e4 hy\u00f6dynt\u00e4isin kunkin ryhm\u00e4n j\u00e4senen parhaat puolet.\",\r\n        \"Luontainen ajantajuni pit\u00e4isi huolen siit\u00e4, ettemme j\u00e4isi aikataulusta j\u00e4lkeen.\",\r\n        \"Uskoisin pit\u00e4v\u00e4ni p\u00e4\u00e4ni kylm\u00e4n\u00e4 ja s\u00e4ilytt\u00e4v\u00e4ni kykyni ajatella selke\u00e4sti.\",\r\n        \"Pit\u00e4isin vankasti kiinni p\u00e4\u00e4m\u00e4\u00e4r\u00e4st\u00e4, paineista huolimatta.\",\r\n        \"Olisin valmis ottamaan positiivisesti ohjat k\u00e4siini, jos minusta tuntuisi silt\u00e4, ett\u00e4 ryhm\u00e4ty\u00f6 ei etene.\",\r\n        \"Yritt\u00e4isin aikaansaada keskusteluja, jotka antaisivat virikkeit\u00e4 uusiin ajatuksiin ja saisivat asioihin vauhtia.\"\r\n      ]\r\n    },\r\n    {\r\n      title: \"Ryhm\u00e4ty\u00f6ss\u00e4 kohtaamiani ongelmia:\",\r\n      options: [\r\n        \"Saatan helposti n\u00e4ytt\u00e4\u00e4 k\u00e4rsim\u00e4tt\u00f6myyteni niit\u00e4 ihmisi\u00e4 kohtaan, jotka est\u00e4v\u00e4t ryhm\u00e4ty\u00f6t\u00e4 edistym\u00e4st\u00e4.\",\r\n        \"Ryhm\u00e4n muiden j\u00e4senten mielest\u00e4 saatan pohtia asioita liikaa, enk\u00e4 toimi helposti vaistonvaraisesti.\",\r\n        \"Liiallinen haluni varmistua siit\u00e4, ett\u00e4 ty\u00f6 tulee kunnolla tehty\u00e4, saattaa haitata projektin edistymist\u00e4.\",\r\n        \"Kyll\u00e4styn aika helposti ja tarvitsen ryhm\u00e4n muiden j\u00e4senten apua innostuakseni teht\u00e4v\u00e4st\u00e4.\",\r\n        \"Minusta tuntuu vaikealta aloittaa ty\u00f6, jos tavoitteet eiv\u00e4t ole selkeit\u00e4.\",\r\n        \"Osaan joskus huonosti selitt\u00e4\u00e4 ja selvent\u00e4\u00e4 keksimi\u00e4ni monimutkaisia ajatuksia.\",\r\n        \"Olen tietoinen siit\u00e4, ett\u00e4 vaadin toisilta sellaisia asioita, joista en itse selviytyisi.\",\r\n        \"Ep\u00e4r\u00f6in tuoda ajatuksiani julki, jos saan osakseni vastustusta.\"\r\n      ]\r\n    }\r\n  ];\r\n\r\n  const roolit = {\r\n    TA: ['Takoja', 'Toimintaorientoituneet'],\r\n    TE: ['Tekij\u00e4', 'Toimintaorientoituneet'],\r\n    VII: ['Viimeistelij\u00e4', 'Toimintaorientoituneet'],\r\n    KO: ['Kokooja', 'Ihmisorientoituneet'],\r\n    DIP: ['Diplomaatti', 'Ihmisorientoituneet'],\r\n    TIE: ['Tiedustelija', 'Ihmisorientoituneet'],\r\n    KEK: ['Keksij\u00e4', 'Ajatteluorientoituneet'],\r\n    AR: ['Arvioija', 'Ajatteluorientoituneet']\r\n  };\r\n\r\n  const form = document.getElementById(\"belbin-form\");\r\n  const startBtn = document.getElementById(\"aloita-testi\");\r\n  const kysymysalue = document.getElementById(\"kysymysalue\");\r\n  const osioDiv = document.getElementById(\"belbin-osat\");\r\n  const tulosContainer = document.getElementById(\"tulos-container\");\r\n  const errorsBox = document.getElementById(\"belbin-errors\");\r\n\r\n  function renderSections() {\r\n    osioDiv.innerHTML = \"\";\r\n\r\n    osiot.forEach((osio, index) => {\r\n      const section = document.createElement(\"div\");\r\n      section.className = \"osio\";\r\n      section.innerHTML =\r\n        `<h4>Osa ${index + 1}: ${osio.title}<\/h4>` +\r\n        osio.options.map((text, i) => `\r\n          <div class=\"question-row\">\r\n            <label for=\"osio${index + 1}_opt${i + 1}\">${text}<\/label>\r\n            <select id=\"osio${index + 1}_opt${i + 1}\" name=\"osio${index + 1}_opt${i + 1}\" data-section=\"${index + 1}\">\r\n              <option value=\"0\">0<\/option>\r\n              <option value=\"1\">1<\/option>\r\n              <option value=\"3\">3<\/option>\r\n              <option value=\"6\">6<\/option>\r\n            <\/select>\r\n          <\/div>\r\n        `).join(\"\") +\r\n        `<div class=\"section-total\" id=\"section-total-${index + 1}\">Osion pisteet: 0 \/ 10<\/div>`;\r\n\r\n      osioDiv.appendChild(section);\r\n    });\r\n\r\n    osioDiv.querySelectorAll(\"select\").forEach(select => {\r\n      select.addEventListener(\"change\", () => updateSectionTotal(select.dataset.section));\r\n    });\r\n  }\r\n\r\n  function updateSectionTotal(sectionNumber) {\r\n    const selects = osioDiv.querySelectorAll(`select[data-section=\"${sectionNumber}\"]`);\r\n    let sum = 0;\r\n    selects.forEach(sel => {\r\n      sum += parseInt(sel.value || 0, 10);\r\n    });\r\n\r\n    const totalEl = document.getElementById(`section-total-${sectionNumber}`);\r\n    totalEl.textContent = `Osion pisteet: ${sum} \/ 10`;\r\n\r\n    if (sum === 10) {\r\n      totalEl.classList.remove(\"invalid\");\r\n    } else {\r\n      totalEl.classList.add(\"invalid\");\r\n    }\r\n  }\r\n\r\n  function updateAllTotals() {\r\n    osiot.forEach((_, i) => updateSectionTotal(i + 1));\r\n  }\r\n\r\n  function setBelbinStatus(message, isError) {\r\n    const oldStatus = document.getElementById(\"belbin-send-status\");\r\n    if (oldStatus) oldStatus.remove();\r\n\r\n    const status = document.createElement(\"div\");\r\n    status.id = \"belbin-send-status\";\r\n    status.className = \"loading-state\";\r\n    status.style.color = isError ? \"#b42318\" : \"#667085\";\r\n    status.textContent = message;\r\n\r\n    tulosContainer.insertAdjacentElement(\"afterbegin\", status);\r\n  }\r\n\r\n  function sendToElementor(results, scoresObject, sorted) {\r\n    return new Promise((resolve, reject) => {\r\n      const top1 = sorted[0];\r\n      const top2 = sorted[1];\r\n\r\n      const vahvinRooli = top1 ? `${roolit[top1[0]][0]} (${top1[1]} p)` : \"\";\r\n      const toinenRooli = top2 ? `${roolit[top2[0]][0]} (${top2[1]} p)` : \"\";\r\n\r\n      const elementorForm = document.querySelector(\".belbin-hidden-form form.elementor-form\");\r\n      if (!elementorForm) {\r\n        reject(new Error('Elementor-formia ei l\u00f6ytynyt. Lis\u00e4\u00e4 form-widgetille CSS-luokka \"belbin-hidden-form\".'));\r\n        return;\r\n      }\r\n\r\n      const setField = (fieldId, value) => {\r\n        const field = elementorForm.querySelector(`[name=\"form_fields[${fieldId}]\"]`);\r\n        if (!field) {\r\n          throw new Error(`Elementor-kentt\u00e4\u00e4 ei l\u00f6ytynyt: ${fieldId}`);\r\n        }\r\n        field.value = value;\r\n        field.dispatchEvent(new Event(\"input\", { bubbles: true }));\r\n        field.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n      };\r\n\r\n      try {\r\n       setField(\"nimi\", results.nimi || \"\");\r\nsetField(\"sahkoposti\", results.sahkoposti || \"\");\r\nsetField(\"puhelin\", results.puhelin || \"\");\r\nsetField(\"rooli\", results.rooli || \"\");\r\nsetField(\"vahvin_rooli\", vahvinRooli);\r\nsetField(\"toinen_rooli\", toinenRooli);\r\nsetField(\"pisteet_teksti\", buildScoresText(sorted, roolit));\r\nsetField(\"kaikki_pisteet\", JSON.stringify(scoresObject));\r\nsetField(\"kaikki_vastaukset\", JSON.stringify(results));\r\n      } catch (error) {\r\n        reject(error);\r\n        return;\r\n      }\r\n\r\n      const successHandler = () => {\r\n        cleanup();\r\n        resolve();\r\n      };\r\n\r\n      const errorHandler = () => {\r\n        cleanup();\r\n        reject(new Error(\"Elementor-formin l\u00e4hetys ep\u00e4onnistui.\"));\r\n      };\r\n\r\n      const cleanup = () => {\r\n        jQuery(document).off(\"submit_success\", successHandler);\r\n        elementorForm.removeEventListener(\"error\", errorHandler);\r\n      };\r\n\r\n      if (window.jQuery) {\r\n        jQuery(document).one(\"submit_success\", successHandler);\r\n      } else {\r\n        setTimeout(() => resolve(), 1500);\r\n      }\r\n\r\n      elementorForm.addEventListener(\"error\", errorHandler, { once: true });\r\n\r\n      const submitButton = elementorForm.querySelector('[type=\"submit\"]');\r\n      if (submitButton) {\r\n        submitButton.click();\r\n      } else {\r\n        elementorForm.dispatchEvent(new Event(\"submit\", { bubbles: true, cancelable: true }));\r\n      }\r\n\r\n      if (!window.jQuery) {\r\n        setTimeout(() => {\r\n          cleanup();\r\n          resolve();\r\n        }, 1800);\r\n      }\r\n    });\r\n  }\r\n\r\n  startBtn.addEventListener(\"click\", () => {\r\n    if (\r\n      !document.getElementById(\"nimi\").value.trim() ||\r\n      !document.getElementById(\"puhelin\").value.trim() ||\r\n      !document.getElementById(\"sahkoposti\").value.trim() ||\r\n      !document.getElementById(\"rooli\").value.trim()\r\n    ) {\r\n      alert(\"T\u00e4yt\u00e4 ensin yhteystiedot.\");\r\n      return;\r\n    }\r\n\r\n    kysymysalue.style.display = \"block\";\r\n    renderSections();\r\n    updateAllTotals();\r\n    startBtn.style.display = \"none\";\r\n\r\n    kysymysalue.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n  });\r\n\r\n  function validateAnswers(results) {\r\n    const errors = [];\r\n\r\n    osiot.forEach((_, i) => {\r\n      let sum = 0;\r\n      let selectedCount = 0;\r\n\r\n      for (let j = 0; j < 8; j++) {\r\n        const val = parseInt(results[`osio${i + 1}_opt${j + 1}`] || 0, 10);\r\n        sum += val;\r\n        if (val > 0) selectedCount++;\r\n      }\r\n\r\n      if (sum !== 10) {\r\n        errors.push(`Osio ${i + 1}: pisteiden summa on ${sum}, mutta sen pit\u00e4\u00e4 olla 10.`);\r\n      }\r\n\r\n      if (selectedCount !== 3) {\r\n        errors.push(`Osio ${i + 1}: valittuja v\u00e4itt\u00e4mi\u00e4 on ${selectedCount}, mutta niit\u00e4 pit\u00e4\u00e4 olla 3.`);\r\n      }\r\n    });\r\n\r\n    return errors;\r\n  }\r\n\r\n  function calculateScores(results) {\r\n    const scores = {};\r\n    Object.entries(results).forEach(([key, val]) => {\r\n      const match = key.match(\/osio\\d+_opt(\\d+)\/);\r\n      if (match) {\r\n        const rooliIdx = parseInt(match[1], 10) - 1;\r\n        const rooliId = Object.keys(roolit)[rooliIdx];\r\n        scores[rooliId] = (scores[rooliId] || 0) + parseInt(val || 0, 10);\r\n      }\r\n    });\r\n\r\n    return Object.entries(scores).sort((a, b) => b[1] - a[1]);\r\n  }\r\n  function buildScoresText(sorted, roolit) {\r\n  return sorted.map(([key, val]) => `${roolit[key][0]}: ${val} p`).join(\"\\n\");\r\n}\r\n\r\n  function renderResults(sorted) {\r\n    const top1 = sorted[0];\r\n    const top2 = sorted[1];\r\n\r\n    let html = `\r\n      <div class=\"results-card\">\r\n        <h3>Tiimirooliprofiilisi<\/h3>\r\n        <p>Alla n\u00e4kyv\u00e4t Belbin-testin pisteesi rooleittain.<\/p>\r\n\r\n        <div class=\"results-top\">\r\n          <div class=\"result-pill\">Vahvin rooli: ${roolit[top1[0]][0]} (${top1[1]} p)<\/div>\r\n          <div class=\"result-pill\">Seuraava vahvuus: ${roolit[top2[0]][0]} (${top2[1]} p)<\/div>\r\n        <\/div>\r\n\r\n        <table class=\"results-table\">\r\n          <thead>\r\n            <tr>\r\n              <th>Lyhenne<\/th>\r\n              <th>Rooli<\/th>\r\n              <th>Pisteet<\/th>\r\n              <th>Kategoria<\/th>\r\n            <\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n    `;\r\n\r\n    sorted.forEach(([key, val]) => {\r\n      const [nimi, kategoria] = roolit[key];\r\n      html += `\r\n        <tr>\r\n          <td>${key}<\/td>\r\n          <td>${nimi}<\/td>\r\n          <td>${val}<\/td>\r\n          <td>${kategoria}<\/td>\r\n        <\/tr>\r\n      `;\r\n    });\r\n\r\n    html += `\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n    `;\r\n\r\n    tulosContainer.innerHTML = html;\r\n    tulosContainer.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n  }\r\n\r\n  form.addEventListener(\"submit\", function(e) {\r\n    e.preventDefault();\r\n\r\n    const formData = new FormData(form);\r\n    const results = Object.fromEntries(formData.entries());\r\n\r\n    errorsBox.style.display = \"none\";\r\n    errorsBox.innerHTML = \"\";\r\n\r\n    const errors = validateAnswers(results);\r\n    updateAllTotals();\r\n\r\n    if (errors.length) {\r\n      errorsBox.style.display = \"block\";\r\n      errorsBox.innerHTML = `<strong>Korjaa seuraavat kohdat:<\/strong><br>${errors.join(\"<br>\")}`;\r\n      errorsBox.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\r\n      return;\r\n    }\r\n\r\n    const sorted = calculateScores(results);\r\n    renderResults(sorted);\r\n\r\n    const scoresObject = {};\r\n    sorted.forEach(([key, val]) => {\r\n      scoresObject[key] = val;\r\n    });\r\n\r\n    const submitBtn = form.querySelector('button[type=\"submit\"]');\r\n    submitBtn.disabled = true;\r\n\r\n    setBelbinStatus(\"L\u00e4hetet\u00e4\u00e4n tulosta...\");\r\n\r\n    sendToElementor(results, scoresObject, sorted)\r\n      .then(() => {\r\n        submitBtn.disabled = false;\r\n        setBelbinStatus(\"Testi l\u00e4hetetty onnistuneesti.\");\r\n      })\r\n      .catch((error) => {\r\n        submitBtn.disabled = false;\r\n        setBelbinStatus(error.message || \"L\u00e4hetys ep\u00e4onnistui.\", true);\r\n      });\r\n  });\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-31d61db belbin-hidden-form elementor-button-align-stretch elementor-widget elementor-widget-form\" data-id=\"31d61db\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;step_next_label&quot;:&quot;Next&quot;,&quot;step_previous_label&quot;:&quot;Previous&quot;,&quot;button_width&quot;:&quot;100&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}\" data-widget_type=\"form.default\">\n\t\t\t\t\t\t\t<form class=\"elementor-form\" method=\"post\" name=\"New Form\" aria-label=\"New Form\">\n\t\t\t<input type=\"hidden\" name=\"post_id\" value=\"1451\"\/>\n\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"31d61db\"\/>\n\t\t\t<input type=\"hidden\" name=\"referer_title\" value=\"Belbin - Klikattavaa\" \/>\n\n\t\t\t\t\t\t\t<input type=\"hidden\" name=\"queried_id\" value=\"1451\"\/>\n\t\t\t\n\t\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-nimi elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-nimi\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tname\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[nimi]\" id=\"form-field-nimi\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"name\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-email elementor-field-group elementor-column elementor-field-group-sahkoposti elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-sahkoposti\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\temail\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"email\" name=\"form_fields[sahkoposti]\" id=\"form-field-sahkoposti\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"email\" required=\"required\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-puhelin elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-puhelin\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tphone\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[puhelin]\" id=\"form-field-puhelin\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"phone\" required=\"required\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-textarea elementor-field-group elementor-column elementor-field-group-rooli elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-rooli\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\trole\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t<textarea class=\"elementor-field-textual elementor-field  elementor-size-sm\" name=\"form_fields[rooli]\" id=\"form-field-rooli\" rows=\"4\" placeholder=\"role\"><\/textarea>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-vahvin_rooli elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-vahvin_rooli\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tstrongest_role\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[vahvin_rooli]\" id=\"form-field-vahvin_rooli\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"strongest_role\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-toinen_rooli elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-toinen_rooli\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tsecond_role\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[toinen_rooli]\" id=\"form-field-toinen_rooli\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"second_role\" value=\"toinen_rooli\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-kaikki_pisteet elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-kaikki_pisteet\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tall_points\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[kaikki_pisteet]\" id=\"form-field-kaikki_pisteet\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"all_points\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-kaikki_vastaukset elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-kaikki_vastaukset\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tall_responses\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[kaikki_vastaukset]\" id=\"form-field-kaikki_vastaukset\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"all_responses\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-pisteet_teksti elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-pisteet_teksti\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tpoints_text\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[pisteet_teksti]\" id=\"form-field-pisteet_teksti\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"points_text\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons\">\n\t\t\t\t\t<button class=\"elementor-button elementor-size-sm\" type=\"submit\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Send<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/form>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Belbin Team Role Test Discover your team role profile Please fill in your contact information first. In each section, select 3 statements and assign them points: 6, 3, and 1. The total points must always be 10 \/ section. Name Phone Email Your role (in the team\/organization) Start test Instructions In each section, select exactly [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-1451","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/klikattavaa.fi\/en\/wp-json\/wp\/v2\/pages\/1451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klikattavaa.fi\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/klikattavaa.fi\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/klikattavaa.fi\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klikattavaa.fi\/en\/wp-json\/wp\/v2\/comments?post=1451"}],"version-history":[{"count":4,"href":"https:\/\/klikattavaa.fi\/en\/wp-json\/wp\/v2\/pages\/1451\/revisions"}],"predecessor-version":[{"id":1466,"href":"https:\/\/klikattavaa.fi\/en\/wp-json\/wp\/v2\/pages\/1451\/revisions\/1466"}],"wp:attachment":[{"href":"https:\/\/klikattavaa.fi\/en\/wp-json\/wp\/v2\/media?parent=1451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}