An error occurred while processing the template.
Syntax error in template "85082426756241#20119#996991" in line 183, column 29:
Encountered "</#if>", but at this place only this can be closed: "#list". This usually because of wrong nesting of FreeMarker directives, like a missed or malformed end-tag somewhere. (Note that FreeMarker end-tags must have # or @ after the / character.)
Was expecting one of these patterns:
    <ATTEMPT>
    <IF>
    <LIST>
    <ITEMS>
    <SEP>
    <FOREACH>
    <SWITCH>
    <ASSIGN>
    <GLOBALASSIGN>
    <LOCALASSIGN>
    <_INCLUDE>
    <IMPORT>
    <FUNCTION>
    <MACRO>
    <TRANSFORM>
    <VISIT>
    <STOP>
    <RETURN>
    <CALL>
    <SETTING>
    <OUTPUTFORMAT>
    <AUTOESC>
    <NOAUTOESC>
    <COMPRESS>
    <COMMENT>
    <TERSE_COMMENT>
    <NOPARSE>
    <END_LIST>
    <ELSE>
    <BREAK>
    <CONTINUE>
    <SIMPLE_RETURN>
    <HALT>
    <FLUSH>
    <TRIM>
    <LTRIM>
    <RTRIM>
    <NOTRIM>
    <SIMPLE_NESTED>
    <NESTED>
    <SIMPLE_RECURSE>
    <RECURSE>
    <FALLBACK>
    <ESCAPE>
    <NOESCAPE>
    <UNIFIED_CALL>
    <STATIC_TEXT_WS>
    <STATIC_TEXT_NON_WS>
    <STATIC_TEXT_FALSE_ALARM>
    "${"
    "#{"
    "[="
1<#macro childNavigation portletDisplay navItem level> 
2    <#if navItem?? && navItem.getChildren()??> 
3        <#list navItem.getChildren() as childItem> 
4            <#local isSubmenu = !childItem.getLayout()?? /> 
5            <#local isBrowsable = childItem.isBrowsable() /> 
6 
7            <#if !isSubmenu || isBrowsable> 
8                <#local nav_child_css_class = "dc-nav-item" /> 
9                <#if childItem.isChildSelected() || childItem.isSelected()> 
10                    <#local nav_child_css_class = "${nav_child_css_class} selected" /> 
11                </#if> 
12                <#local showChildrenNavItems = childItem.hasBrowsableChildren() /> 
13                <#local itemHref = childItem.getURL() /> 
14                <#local css_if_has_child = "" /> 
15                <#if showChildrenNavItems> 
16                    <#local nav_child_css_class = "${nav_child_css_class} nav-trigger" /> 
17                    <#local css_if_has_child = "dc-nav-item--parent" /> 
18                </#if> 
19 
20                <li class="dc-nav-item ${css_if_has_child} dc-nav-item--level-${level} dc-flex dc-justify-between dc-items-center focus:dc-bg-gray-200 mt-0" id="layout_${level}_${portletDisplay.getId()}_${childItem.getLayoutId()}" 
21                    data-nav="nav_${portletDisplay.getId()}_${childItem.getLayoutId()}" role="presentation"> 
22                    <a class="dc-text-s dc-text-s-rtl" href="${itemHref}" ${childItem.getTarget()} role="menuitem"> 
23                        ${childItem.getName()} 
24                    </a> 
25                    <#if (showChildrenNavItems && level < 2)> 
26                        <div class="dc-flex dc-items-center dc-justify-center"> 
27                            <span class="dc-nav-arrow dc-nav-arrow--right"></span> 
28                        </div> 
29												<ul class="dc-hidden dc-col__inner level-${level+1} desktop-nav-menu" id="children_layout_${level}_${portletDisplay.getId()}_${childItem.getLayoutId()}"> 
30														<div class="dc-layer-top-back"></div> 
31														<@childNavigation portletDisplay childItem level+1 /> 
32												</ul> 
33                    </#if> 
34                </li> 
35			     
36            </#if> 
37        </#list> 
38    </#if> 
39</#macro> 
40 
41<#macro webContentNavigation portletDisplay navItem> 
42    <#if (navItem?? && navItem.getChildren()?? && navItem.getChildren()?size > 0)> 
43        <div id="child_content_layout_1_${portletDisplay.getId()}_${navItem.getLayoutId()}" class="dc-hidden"> 
44            <#list navItem.getChildren() as childItem> 
45                <#if dcSiteNavigationJournalArticles?? && dcSiteNavigationJournalArticles?has_content> 
46                    <#assign layoutId = childItem.getLayoutId()/> 
47                    <#if (layoutId?? && layoutId > 0 && dcSiteNavigationJournalArticles[layoutId?string]??)> 
48                        <#assign dcSiteNavigationJournalArticle = dcSiteNavigationJournalArticles[layoutId?string]/> 
49                        <#if dcSiteNavigationJournalArticle??> 
50                            <@liferay_journal["journal-article"] 
51                            articleId=dcSiteNavigationJournalArticle.articleId 
52                            ddmTemplateKey=DC_NAV_CONTENT_TEMPLATE 
53                            groupId=dcSiteNavigationJournalArticle.groupId 
54                            /> 
55                        </#if> 
56                    </#if> 
57                </#if> 
58            </#list> 
59        </div> 
60    </#if> 
61</#macro> 
62 
63<#macro childNavigationMobile portletDisplay navItem level> 
64    <#if navItem?? && navItem.getChildren()??> 
65        <#list navItem.getChildren() as childItem> 
66            <#local isSubmenu = !childItem.getLayout()?? /> 
67            <#local hasBrowsableChildren = childItem.hasBrowsableChildren() /> 
68           <#if !isSubmenu  || childItem.getRegularURL()?exists && childItem.getRegularURL() != ""> 
69                <#assign childItemHref = childItem.getURL() /> 
70                <#assign isNotLayout = childItem.getLayout()?? /> 
71                <#assign isBrowsable = childItem.isBrowsable() /> 
72                <li class="dc-nav_item <#if hasBrowsableChildren>dc-nav-item-with-childs</#if>"> 
73                    <div class="js-dc-nav-menu-mobile-link" data-is-url="<#if !isNotLayout && isBrowsable>_blank<#else>_self</#if>" 
74                         data-link="${childItem.getRegularURL()}"> 
75                        ${childItem.getName()} 
76                    </div> 
77                    <#if hasBrowsableChildren> 
78                        <@renderArrow /> 
79                    </#if> 
80                </li> 
81                <#if (hasBrowsableChildren && level < 3)> 
82                    <ul class="dc-secondary-nav dc-hidden level-${level+1}"> 
83                        <@childNavigationMobile portletDisplay childItem level+1/> 
84                    </ul> 
85                </#if> 
86            </#if> 
87        </#list> 
88    </#if> 
89</#macro> 
90 
91<#macro renderArrow> 
92    <div class="dc-flex dc-items-center dc-justify-center"> 
93        <span class="dc-nav-arrow"></span> 
94    </div> 
95</#macro> 
96 
97<#if !entries?has_content> 
98    <#if themeDisplay.isSignedIn()> 
99        <div class="alert alert-info"> 
100            <@liferay.language key="there-are-no-menu-items-to-display" /> 
101        </div> 
102    </#if> 
103<#else> 
104    <#assign maxAttempts = 10> 
105    <#assign delay = 100> 
106    <#assign siteNavMenuId = 0> 
107    <#assign dcSiteNavigationJournalArticles = ""> 
108 
109    <#list 1..maxAttempts as attempt> 
110        <#if siteNavigationMenuId?? && siteNavigationMenuId?has_content> 
111            <#assign siteNavMenuId = siteNavigationMenuId?number> 
112            <#if dcSiteNavigationJournalArticleService?? > 
113                <#assign dcSiteNavigationJournalArticles = dcSiteNavigationJournalArticleService.getJournalArticlesForSiteNavMenuId(siteNavMenuId) /> 
114            </#if> 
115            <#break> 
116        <#else> 
117            <#if attempt <= maxAttempts> 
118                <@liferay_aui.script> 
119                    setTimeout(function() { }, ${delay}); 
120                </@> 
121            </#if> 
122        </#if> 
123    </#list> 
124 
125    <#assign 
126    portletDisplay = themeDisplay.getPortletDisplay() 
127    navbarId = "navbar_" + portletDisplay.getId() 
128    level = 0 
129    /> 
130 
131    <#assign navItems = entries /> 
132					 
133 
134 
135    <nav id="${navbarId}" class="dc-bottom-header dark:border-gray-600 dark:bg-gray-900"> 
136        <div class="dc-bottom-header__nav"> 
137            <div id="mega-menu-full-image" class="dc-flex dc-items-center dc-justify-between"> 
138                <ul class="dc-flex dc-items-baseline dc-gap-20"> 
139                    <#list navItems as navItem> 
140                        <#assign 
141                        showChildrenNavItems = (displayDepth != 1) && navItem.hasBrowsableChildren() 
142                        rootLevelId = "root_level_${portletDisplay.getId()}_${navItem.getLayoutId()}" 
143                        /> 
144                        <li id="${rootLevelId}" class="dc-root-level <#if navItem?? &&( navItem.isSelected() || navItem.hasBrowsableChildren()?? &&navItem.isChildSelected() )> dc-selected </#if>"> 
145                            <#if showChildrenNavItems> 
146                                <button id="mega-menu-full-cta-image-button-${rootLevelId}" 
147                                        class="dc-hidden dc-cta-nav-item dc-py-20 xl:dc-flex dc-h6 dc-h6-rtl dc-text-navy-500 dc-flex dc-items-center dc-justify-between"> 
148                                   <!-- <span class="dc-nav-arrow"></span> --> 
149                                    <span class="dc-h6 dc-h6-rtl dc-nav-text dc-text-navy-500 hover:dc-text-navy-500">${navItem.getName()}</span> 
150                                </button> 
151 
152                                <div id="mega-menu-full-image-dropdown-${rootLevelId}" 
153                                     class="dc-hidden dc-mega-menu dc-pt-40 dc-bg-gray-50  dc-w-[300px] dc-absolute dc-inset-x-0 dc-top-full"> 
154                                    <!--<h4 class="dc-h4 dc-h4-rtl dc-text-navy-500"> 
155                                        ${navItem.getName()} 
156                                    </h4>--> 
157                                    <div class="dc-mega-menu__inner"> 
158                                        <#assign lvl = level + 1 /> 
159                                        <ul class="dc-mega-menu__left dc-col dc-relative"> 
160                                            <@childNavigation portletDisplay navItem lvl /> 
161                                        </ul> 
162                                        <#------  Additional right menu ------> 
163                                        <#-----------  Web-content ----------> 
164                                        <#if (lvl == 1) && navItem?? && navItem.getChildren()??> 
165                                            <div class="article-menu dc-col"> 
166                                                <#list navItem.getChildren() as childItem> 
167                                                    <@webContentNavigation portletDisplay childItem /> 
168                                                </#list> 
169                                            </div> 
170                                        </#if> 
171                                    </div> 
172                                </div> 
173                            <#else> 
174															${navItem.getURL()} 
175															<#--<#assign layout = navItem.getLayout()> 
176																<#if  layout.getName(locale, false) != ""> 
177																	 <button id="mega-menu-full-cta-image-button book-venue-header" 
178                                        class="dc-hidden dc-cta-nav-item dc-py-20 xl:dc-flex dc-h6 dc-h6-rtl dc-text-navy-500 dc-flex dc-items-center dc-justify-between"> 
179																		<!--	 <span class="dc-nav-arrow"></span>  --> 
180																			<a href="${navItem.getURL()}"><span class="dc-nav-text dc-h6 dc-h6-rtl dc-text-navy-500 hover:dc-text-navy-500">${navItem.getName()}</span></a> 
181                                  </button> 
182																</#if>--> 
183                            </#if> 
184                        </li> 
185                    </#list> 
186                </ul> 
187            </div> 
188        </div> 
189        <!--------------  NAV Mobile --------------> 
190        <div class="dc-bottom-header__nav-mobile dc-hidden dc-bg-gray-100"> 
191            <h5 class="dc-h5 dc-h5-rtl dc-mobile-menu-title"> 
192                <@liferay.language key="explore-our-website" /> 
193            </h5> 
194            <!---- Level 1 -----> 
195            <ul class="level-1"> 
196                <#list navItems as navItem> 
197                    <#assign 
198                    hasBrowsableChildren = (displayDepth != 1) && navItem.hasBrowsableChildren() 
199                    rootLevelId = "root_level_${portletDisplay.getId()}_${navItem.getLayoutId()}" 
200                    isAddArrow = navItem.hasBrowsableChildren() 
201                    /> 
202 
203                    <li class="dc-primary-nav__item"> 
204										<div class="dc-nav_item <#if hasBrowsableChildren>dc-nav-item-with-childs dc-nav-item--white</#if>"> 
205                            <#assign isNotLayout = navItem.getLayout()?? /> 
206                            <#assign isBrowsable = navItem.isBrowsable() /> 
207                            <div class="js-dc-nav-menu-mobile-link" data-is-url="<#if !isNotLayout && isBrowsable>_blank<#else>_self</#if>" 
208                                 data-link="${navItem.getRegularURL()}"> 
209                                ${navItem.getName()} 
210                            </div> 
211                            <#if isAddArrow> 
212                                <@renderArrow /> 
213                            </#if> 
214                    </div>                        <!---- If 1st level has children -----> 
215                        <!---- Level 2 -----> 
216                        <#if hasBrowsableChildren> 
217                            <div class="dc-secondary-nav__container dc-hidden"> 
218                                <ul class="secondary-nav level-2"> 
219                                    <@childNavigationMobile portletDisplay navItem level+1 /> 
220                                </ul> 
221                            </div> 
222                        </#if> 
223                    </li> 
224                </#list> 
225            </ul> 
226        </div> 
227    </nav> 
228</#if> 
229			 
230 
231<#--@formatter:off--> 
232<script type="text/javascript"> 
233    setTimeout(function () { 
234        const rootLevelItems = document.querySelectorAll('[id^="root_level_${portletDisplay.getId()}_"]'), 
235            megaMenus = document.querySelectorAll('[id^="mega-menu-full-image-dropdown-root_level_${portletDisplay.getId()}_"]'), 
236            parentItems = document.querySelectorAll('[id^="layout_1_${portletDisplay.getId()}_"]'), 
237            childContent = document.querySelectorAll('[id^="child_content_layout_1_${portletDisplay.getId()}_"]'), 
238            children = document.querySelectorAll('[id^="children_layout_1_${portletDisplay.getId()}_"]'), 
239            containerSetSpacer = document.querySelector('.dc-container-set-spacer > .lfr-layout-structure-item-container'), 
240						HTML = document.querySelector('html'), 
241            mobileLinks = document.querySelectorAll('.js-dc-nav-menu-mobile-link') 
242            let currentMegaMenu = null; 
243 
244        rootLevelItems.forEach(function (item) { 
245            item.addEventListener('mouseenter', function (e) { 
246                updateChosenItemState(item, rootLevelItems, 'dc-root-level-hovered'); 
247 
248                hideAllMegaMenus(); 
249 
250                const megaMenuElement = document.getElementById("mega-menu-full-image-dropdown-" + item.id); 
251                currentMegaMenu = megaMenuElement; 
252 
253                if (megaMenuElement) { 
254                     
255                    toggleCssClass(HTML, true, 'dc-overflow-hidden'); 
256                    megaMenuElement.classList.remove('dc-hidden'); 
257                    const navBar = document.getElementById('${navbarId}'); 
258                    const navBarRect = navBar.getBoundingClientRect(); 
259                    megaMenuElement.addEventListener('mouseleave', function (e) { 
260                        const rect = this.getBoundingClientRect(); 
261                        if ((rect.top > e.clientY && navBarRect.right > e.clientX) 
262                            || (rect.top < e.clientY && rect.bottom > e.clientY && rect.x < e.clientX && rect.width > e.clientX)) { 
263                            return; 
264
265                        this.classList.add('dc-hidden'); 
266                        toggleCssClass(containerSetSpacer, false, 'dc-blur'); 
267                        toggleCssClass(HTML, false, 'dc-overflow-hidden'); 
268                        resetLevelsStates(); 
269                    }); 
270                } else { 
271                    toggleCssClass(containerSetSpacer, false, 'dc-blur'); 
272                    toggleCssClass(HTML, false, 'dc-overflow-hidden'); 
273
274 
275            }); 
276            item.addEventListener('mouseleave', function (e) { 
277                const megaMenuElement = document.getElementById("mega-menu-full-image-dropdown-" + item.id); 
278                if (!megaMenuElement) { 
279                    toggleCssClass(containerSetSpacer, false, 'dc-blur'); 
280                    toggleCssClass(HTML, false, 'dc-overflow-hidden'); 
281                    resetLevelsStates(); 
282                    return; 
283
284 
285                const navBar = document.getElementById('${navbarId}'); 
286                const navBarRect = navBar.getBoundingClientRect(); 
287                const rect = item.getBoundingClientRect(); 
288                if (rect.top > e.clientY || navBarRect.x > e.clientX) { 
289                    hideAllMegaMenus(); 
290                    resetLevelsStates(); 
291                    toggleCssClass(containerSetSpacer, false, 'dc-blur'); 
292                    toggleCssClass(HTML, false, 'dc-overflow-hidden'); 
293
294            }); 
295        }); 
296 
297        parentItems.forEach(function (item) { 
298            item.addEventListener('mouseenter', function () { 
299                updateChosenItemState(item, parentItems, 'dc-parent-item-hovered'); 
300                hideAllSecondLevelItems(); 
301 
302                const childContent = document.getElementById("child_content_" + item.id); 
303                if (childContent) { 
304                    childContent.classList.remove('dc-hidden'); 
305
306 
307                const children = document.getElementById("children_" + item.id); 
308                if (children) { 
309                    children.classList.remove('dc-hidden'); 
310                    let heightMegaMenu = getAbsoluteHeight(currentMegaMenu); 
311                    let heightTitleMegaMenu = currentMegaMenu.getElementsByTagName('h4')[0]; 
312                    let heightTitleMegaMenuHeight = getAbsoluteHeight(heightTitleMegaMenu); 
313                    for (let el of document.querySelectorAll('.dc-layer-top-back')) { 
314                        el.style.height = heightMegaMenu + 'px' 
315                        el.style.top = '-' + (heightTitleMegaMenuHeight + 42) + 'px' 
316
317
318            }); 
319        }); 
320 
321        children.forEach(function (item) { 
322            item.addEventListener('mouseleave', function () { 
323                item.classList.remove('dc-hidden'); 
324            }); 
325        }); 
326 
327        childContent.forEach(function (item) { 
328            item.addEventListener('mouseleave', function () { 
329                item.classList.remove('dc-hidden'); 
330            }); 
331        }); 
332				mobileLinks.forEach(function (item) { 
333            item.addEventListener('click', function () { 
334                window.open(item.dataset.link, item.dataset.isUrl); 
335            }); 
336        }); 
337        function getAbsoluteHeight(el) { 
338            // Get the DOM Node if you pass in a string 
339            el = (typeof el === 'string') ? document.querySelector(el) : el; 
340 
341            let styles = window.getComputedStyle(el); 
342            let margin = parseFloat(styles['marginTop']) + 
343                parseFloat(styles['marginBottom']); 
344            return Math.ceil(el.offsetHeight + margin); 
345
346 
347        function hideAllSecondLevelItems() { 
348            hideSection(children); 
349            hideSection(childContent); 
350
351 
352        function hideAllMegaMenus() { 
353            hideSection(megaMenus); 
354
355 
356        function toggleCssClass(el, add, cssClass) { 
357            if (add === true) { 
358                el.classList.add(cssClass); 
359            } else { 
360                el.classList.remove(cssClass); 
361
362
363 
364        function hideSection(section) { 
365 
366            if (section) { 
367                section.forEach(function (item) { 
368 
369                    item.classList.add('dc-hidden'); 
370                }); 
371
372
373 
374        function updateChosenItemState(chosenItem, listItems, cssClass) { 
375            chosenItem.classList.add(cssClass); 
376            listItems.forEach(element => { 
377                if (element !== chosenItem) { 
378                    element.classList.remove(cssClass); 
379
380            }); 
381
382 
383        function resetLevelsStates() { 
384            rootLevelItems.forEach(element => element.classList.remove('dc-root-level-hovered')); 
385            parentItems.forEach(element => element.classList.remove('dc-parent-item-hovered')); 
386
387 
388        let menuBtn = document.querySelector('[data-collapse-toggle="mega-menu-full-image"]'); 
389        menuBtn.addEventListener("click", function () { 
390					console.log("inside function....") 
391            let collapsedMenuBottomSection = document.getElementsByClassName('dc-collapsed-menu__bottom-section')[0]; 
392            let collapsedMenuInnerSection = document.getElementsByClassName('dc-collapsed-menu__inner')[0]; 
393            let mobileMenu = document.getElementsByClassName('dc-bottom-header__nav-mobile')[0]; 
394            if (mobileMenu.classList.contains('dc-hidden')) { 
395                HTML.classList.add('dc-overflow-hidden'); 
396                collapsedMenuInnerSection.classList.add('dc-opened'); 
397                mobileMenu.classList.remove('dc-hidden'); 
398                collapsedMenuBottomSection.classList.remove('dc-hidden'); 
399                this.classList.add('dc-opened'); 
400                document.querySelector("ul.level-1") 
401                let height = calculateHeight(); 
402                document.querySelector("ul.level-1").style.height = 'calc(100vh - ' + height + 'px)'; 
403            } else { 
404							console.log("inside else ") 
405                HTML.classList.remove('dc-overflow-hidden'); 
406                collapsedMenuInnerSection.classList.remove('dc-opened'); 
407                Array.from(mobileMenu.getElementsByClassName('dc-secondary-nav__container')).forEach(el => el.classList.add('dc-hidden')); 
408                Array.from(mobileMenu.getElementsByClassName('dc-secondary-nav')).forEach(el => el.classList.add('dc-hidden')); 
409                Array.from(navMobileContainer.getElementsByClassName('dc-nav-item-with-childs')).forEach(el => el.getElementsByClassName('dc-nav-arrow')[0].classList.remove('up')); 
410                mobileMenu.classList.add('dc-hidden'); 
411                collapsedMenuBottomSection.classList.add('dc-hidden'); 
412                this.classList.remove('dc-opened'); 
413                let navItems = navMobileContainer.getElementsByClassName('dc-nav-item-with-childs'); 
414                Array.from(navItems).forEach(i => i.classList.remove('opened')); 
415
416        }) 
417 
418        function calculateHeight() { 
419            let result = 0; 
420            let elControlMenu = document.getElementsByClassName('control-menu-container')[0]; 
421            let dcHeader = document.getElementById('dc-header'); 
422            let dcMobileMenuTitle = document.getElementsByClassName('dc-mobile-menu-title')[0]; 
423            let dcBottomSection = document.getElementsByClassName('dc-collapsed-menu__bottom-section')[0]; 
424 
425            if (elControlMenu) result += elControlMenu.offsetHeight; 
426            if (dcHeader) result += dcHeader.offsetHeight; 
427            if (dcMobileMenuTitle) result += dcMobileMenuTitle.offsetHeight; 
428            if (dcBottomSection) result += dcBottomSection.offsetHeight; 
429            let isIOS = navigator.userAgent.match(/iPad|iPhone|iPod/i) != null; 
430 
431            if (isIOS) { 
432                result += 82; 
433
434            return result; 
435
436 
437        let navMobileContainer = document.getElementsByClassName("dc-bottom-header__nav-mobile")[0]; 
438        let navItems = navMobileContainer.getElementsByClassName('dc-nav-item-with-childs'); 
439        for (let i = 0; i < navItems.length; i++) { 
440            navItems[i].addEventListener("click", function () { 
441                let innerContainer = this.nextElementSibling; 
442                if (innerContainer.classList.contains('dc-hidden')) { 
443                    innerContainer.classList.remove('dc-hidden'); 
444                    this.classList.add('opened'); 
445                } else { 
446                    innerContainer.classList.add('dc-hidden'); 
447                    this.classList.remove('opened'); 
448                    Array.from(innerContainer.getElementsByClassName('dc-nav-item-with-childs')).forEach(el => { 
449                        el.getElementsByClassName('dc-nav-arrow')[0].classList.remove('up'); 
450                    }); 
451                    Array.from(innerContainer.getElementsByClassName('dc-secondary-nav')).forEach(el => { 
452                        el.classList.add('dc-hidden') 
453                    }); 
454
455 
456                this.getElementsByClassName('dc-nav-arrow')[0].classList.toggle('up'); 
457            }); 
458
459    }, 500); 
460 
461const menuItems = document.querySelectorAll('.dc-root-level'); 
462menuItems.forEach(item => { 
463  item.addEventListener('mouseenter', () => { 
464    document.body.classList.add('dc-overflow-hidden'); 
465  }); 
466 
467  item.addEventListener('mouseleave', () => { 
468    document.body.classList.remove('dc-overflow-hidden'); 
469  }); 
470}); 
471	 
472</script> 
473<#--@formatter:on--> 

Dubai Chambers

Unlock the potential of your business with Dubai Chambers' unique three-chamber model, which provides access to highly focused support through Dubai Chamber of Commerce, Dubai International Chamber, and Dubai Chamber of Digital Economy.

Dubai Chamber of Commerce

Creating a favourable business environment to help companies achieve success and consolidate Dubai’s position as a leading global hub for business, trade, and investment.

Card Image

Services

Explore the comprehensive range of services offered by Dubai Chambers to help your business thrive.

A list of our services

New Membership

Access exclusive benefits like easy registration, business support and growth, networking, and expert guidance.

Membership Renewal

Renew your membership to continue enjoying exclusive benefits, uninterrupted services, and access to new opportunities.

Membership Amendment

Keep your info updated to retain access to uninterrupted services and unrivalled business support.

Membership Cancellation

Cancel your membership to discontinue access to all Dubai Chamber of Commerce services.

Issuing a Certificate of Origin

Apply for an essential document for exporting goods to comply with customs regulations.

Amendment of Certificate of Origin

Amend an existing certificate to maintain compliance with customs regulations.

Issuing a Certificate of Origin for Personal Effect

Apply for an essential document for exporting personal items to comply with customs regulations.

Document Verification

The Certificate copy for verification will be displayed in the PDF format. Adobe Acrobat Reader must be installed.

Authentication

Authenticate your documents to ensure they are officially recognised by the relevant authorities.

Signature Verification

Verify and authenticate your documents, ensuring they are accepted by the relevant authorities.

True Copy

Improve the credibility of your documents to ensure they are officially recognised by the relevant authorities.

Issuance of ATA Carnet

Apply for an international customs document that allows you to temporarily import goods without paying duties or taxes.

Modification of ATA Carnet

Keep your ATA Carnet current to ensure smooth and cost-effective international business activities.

Substitute of lost ATA Carnet

Request a substitute ATA Carnet if the original is lost, damaged, or destroyed.

Replacement of ATA Carnet

Extend the validity of your ATA Carnet to continue importing goods without paying duties and taxes.

Letters and Certificates

Request essential documentation, such as "to whom it may concern" letters, certification of recommendation and identification.

Company Profile

Apply for a company profile document that contains detailed economic and legal information about your company.

Mediation

Resolve commercial disputes quickly and amicably with our Mediation service to avoid lengthy and expensive litigation.

Permit Issuance for Business Councils and Business Groups

Empower your business community by obtaining permits for Business Councils and Groups.

Renewal of Business Councils and Business Groups Permits

Renew your Business Councils and Business Groups Permit to ensure your non-profit organisations continue to operate formally.

Dubai Chamber of Commerce ESG Label

Evaluate your ESG readiness and maturity, gain recognition for your efforts, and drive business growth.

Business Groups and Business Councils

Operating under the umbrella of Dubai Chamber of Commerce, sector-specific Business Groups and country-specific Business Councils serve as bridges between the business community and the government. These dynamic platforms engage regularly with members through workshops and events to drive effective advocacy, secure legislative enhancements, and improve Dubai’s favourable business environment.Business Groups and Business Councils advance the interests of the private sector through:

Policy and Legislative Advocacy

Supporting essential policy changes and legislative enhancements to create a more favourable business environment and drive economic growth.

Business Expansion 

Assisting companies in Dubai to expand their trade and investments abroad by establishing strong bilateral economic relations and highlighting business opportunities.

Governance and Transparency

Enhancing governance practices by promoting fundamental values and principles, ensuring transparency, and improving communication between key stakeholders.

Member Engagement 

Promoting active engagement between members, fostering collaboration, and creating valuable platforms for effective decision-making.

Centre for Responsible Business

Card Image

Established in 2004, the Centre for Responsible Business (CRB) leads the way in promoting Corporate Social Responsibility (CSR) and sustainable business practices. The CRB provides platforms, knowledge, and tools to help businesses embed CSR and sustainability throughout their operations, enhancing performance and unlocking competitive advantages. The CRB can help you:

Item Icon
Gain recognition and awards for your commitment to CSR and sustainability.
Item Icon
Connect with like-minded businesses to share best practices and collaborate on sustainability initiatives.
Item Icon
Receive expert guidance and support to implement responsible business practices and improve CSR performance.
Item Icon
Access valuable resources, tools, and guides to embed CSR and sustainability throughout your business operations.
Item Icon
Benefit from professional evaluations and feedback to enhance your company's CSR efforts.
Item Icon
Integrate CSR, sustainability, and good governance into your management and operational processes.

Insightful Resources

Card Image
Reports@news, commerce@commerce
Card Image
Reports@news, commerce@commerce
Card Image
Forms & Guidelines@news, commerce@commerce

Initiatives 

Whether you are an aspiring app developer, a start-up seeking investors, or a business expanding internationally, Dubai Chambers is dedicated to ensuring you benefit from expert advice, specialised training, global networking events, and practical support platforms.

Upcoming events

View Dubai Chambers' schedule of upcoming events and workshops, which are designed to help you network, exchange knowledge, and achieve business success.
Card Image

4 February 2024

08:30 AM – 12:30 PM

This legal workshop provides an in-depth examination of critical legal issues in today’s dynamic employment landscape.

Card Image

16 January 2025

11:00 AM – 12:30 PM

This Webinar examines key issues of integrating data privacy provisions into contractual agreements within the UAE.

Card Image

9 January 2025

11:00 AM – 12:30 PM

This Webinar examines an insightful of exploring the comprehensive landscape of Construction.

News

Card Image

Unlock the potential of your business with Dubai Chambers' unique three-chamber model, which provides access to highly focused support through Dubai Chamber of Commerce, Dubai International Chamber, and Dubai Chamber of Digital Economy.

Card Image

Creating a favourable business environment to help companies achieve success and consolidate Dubai’s position as a leading global hub for business, trade, and investment.

Card Image

Transforming Dubai into a leading global hub for advanced technologies by attracting international companies and talent to the emirate and ensuring they can thrive.

Card Image

Strengthening partnerships with global corporations, investors, and entrepreneurs to enhance Dubai’s status as a major global trading hub and an attractive market for establishing and expanding businesses.

Ready to Elevate Your Business?

Members of Dubai Chamber of Commerce enjoy access to a range of exclusive benefits, including:

Smart Commerce

Events & Networks

Business Facilitation & Support