{"id":3179,"date":"2025-12-08T14:59:27","date_gmt":"2025-12-08T07:59:27","guid":{"rendered":"https:\/\/www.law.cmu.ac.th\/en\/?page_id=3179"},"modified":"2026-02-21T22:40:11","modified_gmt":"2026-02-21T15:40:11","slug":"our-mou","status":"publish","type":"page","link":"https:\/\/www.law.cmu.ac.th\/en\/our-mou\/","title":{"rendered":"Our Global Partnerships (MoU\/MoA)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3179\" class=\"elementor elementor-3179\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f8fd8ac e-flex e-con-boxed e-con e-parent\" data-id=\"f8fd8ac\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-be6a3f8 elementor-widget elementor-widget-Falar_About_Page_links\" data-id=\"be6a3f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"Falar_About_Page_links.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n        <!-- About All Pages Warp Style Start -->\r\n        <div class=\"about-all-pages pt-100\">\r\n            <div class=\"container\">\r\n                <div class=\"inner-all-pages\">\r\n                    <ul class=\"about-pages-list\">\r\n                                                    <li>\r\n                                <a href=\"\" class=\"active\">International Cooperation<\/a>\r\n                            <\/li>\r\n                                                    <li>\r\n                                <a href=\"\/en\/our-local-mou\/\" class=\"inactive\">Domestic Cooperation<\/a>\r\n                            <\/li>\r\n                                            <\/ul>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <!-- About All Pages Warp Style End -->\r\n        \r\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-22db821f e-flex e-con-boxed e-con e-parent\" data-id=\"22db821f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5be3b083 elementor-widget elementor-widget-text-editor\" data-id=\"5be3b083\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p><\/p>\n\n\n\n<p><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9a2bf17 e-flex e-con-boxed e-con e-parent\" data-id=\"9a2bf17\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a9b623d elementor-widget elementor-widget-html\" data-id=\"a9b623d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\" crossorigin=\"\"\/>\r\n<script src=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\" crossorigin=\"\"><\/script>\r\n\r\n<style>\r\n  .map-container { position: relative; }\r\n\r\n  #custom-world-map {\r\n    width: 100%;\r\n    height: 550px;\r\n    background-color: #F0F6F7; \r\n    border-radius: 8px;\r\n    border: 1px solid #E2E8F0;\r\n    z-index: 1;\r\n    outline: none;\r\n  }\r\n\r\n  \/* Tooltip \u0e25\u0e2d\u0e22\u0e15\u0e32\u0e21\u0e40\u0e21\u0e32\u0e2a\u0e4c *\/\r\n  #floating-tooltip {\r\n    position: fixed;\r\n    display: none;\r\n    background-color: rgba(255, 255, 255, 0.98);\r\n    color: #333;\r\n    padding: 8px 16px;\r\n    border-radius: 4px;\r\n    font-size: 14px;\r\n    font-weight: bold;\r\n    box-shadow: 0 4px 12px rgba(0,0,0,0.2);\r\n    pointer-events: none;\r\n    z-index: 9999;\r\n    transform: translate(15px, 15px);\r\n    white-space: nowrap;\r\n  }\r\n\r\n  path.leaflet-interactive { transition: fill-opacity 0.2s ease, filter 0.2s ease; }\r\n  \r\n  .zone-active {\r\n    filter: drop-shadow(0px 8px 6px rgba(0,0,0,0.4));\r\n    stroke: #333 !important;\r\n    stroke-width: 1.5px !important;\r\n  }\r\n  .clickable-zone { cursor: pointer; }\r\n\r\n  \/* \u0e2a\u0e44\u0e15\u0e25\u0e4c\u0e01\u0e25\u0e48\u0e2d\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 *\/\r\n  #mou-display-area {\r\n    margin-top: 30px;\r\n    padding: 20px;\r\n    background: #ffffff;\r\n    border-radius: 8px;\r\n    border: 1px solid #E2E8F0;\r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.05);\r\n    display: none;\r\n  }\r\n  \r\n  .mou-continent-title {\r\n    font-size: 28px;\r\n    color: #2D3748;\r\n    margin-bottom: 20px;\r\n    border-bottom: 2px solid #3182ce;\r\n    padding-bottom: 10px;\r\n  }\r\n\r\n  .mou-country-title {\r\n    font-size: 24px;\r\n    color: #4A5568;\r\n    margin-top: 25px;\r\n    margin-bottom: 15px;\r\n  }\r\n\r\n  .mou-list { list-style-type: none; padding-left: 0; }\r\n  .mou-list li {\r\n    font-size: 16px;\r\n    line-height: 1.6;\r\n    margin-bottom: 12px;\r\n    display: flex;\r\n    align-items: flex-start;\r\n  }\r\n\r\n  .mou-flag {\r\n    width: 24px;\r\n    height: auto;\r\n    margin-right: 12px;\r\n    margin-top: 4px;\r\n    border: 1px solid #e2e8f0;\r\n    border-radius: 2px;\r\n  }\r\n<\/style>\r\n\r\n<div class=\"map-container\">\r\n    <div id=\"floating-tooltip\"><\/div>\r\n    <div id=\"custom-world-map\"><\/div>\r\n<\/div>\r\n\r\n<div id=\"mou-display-area\"><\/div>\r\n\r\n<script>\r\n  document.addEventListener(\"DOMContentLoaded\", function() {\r\n      \r\n      const mouData = {\r\n          \"Europe\": {\r\n              \"Belgium\": [\"Ghent University, Belgium\"],\r\n              \"Czech Republic\": [\"Faculty of Health and Social Studies, University of South Bohemia, the Czech Republic\"],\r\n              \"Portugal\": [\r\n                  \"POLYTECHNIC INSTITUTE OF BEJA, BEJA, Portugal\",\r\n                  \"MEMORANDUM OF UNDERSTANDING FOR ACADEMIC COOPERATION BETWEEN LISBON ACCOUNTING AND BUSINESS SCHOOL AND FACULTY OF LAW, CHIANG MAI UNIVERSITY\"\r\n              ]\r\n          },\r\n          \"Southeast Asia\": {\r\n              \"Indonesia\": [\r\n                  \"Faculty of Law, Universitas Pelita Harapan, Indonesia\",\r\n                  \"MEMORANDUM OF UNDERSTANDING between Faculty of Law, Sriwijaya University, Indonesia and Faculty of Law, Chiang Mai University, Thailand\"\r\n              ],\r\n              \"Laos\": [\r\n                  \"The National University of Laos (NUOL)\",\r\n                  \"\u0e2a\u0e16\u0e32\u0e1a\u0e31\u0e19\u0e22\u0e38\u0e15\u0e34\u0e18\u0e23\u0e23\u0e21\u0e41\u0e2b\u0e48\u0e07\u0e0a\u0e32\u0e15\u0e34 \u0e01\u0e23\u0e30\u0e17\u0e23\u0e27\u0e07\u0e22\u0e38\u0e15\u0e34\u0e18\u0e23\u0e23\u0e21\u0e41\u0e2b\u0e48\u0e07\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e18\u0e34\u0e1b\u0e44\u0e15\u0e22\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e0a\u0e19\u0e25\u0e32\u0e27, \u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e18\u0e34\u0e1b\u0e44\u0e15\u0e22\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e0a\u0e19\u0e25\u0e32\u0e27\"\r\n              ],\r\n              \"Malaysia\": [\r\n                  \"National University of Malaysia (University of Kebangsaan Malaysia) (UKM), Malaysia\",\r\n                  \"MEMORANDUM OF UNDERSTANDING BETWEEN INTERNATIONAL ISLAMIC UNIVERSITY MALAYSIA AND CHIANG MAI UNIVERSITY, THAILAND\"\r\n              ],\r\n              \"Singapore\": [\"BEIHAI ASIA INTERNATIONAL ARBITRATION CENTRE PTE LTD (BAIAC), Singapore\"],\r\n              \"Vietnam\": [\r\n                  \"MEMORANDUM OF UNDERSTANDING BETWEEN HO CHI MINH CITY UNIVERSITY OF LAW AND CHIANG MAI UNIVERSITY\",\r\n                  \"School of Law , University of Economics, HCMC (UEH), Vietnam\"\r\n              ]\r\n          },\r\n          \"Asia\": {\r\n              \"China\": [\r\n                  \"Southwest University of Political Science and Law, China\",\r\n                  \"Guangxi Institute of Economic & Political Studies on Southeast Asia (GIOEA), China\",\r\n                  \"Law School, Zhongnan University of Economics and Law, China\",\r\n                  \"GUANGXI SIBEI LAW FIRM, China\"\r\n              ],\r\n              \"Taiwan\": [\r\n                  \"College of Social Sciences, National Cheng Kung University (NCKU), Taiwan\",\r\n                  \"College of Law, Chinese Culture University, Taiwan\"\r\n              ]\r\n          },\r\n          \"North America\": {\r\n              \"Canada\": [\"Memorandum of Understanding between The Law Faculty of Chiang Mai University (LAWCMU) And Environmental Law Centre Society Canada (ELC)\"],\r\n              \"USA\": [\"Clooney Foundation for Justice, United States of America\"]\r\n          },\r\n          \"Oceania\": {\r\n              \"Australia\": [\r\n                  \"School of Law, University of New England, Australia\",\r\n                  \"School of Law and Justice, Southern Cross University, Australia\"\r\n              ]\r\n          }\r\n      };\r\n\r\n      const countryCodes = {\r\n          \"Australia\": \"au\", \"Belgium\": \"be\", \"Canada\": \"ca\", \"China\": \"cn\",\r\n          \"Czech Republic\": \"cz\", \"Indonesia\": \"id\", \"Laos\": \"la\", \"Malaysia\": \"my\",\r\n          \"Portugal\": \"pt\", \"Singapore\": \"sg\", \"Taiwan\": \"tw\", \"USA\": \"us\", \"Vietnam\": \"vn\"\r\n      };\r\n\r\n      const zoneColors = {\r\n          \"Asia\": \"#A9C5A0\", \"Southeast Asia\": \"#F2A65A\", \"Europe\": \"#8FB8B4\",           \r\n          \"Africa\": \"#E5989B\", \"North America\": \"#9FB4C7\", \"South America\": \"#CDB4DB\",    \r\n          \"Oceania\": \"#B5D6D6\", \"Antarctic\": \"#E0E0E0\", \"Other\": \"#CCCCCC\"\r\n      };\r\n\r\n      const map = L.map('custom-world-map', {\r\n          minZoom: 2, maxZoom: 6, maxBounds: [[-90, -180], [90, 180]],\r\n          maxBoundsViscosity: 1.0, zoomControl: true, attributionControl: false\r\n      }).setView([20, 0], 2);\r\n\r\n      const tooltip = document.getElementById('floating-tooltip');\r\n      const displayArea = document.getElementById('mou-display-area');\r\n      const zoneLayers = {}; \r\n      let activeZone = null; \r\n\r\n      function resetActiveZone() {\r\n          if (activeZone && zoneLayers[activeZone]) {\r\n              zoneLayers[activeZone].forEach(l => {\r\n                  if (l.getElement()) l.getElement().classList.remove('zone-active');\r\n                  geoJsonLayer.resetStyle(l); \r\n              });\r\n          }\r\n          activeZone = null;\r\n          tooltip.style.display = 'none';\r\n      }\r\n\r\n      function renderMOUData(zoneName) {\r\n          const zoneData = mouData[zoneName];\r\n          if (!zoneData) {\r\n              displayArea.innerHTML = `<h2 class=\"mou-continent-title\">${zoneName}<\/h2><p>\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e04\u0e27\u0e32\u0e21\u0e23\u0e48\u0e27\u0e21\u0e21\u0e37\u0e2d\u0e43\u0e19\u0e20\u0e39\u0e21\u0e34\u0e20\u0e32\u0e04\u0e19\u0e35\u0e49<\/p>`;\r\n              displayArea.style.display = 'block';\r\n              return;\r\n          }\r\n\r\n          let htmlContent = `<h2 class=\"mou-continent-title\">${zoneName}<\/h2>`;\r\n          const countries = Object.keys(zoneData).sort();\r\n\r\n          countries.forEach(country => {\r\n              htmlContent += `<h2 class=\"mou-country-title\">${country}<\/h2>`;\r\n              htmlContent += `<ul class=\"mou-list\">`;\r\n              const flagCode = countryCodes[country] || \"un\";\r\n              const flagUrl = `https:\/\/flagcdn.com\/w40\/${flagCode}.png`;\r\n\r\n              zoneData[country].forEach(mou => {\r\n                  htmlContent += `\r\n                      <li>\r\n                          <img decoding=\"async\" src=\"${flagUrl}\" class=\"mou-flag\" alt=\"Flag of ${country}\">\r\n                          <span>${mou}<\/span>\r\n                      <\/li>\r\n                  `;\r\n              });\r\n              htmlContent += `<\/ul>`;\r\n          });\r\n\r\n          displayArea.innerHTML = htmlContent;\r\n          displayArea.style.display = 'block';\r\n          displayArea.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n      }\r\n\r\n      let geoJsonLayer;\r\n\r\n      Promise.all([\r\n          fetch('https:\/\/raw.githubusercontent.com\/johan\/world.geo.json\/master\/countries.geo.json').then(r => r.json()),\r\n          fetch('https:\/\/restcountries.com\/v3.1\/all?fields=cca3,region,subregion').then(r => r.json())\r\n      ]).then(([geoData, countryInfo]) => {\r\n          \r\n          const zoneMap = {};\r\n          countryInfo.forEach(c => {\r\n              let zone = c.region; \r\n              if (c.region === \"Americas\") zone = (c.subregion === \"South America\") ? \"South America\" : \"North America\";\r\n              if (c.subregion === \"South-Eastern Asia\") zone = \"Southeast Asia\";\r\n              zoneMap[c.cca3] = zone;\r\n          });\r\n\r\n          geoJsonLayer = L.geoJSON(geoData, {\r\n              style: function(feature) {\r\n                  const zone = zoneMap[feature.id] || \"Other\";\r\n                  const hasData = mouData[zone] !== undefined; \r\n                  return {\r\n                      fillColor: zoneColors[zone] || zoneColors[\"Other\"],\r\n                      weight: 1, color: '#ffffff', fillOpacity: 0.85,\r\n                      className: hasData ? \"clickable-zone\" : \"\" \r\n                  };\r\n              },\r\n              onEachFeature: function(feature, layer) {\r\n                  const zone = zoneMap[feature.id] || \"Other\";\r\n                  if (!zoneLayers[zone]) zoneLayers[zone] = [];\r\n                  zoneLayers[zone].push(layer);\r\n\r\n                  \/\/ \ud83d\udca1 \u0e19\u0e33\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e21\u0e32\u0e23\u0e27\u0e21\u0e44\u0e27\u0e49\u0e17\u0e35\u0e48\u0e15\u0e31\u0e27\u0e40\u0e25\u0e40\u0e22\u0e2d\u0e23\u0e4c\u0e02\u0e2d\u0e07\u0e17\u0e27\u0e35\u0e1b\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e40\u0e14\u0e34\u0e21 (\u0e40\u0e2a\u0e16\u0e35\u0e22\u0e23\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14)\r\n                  layer.on({\r\n                      mouseover: function(e) {\r\n                          if (zone === \"Other\" || zone === \"Antarctic\") return;\r\n                          if (activeZone !== zone) resetActiveZone();\r\n                          activeZone = zone;\r\n                          tooltip.innerText = zone;\r\n                          tooltip.style.display = 'block';\r\n                          zoneLayers[zone].forEach(l => {\r\n                              l.setStyle({ fillOpacity: 1 });\r\n                              if (l.getElement()) l.getElement().classList.add('zone-active');\r\n                              \/\/ \ud83d\udca1 \u0e16\u0e2d\u0e14\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 l.bringToFront(); \u0e2d\u0e2d\u0e01\u0e41\u0e25\u0e49\u0e27\r\n                          });\r\n                      },\r\n                      mousemove: function(e) {\r\n                          if (activeZone) {\r\n                              tooltip.style.left = (e.originalEvent.clientX + 15) + 'px';\r\n                              tooltip.style.top = (e.originalEvent.clientY + 15) + 'px';\r\n                          }\r\n                      },\r\n                      click: function(e) {\r\n                          \/\/ \ud83d\udca1 \u0e23\u0e31\u0e1a\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e04\u0e25\u0e34\u0e01\u0e44\u0e14\u0e49\u0e15\u0e32\u0e21\u0e1b\u0e01\u0e15\u0e34\u0e40\u0e1e\u0e23\u0e32\u0e30\u0e44\u0e21\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e0a\u0e32\u0e01\u0e40\u0e25\u0e40\u0e22\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e49\u0e27\r\n                          if (zone !== \"Other\" && zone !== \"Antarctic\") {\r\n                              renderMOUData(zone);\r\n                          }\r\n                      }\r\n                  });\r\n              }\r\n          }).addTo(map);\r\n\r\n          map.on('mouseout', function(e) {\r\n              if (e.originalEvent && e.originalEvent.target.id === 'custom-world-map') {\r\n                  resetActiveZone();\r\n              }\r\n          });\r\n\r\n      }).catch(error => console.error(\"Error loading map logic:\", error));\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>International Cooperation Domestic Cooperation<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-3179","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.law.cmu.ac.th\/en\/wp-json\/wp\/v2\/pages\/3179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.law.cmu.ac.th\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.law.cmu.ac.th\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.law.cmu.ac.th\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.law.cmu.ac.th\/en\/wp-json\/wp\/v2\/comments?post=3179"}],"version-history":[{"count":53,"href":"https:\/\/www.law.cmu.ac.th\/en\/wp-json\/wp\/v2\/pages\/3179\/revisions"}],"predecessor-version":[{"id":3786,"href":"https:\/\/www.law.cmu.ac.th\/en\/wp-json\/wp\/v2\/pages\/3179\/revisions\/3786"}],"wp:attachment":[{"href":"https:\/\/www.law.cmu.ac.th\/en\/wp-json\/wp\/v2\/media?parent=3179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}