{"id":2096,"date":"2026-05-11T12:57:49","date_gmt":"2026-05-11T05:57:49","guid":{"rendered":"https:\/\/esmodjakarta.com\/register\/?page_id=2096"},"modified":"2026-05-21T14:38:10","modified_gmt":"2026-05-21T07:38:10","slug":"form_00","status":"publish","type":"page","link":"https:\/\/esmodjakarta.com\/register\/form_00\/","title":{"rendered":"form_00"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2096\" class=\"elementor elementor-2096\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eda8e06 e-con-full e-flex e-con e-parent\" data-id=\"eda8e06\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-598ce15 elementor-button-align-start elementor-mobile-button-align-center dd-ele-form elementor-widget__width-initial elementor-widget elementor-widget-form\" data-id=\"598ce15\" 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=\"ESMOD Jakarta Leads\" aria-label=\"ESMOD Jakarta Leads\">\n\t\t\t<input type=\"hidden\" name=\"post_id\" value=\"2096\"\/>\n\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"598ce15\"\/>\n\t\t\t<input type=\"hidden\" name=\"referer_title\" value=\"\" \/>\n\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-hidden elementor-field-group elementor-column elementor-field-group-field_b7a2eb6 elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[field_b7a2eb6]\" id=\"form-field-field_b7a2eb6\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" value=\"06\/07\/2026 21:28\">\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-field_0583a32 elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-field_0583a32\" 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[field_0583a32]\" id=\"form-field-field_0583a32\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" 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-tel elementor-field-group elementor-column elementor-field-group-phone elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-phone\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tPhone Number (WhatsApp)\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t<input size=\"1\" type=\"tel\" name=\"form_fields[phone]\" id=\"form-field-phone\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" required=\"required\" pattern=\"[0-9()#&amp;+*-=.]+\" title=\"Only numbers and phone characters (#, -, *, etc) are accepted.\">\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-hidden elementor-field-group elementor-column elementor-field-group-phone_full elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[phone_full]\" id=\"form-field-phone_full\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-email elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-email\" 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[email]\" id=\"form-field-email\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" 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-field_537a2de elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-field_537a2de\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tSchool\/Company Name\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[field_537a2de]\" id=\"form-field-field_537a2de\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" 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-select elementor-field-group elementor-column elementor-field-group-field_0fea6c9 elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-field_0fea6c9\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tCurrent Grade\/Status\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field elementor-select-wrapper remove-before \">\n\t\t\t<div class=\"select-caret-down-wrapper\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-caret-down\" viewBox=\"0 0 571.4 571.4\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M571 393Q571 407 561 418L311 668Q300 679 286 679T261 668L11 418Q0 407 0 393T11 368 36 357H536Q550 357 561 368T571 393Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t\t<select name=\"form_fields[field_0fea6c9]\" id=\"form-field-field_0fea6c9\" class=\"elementor-field-textual elementor-size-sm\" required=\"required\">\n\t\t\t\t\t\t\t\t\t<option value=\"\">Select One<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"Grade 10\">Grade 10<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"Grade 11\">Grade 11<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"Grade 12\">Grade 12<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"Gap Year\">Gap Year<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"University Student\">University Student<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"Others\">Others<\/option>\n\t\t\t\t\t\t\t<\/select>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-select elementor-field-group elementor-column elementor-field-group-field_47b5ea8 elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-field_47b5ea8\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tPrograms\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field elementor-select-wrapper remove-before \">\n\t\t\t<div class=\"select-caret-down-wrapper\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-caret-down\" viewBox=\"0 0 571.4 571.4\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M571 393Q571 407 561 418L311 668Q300 679 286 679T261 668L11 418Q0 407 0 393T11 368 36 357H536Q550 357 561 368T571 393Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t\t<select name=\"form_fields[field_47b5ea8]\" id=\"form-field-field_47b5ea8\" class=\"elementor-field-textual elementor-size-sm\" required=\"required\">\n\t\t\t\t\t\t\t\t\t<option value=\"\">Select One<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"Fashion Design\">Fashion Design<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"Creative Business\">Creative Business<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"FDPM 1 Year\">FDPM 1 Year<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"Short Course\">Short Course<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"Help Me Decide!\">Help Me Decide!<\/option>\n\t\t\t\t\t\t\t<\/select>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-hidden elementor-field-group elementor-column elementor-field-group-form_00 elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[form_00]\" id=\"form-field-form_00\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" value=\"webform_00\">\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-hidden elementor-field-group elementor-column elementor-field-group-referrer elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[referrer]\" id=\"form-field-referrer\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-hidden elementor-field-group elementor-column elementor-field-group-device_brand elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[device_brand]\" id=\"form-field-device_brand\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-hidden elementor-field-group elementor-column elementor-field-group-device_model elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[device_model]\" id=\"form-field-device_model\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-hidden elementor-field-group elementor-column elementor-field-group-browser elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[browser]\" id=\"form-field-browser\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-hidden elementor-field-group elementor-column elementor-field-group-os elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[os]\" id=\"form-field-os\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-hidden elementor-field-group elementor-column elementor-field-group-ip_address elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[ip_address]\" id=\"form-field-ip_address\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-hidden elementor-field-group elementor-column elementor-field-group-ip_location elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[ip_location]\" id=\"form-field-ip_location\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-hidden elementor-field-group elementor-column elementor-field-group-language elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[language]\" id=\"form-field-language\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-hidden elementor-field-group elementor-column elementor-field-group-network_type elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"hidden\" name=\"form_fields[network_type]\" id=\"form-field-network_type\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\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-recaptcha_v3 elementor-field-group elementor-column elementor-field-group-field_b49f709 elementor-col-100 recaptcha_v3-bottomright\">\n\t\t\t\t\t<div class=\"elementor-field\" id=\"form-field-field_b49f709\"><div class=\"elementor-g-recaptcha\" data-sitekey=\"6LfwyHQsAAAAAK4qXpw1-dsmeh3zld9S3O04RJup\" data-type=\"v3\" data-action=\"Form\" data-badge=\"bottomright\" data-size=\"invisible\"><\/div><\/div>\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\">Register<\/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<div class=\"elementor-element elementor-element-7f0a94e elementor-widget elementor-widget-html\" data-id=\"7f0a94e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@25.3.0\/build\/css\/intlTelInput.css\"\/>\r\n\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@25.3.0\/build\/js\/intlTelInput.min.js\"><\/script>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n    const phoneInput = document.querySelector(\"#form-field-phone\");\r\n    const hiddenInput = document.querySelector(\"#form-field-phone_full\");\r\n\r\n    if (!phoneInput || !hiddenInput) return;\r\n\r\n    const iti = window.intlTelInput(phoneInput, {\r\n        initialCountry: \"id\",\r\n        preferredCountries: [\"id\", \"sg\", \"my\"],\r\n        separateDialCode: true,\r\n        nationalMode: false,\r\n        autoPlaceholder: \"aggressive\",\r\n        utilsScript:\r\n        \"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@25.3.0\/build\/js\/utils.js\"\r\n    });\r\n\r\n    function normalizeIndonesiaNumber(number) {\r\n\r\n        \/\/ hapus semua selain angka\r\n        number = number.replace(\/\\D\/g, \"\");\r\n\r\n        \/\/ jika diawali 0\r\n        if (number.startsWith(\"0\")) {\r\n            number = \"62\" + number.substring(1);\r\n        }\r\n\r\n        \/\/ jika diawali 8\r\n        else if (number.startsWith(\"8\")) {\r\n            number = \"62\" + number;\r\n        }\r\n\r\n        \/\/ jika diawali 620\r\n        if (number.startsWith(\"620\")) {\r\n            number = \"62\" + number.substring(3);\r\n        }\r\n\r\n        return number;\r\n    }\r\n\r\n    function updateNumber() {\r\n\r\n        let fullNumber = iti.getNumber();\r\n\r\n        \/\/ fallback kalau intlTelInput gagal detect\r\n        if (!fullNumber || fullNumber.length < 8) {\r\n            fullNumber = phoneInput.value;\r\n        }\r\n\r\n        \/\/ normalize\r\n        fullNumber = normalizeIndonesiaNumber(fullNumber);\r\n\r\n        \/\/ isi hidden field\r\n        hiddenInput.value = fullNumber;\r\n    }\r\n\r\n    phoneInput.addEventListener(\"keyup\", updateNumber);\r\n    phoneInput.addEventListener(\"change\", updateNumber);\r\n    phoneInput.addEventListener(\"blur\", updateNumber);\r\n\r\n});\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d25c5ad elementor-widget elementor-widget-html\" data-id=\"d25c5ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n    \/\/ =========================\r\n    \/\/ FIELD ELEMENTOR\r\n    \/\/ =========================\r\n\r\n    const refField =\r\n        document.querySelector('input[name=\"form_fields[referrer]\"]');\r\n\r\n    if (!refField) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ URL HALAMAN SEKARANG\r\n    \/\/ =========================\r\n\r\n    const currentUrl = window.location.href;\r\n\r\n    \/\/ =========================\r\n    \/\/ REFERRER WEBSITE \/ IFRAME\r\n    \/\/ =========================\r\n\r\n    let referrer = document.referrer || \"\";\r\n\r\n    \/\/ bersihkan parameter referrer\r\n    if (referrer) {\r\n        referrer = referrer.split('?')[0].split('#')[0];\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ UTM & ADS PARAMETER\r\n    \/\/ =========================\r\n\r\n    const params = new URLSearchParams(window.location.search);\r\n\r\n    const utm_source =\r\n        params.get(\"utm_source\") || \"\";\r\n\r\n    const utm_medium =\r\n        params.get(\"utm_medium\") || \"\";\r\n\r\n    const utm_campaign =\r\n        params.get(\"utm_campaign\") || \"\";\r\n\r\n    const gclid =\r\n        params.get(\"gclid\") || \"\";\r\n\r\n    const fbclid =\r\n        params.get(\"fbclid\") || \"\";\r\n\r\n    const ttclid =\r\n        params.get(\"ttclid\") || \"\";\r\n\r\n    \/\/ =========================\r\n    \/\/ DETEKSI SUMBER ADS\r\n    \/\/ =========================\r\n\r\n    let adsSource = \"\";\r\n\r\n    if (gclid) {\r\n        adsSource = \"Google Ads\";\r\n    }\r\n    else if (fbclid) {\r\n        adsSource = \"Meta Ads\";\r\n    }\r\n    else if (ttclid) {\r\n        adsSource = \"TikTok Ads\";\r\n    }\r\n    else if (utm_source) {\r\n        adsSource = utm_source;\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ FORMAT FINAL\r\n    \/\/ =========================\r\n\r\n    let finalValue = \"\";\r\n\r\n    \/\/ prioritas ads\r\n    if (adsSource) {\r\n\r\n        finalValue =\r\n`Ads Source: ${adsSource}\r\nCampaign: ${utm_campaign}\r\nLanding: ${currentUrl}`;\r\n\r\n    }\r\n\r\n    \/\/ kalau iframe \/ website lain\r\n    else if (referrer) {\r\n\r\n        finalValue =\r\n`Referrer: ${referrer}\r\nLanding: ${currentUrl}`;\r\n\r\n    }\r\n\r\n    \/\/ fallback direct traffic\r\n    else {\r\n\r\n        finalValue =\r\n`Direct Visit\r\nLanding: ${currentUrl}`;\r\n\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ INPUT KE FIELD\r\n    \/\/ =========================\r\n\r\n    refField.value = finalValue;\r\n\r\n});\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57ff5d7 elementor-widget elementor-widget-html\" data-id=\"57ff5d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/ua-parser-js@1.0.37\/src\/ua-parser.min.js\"><\/script>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", async function () {\r\n\r\n    const parser = new UAParser();\r\n    const result = parser.getResult();\r\n    const ua = navigator.userAgent;\r\n\r\n    \/\/ =========================\r\n    \/\/ ELEMENTOR FIELDS\r\n    \/\/ =========================\r\n\r\n    const brandField =\r\n        document.querySelector('input[name=\"form_fields[device_brand]\"]');\r\n\r\n    const modelField =\r\n        document.querySelector('input[name=\"form_fields[device_model]\"]');\r\n\r\n    const browserField =\r\n        document.querySelector('input[name=\"form_fields[browser]\"]');\r\n\r\n    const osField =\r\n        document.querySelector('input[name=\"form_fields[os]\"]');\r\n\r\n    \/\/ =========================\r\n    \/\/ DEFAULT VALUES\r\n    \/\/ =========================\r\n\r\n    let brand = result.device.vendor || \"\";\r\n    let model = result.device.model || \"\";\r\n    let os = \"\";\r\n\r\n    \/\/ =========================\r\n    \/\/ MODERN USERAGENTDATA\r\n    \/\/ =========================\r\n\r\n    if (navigator.userAgentData) {\r\n\r\n        try {\r\n\r\n            const uaData =\r\n                await navigator.userAgentData.getHighEntropyValues([\r\n                    \"model\",\r\n                    \"platform\",\r\n                    \"platformVersion\"\r\n                ]);\r\n\r\n            \/\/ MODEL\r\n            if (uaData.model) {\r\n                model = uaData.model;\r\n            }\r\n\r\n            \/\/ BRAND\r\n            if (!brand) {\r\n\r\n                if (\/moto\/i.test(uaData.model)) {\r\n                    brand = \"Motorola\";\r\n                }\r\n                else if (\/sm-|samsung\/i.test(uaData.model)) {\r\n                    brand = \"Samsung\";\r\n                }\r\n                else if (\/redmi|mi|xiaomi\/i.test(uaData.model)) {\r\n                    brand = \"Xiaomi\";\r\n                }\r\n                else if (\/oppo|cph\/i.test(uaData.model)) {\r\n                    brand = \"OPPO\";\r\n                }\r\n                else if (\/vivo\/i.test(uaData.model)) {\r\n                    brand = \"Vivo\";\r\n                }\r\n                else if (\/rmx|realme\/i.test(uaData.model)) {\r\n                    brand = \"Realme\";\r\n                }\r\n\r\n            }\r\n\r\n            \/\/ OS (FIX ANDROID VERSION)\r\n            if (uaData.platform === \"Android\") {\r\n\r\n                os = \"Android \" + uaData.platformVersion;\r\n\r\n            }\r\n            else if (uaData.platform === \"Windows\") {\r\n\r\n                os = \"Windows\";\r\n\r\n            }\r\n            else if (uaData.platform === \"macOS\") {\r\n\r\n                os = \"macOS\";\r\n\r\n            }\r\n            else if (uaData.platform === \"iOS\") {\r\n\r\n                os = \"iOS\";\r\n\r\n            }\r\n\r\n        } catch(e) {}\r\n\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ FALLBACK BRAND DETECTION\r\n    \/\/ =========================\r\n\r\n    if (!brand) {\r\n\r\n        if (\/motorola|moto\/i.test(ua)) {\r\n            brand = \"Motorola\";\r\n        }\r\n        else if (\/samsung|sm-\/i.test(ua)) {\r\n            brand = \"Samsung\";\r\n        }\r\n        else if (\/xiaomi|redmi|mi \/i.test(ua)) {\r\n            brand = \"Xiaomi\";\r\n        }\r\n        else if (\/oppo|cph\/i.test(ua)) {\r\n            brand = \"OPPO\";\r\n        }\r\n        else if (\/vivo\/i.test(ua)) {\r\n            brand = \"Vivo\";\r\n        }\r\n        else if (\/realme|rmx\/i.test(ua)) {\r\n            brand = \"Realme\";\r\n        }\r\n        else if (\/iphone|ipad|mac\/i.test(ua)) {\r\n            brand = \"Apple\";\r\n        }\r\n        else if (\/android\/i.test(ua)) {\r\n            brand = \"Android Device\";\r\n        }\r\n        else if (\/windows\/i.test(ua)) {\r\n            brand = \"Windows PC\";\r\n        }\r\n        else {\r\n            brand = \"Unknown\";\r\n        }\r\n\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ MODEL FALLBACK\r\n    \/\/ =========================\r\n\r\n    if (!model || model === \"K\") {\r\n\r\n        const motoMatch =\r\n            ua.match(\/moto[\\s\\w-]+\/i);\r\n\r\n        if (motoMatch) {\r\n\r\n            model = motoMatch[0];\r\n\r\n        }\r\n        else if (\/android\/i.test(ua)) {\r\n\r\n            model = \"Android Device\";\r\n\r\n        }\r\n        else {\r\n\r\n            model = \"Desktop\";\r\n\r\n        }\r\n\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ BROWSER\r\n    \/\/ =========================\r\n\r\n    let browser =\r\n        (result.browser.name || \"\") +\r\n        \" \" +\r\n        (result.browser.version || \"\");\r\n\r\n    \/\/ =========================\r\n    \/\/ OS FALLBACK\r\n    \/\/ =========================\r\n\r\n    if (!os) {\r\n\r\n        if (\/Android\/i.test(ua)) {\r\n\r\n            const match =\r\n                ua.match(\/Android\\s([\\d\\.]+)\/i);\r\n\r\n            os = match\r\n                ? \"Android \" + match[1]\r\n                : \"Android\";\r\n\r\n        }\r\n        else if (\/iPhone|iPad\/i.test(ua)) {\r\n\r\n            os = \"iOS\";\r\n\r\n        }\r\n        else if (\/Windows\/i.test(ua)) {\r\n\r\n            os = \"Windows\";\r\n\r\n        }\r\n        else if (\/Mac\/i.test(ua)) {\r\n\r\n            os = \"macOS\";\r\n\r\n        }\r\n        else {\r\n\r\n            os = \"Unknown OS\";\r\n\r\n        }\r\n\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ INPUT TO FORM\r\n    \/\/ =========================\r\n\r\n    if (brandField) {\r\n        brandField.value = brand;\r\n    }\r\n\r\n    if (modelField) {\r\n        modelField.value = model;\r\n    }\r\n\r\n    if (browserField) {\r\n        browserField.value = browser;\r\n    }\r\n\r\n    if (osField) {\r\n        osField.value = os;\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-a147c85 elementor-widget elementor-widget-html\" data-id=\"a147c85\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", async function () {\r\n\r\n    const locationField =\r\n        document.querySelector('input[name=\"form_fields[ip_location]\"]');\r\n\r\n    const ipField =\r\n        document.querySelector('input[name=\"form_fields[ip_address]\"]');\r\n\r\n    \/\/ =========================\r\n    \/\/ SET VALUE\r\n    \/\/ =========================\r\n    function setFields(location, ip) {\r\n\r\n        if (locationField) {\r\n            locationField.value = location || \"Unknown\";\r\n        }\r\n\r\n        if (ipField) {\r\n            ipField.value = ip || \"Unknown\";\r\n        }\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ GET IP DATA\r\n    \/\/ =========================\r\n    async function getIPData() {\r\n\r\n        try {\r\n\r\n            const res =\r\n                await fetch(\"https:\/\/ipinfo.io\/json\");\r\n\r\n            const data =\r\n                await res.json();\r\n\r\n            return {\r\n                ip: data.ip || \"Unknown\",\r\n                location:\r\n                    (data.city || \"\") +\r\n                    \", \" +\r\n                    (data.region || \"\") +\r\n                    \", \" +\r\n                    (data.country || \"\")\r\n            };\r\n\r\n        } catch (e) {\r\n\r\n            return {\r\n                ip: \"Unknown\",\r\n                location: \"Unknown\"\r\n            };\r\n        }\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ GET GPS LOCATION\r\n    \/\/ =========================\r\n    function getGPSLocation() {\r\n\r\n        return new Promise((resolve, reject) => {\r\n\r\n            \/\/ WAJIB HTTPS\r\n            if (\r\n                location.protocol !== \"https:\" &&\r\n                location.hostname !== \"localhost\"\r\n            ) {\r\n                reject(\"Website harus HTTPS\");\r\n                return;\r\n            }\r\n\r\n            if (!navigator.geolocation) {\r\n                reject(\"Browser tidak support GPS\");\r\n                return;\r\n            }\r\n\r\n            navigator.geolocation.getCurrentPosition(\r\n\r\n                async function(position) {\r\n\r\n                    try {\r\n\r\n                        const lat =\r\n                            position.coords.latitude;\r\n\r\n                        const lon =\r\n                            position.coords.longitude;\r\n\r\n                        \/\/ Reverse geocode\r\n                        const res =\r\n                            await fetch(\r\n                                `https:\/\/nominatim.openstreetmap.org\/reverse?format=jsonv2&lat=${lat}&lon=${lon}`\r\n                            );\r\n\r\n                        const data =\r\n                            await res.json();\r\n\r\n                        const address =\r\n                            data.address || {};\r\n\r\n                        const city =\r\n                            address.city ||\r\n                            address.town ||\r\n                            address.village ||\r\n                            address.county ||\r\n                            address.suburb ||\r\n                            \"Unknown\";\r\n\r\n                        const state =\r\n                            address.state || \"\";\r\n\r\n                        const country =\r\n                            address.country || \"\";\r\n\r\n                        resolve(\r\n                            city +\r\n                            \", \" +\r\n                            state +\r\n                            \", \" +\r\n                            country\r\n                        );\r\n\r\n                    } catch (err) {\r\n\r\n                        reject(err);\r\n                    }\r\n\r\n                },\r\n\r\n                function(error) {\r\n\r\n                    reject(error);\r\n\r\n                },\r\n\r\n                {\r\n                    enableHighAccuracy: true,\r\n                    timeout: 10000,\r\n                    maximumAge: 0\r\n                }\r\n            );\r\n\r\n        });\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ MAIN LOGIC\r\n    \/\/ =========================\r\n    try {\r\n\r\n        \/\/ Ambil IP dulu\r\n        const ipData =\r\n            await getIPData();\r\n\r\n        \/\/ Isi IP langsung\r\n        setFields(\"Detecting GPS...\", ipData.ip);\r\n\r\n        try {\r\n\r\n            \/\/ Coba GPS\r\n            const gpsLocation =\r\n                await getGPSLocation();\r\n\r\n            \/\/ Jika GPS sukses\r\n            setFields(gpsLocation, ipData.ip);\r\n\r\n        } catch (gpsError) {\r\n\r\n            console.log(\"GPS gagal:\", gpsError);\r\n\r\n            \/\/ Fallback ke IP\r\n            setFields(ipData.location, ipData.ip);\r\n        }\r\n\r\n    } catch (error) {\r\n\r\n        console.log(error);\r\n\r\n        setFields(\"Unknown\", \"Unknown\");\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-bd4e827 elementor-widget elementor-widget-html\" data-id=\"bd4e827\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n    const languageField =\r\n        document.querySelector('input[name=\"form_fields[language]\"]');\r\n\r\n    const langCode =\r\n        navigator.language || \"Unknown\";\r\n\r\n    const languages = {\r\n        \"id-ID\": \"Indonesian\",\r\n        \"en-US\": \"English (US)\",\r\n        \"en-GB\": \"English (UK)\",\r\n        \"ja-JP\": \"Japanese\",\r\n        \"fr-FR\": \"French\",\r\n        \"de-DE\": \"German\",\r\n        \"zh-CN\": \"Chinese\",\r\n        \"ko-KR\": \"Korean\"\r\n    };\r\n\r\n    const languageName =\r\n        languages[langCode] || langCode;\r\n\r\n    if (languageField) {\r\n        languageField.value = languageName;\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-cbfc188 elementor-widget elementor-widget-html\" data-id=\"cbfc188\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n    const networkField =\r\n        document.querySelector('input[name=\"form_fields[network_type]\"]');\r\n\r\n    let networkType = \"Unknown\";\r\n\r\n    \/\/ Browser modern\r\n    const connection =\r\n        navigator.connection ||\r\n        navigator.mozConnection ||\r\n        navigator.webkitConnection;\r\n\r\n    if (connection) {\r\n\r\n        \/\/ Effective type\r\n        if (connection.effectiveType) {\r\n            networkType = connection.effectiveType;\r\n        }\r\n\r\n        \/\/ Jika wifi terdeteksi\r\n        if (connection.type) {\r\n            networkType = connection.type;\r\n        }\r\n    }\r\n\r\n    \/\/ Isi ke Elementor\r\n    if (networkField) {\r\n        networkField.value = networkType;\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-282c510 elementor-widget elementor-widget-html\" data-id=\"282c510\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"click\", function(e) {\r\n\r\n    \/\/ =========================\r\n    \/\/ SUBMIT BUTTON\r\n    \/\/ =========================\r\n    const submitBtn =\r\n        e.target.closest('.elementor-button[type=\"submit\"]');\r\n\r\n    if (!submitBtn) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ FORM\r\n    \/\/ =========================\r\n    const form =\r\n        submitBtn.closest(\".elementor-form\");\r\n\r\n    if (!form) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ FORM NAME GLOBAL\r\n    \/\/ =========================\r\n    const FORM_NAME =\r\n        \"ESMOD Jakarta Leads\";\r\n\r\n    \/\/ =========================\r\n    \/\/ INPUTS\r\n    \/\/ =========================\r\n    const phoneInput =\r\n        form.querySelector(\"#form-field-phone\");\r\n\r\n    const hiddenPhone =\r\n        form.querySelector(\"#form-field-phone_full\");\r\n\r\n    const emailInput =\r\n        form.querySelector(\"#form-field-email\");\r\n\r\n    \/\/ =========================\r\n    \/\/ GET VALUE\r\n    \/\/ =========================\r\n    let phone =\r\n        hiddenPhone?.value ||\r\n        phoneInput?.value ||\r\n        \"\";\r\n\r\n    let email =\r\n        emailInput?.value || \"\";\r\n\r\n    \/\/ =========================\r\n    \/\/ NORMALIZE PHONE\r\n    \/\/ =========================\r\n    phone =\r\n        phone.replace(\/\\D\/g, \"\");\r\n\r\n    \/\/ 0812 \u2192 62812\r\n    if (phone.startsWith(\"0\")) {\r\n        phone =\r\n            \"62\" + phone.substring(1);\r\n    }\r\n\r\n    \/\/ 812 \u2192 62812\r\n    else if (phone.startsWith(\"8\")) {\r\n        phone =\r\n            \"62\" + phone;\r\n    }\r\n\r\n    \/\/ normalize email\r\n    email =\r\n        email.trim().toLowerCase();\r\n\r\n    \/\/ =========================\r\n    \/\/ VALIDASI\r\n    \/\/ =========================\r\n    if (!phone || !email) {\r\n        return;\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ STORAGE KEY\r\n    \/\/ =========================\r\n    const phoneKey =\r\n        FORM_NAME +\r\n        \"_phone_\" +\r\n        phone;\r\n\r\n    const emailKey =\r\n        FORM_NAME +\r\n        \"_email_\" +\r\n        email;\r\n\r\n    \/\/ =========================\r\n    \/\/ CHECK DUPLICATE\r\n    \/\/ =========================\r\n    const phoneExists =\r\n        localStorage.getItem(phoneKey);\r\n\r\n    const emailExists =\r\n        localStorage.getItem(emailKey);\r\n\r\n    \/\/ =========================\r\n    \/\/ BLOCK\r\n    \/\/ =========================\r\n    if (phoneExists || emailExists) {\r\n\r\n        e.preventDefault();\r\n        e.stopPropagation();\r\n        e.stopImmediatePropagation();\r\n\r\n        if (phoneExists && emailExists) {\r\n\r\n            alert(\r\n                \"Phone number and email are already registered.\"\r\n            );\r\n\r\n        }\r\n\r\n        else if (phoneExists) {\r\n\r\n            alert(\r\n                \"Phone number is already registered.\"\r\n            );\r\n\r\n        }\r\n\r\n        else if (emailExists) {\r\n\r\n            alert(\r\n                \"Email is already registered.\"\r\n            );\r\n\r\n        }\r\n\r\n        return false;\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ SAVE\r\n    \/\/ =========================\r\n    localStorage.setItem(\r\n        phoneKey,\r\n        \"registered\"\r\n    );\r\n\r\n    localStorage.setItem(\r\n        emailKey,\r\n        \"registered\"\r\n    );\r\n\r\n}, true);\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-2096","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/esmodjakarta.com\/register\/wp-json\/wp\/v2\/pages\/2096","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esmodjakarta.com\/register\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/esmodjakarta.com\/register\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/esmodjakarta.com\/register\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/esmodjakarta.com\/register\/wp-json\/wp\/v2\/comments?post=2096"}],"version-history":[{"count":167,"href":"https:\/\/esmodjakarta.com\/register\/wp-json\/wp\/v2\/pages\/2096\/revisions"}],"predecessor-version":[{"id":2393,"href":"https:\/\/esmodjakarta.com\/register\/wp-json\/wp\/v2\/pages\/2096\/revisions\/2393"}],"wp:attachment":[{"href":"https:\/\/esmodjakarta.com\/register\/wp-json\/wp\/v2\/media?parent=2096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}