{"id":37352,"date":"2026-02-10T15:31:01","date_gmt":"2026-02-10T15:31:01","guid":{"rendered":"https:\/\/ukuni.org\/?page_id=37352"},"modified":"2026-02-10T15:32:57","modified_gmt":"2026-02-10T15:32:57","slug":"complaints","status":"publish","type":"page","link":"https:\/\/ukuni.org\/ar\/complaints\/","title":{"rendered":"\u062a\u0642\u062f\u064a\u0645 \u0627\u0644\u0634\u0643\u0627\u0648\u064a"},"content":{"rendered":"<section \n  class=\"inner-banner bg-[url(&#039;https:\/\/ukuni.org\/wp-content\/themes\/ukuni\/assets\/images\/inner-banner.png&#039;)] bg-cover bg-center w-[95%] md:w-[98%] m-auto rounded-3xl\" \n    >\n  <div class=\"container mx-auto px-5 md:px-10 h-[350px] flex flex-col justify-center items-center text-center\">\n    <h1 class=\"font-poppins font-semibold text-[36px] leading-[40px] sm:text-[40px] sm:leading-[48px] md:text-[48px] md:leading-[56px] lg:text-[54px] lg:leading-[64px] tracking-[0%] capitalize text-[#072440]\">\n      \u062a\u0642\u062f\u064a\u0645 \u0627\u0644\u0634\u0643\u0627\u0648\u064a    <\/h1>\n    <!-- Breadcrumb -->\n    <nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">\u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629<\/span><\/p><\/nav>  <\/div>\n<\/section>\n\n<style>\n\/* === Base Container === *\/\n.fya-container {\n    max-width: 900px;\n    margin: 40px auto;\n    padding: 40px 30px;\n    background: #fff;\n    border-radius: 16px;\n    box-shadow: 0 4px 6px rgba(0,0,0,.05);\n    font-family: 'Rubik', sans-serif;\n}\n\n.fya-form {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n}\n\n.fya-row {\n    display: flex;\n    width: 100%;\n    gap: 20px;\n    flex-wrap: wrap;\n}\n\n.fya-group {\n    width: calc(50% - 10px);\n    margin-bottom: 20px;\n}\n\n.fya-group.full {\n    width: 100%;\n}\n\n.fya-group label {\n    display: block;\n    margin-bottom: 10px;\n    font-weight: 500;\n    font-size: 16px;\n    color: #121212;\n}\n\n\/* === Input Styling === *\/\n.fya-input,\n.fya-textarea,\n.fya-group input,\n.fya-group select {\n    height: 72px;\n    width: 100%;\n    border-radius: 15px;\n    border: 1px solid rgba(0,0,0,.1);\n    background: #f8faff;\n    padding: 25px 32px;\n    font-size: 18px;\n    font-weight: 300;\n    font-family: 'Rubik', sans-serif;\n    color: #121212;\n    transition: all 0.3s ease;\n    box-sizing: border-box;\n}\n\n.fya-textarea {\n    height: 160px;\n    min-height: 160px;\n    resize: vertical;\n    padding: 20px 32px;\n    line-height: 1.6;\n}\n\n.fya-input::placeholder,\n.fya-textarea::placeholder {\n    color: #9c9ea6;\n}\n\n.fya-input:focus,\n.fya-textarea:focus {\n    outline: none;\n    border-color: #CD2122;\n    background: #fff;\n}\n\n\/* === Select2 Styling === *\/\n.fya-group .select2-container {\n    width: 100% !important;\n}\n\n.fya-container .select2-container {\n    width: 100% !important;\n}\n\n.fya-container .select2-container--default .select2-selection--single {\n    background-color: #f8faff !important;\n    border: 1px solid rgba(0,0,0,.1) !important;\n    border-radius: 15px !important;\n    height: 72px !important;\n    display: flex !important;\n    align-items: center !important;\n    padding: 20px 0 !important;\n    transition: all 0.3s ease;\n}\n\n.fya-container .select2-container--default.select2-container--focus .select2-selection--single,\n.fya-container .select2-container--default.select2-container--open .select2-selection--single {\n    border-color: #CD2122 !important;\n    background-color: #fff !important;\n}\n\n.fya-container .select2-container--default .select2-selection--single .select2-selection__rendered {\n    color: #9c9ea6 !important;\n    font-size: 18px !important;\n    font-weight: 300 !important;\n    padding: 0 0 0 15px !important;\n    display: flex !important;\n    align-items: center !important;\n    font-family: 'Rubik', sans-serif !important;\n}\n\n.fya-container .select2-container--default .select2-selection--single .select2-selection__arrow {\n    height: 72px !important;\n    right: 20px !important;\n}\n\n.select2-dropdown {\n    border: 1px solid rgba(0,0,0,.1);\n    border-radius: 15px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.1);\n}\n\n.select2-results__option {\n    padding: 10px;\n    font-size: 16px;\n    font-family: 'Rubik', sans-serif;\n}\n\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\n    background-color: #CD2122 !important;\n    color: white;\n}\n\n.country-flag {\n    width: 20px;\n    height: 15px;\n    margin-right: 8px;\n    border-radius: 2px;\n    vertical-align: middle;\n}\n\n\/* === Phone Wrapper === *\/\n.fya-phone-wrapper {\n    display: flex !important;\n    gap: 12px;\n    align-items: stretch;\n    width: 100%;\n}\n\n.fya-phone-wrapper .select2-container {\n    width: 200px !important;\n    flex-shrink: 0;\n}\n\n.fya-phone-wrapper .fya-input {\n    flex: 1;\n    min-width: 0;\n}\n\n\/* === Button Styling === *\/\n.fya-submit {\n    width: 100%;\n    height: 60px;\n    border: 2px solid #CD2122;\n    background: transparent;\n    color: #CD2122;\n    border-radius: 10px;\n    font-size: 16px;\n    font-weight: 400;\n    font-family: 'Rubik', sans-serif;\n    cursor: pointer;\n    transition: all 0.3s ease;\n    margin-top: 20px;\n}\n\n.fya-submit:hover:not(:disabled) {\n    background: #CD2122;\n    color: #fff;\n    transform: translateY(-2px);\n    box-shadow: 0 6px 20px rgba(205,33,34,.3);\n}\n\n.fya-submit:disabled {\n    opacity: 0.6;\n    cursor: not-allowed;\n}\n\n\/* === Spinner === *\/\n.fya-spinner {\n    display: inline-block;\n    width: 16px;\n    height: 16px;\n    border: 2px solid rgba(255,255,255,0.3);\n    border-radius: 50%;\n    border-top-color: #fff;\n    animation: fya-spin 0.8s linear infinite;\n    margin-right: 10px;\n}\n\n@keyframes fya-spin {\n    to { transform: rotate(360deg); }\n}\n\n\/* === Selection Highlight === *\/\n.fya-input::selection,\n.fya-textarea::selection,\n.select2-selection__rendered::selection {\n    background-color: #3390FF !important;\n    color: #ffffff !important;\n}\n\n.fya-input::-moz-selection,\n.fya-textarea::-moz-selection,\n.select2-selection__rendered::-moz-selection {\n    background-color: #3390FF !important;\n    color: #ffffff !important;\n}\n\n\/* === Responsive === *\/\n@media (max-width: 768px) {\n    .fya-container {\n        padding: 30px 20px;\n        margin: 20px auto;\n    }\n    \n    .fya-group,\n    .fya-group.full {\n        width: 100%;\n    }\n    \n    .fya-phone-wrapper {\n        flex-direction: column;\n    }\n    \n    .fya-phone-wrapper .select2-container {\n        width: 100% !important;\n    }\n}\n<\/style>\n\n<div class=\"fya-container\">\n<form id=\"fya-form-1\" class=\"fya-form notranslate\" novalidate action=\"\">\n\n<div class=\"fya-row\">\n  <div class=\"fya-group\">\n    <label>First Name *<\/label>\n    <input type=\"text\" class=\"fya-input first_name\" required placeholder=\"First Name\">\n  <\/div>\n  <div class=\"fya-group\">\n    <label>Last Name *<\/label>\n    <input type=\"text\" class=\"fya-input last_name\" required placeholder=\"Last Name\">\n  <\/div>\n<\/div>\n\n<div class=\"fya-row\">\n  <div class=\"fya-group full\">\n    <label>Email *<\/label>\n    <input type=\"email\" class=\"fya-input email\" required placeholder=\"Email Address\">\n  <\/div>\n<\/div>\n\n<div class=\"fya-row\">\n  <div class=\"fya-group full\">\n    <label>Phone Number *<\/label>\n    <div class=\"fya-phone-wrapper\">\n      <select class=\"phone-country\"><\/select>\n      <input type=\"tel\" class=\"fya-input phone-number\" required placeholder=\"Enter phone number\">\n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"fya-row\">\n  <div class=\"fya-group full\">\n    <label>Previous UKuni Point of Contact *<\/label>\n    <input type=\"text\" class=\"fya-input point_of_contact\" required placeholder=\"Enter previous UKuni point of contact\">\n  <\/div>\n<\/div>\n\n<div class=\"fya-row\">\n  <div class=\"fya-group full\">\n    <label>Description of Complaint *<\/label>\n    <textarea class=\"fya-textarea complaint_description\" required placeholder=\"Tell us more about your complaint...\"><\/textarea>\n  <\/div>\n<\/div>\n\n<button type=\"submit\" class=\"fya-submit\">Submit Complaint<\/button>\n<input type=\"hidden\" name=\"trp-form-language\" value=\"ar\"\/><\/form>\n<\/div>\n\n<script>\n(function() {\n  'use strict';\n  \n  var formInstance = 1;\n  var formSelector = '#fya-form-' + formInstance;\n  \n  function waitForLibraries(callback) {\n    var attempts = 0;\n    var maxAttempts = 150;\n    \n    var checkInterval = setInterval(function() {\n      attempts++;\n      \n      if (typeof jQuery === 'undefined') {\n        if (attempts >= maxAttempts) {\n          clearInterval(checkInterval);\n          console.error('\u274c jQuery not loaded');\n        }\n        return;\n      }\n      \n      var $ = jQuery;\n      \n      var select2Ready = typeof $.fn.select2 !== 'undefined';\n      var swalReady = typeof Swal !== 'undefined';\n      var phoneReady = typeof libphonenumber !== 'undefined';\n      \n      if (select2Ready && swalReady && phoneReady) {\n        clearInterval(checkInterval);\n        console.log('\u2705 All libraries loaded (FYA Complaints Form)');\n        \n        setTimeout(function() {\n          callback($);\n        }, 300);\n      } else if (attempts >= maxAttempts) {\n        clearInterval(checkInterval);\n        console.error('\u274c Failed to load libraries');\n      }\n    }, 100);\n  }\n  \n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function() {\n      waitForLibraries(initForm);\n    });\n  } else {\n    waitForLibraries(initForm);\n  }\n  \n  function initForm($) {\n    var $form = $(formSelector);\n    \n    if ($form.data('initialized')) {\n      console.log('\u26a0\ufe0f Form already initialized');\n      return;\n    }\n    $form.data('initialized', true);\n    \n    console.log('\ud83d\ude80 Initializing FYA Complaints form:', formInstance);\n\n    \/\/ ========== Custom SweetAlert2 Style ==========\n    var customSwalStyle = document.createElement('style');\n    customSwalStyle.innerHTML = `\n      .swal2-popup {\n        border-radius: 20px !important;\n        padding: 30px !important;\n        background: #ffffff !important;\n        box-shadow: 0 10px 40px rgba(7, 36, 64, 0.15) !important;\n      }\n\n      .swal2-title {\n        color: #072440 !important;\n        font-size: 28px !important;\n        font-weight: 600 !important;\n        font-family: 'Rubik', sans-serif !important;\n        margin-bottom: 15px !important;\n      }\n\n      .swal2-html-container {\n        color: #072440 !important;\n        font-size: 16px !important;\n        font-family: 'Rubik', sans-serif !important;\n        line-height: 1.6 !important;\n      }\n\n      .swal2-icon.swal2-success {\n        border-color: #072440 !important;\n      }\n\n      .swal2-icon.swal2-success .swal2-success-ring {\n        border-color: rgba(7, 36, 64, 0.3) !important;\n      }\n\n      .swal2-icon.swal2-success [class^='swal2-success-line'] {\n        background-color: #072440 !important;\n      }\n\n      .swal2-icon.swal2-error {\n        border-color: #CD2122 !important;\n      }\n\n      .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n        background-color: #CD2122 !important;\n      }\n\n      .swal2-icon.swal2-warning {\n        border-color: #072440 !important;\n        color: #072440 !important;\n      }\n\n      .swal2-icon.swal2-info {\n        border-color: #072440 !important;\n        color: #072440 !important;\n      }\n\n      .swal2-confirm {\n        background-color: #072440 !important;\n        border: none !important;\n        border-radius: 10px !important;\n        padding: 12px 35px !important;\n        font-size: 16px !important;\n        font-weight: 500 !important;\n        font-family: 'Rubik', sans-serif !important;\n        box-shadow: 0 4px 15px rgba(7, 36, 64, 0.3) !important;\n        transition: all 0.3s ease !important;\n      }\n\n      .swal2-confirm:hover {\n        background-color: #0a2f52 !important;\n        transform: translateY(-2px) !important;\n        box-shadow: 0 6px 20px rgba(7, 36, 64, 0.4) !important;\n      }\n    `;\n    document.head.appendChild(customSwalStyle);\n    \n    var countries = [\n      { code: 'AF', name: 'Afghanistan', dialCode: '+93', example: '701234567' },\n      { code: 'AL', name: 'Albania', dialCode: '+355', example: '672123456' },\n      { code: 'DZ', name: 'Algeria', dialCode: '+213', example: '551234567' },\n      { code: 'AR', name: 'Argentina', dialCode: '+54', example: '91123456789' },\n      { code: 'AU', name: 'Australia', dialCode: '+61', example: '412345678' },\n      { code: 'AT', name: 'Austria', dialCode: '+43', example: '664123456' },\n      { code: 'AZ', name: 'Azerbaijan', dialCode: '+994', example: '401234567' },\n      { code: 'BH', name: 'Bahrain', dialCode: '+973', example: '36001234' },\n      { code: 'BD', name: 'Bangladesh', dialCode: '+880', example: '1812345678' },\n      { code: 'BE', name: 'Belgium', dialCode: '+32', example: '470123456' },\n      { code: 'BR', name: 'Brazil', dialCode: '+55', example: '11961234567' },\n      { code: 'CA', name: 'Canada', dialCode: '+1', example: '5062345678' },\n      { code: 'CL', name: 'Chile', dialCode: '+56', example: '961234567' },\n      { code: 'CN', name: 'China', dialCode: '+86', example: '13123456789' },\n      { code: 'CO', name: 'Colombia', dialCode: '+57', example: '3211234567' },\n      { code: 'CZ', name: 'Czech Republic', dialCode: '+420', example: '601123456' },\n      { code: 'DK', name: 'Denmark', dialCode: '+45', example: '32123456' },\n      { code: 'EG', name: 'Egypt', dialCode: '+20', example: '1001234567' },\n      { code: 'FI', name: 'Finland', dialCode: '+358', example: '412345678' },\n      { code: 'FR', name: 'France', dialCode: '+33', example: '612345678' },\n      { code: 'DE', name: 'Germany', dialCode: '+49', example: '15123456789' },\n      { code: 'GR', name: 'Greece', dialCode: '+30', example: '6912345678' },\n      { code: 'HK', name: 'Hong Kong', dialCode: '+852', example: '51234567' },\n      { code: 'HU', name: 'Hungary', dialCode: '+36', example: '201234567' },\n      { code: 'IS', name: 'Iceland', dialCode: '+354', example: '6111234' },\n      { code: 'IN', name: 'India', dialCode: '+91', example: '8123456789' },\n      { code: 'ID', name: 'Indonesia', dialCode: '+62', example: '812345678' },\n      { code: 'IQ', name: 'Iraq', dialCode: '+964', example: '7912345678' },\n      { code: 'IE', name: 'Ireland', dialCode: '+353', example: '850123456' },\n      { code: 'IT', name: 'Italy', dialCode: '+39', example: '3123456789' },\n      { code: 'JP', name: 'Japan', dialCode: '+81', example: '9012345678' },\n      { code: 'JO', name: 'Jordan', dialCode: '+962', example: '790123456' },\n      { code: 'KR', name: 'Korea, Republic of', dialCode: '+82', example: '1012345678' },\n      { code: 'KW', name: 'Kuwait', dialCode: '+965', example: '50012345' },\n      { code: 'LB', name: 'Lebanon', dialCode: '+961', example: '71123456' },\n      { code: 'MY', name: 'Malaysia', dialCode: '+60', example: '123456789' },\n      { code: 'MX', name: 'Mexico', dialCode: '+52', example: '12221234567' },\n      { code: 'MA', name: 'Morocco', dialCode: '+212', example: '650123456' },\n      { code: 'NL', name: 'Netherlands', dialCode: '+31', example: '612345678' },\n      { code: 'NZ', name: 'New Zealand', dialCode: '+64', example: '211234567' },\n      { code: 'NO', name: 'Norway', dialCode: '+47', example: '40612345' },\n      { code: 'OM', name: 'Oman', dialCode: '+968', example: '92123456' },\n      { code: 'PK', name: 'Pakistan', dialCode: '+92', example: '3012345678' },\n      { code: 'PS', name: 'Palestine', dialCode: '+970', example: '599123456' },\n      { code: 'PH', name: 'Philippines', dialCode: '+63', example: '9051234567' },\n      { code: 'PL', name: 'Poland', dialCode: '+48', example: '512345678' },\n      { code: 'PT', name: 'Portugal', dialCode: '+351', example: '912345678' },\n      { code: 'QA', name: 'Qatar', dialCode: '+974', example: '33123456' },\n      { code: 'RO', name: 'Romania', dialCode: '+40', example: '712034567' },\n      { code: 'RU', name: 'Russian Federation', dialCode: '+7', example: '9123456789' },\n      { code: 'SA', name: 'Saudi Arabia', dialCode: '+966', example: '501234567' },\n      { code: 'SG', name: 'Singapore', dialCode: '+65', example: '81234567' },\n      { code: 'ZA', name: 'South Africa', dialCode: '+27', example: '711234567' },\n      { code: 'ES', name: 'Spain', dialCode: '+34', example: '612345678' },\n      { code: 'LK', name: 'Sri Lanka', dialCode: '+94', example: '712345678' },\n      { code: 'SD', name: 'Sudan', dialCode: '+249', example: '912345678' },\n      { code: 'SE', name: 'Sweden', dialCode: '+46', example: '701234567' },\n      { code: 'CH', name: 'Switzerland', dialCode: '+41', example: '781234567' },\n      { code: 'SY', name: 'Syrian Arab Republic', dialCode: '+963', example: '944567890' },\n      { code: 'TH', name: 'Thailand', dialCode: '+66', example: '812345678' },\n      { code: 'TN', name: 'Tunisia', dialCode: '+216', example: '20123456' },\n      { code: 'TR', name: 'Turkey', dialCode: '+90', example: '5321234567' },\n      { code: 'UA', name: 'Ukraine', dialCode: '+380', example: '501234567' },\n      { code: 'AE', name: 'United Arab Emirates', dialCode: '+971', example: '501234567' },\n      { code: 'GB', name: 'United Kingdom', dialCode: '+44', example: '7400123456' },\n      { code: 'US', name: 'United States', dialCode: '+1', example: '2021234567' },\n      { code: 'VN', name: 'Viet Nam', dialCode: '+84', example: '912345678' },\n      { code: 'YE', name: 'Yemen', dialCode: '+967', example: '712345678' },\n      { code: 'LY', name: 'Libya', dialCode: '+218', example: '912345678' }\n    ];\n\n    \/\/ ========== IP Country Detection with 3 Fallbacks ==========\n    function detectCountryFromIP(callback) {\n      console.log('\ud83d\udd0d Starting IP detection with 3 backup APIs...');\n      \n      \/\/ Attempt 1: ipapi.co\n      fetch('https:\/\/ipapi.co\/json\/')\n        .then(function(response) { \n          console.log('\ud83d\udce1 [API 1] ipapi.co Status:', response.status);\n          return response.json(); \n        })\n        .then(function(data) {\n          console.log('\ud83d\udccd [API 1] ipapi.co Response:', data);\n          \n          if (data.country_code || data.country) {\n            var detectedCode = (data.country_code || data.country).toUpperCase();\n            console.log('\u2705 [API 1] Success! Country detected:', detectedCode);\n            callback(detectedCode);\n          } else {\n            console.warn('\u26a0\ufe0f [API 1] No country code returned, trying backup API...');\n            tryBackupAPI();\n          }\n        })\n        .catch(function(error) {\n          console.error('\u274c [API 1] ipapi.co failed:', error);\n          tryBackupAPI();\n        });\n      \n      \/\/ Attempt 2: ip-api.com\n      function tryBackupAPI() {\n        console.log('\ud83d\udd04 [API 2] Trying ip-api.com...');\n        \n        fetch('http:\/\/ip-api.com\/json\/')\n          .then(function(response) { \n            console.log('\ud83d\udce1 [API 2] ip-api.com Status:', response.status);\n            return response.json(); \n          })\n          .then(function(data) {\n            console.log('\ud83d\udccd [API 2] ip-api.com Response:', data);\n            \n            if (data.countryCode) {\n              var detectedCode = data.countryCode.toUpperCase();\n              console.log('\u2705 [API 2] Success! Country detected:', detectedCode);\n              callback(detectedCode);\n            } else {\n              console.warn('\u26a0\ufe0f [API 2] No country code returned, trying final API...');\n              tryGeoJS();\n            }\n          })\n          .catch(function(error) {\n            console.error('\u274c [API 2] ip-api.com failed:', error);\n            tryGeoJS();\n          });\n      }\n      \n      \/\/ Attempt 3: GeoJS (final)\n      function tryGeoJS() {\n        console.log('\ud83d\udd04 [API 3] Trying GeoJS (final attempt)...');\n        \n        fetch('https:\/\/get.geojs.io\/v1\/ip\/country.json')\n          .then(function(response) { \n            console.log('\ud83d\udce1 [API 3] GeoJS Status:', response.status);\n            return response.json(); \n          })\n          .then(function(data) {\n            console.log('\ud83d\udccd [API 3] GeoJS Response:', data);\n            \n            if (data.country) {\n              var detectedCode = data.country.toUpperCase();\n              console.log('\u2705 [API 3] Success! Country detected:', detectedCode);\n              callback(detectedCode);\n            } else {\n              console.error('\u274c [API 3] All APIs failed!');\n              console.log('\ud83d\udd04 Final fallback to Saudi Arabia (SA)');\n              callback('SA');\n            }\n          })\n          .catch(function(error) {\n            console.error('\u274c [API 3] GeoJS failed:', error);\n            console.log('\ud83d\udd04 Final fallback to Saudi Arabia (SA)');\n            callback('SA');\n          });\n      }\n    }\n\n    var $countrySelect = $form.find('.phone-country');\n    var $phoneInput = $form.find('.phone-number');\n\n    \/\/ Set default placeholder\n    $phoneInput.attr('placeholder', 'Enter phone number');\n\n    countries.forEach(function(country) {\n      var option = $('<option><\/option>')\n        .val(country.code)\n        .text(country.dialCode + ' ' + country.name)\n        .data('dialCode', country.dialCode)\n        .data('example', country.example);\n      $countrySelect.append(option);\n    });\n\n    function formatCountry(country) {\n      if (!country.id) return country.text;\n      return $(\n        '<span style=\"display: flex; align-items: center; gap: 8px;\">' +\n        '<img decoding=\"async\" src=\"https:\/\/flagcdn.com\/20x15\/' + country.element.value.toLowerCase() + '.png\" ' +\n        'class=\"country-flag\" \/> ' +\n        '<span>' + country.text + '<\/span>' +\n        '<\/span>'\n      );\n    }\n\n    $countrySelect.select2({\n      width: '200px',\n      minimumResultsForSearch: 5,\n      templateResult: formatCountry,\n      templateSelection: formatCountry\n    });\n\n    $countrySelect.on('change', function() {\n      var example = $(this).find(':selected').data('example') || '';\n      if (example) {\n        $phoneInput.attr('placeholder', 'Example: ' + example);\n      }\n    });\n\n    \/\/ \ud83d\ude80 Apply IP Detection\n    detectCountryFromIP(function(detectedCountryCode) {\n      console.log('\ud83c\udfaf Attempting to select country:', detectedCountryCode);\n      \n      var countryExists = $countrySelect.find('option[value=\"' + detectedCountryCode + '\"]').length > 0;\n      \n      if (countryExists) {\n        $countrySelect.val(detectedCountryCode).trigger('change');\n        console.log('\u2705 Country successfully auto-selected:', detectedCountryCode);\n      } else {\n        console.warn('\u26a0\ufe0f Country code \"' + detectedCountryCode + '\" not found in dropdown');\n        $countrySelect.val('SA').trigger('change');\n        console.log('\ud83d\udd04 Defaulted to Saudi Arabia (SA)');\n      }\n      \n      \/\/ Update placeholder after country selection\n      setTimeout(function() {\n        var selectedExample = $countrySelect.find(':selected').data('example');\n        if (selectedExample) {\n          $phoneInput.attr('placeholder', 'Example: ' + selectedExample);\n          console.log('\ud83d\udcf1 Phone placeholder updated to:', selectedExample);\n        }\n      }, 200);\n    });\n\n    function isValidEmail(email) {\n      return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email);\n    }\n\n    $form.on('submit', function(e) {\n      e.preventDefault();\n\n      var $submitButton = $form.find('.fya-submit');\n      var originalText = $submitButton.text();\n      $submitButton.prop('disabled', true).html('<span class=\"fya-spinner\"><\/span>Submitting...');\n\n      var firstName = $form.find('.first_name').val().trim();\n      var lastName = $form.find('.last_name').val().trim();\n      var email = $form.find('.email').val().trim();\n      var pointOfContact = $form.find('.point_of_contact').val().trim();\n      var complaintDescription = $form.find('.complaint_description').val().trim();\n\n      if (!firstName || !lastName) {\n        Swal.fire({ icon: 'warning', title: 'Required', text: 'Please enter your full name.' });\n        $submitButton.prop('disabled', false).text(originalText);\n        return;\n      }\n\n      if (!email || !isValidEmail(email)) {\n        Swal.fire({ icon: 'warning', title: 'Invalid Email', text: 'Please enter a valid email address.' });\n        $submitButton.prop('disabled', false).text(originalText);\n        return;\n      }\n\n      if (!pointOfContact) {\n        Swal.fire({ icon: 'warning', title: 'Required', text: 'Please enter the previous UKuni point of contact.' });\n        $submitButton.prop('disabled', false).text(originalText);\n        return;\n      }\n\n      if (!complaintDescription) {\n        Swal.fire({ icon: 'warning', title: 'Required', text: 'Please describe your complaint.' });\n        $submitButton.prop('disabled', false).text(originalText);\n        return;\n      }\n\n      var countryCode = $countrySelect.val();\n      var phoneNumber = $phoneInput.val().trim();\n      var selectedOption = $countrySelect.find(':selected');\n      var dialCode = selectedOption.data('dialCode') || '';\n\n      if (!phoneNumber) {\n        Swal.fire({ icon: 'warning', title: 'Required', text: 'Please enter your phone number.' });\n        $submitButton.prop('disabled', false).text(originalText);\n        return;\n      }\n\n      var validatedPhone = null;\n      var isValid = false;\n\n      try {\n        var phoneUtil = libphonenumber.parsePhoneNumber(phoneNumber, countryCode);\n        if (phoneUtil && phoneUtil.isValid && phoneUtil.isValid()) {\n          validatedPhone = phoneUtil.format('E.164');\n          isValid = true;\n        } else {\n          var cleanNumber = phoneNumber.replace(\/^0+\/, '').replace(\/\\D\/g, '');\n          var phoneUtil2 = libphonenumber.parsePhoneNumber(dialCode + cleanNumber);\n          if (phoneUtil2 && phoneUtil2.isValid && phoneUtil2.isValid()) {\n            validatedPhone = phoneUtil2.format('E.164');\n            isValid = true;\n          }\n        }\n      } catch (error) {\n        isValid = false;\n      }\n\n      if (!isValid) {\n        var example = selectedOption.data('example') || '';\n        Swal.fire({\n          icon: 'error',\n          title: 'Invalid Phone Number',\n          html: '<p>Enter local number only without <b>' + dialCode + '<\/b><\/p><p>Format: <code>' + example + '<\/code><\/p>'\n        });\n        $submitButton.prop('disabled', false).text(originalText);\n        return;\n      }\n\n      var formData = {\n        first_name: firstName,\n        last_name: lastName,\n        email: email,\n        phone: validatedPhone,\n        previous_contact: pointOfContact,\n        complaint_description: complaintDescription,\n        source: 'FYA Complaints Form'\n      };\n\n      console.log('\ud83d\udce4 Sending to FYA Complaints webhook:', formData);\n\n      fetch('https:\/\/hook.eu1.make.com\/wawqbxpujdj23pkse3zkk8p16j41vpcf', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application\/json' },\n        body: JSON.stringify(formData)\n      })\n      .then(function(response) {\n        if (!response.ok) throw new Error('HTTP error');\n        return response.text();\n      })\n      .then(function() {\n        Swal.fire({\n          icon: 'success',\n          title: 'Complaint Submitted!',\n          text: 'Your complaint has been received. We will review it and get back to you as soon as possible.'\n        }).then(function() {\n          $form[0].reset();\n          \n          \/\/ Re-detect country after reset\n          detectCountryFromIP(function(detectedCountryCode) {\n            var countryExists = $countrySelect.find('option[value=\"' + detectedCountryCode + '\"]').length > 0;\n            if (countryExists) {\n              $countrySelect.val(detectedCountryCode).trigger('change');\n            } else {\n              $countrySelect.val('SA').trigger('change');\n            }\n            \n            setTimeout(function() {\n              var selectedExample = $countrySelect.find(':selected').data('example');\n              if (selectedExample) {\n                $phoneInput.attr('placeholder', 'Example: ' + selectedExample);\n              }\n            }, 200);\n          });\n        });\n      })\n      .catch(function(error) {\n        console.error('\u274c Error:', error);\n        Swal.fire({\n          icon: 'error',\n          title: 'An Error Occurred',\n          text: 'Please try again later or contact support.'\n        });\n      })\n      .finally(function() {\n        $submitButton.prop('disabled', false).text(originalText);\n      });\n    });\n\n    console.log('\u2705 FYA Complaints Form initialization complete');\n  }\n})();\n<\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-37352","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/ukuni.org\/ar\/wp-json\/wp\/v2\/pages\/37352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ukuni.org\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ukuni.org\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ukuni.org\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ukuni.org\/ar\/wp-json\/wp\/v2\/comments?post=37352"}],"version-history":[{"count":2,"href":"https:\/\/ukuni.org\/ar\/wp-json\/wp\/v2\/pages\/37352\/revisions"}],"predecessor-version":[{"id":37354,"href":"https:\/\/ukuni.org\/ar\/wp-json\/wp\/v2\/pages\/37352\/revisions\/37354"}],"wp:attachment":[{"href":"https:\/\/ukuni.org\/ar\/wp-json\/wp\/v2\/media?parent=37352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}