{"id":35657,"date":"2024-03-08T14:32:08","date_gmt":"2024-03-08T06:32:08","guid":{"rendered":"https:\/\/edit-dot-gaewordpress-dot-junyiacademy.appspot.com\/?page_id=35657"},"modified":"2024-09-18T13:45:28","modified_gmt":"2024-09-18T05:45:28","slug":"a1-completion-form","status":"publish","type":"page","link":"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/","title":{"rendered":"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"35657\" class=\"elementor elementor-35657\">\n\t\t\t\t\t\t<div class=\"elementor-inner\">\n\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9b9b5a3 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"9b9b5a3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f34f204\" data-id=\"f34f204\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-894490c elementor-widget elementor-widget-html\" data-id=\"894490c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n  <head>\r\n    <meta charset=\"utf-8\" \/>\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\r\n    <title>A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae<\/title>\r\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.7.1\/jquery.min.js\"><\/script>\r\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\r\n  <\/head>\r\n\r\n  <body>\r\n    <section\r\n      class=\"relative isolate overflow-hidden bg-white px-6 py-48 sm:py-48 lg:px-8\"\r\n    >\r\n      <div class=\"mx-auto max-w-2xl text-center\">\r\n        <h2 class=\"text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl\">\r\n          A1 \u7814\u7fd2\u5b8c\u8ab2\u8b49\u660e\u7533\u8acb\u53ca\u8868\u55ae\u586b\u5beb\r\n        <\/h2>\r\n        <p class=\"mt-2 text-lg leading-8 text-gray-600\">\u5747\u4e00\u6559\u80b2\u5e73\u53f0 A1 \u7814\u7fd2<\/p>\r\n      <\/div>\r\n      <div\r\n        class=\"absolute inset-0 -z-10 bg-[radial-gradient(45rem_50rem_at_top,theme(colors.sky.100),white)] opacity-10\"\r\n      ><\/div>\r\n      <div\r\n        class=\"absolute inset-y-0 right-1\/2 -z-10 mr-16 w-[200%] origin-bottom-left skew-x-[-30deg] bg-white shadow-xl shadow-indigo-600\/10 ring-1 ring-indigo-50 sm:mr-28 lg:mr-0 xl:mr-16 xl:origin-center\"\r\n      ><\/div>\r\n\r\n      <div id=\"loginControlContainer\">\r\n        <!--<div class=\"absolute left-1\/2 z-10 mt-5 flex w-screen max-w-max -translate-x-1\/2 px-4\">-->\r\n        <div class=\"mx-auto max-w-2xl lg:max-w-4xl\">\r\n          <div\r\n            class=\"w-screen max-w-md flex-auto overflow-hidden rounded-3xl bg-white text-sm leading-6 shadow-lg ring-1 ring-gray-900\/5\"\r\n          >\r\n            <div class=\"p-4\">\r\n              <div\r\n                class=\"group relative flex gap-x-6 rounded-lg p-4 hover:bg-gray-50\"\r\n              >\r\n                <div\r\n                  class=\"mt-1 flex h-11 w-11 flex-none items-center justify-center rounded-lg bg-gray-50 group-hover:bg-white\"\r\n                >\r\n                  <svg\r\n                    class=\"h-6 w-6 text-gray-600 group-hover:text-sky-600\"\r\n                    fill=\"none\"\r\n                    viewBox=\"0 0 24 24\"\r\n                    stroke-width=\"1.5\"\r\n                    stroke=\"currentColor\"\r\n                    aria-hidden=\"true\"\r\n                  >\r\n                    <path\r\n                      stroke-linecap=\"round\"\r\n                      stroke-linejoin=\"round\"\r\n                      d=\"M15.042 21.672L13.684 16.6m0 0l-2.51 2.225.569-9.47 5.227 7.917-3.286-.672zM12 2.25V4.5m5.834.166l-1.591 1.591M20.25 10.5H18M7.757 14.743l-1.59 1.59M6 10.5H3.75m4.007-4.243l-1.59-1.59\"\r\n                    \/>\r\n                  <\/svg>\r\n                <\/div>\r\n                <div>\r\n                  <a id=\"login\" href=\"#\" class=\"font-semibold text-gray-900\">\r\n                    \u8a3b\u518a\/\u767b\u5165\r\n                    <span class=\"absolute inset-0\"><\/span>\r\n                  <\/a>\r\n                  <p id=\"login\" class=\"mt-1 text-gray-600\">\r\n                    \u767b\u5165\u5747\u4e00\u5e33\u865f\u5f8c\u65b9\u53ef\u958b\u59cb\u586b\u5beb\u8868\u55ae\r\n                  <\/p>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div id=\"mainContainer\">\r\n        <div class=\"mt-10 text-center border-4 border-transparent pt-4 px-6\">\r\n          <div class=\"w-1\/2 h-px bg-sky-600 mx-auto mb-6\"><\/div>\r\n          <h2\r\n            class=\"mt-10 text-xl font-bold tracking-tight text-black sm:text-4xl\"\r\n          >\r\n            \u7b2c\u4e00\u6b65\uff1a\u78ba\u8a8d\u5b8c\u6210\u72c0\u614b\r\n          <\/h2>\r\n          <p class=\"mt-2 text-lg leading-8 text-gray-600\">\r\n            \u8acb\u78ba\u8a8d\u300c\u5f71\u7247\u300d\u548c\u300c\u7fd2\u984c\u300d\u5169\u8005\u7684\u72c0\u614b\u7686\u662f\u5df2\u5b8c\u6210\r\n          <\/p>\r\n        <\/div>\r\n        <div class=\"mt-10 mx-auto max-w-2xl lg:max-w-4xl\">\r\n          <div\r\n            class=\"mx-auto w-screen max-w-md flex-auto overflow-hidden rounded-3xl bg-white text-sm leading-6 shadow-lg ring-1 ring-gray-900\/5\"\r\n          >\r\n            <div class=\"p-4\">\r\n              <div\r\n                class=\"group relative flex gap-x-6 rounded-lg p-4 hover:bg-gray-50\"\r\n              >\r\n                <div\r\n                  class=\"mt-1 flex h-11 w-11 flex-none items-center justify-center rounded-lg bg-gray-50 group-hover:bg-white\"\r\n                >\r\n                  <svg\r\n                    id=\"video-icon-status\"\r\n                    class=\"h-6 w-6 text-white\"\r\n                    fill=\"none\"\r\n                    viewBox=\"0 0 24 24\"\r\n                    stroke-width=\"1.5\"\r\n                    stroke=\"rgb(220 38 38)\"\r\n                    aria-hidden=\"true\"\r\n                  >\r\n                    <path\r\n                      stroke-linecap=\"round\"\r\n                      stroke-linejoin=\"round\"\r\n                      d=\"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\r\n                    \/>\r\n                  <\/svg>\r\n                <\/div>\r\n                <div>\r\n                  <h6\r\n                    id=\"video-title-status\"\r\n                    class=\"font-semibold text-sky-600\"\r\n                  >\r\n                    \u5f71\u7247\uff1a\u89c0\u770b\u6240\u6709\u5f71\u7247<span class=\"absolute inset-0\"><\/span>\r\n                  <\/h6>\r\n                  <p id=\"video-description-status\" class=\"mt-1 text-gray-600\">\r\n                    \u5c1a\u672a\u5b8c\u6210\r\n                  <\/p>\r\n                <\/div>\r\n              <\/div>\r\n              <div\r\n                class=\"group relative flex gap-x-6 rounded-lg p-4 hover:bg-gray-50\"\r\n              >\r\n                <div\r\n                  class=\"mt-1 flex h-11 w-11 flex-none items-center justify-center rounded-lg bg-gray-50 group-hover:bg-white\"\r\n                >\r\n                  <svg\r\n                    id=\"exercise-icon-status\"\r\n                    class=\"h-6 w-6 text-white\"\r\n                    fill=\"none\"\r\n                    viewBox=\"0 0 24 24\"\r\n                    stroke-width=\"1.5\"\r\n                    stroke=\"rgb(220 38 38)\"\r\n                    aria-hidden=\"true\"\r\n                  >\r\n                    <path\r\n                      stroke-linecap=\"round\"\r\n                      stroke-linejoin=\"round\"\r\n                      d=\"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\r\n                    \/>\r\n                  <\/svg>\r\n                <\/div>\r\n                <div>\r\n                  <h6\r\n                    id=\"exercise-title-status\"\r\n                    class=\"font-semibold text-sky-600\"\r\n                  >\r\n                    \u7fd2\u984c\uff1a\u5168\u6578\u9054\u7b49\u7d1a 1 \u4ee5\u4e0a<span\r\n                      class=\"absolute inset-0\"\r\n                    ><\/span>\r\n                  <\/h6>\r\n                  <p\r\n                    id=\"exercise-description-status\"\r\n                    class=\"mt-1 text-gray-600\"\r\n                  >\r\n                    \u5c1a\u672a\u5b8c\u6210\r\n                  <\/p>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div id=\"fill-completion-form\"><\/div>\r\n        <div id=\"apply-form-btn\"><\/div>\r\n      <\/div>\r\n      <div id=\"logoutControlContainer\" class=\"place-content-center\">\r\n        <div class=\"mt-10\">\r\n          <button\r\n            id=\"logout\"\r\n            type=\"submit\"\r\n            class=\"block w-96 rounded-md bg-sky-700 px-3.5 py-2.5 text-center text-sm font-semibold text-white shadow-sm hover:bg-sky-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-700\"\r\n          >\r\n            \u767b\u51fa\r\n          <\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <style>\r\n      #mainContainer {\r\n        display: None;\r\n      }\r\n\r\n      #logoutControlContainer {\r\n        display: None;\r\n      }\r\n\r\n      #loginControlContainer {\r\n        display: None;\r\n      }\r\n\r\n      div > button:hover {\r\n        background: None;\r\n      }\r\n\r\n      div > button:focus {\r\n        background: None;\r\n      }\r\n    <\/style>\r\n\r\n    <!--\r\n        common login & valiadation behavior\r\n    -->\r\n    <script>\r\n      var userData;\r\n      var xsrfToken; \/\/ visit JY-HP first, to save X-KA-FKey into cookie\r\n      var currentPage = window.location.href;\r\n      let user_hashed_id;\r\n      \r\n      if (document.referrer.includes('google.com')) {\r\n        window.location.href = 'https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/';\r\n      }\r\n\r\n\r\n      jQuery(document).ready(function () {\r\n        jQuery\r\n          .ajax({\r\n            url: \"https:\/\/www.junyiacademy.org\/\",\r\n            method: \"GET\",\r\n            async: false,\r\n            cache: false, \/\/ disable cache to prevent error with browser history-back\r\n          })\r\n          .done(function () {\r\n            xsrfToken = \/fkey=([^;]*)\/.exec(document.cookie)\r\n              ? \/fkey=([^;]*)\/.exec(document.cookie)[1]\r\n              : null;\r\n          });\r\n\r\n        \/\/ Check User logged-Status\r\n        let isLogin;\r\n\r\n        jQuery\r\n          .ajax({\r\n            url: \"https:\/\/www.junyiacademy.org\/api\/v2\/user\/tracking-identity\",\r\n            method: \"GET\",\r\n            async: false,\r\n            cache: false, \/\/ disable cache to prevent error with browser history back\r\n            xhrFields: { withCredentials: true },\r\n            headers: { \"X-KA-FKey\": xsrfToken },\r\n          })\r\n          .done(function (data) {\r\n            data = data[\"data\"];\r\n            isLogin = data[\"isLoggedIn\"];\r\n          });\r\n\r\n        if (isLogin) {\r\n          const userProfileData = getUserProfile(xsrfToken);\r\n\r\n          const isPhantom = userProfileData[\"isPhantom\"];\r\n          const lastActivity = userProfileData[\"lastActivity\"];\r\n          const userKey = userProfileData[\"userKey\"];\r\n          const nickname = userProfileData[\"nickname\"];\r\n          const userEmail = userProfileData[\"email\"];\r\n          const userSchool = userProfileData[\"schoolName\"].replace(\/,\/g, \"&\");\r\n\r\n          jQuery\r\n            .ajax({\r\n              url: \"https:\/\/www.junyiacademy.org\/api\/v2\/user\",\r\n              method: \"GET\",\r\n              async: false,\r\n              cache: false, \/\/ disable cache to prevent error with browser history-back\r\n              xhrFields: { withCredentials: true },\r\n              headers: { \"X-KA-FKey\": xsrfToken },\r\n            })\r\n            .done(function (data) {\r\n              userData = data[\"data\"];\r\n              \/\/ filter phantom user out\r\n              if (!userData[\"isPhantom\"] && !userData[\"isPrePhantom\"]) {\r\n                const requiredBadgeString = \"\u6559\u5e2b\u7814\u7fd2_\u6578\u4f4d\u5b78\u7fd2\u5de5\u4f5c\u574a\uff08\u4e00\uff09A1\"; \/\/ define the required badget using its title\r\n                let isVideoCompelted = false; \/\/default\r\n\r\n                isVideoCompelted = verifyBadge(xsrfToken, requiredBadgeString);\r\n                if (isVideoCompelted) {\r\n                  $(\"#video-icon-status\")\r\n                    .attr(\"stroke\", \"rgb(22 163 74)\")\r\n                    .html(\r\n                      '<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\" \/>'\r\n                    );\r\n                  $(\"#video-description-status\").text(\"\u5df2\u5b8c\u6210\");\r\n                }\r\n\r\n                const exerciseList = [\r\n                  \"a1_teacher_training_quiz_v1\",\r\n                  \"a1_teacher_training_quiz_v2\",\r\n                  \"a1_teacher_training_quiz_v3\",\r\n                  \"a1_teacher_training_quiz_v4\",\r\n                  \"a1_teacher_training_quiz_v5\",\r\n                ];\r\n                let isExerciseCompelted = false;\r\n                isExerciseCompelted = verifyExercise(\r\n                  xsrfToken,\r\n                  userKey,\r\n                  lastActivity,\r\n                  exerciseList\r\n                );\r\n                if (isExerciseCompelted) {\r\n                  $(\"#exercise-icon-status\")\r\n                    .attr(\"stroke\", \"rgb(22 163 74)\")\r\n                    .html(\r\n                      '<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\" \/>'\r\n                    );\r\n\r\n                  $(\"#exercise-description-status\").text(\"\u5df2\u5b8c\u6210\");\r\n\r\n                  \/\/   \/\/ Render the apply certificate form button\r\n                  \/\/   const form_id = \"sWezNM0l\";\r\n                  \/\/   const form_title = \"\u5b8c\u8ab2\u8b49\u660e\u7533\u8acb\";\r\n                  \/\/   renderApplyCertificateFormButton(\r\n                  \/\/     form_id,\r\n                  \/\/     form_title,\r\n                  \/\/     userEmail,\r\n                  \/\/     userSchool\r\n                  \/\/   );\r\n                } else {\r\n                }\r\n\r\n                if (isVideoCompelted && isExerciseCompelted) {\r\n                  renderCompletionForm();\r\n                }\r\n\r\n                \/\/ login sccuessful\r\n                setLogin(false);\r\n                setLogout(true);\r\n              }\r\n            })\r\n            .fail(function (data) {\r\n              \/\/ \u9a57\u8b49\u5747\u4e00\u767b\u5165\u6642\u767c\u751f\u932f\u8aa4\r\n              console.log(\"\u9a57\u8b49\u5747\u4e00\u767b\u5165\u6642\u767c\u751f\u932f\u8aa4\");\r\n            })\r\n            .always(function () {\r\n              \/\/ Do Nothing\r\n            });\r\n        } else {\r\n          \/\/ \u672a\u767b\u5165\u72c0\u614b\r\n          setLogin(true);\r\n          setLogout(false);\r\n        }\r\n      });\r\n\r\n      function setLogin(flag) {\r\n        console.log(\"setLogin called with flag:\", flag);\r\n        const loginControl = document.getElementById(\"loginControlContainer\");\r\n\r\n        if (flag) {\r\n          \/\/ \u8a2d\u7f6e\u8a2d\u7f6e\u767b\u5165\u8f49\u5c0e\r\n          const loginLink = document.getElementById(\"login\");\r\n          const junyi_login =\r\n            \"https:\/\/www.junyiacademy.org\/login?continue=\" + currentPage;\r\n          loginLink.setAttribute(\"href\", junyi_login);\r\n\r\n          \/\/ \u8a2d\u5b9a\u986f\u793a\r\n          loginControl.style.display = \"flex\";\r\n        } else {\r\n          \/\/ \u8a2d\u5b9a\u96b1\u85cf\r\n          loginControl.style.display = \"none\";\r\n        }\r\n      }\r\n\r\n      function setLogout(flag) {\r\n        const logoutControl = document.getElementById(\"logoutControlContainer\");\r\n        const mainControl = document.getElementById(\"mainContainer\");\r\n\r\n        if (flag) {\r\n          \/\/ \u8a2d\u5b9a\u767b\u51fa\u5747\u4e00\u5e33\u865f\u7684\u7a0b\u5e8f\r\n          jQuery(\"#logout\").click(function (e) {\r\n            e.preventDefault();\r\n            jQuery\r\n              .ajax({\r\n                url:\r\n                  \"https:\/\/www.junyiacademy.org\/logout?continue=\" +\r\n                  currentPage +\r\n                  '\"',\r\n                method: \"GET\",\r\n                async: false,\r\n                cache: false, \/\/ disable cache to prevent error with browser history-back\r\n                xhrFields: { withCredentials: true },\r\n                headers: { \"X-KA-FKey\": xsrfToken },\r\n              })\r\n              .done(function () {\r\n                window.location.replace(currentPage);\r\n              });\r\n          });\r\n\r\n          \/\/ \u8a2d\u5b9a\u986f\u793a\r\n          logoutControl.style.display = \"grid\";\r\n          mainControl.style.display = \"block\";\r\n        } else {\r\n          \/\/ \u8a2d\u5b9a\u96b1\u85cf\r\n          logoutControl.style.display = \"none\";\r\n          mainControl.style.display = \"none\";\r\n        }\r\n      }\r\n\r\n      function getUserProgressCache(token, key, timeStamp) {\r\n        var requestUrl =\r\n          \"https:\/\/www.junyiacademy.org\/user_progress_cache?userKey=\" +\r\n          key +\r\n          \"&lastActivity=\" +\r\n          timeStamp;\r\n        var cacheData = null;\r\n\r\n        jQuery\r\n          .ajax({\r\n            url: requestUrl,\r\n            method: \"GET\",\r\n            async: false,\r\n            cache: false, \/\/ disable cache to prevent error with browser history-back\r\n            xhrFields: { withCredentials: true },\r\n            headers: { \"X-KA-FKey\": token },\r\n          })\r\n          .done(function (data) {\r\n            cacheData = data;\r\n          })\r\n          .fail(function (data) {\r\n            \/\/ Do Nothing\r\n          })\r\n          .always(function (data) {\r\n            \/\/ Do Nothing\r\n          });\r\n        return cacheData;\r\n      }\r\n\r\n      function doRequiredDataExistInUserProgress(\r\n        requiredData,\r\n        userProgressData\r\n      ) {\r\n        \/\/ Check if every element in requiredData exists in userProgressData\r\n        return requiredData.every((item) => userProgressData.includes(item));\r\n      }\r\n\r\n      function verifyExercise(xsrfToken, userKey, lastActivity, exerciseList) {\r\n        \/*\r\n                fetch API \"user_progress_cache\"\r\n            *\/\r\n        const userProgressData = getUserProgressCache(\r\n          xsrfToken,\r\n          userKey,\r\n          lastActivity\r\n        );\r\n\r\n        const userProgressDataExercise = [\r\n          ...userProgressData[\"exercise\"][\"level1\"],\r\n          ...userProgressData['exercise']['level2'],\r\n          ...userProgressData['exercise']['level3'],\r\n          ...userProgressData['exercise']['proficient']\r\n        ];\r\n\r\n        const result = doRequiredDataExistInUserProgress(\r\n          exerciseList,\r\n          userProgressDataExercise\r\n        );\r\n\r\n        return result; \/\/ Output: true\r\n      }\r\n\r\n      \/*\r\n            get required user-data\r\n            fetch API \"user\/profile\"\r\n        *\/\r\n      function getUserProfile(token) {\r\n        var userProfileData = null;\r\n\r\n        jQuery\r\n          .ajax({\r\n            url: \"https:\/\/www.junyiacademy.org\/api\/v2\/user\/profile\",\r\n            method: \"GET\",\r\n            async: false,\r\n            cache: false, \/\/ disable cache to prevent error with browser history-back\r\n            xhrFields: { withCredentials: true },\r\n            headers: { \"X-KA-FKey\": token },\r\n          })\r\n          .done(function (data) {\r\n            userProfileData = data[\"data\"];\r\n          })\r\n          .fail(function (data) {\r\n            \/\/ Do Nothing\r\n          })\r\n          .always(function (data) {\r\n            \/\/ Do Nothing\r\n          });\r\n\r\n        return userProfileData;\r\n      }\r\n\r\n      function renderCompletionForm() {\r\n        const formContainer = document.getElementById(\"fill-completion-form\");\r\n        formContainer.innerHTML = `\r\n                      <div class=\"mt-10 text-center border-4 border-transparent pt-4 px-6\">\r\n                          <div class=\"w-1\/2 h-px bg-sky-600 mx-auto mb-6\"><\/div>\r\n                          <h2 class=\"mt-10 text-xl font-bold tracking-tight text-black sm:text-4xl\">\u7b2c\u4e8c\u6b65\uff1a\u586b\u5beb\u7814\u7fd2\u5b8c\u6210\u8cc7\u6599<\/h2>\r\n                          <p class=\"mt-2 text-lg leading-8 text-gray-600\">\u586b\u5beb\u5b8c\u5f8c\uff0c\u7cfb\u7d71\u6703\u5c07\u8001\u5e2b\u7684\u8cc7\u6599\u9001\u9032\u8cc7\u6599\u5eab\uff0c\u5f85\u9694\u65e5\u8a18\u9304\u81f3\u7e23\u5e02\u627f\u8fa6\u627f\u8fa6\u80fd\u5920\u5920\u67e5\u95b1\u7684\u6587\u4ef6\u4e2d<\/p>\r\n                      <\/div>\r\n                      <div>\r\n                          <iframe loading=\"lazy\" id=\"completionFormIframe\"\r\n                              src=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLSeuFshOWUEe1t2TX9qE1M-JfxxGJ3qgBUdLYbrfrEuktEiRHg\/viewform?embedded=true\"\r\n                              width=\"100%\" height=\"1000\" frameborder=\"0\"\r\n                              marginheight=\"0\" marginwidth=\"0\"\r\n                              class=\"block w-full mt-10 rounded-md px-3.5 py-2.5 pt-10 text-center text-sm font-semibold\">\u8f09\u5165\u4e2d\u2026<\/iframe>\r\n                      <\/div>\r\n        `;\r\n\r\n        \/\/ Add event listener to the iframe after it has been added to the DOM\r\n        const iframe = document.getElementById(\"completionFormIframe\");\r\n        let isUrlSet = false;\r\n\r\n        iframe.addEventListener(\"load\", function () {\r\n          if (!isUrlSet) {\r\n            const formUrl = \"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLSeuFshOWUEe1t2TX9qE1M-JfxxGJ3qgBUdLYbrfrEuktEiRHg\/viewform\";\r\n            const preFilledUrl = `${formUrl}?embedded=true&entry.703025043=${encodeURIComponent(\r\n              userData[\"keyEmail\"]\r\n            )}`;\r\n            iframe.src = preFilledUrl;\r\n            isUrlSet = true;\r\n          }\r\n        });\r\n      }\r\n\r\n      function renderApplyCertificateFormButton(\r\n        form_id,\r\n        form_title,\r\n        user_email,\r\n        user_school\r\n      ) {\r\n        jQuery(\"#apply-form-btn\").html(\r\n          `\r\n                <div\r\n                        class=\"mt-10 text-center border-4 border-transparent pt-4 px-6\">\r\n                        <div class=\"w-1\/2 h-px bg-sky-600 mx-auto mb-6\"><\/div>\r\n                        <h2\r\n                            class=\"mt-10 text-xl font-bold tracking-tight text-black sm:text-4xl\">\u7b2c\u4e09\u6b65\uff1a\u7533\u8acb\u5b8c\u8ab2\u8b49\u660e<\/h2>\r\n                        <p\r\n                            class=\"mt-2 text-lg leading-8 text-gray-600\">\u586b\u5beb\u5b8c\u5f8c\uff0c\u7cfb\u7d71\u5c07\u6703\u5bc4\u9001\u5747\u4e00 A1 \u7814\u7fd2\u7684\u5b8c\u8ab2\u8b49\u660e\u81f3\u8001\u5e2b\u6240\u586b\u5beb\u7684\u4fe1\u7bb1<\/p>\r\n                    <\/div>\r\n                <div>\r\n                    <div class=\"mx-auto max-w-2xl lg:max-w-4xl mt-10\">\r\n                    <div\r\n                        class=\"mx-auto w-screen max-w-md flex-auto overflow-hidden rounded-3xl bg-white text-sm leading-6 shadow-lg ring-1 ring-gray-900\/5\">\r\n                        <div class=\"p-4\">\r\n                            <div\r\n                                class=\"group relative flex flex-col items-center justify-center gap-x-6 rounded-lg p-4 hover:bg-gray-50\">\r\n                                <div>\r\n                                    <button class=\"font-semibold text-sky-600 text-xl\" data-tf-popup=\"` +\r\n            form_id +\r\n            `\" data-tf-size=\"80\" data-tf-iframe-props=\"title=` +\r\n            form_title +\r\n            `\" data-tf-medium=\"snippet\" data-tf-hidden=\"user_email=` +\r\n            user_email +\r\n            `,user_school=` +\r\n            user_school +\r\n            `\" > \u586b\u5beb\u7533\u8acb\u8cc7\u6599\r\n                                    <\/button>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <script src=\"\/\/embed.typeform.com\/next\/embed.js\"><\\\/script>\r\n            <\/div>\r\n            <div class=\"mt-10 w-1\/2 h-px bg-sky-600 mx-auto mb-6\"><\/div>\r\n        `\r\n        );\r\n      }\r\n      function verifyBadge(token, badgeString) {\r\n        var flag = false; \/\/ default status\r\n\r\n        jQuery\r\n          .ajax({\r\n            url: \"https:\/\/www.junyiacademy.org\/api\/v2\/user\/badges\",\r\n            method: \"GET\",\r\n            async: false,\r\n            cache: false, \/\/ disable cache to prevent error with browser history-back\r\n            xhrFields: { withCredentials: true },\r\n            headers: { \"X-KA-FKey\": token },\r\n          })\r\n          .done(function (data) {\r\n            badgeData = data;\r\n\r\n            badgeCollections = badgeData[\"data\"][\"badgeCollections\"];\r\n\r\n            const actBadget_set = badgeCollections.find((item) =>\r\n              item.typeLabel.includes(\"\u6311\u6230\")\r\n            );\r\n\r\n            if (actBadget_set) {\r\n              const jutorBadge = actBadget_set[\"badges\"].find((item) =>\r\n                item.description.includes(badgeString)\r\n              );\r\n\r\n              \/\/ check if the badge exists and is owned\r\n              if (jutorBadge && jutorBadge.isOwned) {\r\n                flag = true; \/\/ set flag: true\r\n              }\r\n            }\r\n          })\r\n          .fail(function (data) {\r\n            \/\/ Do Nothing\r\n          })\r\n          .always(function (data) {\r\n            \/\/ Do Nothing\r\n          });\r\n\r\n        return flag;\r\n      }\r\n    <\/script>\r\n  <\/body>\r\n<\/html>\r\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae A1 \u7814\u7fd2\u5b8c\u8ab2\u8b49\u660e\u7533\u8acb\u53ca\u8868\u55ae\u586b\u5beb \u5747\u4e00\u6559\u80b2\u5e73\u53f0 A1 \u7814\u7fd2 \u8a3b\u518a\/\u767b\u5165 \u767b\u5165\u5747\u4e00\u5e33\u865f\u5f8c\u65b9\u53ef [&hellip;]<\/p>\n","protected":false},"author":34,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.6.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae - \u5747\u4e00\u6559\u80b2\u5e73\u53f0<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/\" \/>\n<meta property=\"og:locale\" content=\"zh_TW\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae - \u5747\u4e00\u6559\u80b2\u5e73\u53f0\" \/>\n<meta property=\"og:description\" content=\"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae A1 \u7814\u7fd2\u5b8c\u8ab2\u8b49\u660e\u7533\u8acb\u53ca\u8868\u55ae\u586b\u5beb \u5747\u4e00\u6559\u80b2\u5e73\u53f0 A1 \u7814\u7fd2 \u8a3b\u518a\/\u767b\u5165 \u767b\u5165\u5747\u4e00\u5e33\u865f\u5f8c\u65b9\u53ef [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/\" \/>\n<meta property=\"og:site_name\" content=\"\u5747\u4e00\u6559\u80b2\u5e73\u53f0\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-18T05:45:28+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 \u5206\u9418\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/edit-dot-gaewordpress-dot-junyiacademy.appspot.com\/a1-completion-form\/\",\"url\":\"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/\",\"name\":\"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae - \u5747\u4e00\u6559\u80b2\u5e73\u53f0\",\"isPartOf\":{\"@id\":\"https:\/\/www.junyiacademy.org\/event\/#website\"},\"datePublished\":\"2024-03-08T06:32:08+00:00\",\"dateModified\":\"2024-09-18T05:45:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/#breadcrumb\"},\"inLanguage\":\"zh-TW\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/edit-dot-gaewordpress-dot-junyiacademy.appspot.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.junyiacademy.org\/event\/#website\",\"url\":\"https:\/\/www.junyiacademy.org\/event\/\",\"name\":\"\u5747\u4e00\u6559\u80b2\u5e73\u53f0\",\"description\":\"\u8b93\u6bcf\u4e00\u4f4d\u5b69\u5b50\u90fd\u6709\u6a5f\u6703\u6210\u70ba\u7d42\u8eab\u5b78\u7fd2\u8005\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.junyiacademy.org\/event\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-TW\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae - \u5747\u4e00\u6559\u80b2\u5e73\u53f0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/","og_locale":"zh_TW","og_type":"article","og_title":"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae - \u5747\u4e00\u6559\u80b2\u5e73\u53f0","og_description":"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae A1 \u7814\u7fd2\u5b8c\u8ab2\u8b49\u660e\u7533\u8acb\u53ca\u8868\u55ae\u586b\u5beb \u5747\u4e00\u6559\u80b2\u5e73\u53f0 A1 \u7814\u7fd2 \u8a3b\u518a\/\u767b\u5165 \u767b\u5165\u5747\u4e00\u5e33\u865f\u5f8c\u65b9\u53ef [&hellip;]","og_url":"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/","og_site_name":"\u5747\u4e00\u6559\u80b2\u5e73\u53f0","article_modified_time":"2024-09-18T05:45:28+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 \u5206\u9418"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/edit-dot-gaewordpress-dot-junyiacademy.appspot.com\/a1-completion-form\/","url":"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/","name":"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae - \u5747\u4e00\u6559\u80b2\u5e73\u53f0","isPartOf":{"@id":"https:\/\/www.junyiacademy.org\/event\/#website"},"datePublished":"2024-03-08T06:32:08+00:00","dateModified":"2024-09-18T05:45:28+00:00","breadcrumb":{"@id":"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/#breadcrumb"},"inLanguage":"zh-TW","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.junyiacademy.org\/event\/a1-completion-form\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/edit-dot-gaewordpress-dot-junyiacademy.appspot.com\/"},{"@type":"ListItem","position":2,"name":"A1 \u7814\u7fd2\u5b8c\u6210\u8868\u55ae"}]},{"@type":"WebSite","@id":"https:\/\/www.junyiacademy.org\/event\/#website","url":"https:\/\/www.junyiacademy.org\/event\/","name":"\u5747\u4e00\u6559\u80b2\u5e73\u53f0","description":"\u8b93\u6bcf\u4e00\u4f4d\u5b69\u5b50\u90fd\u6709\u6a5f\u6703\u6210\u70ba\u7d42\u8eab\u5b78\u7fd2\u8005","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.junyiacademy.org\/event\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-TW"}]}},"_links":{"self":[{"href":"https:\/\/www.junyiacademy.org\/event\/wp-json\/wp\/v2\/pages\/35657"}],"collection":[{"href":"https:\/\/www.junyiacademy.org\/event\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.junyiacademy.org\/event\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.junyiacademy.org\/event\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/www.junyiacademy.org\/event\/wp-json\/wp\/v2\/comments?post=35657"}],"version-history":[{"count":858,"href":"https:\/\/www.junyiacademy.org\/event\/wp-json\/wp\/v2\/pages\/35657\/revisions"}],"predecessor-version":[{"id":41278,"href":"https:\/\/www.junyiacademy.org\/event\/wp-json\/wp\/v2\/pages\/35657\/revisions\/41278"}],"wp:attachment":[{"href":"https:\/\/www.junyiacademy.org\/event\/wp-json\/wp\/v2\/media?parent=35657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}