{"id":698,"date":"2025-10-17T11:54:04","date_gmt":"2025-10-17T11:54:04","guid":{"rendered":"https:\/\/sample-events.allintheloop.com\/?page_id=698"},"modified":"2026-06-11T12:21:18","modified_gmt":"2026-06-11T12:21:18","slug":"document","status":"publish","type":"page","link":"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document\/","title":{"rendered":"Document"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"698\" class=\"elementor elementor-698\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0491016 e-flex e-con-boxed e-con e-parent\" data-id=\"0491016\" 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-11e85da elementor-widget elementor-widget-shortcode\" data-id=\"11e85da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"aitl-folder-doc-grid\"><div class=\"aitl-section-folders\" id=\"aitl-section-folders\"><div id=\"aitl-folders-container\"><div class=\"folder-grid\">\n        <a href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-list?folder_id=133511\" class=\"folder-card\" style=\"text-align:center;\" data-search=\"abstracts\">\n            <div class=\"folder-icon\" style=\"background:#5BC0EB;\"><\/div>\n            <div class=\"folder-name\">Abstracts<\/div>\n        <\/a>\n        <a href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-list?folder_id=133510\" class=\"folder-card\" style=\"text-align:center;\" data-search=\"poster\">\n            <div class=\"folder-icon\" style=\"background:#FDE74C;\"><\/div>\n            <div class=\"folder-name\">Poster<\/div>\n        <\/a><\/div><\/div><\/div><div class=\"aitl-doc-toolbar\"><div class=\"aitl-doc-search-wrap\"><input type=\"text\" id=\"aitl-doc-search\" class=\"aitl-doc-search-input\" value=\"\" placeholder=\"Search by title, tag, speaker or description\u2026\" autocomplete=\"off\"><button type=\"button\" class=\"aitl-doc-search-btn\" id=\"aitl-doc-search-btn\" aria-label=\"Search documents\"><i class=\"fas fa-search\" aria-hidden=\"true\"><\/i> Search<\/button><button type=\"button\" class=\"aitl-doc-search-clear\" id=\"aitl-doc-search-clear\" aria-label=\"Clear search\" style=\"display:none;\">&times;<\/button><div class=\"aitl-doc-spinner\" id=\"aitl-doc-spinner\"><\/div><\/div><button type=\"button\" class=\"open-filter-btn aitl-doc-open-filter\" id=\"aitl-root-doc-open-filter\"><i class=\"fa fa-filter\"><\/i> Filter<\/button><button type=\"button\" class=\"aitl-doc-clear-filter-main\" id=\"aitl-root-doc-clear-filter\" style=\"display:none;\"><i class=\"fa fa-times\"><\/i> Clear<\/button><\/div>    <div class=\"aitl-doc-filter-sidebar filter-sidebar\" id=\"aitl-root-doc-filter-sidebar\">\n        <div class=\"filter-sidebar-inner\">\n            <div class=\"filter-header\">\n                <h3>Filter by Tag<\/h3>\n                <button type=\"button\" class=\"filter-close-btn\" aria-label=\"Close\">&times;<\/button>\n            <\/div>\n            <div class=\"filter-clear-bar\" style=\"padding: 0 20px 15px; display: none;\">\n                <button type=\"button\" class=\"clear-filter-btn\">\n                    <i class=\"fa fa-times-circle\"><\/i> Clear All\n                <\/button>\n            <\/div>\n            <div class=\"filter-body\">\n                                <div class=\"filter-group\">\n                    <h5 class=\"group-title\" data-group=\"doc-group-contribution\">\n                        Contribution Format                        <span class=\"toggle-icon\"><i class=\"fa-solid fa-chevron-down\"><\/i><\/span>\n                    <\/h5>\n                    <ul class=\"filter-checkbox-list\" id=\"doc-group-contribution\">\n                                                <li>\n                            <label>\n                                <input type=\"checkbox\"\n                                    class=\"filter-checkbox aitl-doc-filter-checkbox\"\n                                    value=\"17675\"\n                                    data-group=\"doc-group-contribution\"\n                                    data-type-color=\"#293179\"\n                                    style=\"--checkbox-color: #293179\">\n                                <span class=\"checkbox-label\">\n                                    <span class=\"doc-filter-tag-swatch\" style=\"background-color:#293179;color:#fff;\">\n                                        Oral                                    <\/span>\n                                <\/span>\n                            <\/label>\n                        <\/li>\n                                                <li>\n                            <label>\n                                <input type=\"checkbox\"\n                                    class=\"filter-checkbox aitl-doc-filter-checkbox\"\n                                    value=\"17651\"\n                                    data-group=\"doc-group-contribution\"\n                                    data-type-color=\"#293179\"\n                                    style=\"--checkbox-color: #293179\">\n                                <span class=\"checkbox-label\">\n                                    <span class=\"doc-filter-tag-swatch\" style=\"background-color:#293179;color:#fff;\">\n                                        Poster                                    <\/span>\n                                <\/span>\n                            <\/label>\n                        <\/li>\n                                            <\/ul>\n                <\/div>\n                                <div class=\"filter-footer\">\n                    <button type=\"button\" class=\"apply-filter-btn aitl-doc-apply-filter\">Done<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <div class=\"filter-backdrop aitl-doc-filter-backdrop\"><\/div>\n    <div class=\"aitl-section-documents\"><div class=\"aitl-doc-loader-overlay\" id=\"aitl-doc-loader-overlay\"><div class=\"aitl-doc-loader-ring\"><\/div><\/div><div id=\"aitl-documents-container\"><div class=\"agenda-documents aitl-root-doc-list\" style=\"margin-top:30px;\"><ul class=\"aitl-doc-items-list\"><li class=\"aitl-doc-item\" data-search=\"1 - tracing prehistoric journeys: rock art, mobility, and cultural interaction in the kura-araxes basin the kura-araxes basin, located in the southern caucasus and often referred to archaeologically as the kura-araxes oikumene, has long served as a core settlement and interaction zone throughout the holocene. characterized by diverse landscapes \u2013 ranging from highlands to lowlands \u2013 and rich natural resources, including obsidian, copper, gold, and salt, the region played a pivotal role in the emergence and development of archaeological cultures during late prehistory.beyond its archaeological significance and resource-rich landscapes, the basin preserves a substantial yet understudied corpus of rock art that offers direct insight into prehistoric lifeways. the dense network of internal rivers within the kura-araxes basin, shaped by past volcanic activity, created natural communication corridors along valleys that were effectively used by prehistoric communities. within these highly interacted landscapes, local groups practiced rock art traditions depicting hunting scenes, rituals, and transport, which likely reflect aspects of their daily life, such as seasonal movements to pasturelands and long-distance journeys undertaken to access obsidian or other valuable resources. a new spatial analysis of this overlooked yet significant phenomenon suggests that rock art may represent a missing link in understanding social behaviour, cultural dynamics, and mobility networks across the region.      first author: levan losaberidzekeywords:southern caucasusrock artlate prehistory  levan losaberidze oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=134481\">1 - Tracing Prehistoric Journeys: Rock Art, Mobility, and Cultural Interaction in the Kura-Araxes Basin<\/a><div class=\"doc-datetime\">2026-08-27 &nbsp;|&nbsp; 09:30 - 09:45<\/div><div class=\"doc-speakers\">Levan Losaberidze<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><li class=\"aitl-doc-item\" data-search=\"3 - the network structure of the urban revolution long-distance interaction predates cities, but the scale, intensity, and organizational complexity of exchange during the urban revolution were unprecedented. how did early urban societies sustain transcontinental trade without modern transport technologies, financial instruments, or formal institutional infrastructure? we address this question through a formal network analysis of the uruk expansion in chalcolithic mesopotamia (ca. 4000\u20133000 bce), widely regarded as the earliest episode of globalization. drawing on a newly assembled dataset of more than 1,700 settlements and documented interaction routes, we reconstruct evolving patterns of connectivity across mesopotamia and its peripheries. our results show that exchange networks initially structured around riverine corridors gradually transformed through processes of diaspora settlement and intermediary bridging. these dynamics generated increasingly dense clusters and, over time, small-world network properties that balanced strong local integration with efficient long-distance connectivity. this transition from sparse, branching systems to grid-like integrated networks challenges core\u2013periphery and dependency-based interpretations, instead highlighting an emergent process of market formation and self-organized coordination in early urban economies.first author: giacomo benatico-authors: sergi lozanokeywords:network analysisurban revolutionearly markets  giacomo benati, sergi lozano oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=133767\">3 - The Network Structure of the Urban Revolution<\/a><div class=\"doc-datetime\">2026-08-27 &nbsp;|&nbsp; 16:42 - 16:48<\/div><div class=\"doc-speakers\">Giacomo Benati, Sergi Lozano<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><li class=\"aitl-doc-item\" data-search=\"4 - materializing modern greece: the reconstruction of the panathenaic stadium for the 1896 olympic games the panathenaic stadium played a significant role in the collective consciousness not only of theancient athenians but also of modern greeks. founded in the late classical period,monumentalized in the roman period, and reconstructed in the late 19th century, the stadiumconsistently served one overarching purpose: to provide a venue for large-scale public spectacles. in this paper, i argue that the reconstruction of the panathenaic stadium for the first modern international olympic games in 1896 aimed to culturally connect antiquity with modernity, thus marking the culmination of greece\u2019s constructed national identity in the late 19th century.to demonstrate this, i first examine the significance of the stadium for the great panathenaia inantiquity; second, i consider how the urban planning of 1830s athens, during its transformationinto the new capital of greece, was influenced by the known presence of the\u2014still unexcavated\u2014stadium, which ultimately led to its excavation in the 1860s; third, i make a brief reference to the 1894 paris congress, which determined that greece would host the 1896 olympiad, and examine the main figures involved and their roles leading up to the event; fourth, i interpret the key role of the reconstructed stadium as a key element in the cultural connection between antiquity and modernity, focusing on its benefactors, herodes attikos and georgios averoff, and the stadium\u2019s impact on the olympic games. lastly, i evaluate how the monument integrates into the contemporary architectural landscape of athens and consider its multifunctional use andemblematic value. the reconstructed panathenaic stadium\u2013\u2013rooted in the bavarian neoclassicism of the 1830s\u2013\u2013thus served as an ethno-symbol, a tangible landmark embodying the national cultural landscape of contemporary greece.first author: miltiadis kylindreaskeywords:panathenaic stadiumreconstruction1896 olympic gamesantiquity and modernitygreek national identitycultural heritage  miltiadis kylindreas oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=133669\">4 - Materializing Modern Greece: The Reconstruction of the Panathenaic Stadium for the 1896 Olympic Games<\/a><div class=\"doc-datetime\">2026-08-28 &nbsp;|&nbsp; 10:00 - 10:15<\/div><div class=\"doc-speakers\">Miltiadis Kylindreas<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><li class=\"aitl-doc-item\" data-search=\"5 - understanding the past through a theater performance using virtual reality stecaks are the medieval monumental gravestones, typical for the western balkan region and protected by unesco. the monuments as well as their decorations for decades are obtaining the special attention of scientists and heritage experts, but somehow among the wider audience the real meaning of the symbols and their significance remain without the interest or often is used for pseudo-science speculations. through the creative europe stecakland project, the team introduced the theater audience to these symbols through a performance displaying the physical reality of the stage and the virtual reality of an imagined land where the symbols &quot;live&quot;. this is one of the very few theater performances using vr technology and the first one that uses it as part of scenography and aiming interaction between the actors and the audience. in this presentation, the authors will elaborate on the production process, technology challenges, and deeply emotional reactions of the audience. further, we will present the work of an interdisciplinary team of historians, archaeologists, playwrights, visual artists, set and make-up designers, vr and theater directors, music and sound designers, actors, and vr developers on creating a unique experience for the theater audience. the main value of the project is that this concept can be replicated in other case studies, connecting the historical information with public perception and reception through state-of-the-art digital technology.first author: selma rizvicco-authors: bojan mijatovic, jelena andjelkovic - grasarkeywords:digital heritagetheater performancevirtual realityimmersive experienceinteractive digital storytelling  selma rizvic, bojan mijatovic, jelena andjelkovic - grasar oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=136739\">5 - Understanding the past through a theater performance using Virtual Reality<\/a><div class=\"doc-datetime\">2026-08-28 &nbsp;|&nbsp; 14:45 - 15:00<\/div><div class=\"doc-speakers\">Selma Rizvic, Bojan Mijatovic, Jelena Andjelkovic - Grasar<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><li class=\"aitl-doc-item\" data-search=\"7 - the collapse of the hallstatt princely complexes (5th c. bc): invasion or implosion? in the northern alpine region, the end of the hallstatt princely complexes around 450-420 c. bc remains enigmatic today. unable to resolve this question, researchers generally suggest that the collapse of this culture was linked to a combination of internal and external problems. this suggestion is not wrong, but it conflates all possible causes without ultimately identifying any of them. this presentation proposes to compare the contexts and chronology of the destruction of the hallstatt princely complexes in the northern alpine region. indeed, most of them, such as la heuneburg (baden-wurttemberg, germany), vix (cote d&#039;or, france) and bourges (cher, france) show archaeological evidence of destruction by fire, with in some cases successive fires, as at la heuneburg (baden-wurttemberg, germany). others reveal statues broken into pieces, as at glauberg (germany), or with amputated heads, as at vix. my objective is to examine the archaeological evidence revealing the destruction of princely complexes and to compare the chronology and conditions of these destructions. from there, it should be possible to propose new hypotheses that will lead us either towards the presumption of wars of conquest or invasions, or towards internal destroys leading to the implosion of the hallstatt princely system.first author: sophie krauszkeywords:hallstatt princely complexesnorth-alpine region5th c. bcdestructionscollapseconflicts  sophie krausz oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=134921\">7 - The collapse of the Hallstatt princely complexes (5th c. BC): invasion or implosion?<\/a><div class=\"doc-datetime\">2026-08-29 &nbsp;|&nbsp; 14:30 - 14:45<\/div><div class=\"doc-speakers\">Sophie Krausz<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><li class=\"aitl-doc-item\" data-search=\"8 - monuments, memories and ritualsa case study of megalithic sites in some villages in kerala, india death being an ever present reality, people whether in the past or present have taken utmost care to bury their dead with rituals. megalithic building had occurred in times distant from our memory. oral traditions from the early historic phase have been used by archaeologists and historians in south india to argue that megalith-building was undertaken as part of a wider cult of the dead, especially of the heroes and have listed some rituals associated with the monuments. this paper does not intend to reject them. the author finds the early historic tamil poems to be of limited nature in comprehensively analyzing burial rituals. the magnificent presence of the monuments in their midst have definitely influenced people living around them. ethnographic data collected from people from people in megalithic sites show that memories of megalithic building could not be carried into the past. there are some traces of them, however. the same thing applies to rituals. hill tribes seem to have maintained some rituals, distinct from the more aryanised peoples in the plains although they too were not living in complete isolation. megalithic monuments in some places are regarded as cult spots, while in some other places they have evoked fear. on the other hand, people generally regard their ancestors\u2019 burial mounds in their house compounds with veneration. it implies that burial centres, removed from memory, have come to be feared and worshipped. cult of the dead itself is a legacy from cultures including that of the megaliths. colonial ethnographic reports suggest wider prevalence of burial among people. cremation, earlier practiced by the brahmins and the associated castes, is now slowly catching up among the other groups. an indepth analysis of burial rituals in villages in megalithic centres is attempted in this paper.first author: rajan koyukeywords:megalithic buildingcult of the deadethnographic datahill tribesaryanised peoplesburial rituals  rajan koyu oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=135486\">8 - Monuments, memories and ritualsA case study of megalithic sites in some villages in Kerala, India<\/a><div class=\"doc-datetime\">2026-08-27 &nbsp;|&nbsp; 12:15 - 12:30<\/div><div class=\"doc-speakers\">Rajan Koyu<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><li class=\"aitl-doc-item\" data-search=\"9 - in the crossfire of identity politics. the museo egizio between nationalism and cultural belonging in italy founded in 1824 to enhance the prestige of the ambitious ruling house of savoy, the museo egizio in turin embodies a paradox: a museum devoted to non-local antiquity, yet central to local civic identity. as the city\u2019s most visited cultural institution, the egizio has long served as a touchstone of civic pride, woven into narratives of uniqueness and belonging despite the extraneous origins of its collection. over the past decade, the institution has responded to the city\u2019s demographic transformation\u2014nearly 20% of turin\u2019s residents today hold foreign passports \u2014by advancing inclusivity initiatives that reaffirm its relevance within the global landscape of archaeological museums.the most visible of these efforts was the 2016 campaign \u201clucky those who speak arabic,\u201d which offered discounted admission to arabic speakers as a gesture of intercultural engagement. modest in scope, the initiative nonetheless triggered fierce political backlash and quickly became a recurring trope in nationalist rhetoric, shifting from a local controversy into national political discourse and media campaigns that framed the museum as a symbol of the erosion of \u201citalian identity.\u201d the episode propelled the museo egizio to the forefront of broader national debates over migration, heritage, and cultural identity in italy, where archaeological heritage has increasingly been mobilized in populist narratives opposing inclusionary practices in defense of so-called \u201cnational tradition\u201d.this paper examines how the museum has navigated this terrain over the past decade. drawing on media discourse, interviews with community stakeholders and institutional sources, it traces how inclusive programming became politicized, how these controversies shaped funding and outreach, and how the museum strategically pivoted toward initiatives less vulnerable to populist attack\u2014such as the 2023 &quot;museo egizio accessibile\u201d project, a comprehensive accessibility program for physical, sensory, and cognitive disabilities, funded through the eu recovery fund (pnrr).first author: costanza paolillokeywords:museo egizioitalysocial media conflictsarabic-speaking communities nationalismcultural belonging  costanza paolillo oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=133673\">9 - In the Crossfire of Identity Politics. The Museo Egizio Between Nationalism and Cultural Belonging in Italy<\/a><div class=\"doc-datetime\">2026-08-28 &nbsp;|&nbsp; 11:45 - 12:00<\/div><div class=\"doc-speakers\">Costanza Paolillo<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><li class=\"aitl-doc-item\" data-search=\"10 - new insights into ancient waterways and irrigation systems from the ishan hafudh survey region of southern iraq recent results from the ishan hafudh fieldwork (project rubab rural babylonia), situated within the &quot;heartland of cities&quot; coined by robert mcc. adams (1981) in southern iraq, will be presented. first, the current situation of ancient waterways and irrigation systems in such a multilayered landscape will be outlined. the focus will lie the ishan hafudh survey region in southern iraq (ca. 170 km to southeast of baghdad). new insights are gained through remote sensing (modern and historical satellite imagery) and ground truthing (canal sections, sampling). most of the current geo-archaeological research in mesopotamia is based heavily on 14c dating. this in turn may be influenced to an unknown degree by a hard-water effect (freshwater reservoir effect). therefore, the presentation will also include the most recent results gained from osl (optically stimulated luminescence) dating of soil samples. through this, in combination with archaeological and historical data from the region, a more nuanced picture of the situation within different periods of history can be gained. first author: bernhard schneiderco-authors: jaafar jotheri, ali al-gburikeywords:mesopotamiawaterwaysirrigationlandscapebabyloniasumer  jaafar jotheri, bernhard schneider, ali al-gburi oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=134289\">10 - New insights into ancient waterways and irrigation systems from the Ishan H\u00e2fudh survey region of Southern Iraq<\/a><div class=\"doc-datetime\">2026-08-27 &nbsp;|&nbsp; 11:45 - 12:00<\/div><div class=\"doc-speakers\">Jaafar Jotheri, Bernhard Schneider, Ali Al-Gburi<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><li class=\"aitl-doc-item\" data-search=\"11 - the springs of the iraqi western desert lasted for millennia and vanished within years the springs and oases associated with the abu jir lineament hold geological, cultural, and historical significance, situated at the intersection of the arabian desert and the mesopotamian floodplain. a linear series of sites linked to the springs dates back to the sasanian, islamic, and ottoman periods. they have served various purposes, including as defensive fortresses, residences, castles, and places of worship. the springs also supported agriculture through networks of canals and farms. remote-sensing technology has been utilised to map water springs, fortresses, and various archaeological features, including settlements, roads, irrigation systems, and farms. field trips are conducted for ground verification and site documentation, as well as interviews with residents, particularly older people, to gain insights into the community&#039;s recent history and changes over time. the results show that the strategic location of these springs has facilitated the emergence of communities that integrate and adapt to the diverse cultures of the desert bedouins and the urban population. the springs community is diverse in terms of tribal, professional, religious, and traditional aspects, enabling it to sustain harmonious relations with both distinct regions\u2014the desert and the floodplain. several notable landscape features associated with these springs have been documented, including fortresses built around them. communities often connected springs to increase water availability for irrigation. when establishing connections between springs was not feasible, qanat-style irrigation systems were constructed. secondary or tertiary canals branching from farms frequently form comb-like, parallel patterns, while long canals from springs to farms create broom-shaped layouts. springs could support either single or multiple farms, depending on capacity. following 2003, poor groundwater management and severe climate conditions led to the drying up of most springs and oases. as a result, farms were deserted, populations relocated, and the ancient irrigation systems that had been used for thousands of years were left behindfirst author: jaafar jotherikeywords:ancient irrgation systemcultural heritageoasesclimate changewater mamangment groundwater  jaafar jotheri oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=134288\">11 - The springs of the Iraqi western desert lasted for millennia and vanished within years<\/a><div class=\"doc-datetime\">2026-08-27 &nbsp;|&nbsp; 11:15 - 11:30<\/div><div class=\"doc-speakers\">Jaafar Jotheri<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><li class=\"aitl-doc-item\" data-search=\"14 - archaeological investigations at the te&#039;omim cave, jerusalem hills: quarrying, refuge, and cult from the middle bronze age to late antiquity te&#039;omim cave is a large karst cave located in the western jerusalem hills. the cave features a main hall approximately 50 \u00d7 70 meters, a deep vertical shaft, additional chambers and ramifications and a natural spring.recent surveys\u00a0and excavations documented archaeological remains spanning the neolithic to ottoman periods. three phases merit particular attention.the middle bronze age quarrying operation extracted over 200 m\u00b3 of flowstone for calcite-alabaster production. u-th dating indicates quarrying ceased before 1500 bce. this represents the first identified calcite-alabaster quarry in the southern levant. the discovery necessitates reconsideration of the provenance of alabaster vessels previously attributed to egyptian sources.evidence from the bar kokhba revolt (132-136 ce) includes three coin hoards, weapons, and pottery deposited in the cave&#039;s inner chambers by jewish insurgents. one hoard contains 83 silver coins restruck by the rebel administration. over 120 oil lamps from the late roman and early byzantine periods (late 2nd-4th centuries ce) were recovered from narrow crevices throughout the main chamber, particularly near a deep pit and spring. the deliberate placement of lamps in difficult-to-access locations suggests ritual deposition rather than utilitarian use. parallels from greco-roman sanctuaries and the cave&#039;s topographic features\u2014including a water source\u00a0and deep vertical shafts\u2014support interpretation as a cultic site, possibly associated with chthonic deities. the cave&#039;s arabic name and local fertility traditions may reflect continuity from late antique practices.first author: boaz zissukeywords:karst cavecalcite-alabaster quarryinglate roman cultritual depositionbar kokhba revoltjerusalem hills  boaz zissu oral\" data-type-ids=\"17675\"><a class=\"aitl-doc-title\" href=\"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/document-view?doc_id=133975\">14 - Archaeological Investigations at the Te&#039;omim Cave, Jerusalem Hills: Quarrying, Refuge, and Cult from the Middle Bronze Age to Late Antiquity<\/a><div class=\"doc-datetime\">2026-08-28 &nbsp;|&nbsp; 09:15 - 09:30<\/div><div class=\"doc-speakers\">Boaz Zissu<\/div><div class=\"doc-type-badges\"><span class=\"doc-type-badge\" style=\"background-color:#293179;color:#fff;\">Oral<\/span><\/div><\/li><\/ul><\/div><\/div><p class=\"aitl-doc-no-results aitl-doc-filter-empty\" id=\"aitl-root-doc-filter-empty\" style=\"display:none;\">No documents match the selected filters.<\/p><div class=\"aitl-doc-pagination\" id=\"aitl-doc-pagination\" data-total-pages=\"215\" data-current-page=\"1\"><button class=\"aitl-page-btn\" data-page=\"1\" disabled>&laquo; Prev<\/button><button class=\"aitl-page-btn aitl-page-active\" data-page=\"1\">1<\/button><button class=\"aitl-page-btn\" data-page=\"2\">2<\/button><button class=\"aitl-page-btn\" data-page=\"3\">3<\/button><span class=\"aitl-page-ellipsis\">&hellip;<\/span><button class=\"aitl-page-btn\" data-page=\"215\">215<\/button><button class=\"aitl-page-btn\" data-page=\"2\">Next &raquo;<\/button><span class=\"aitl-page-info\">Page 1 of 215<\/span><div class=\"aitl-doc-per-page-wrap\"><label for=\"aitl-doc-per-page\">Per page:<\/label><select id=\"aitl-doc-per-page\"><option value=\"5\">5<\/option><option value=\"10\" selected>10<\/option><option value=\"20\">20<\/option><option value=\"50\">50<\/option><\/select><\/div><\/div><\/div><\/div><style>\n        .aitl-folder-doc-grid { font-family: Arial, sans-serif; }\n\n        \/* Search + filter toolbar *\/\n        .aitl-doc-toolbar {\n            display: flex;\n            align-items: center;\n            gap: 12px;\n            flex-wrap: wrap;\n            margin-bottom: 24px;\n        }\n        .aitl-doc-search-wrap {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            flex: 1;\n            min-width: 200px;\n        }\n        .aitl-doc-search-wrap .aitl-doc-search-input {\n            flex: 1;\n            min-width: 0;\n            padding: 12px 16px;\n            border: 1px solid #d0d5dd;\n            border-radius: 8px;\n            font-size: 15px;\n            outline: none;\n        }\n        .aitl-doc-search-wrap .aitl-doc-search-input:focus {\n            border-color: #1e3a5f;\n        }\n        .aitl-doc-search-btn,\n        .aitl-doc-search-clear {\n            border: none;\n            border-radius: 8px;\n            cursor: pointer;\n            padding: 12px 16px;\n            font-size: 14px;\n            flex-shrink: 0;\n        }\n        .aitl-doc-search-btn {\n            background: #1e3a5f;\n            color: #fff;\n        }\n        .aitl-doc-search-btn:hover { opacity: 0.9; }\n        .aitl-doc-search-clear {\n            background: #eee;\n            color: #333;\n            font-size: 20px;\n            line-height: 1;\n            min-width: 44px;\n        }\n        .aitl-doc-search-clear:hover { background: #ddd; }\n        button.aitl-doc-open-filter {\n            background: transparent;\n            border: none;\n            color: #0073aa;\n            font-weight: 600;\n            font-size: 14px;\n            cursor: pointer;\n            display: inline-flex;\n            align-items: center;\n            gap: 6px;\n            padding: 8px 4px;\n        }\n        .aitl-doc-clear-filter-main {\n            background: transparent;\n            border: 1px solid #dc3545;\n            color: #dc3545;\n            padding: 7px 12px;\n            border-radius: 6px;\n            cursor: pointer;\n            font-size: 13px;\n        }\n\n        .aitl-doc-per-page-wrap label {\n            width: 180px;\n        }\n\n        \/* Inline search spinner (hidden \u2014 replaced by overlay) *\/\n        .aitl-doc-spinner { display: none; }\n\n        \/* Full overlay loader over the document list *\/\n        .aitl-doc-loader-overlay {\n            display: none;\n            position: absolute;\n            inset: 0;\n            background: rgba(255,255,255,0.75);\n            z-index: 99;\n            align-items: center;\n            justify-content: center;\n            border-radius: 8px;\n        }\n        .aitl-doc-loader-overlay.active { display: flex; }\n        .aitl-doc-loader-ring {\n            width: 48px;\n            height: 48px;\n            border: 4px solid #e0e0e0;\n            border-top-color: #0073aa;\n            border-radius: 50%;\n            animation: aitl-spin 0.7s linear infinite;\n        }\n        @keyframes aitl-spin { to { transform: rotate(360deg); } }\n\n        \/* No-results *\/\n        .aitl-doc-no-results { color: #888; font-size: 14px; padding: 10px 0; }\n\n        \/* Document section wrapper \u2014 needed for overlay positioning *\/\n        .aitl-section-documents { position: relative; min-height: 80px; }\n\n        \/* Folder grid \u2014 shown above the search bar, hidden during search\/filter *\/\n        .aitl-section-folders { margin-bottom: 32px; }\n        .folder-grid {\n            display: grid;\n            grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));\n            gap: 20px;\n            margin-top: 10px;\n        }\n        .folder-card {\n            text-decoration: none;\n            color: #222;\n            transition: transform 0.3s ease;\n        }\n        .folder-card:hover { transform: translateY(-4px); }\n        .folder-icon {\n            width: 100%;\n            height: 80px;\n            border-radius: 8px;\n            background: #5BC0EB;\n            position: relative;\n            box-shadow: 0 2px 6px rgba(0,0,0,0.15);\n        }\n        .folder-icon::before {\n            content: \"\";\n            position: absolute;\n            top: 0; left: 10px;\n            width: 40%; height: 15px;\n            background: rgba(255,255,255,0.3);\n            border-top-left-radius: 4px;\n            border-top-right-radius: 4px;\n        }\n        .folder-name { margin-top: 8px; font-size: 14px; font-weight: 600; word-wrap: break-word; }\n\n        \/* Document list *\/\n        .aitl-root-doc-list .aitl-doc-item { border-bottom: 1px solid #e8e8e8; padding: 15px 20px; list-style: none; }\n        .aitl-root-doc-list .doc-type-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }\n        .aitl-root-doc-list .doc-type-badge {\n            display: inline-block;\n            padding: 3px 10px;\n            border-radius: 4px;\n            font-size: 12px;\n            font-weight: 600;\n        }\n        button#aitl-root-doc-open-filter {\n            float: right;\n            background: #000;\n            color: #fff;\n            border-radius: 5px;\n            border-color: #000;\n            padding: .5rem 1rem;\n        }\n        .aitl-root-doc-list .aitl-doc-title {\n            display: block;\n            font-size: 16px;\n            font-weight: 700;\n            color: #111;\n            text-decoration: none;\n            margin-bottom: 4px;\n        }\n        .aitl-root-doc-list .doc-datetime { font-size: 13px; color: #888888; margin-bottom: 4px; }\n        .aitl-root-doc-list .doc-speakers{ font-size: 13px; color: #555; margin-top: 2px; }\n        .aitl-folder-doc-grid .filter-sidebar {\n            position: fixed; top: 0; right: -400px; width: 350px; max-width: 92vw;\n            height: 100vh; background: #fff; box-shadow: -2px 0 10px rgba(0,0,0,0.12);\n            z-index: 10001; transition: right 0.3s ease; overflow-y: auto;\n        }\n        .aitl-folder-doc-grid .filter-sidebar.active { right: 0; }\n        .aitl-folder-doc-grid .filter-backdrop {\n            position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 10000;\n            opacity: 0; visibility: hidden; transition: opacity 0.3s;\n        }\n        .aitl-folder-doc-grid .filter-backdrop.active { opacity: 1; visibility: visible; }\n        .aitl-folder-doc-grid .filter-header {\n            display: flex; justify-content: space-between; align-items: center;\n            padding: 16px 20px; border-bottom: 1px solid #eee; background: #f8f9fa;\n        }\n        .aitl-folder-doc-grid .filter-close-btn { background: none; border: none; font-size: 28px; cursor: pointer; }\n        .aitl-folder-doc-grid .filter-sidebar .filter-group,\n        .aitl-doc-filter-sidebar .filter-group {\n            margin-bottom: 10px; border-bottom: 1px solid #e0e0e0; overflow: hidden;\n        }\n        .aitl-folder-doc-grid .filter-sidebar .group-title,\n        .aitl-doc-filter-sidebar .group-title {\n            background: #f5f5f5; padding: 10px 15px; margin: 0; cursor: pointer;\n            display: flex; justify-content: space-between; align-items: center;\n            font-weight: 600; font-size: 14px; color: #333; user-select: none;\n            transition: background-color 0.2s;\n        }\n        .aitl-folder-doc-grid .filter-sidebar .group-title:hover,\n        .aitl-doc-filter-sidebar .group-title:hover { background: #eee; }\n        .aitl-folder-doc-grid .filter-sidebar .toggle-icon,\n        .aitl-doc-filter-sidebar .toggle-icon {\n            font-size: 12px; color: #666; transition: transform 0.3s;\n        }\n        .aitl-folder-doc-grid .filter-sidebar .group-title.collapsed .toggle-icon,\n        .aitl-doc-filter-sidebar .group-title.collapsed .toggle-icon {\n            transform: rotate(-90deg);\n        }\n        .aitl-folder-doc-grid .filter-sidebar .filter-checkbox-list,\n        .aitl-doc-filter-sidebar .filter-checkbox-list {\n            list-style: none; margin: 0; padding: 10px 15px;\n            max-height: 500px; opacity: 1; overflow-y: auto;\n            transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;\n        }\n        .aitl-folder-doc-grid .filter-sidebar .filter-checkbox-list.collapsed,\n        .aitl-doc-filter-sidebar .filter-checkbox-list.collapsed {\n            max-height: 0; padding: 0 15px; opacity: 0; overflow: hidden;\n        }\n        .aitl-folder-doc-grid .filter-checkbox-list label { display: flex; align-items: center; cursor: pointer; }\n        .aitl-folder-doc-grid .filter-checkbox-list input[type=\"checkbox\"] {\n            width: 20px; height: 20px; margin-right: 12px; -webkit-appearance: none; appearance: none;\n            border: 2px solid #333; border-radius: 2px; position: relative; cursor: pointer;\n        }\n        .aitl-folder-doc-grid .filter-checkbox-list input[type=\"checkbox\"]:checked {\n            background: var(--checkbox-color, #0073aa); border-color: var(--checkbox-color, #0073aa);\n        }\n        .aitl-folder-doc-grid .filter-checkbox-list input[type=\"checkbox\"]:checked::after {\n            content: \"\u2713\"; position: absolute; top: 50%; left: 50%;\n            transform: translate(-50%, -50%); color: #fff; font-size: 12px; font-weight: bold;\n        }\n        .aitl-folder-doc-grid button.aitl-doc-apply-filter {\n            width: 100%; background: #0073aa; color: #fff; border: none; padding: 12px;\n            border-radius: 6px; font-size: 16px; font-weight: 600; cursor: pointer;\n        }\n        .doc-filter-tag-swatch {\n            display: inline-block; padding: 2px 8px; border-radius: 4px;\n            font-size: 13px; font-weight: 600;\n        }\n\n        \/* Pagination *\/\n        .aitl-doc-pagination {\n            display: flex; align-items: center; flex-wrap: wrap;\n            gap: 6px; margin-top: 24px; padding-top: 16px;\n            border-top: 1px solid #e8e8e8;\n        }\n        .aitl-doc-per-page-wrap {\n            display: flex; align-items: center; gap: 6px;\n            font-size: 14px; color: #555; margin-left: auto;\n        }\n        .aitl-doc-per-page-wrap select {\n            padding: 6px 10px; border: 1px solid #ccd3db; border-radius: 6px;\n            font-size: 14px; cursor: pointer; outline: none;\n        }\n        .aitl-page-btn {\n            padding: 6px 12px; border: 1px solid #ccd3db; background: #fff;\n            border-radius: 6px; cursor: pointer; font-size: 14px; color: #333;\n            transition: background 0.2s, color 0.2s;\n        }\n        .aitl-page-btn:hover:not(:disabled) { background: #0073aa; color: #fff; border-color: #0073aa; }\n        .aitl-page-btn.aitl-page-active { background: #0073aa; color: #fff; border-color: #0073aa; font-weight: 700; }\n        .aitl-page-btn:disabled { opacity: 0.4; cursor: default; }\n        .aitl-page-ellipsis { padding: 6px 4px; font-size: 14px; color: #888; }\n        .aitl-page-info { margin-left: 8px; font-size: 13px; color: #888; }\n\n        \/* Document bookmark (same pattern as schedule) *\/\n        .aitl-doc-item {\n            position: relative;\n            padding-right: 48px !important;\n        }\n        .aitl-doc-item .doc-favourite_icon {\n            position: absolute;\n            top: 10px;\n            right: 10px;\n            cursor: pointer;\n            font-size: 1.25rem;\n            color: #999;\n            z-index: 2;\n            min-width: 28px;\n            min-height: 28px;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            gap: 2px;\n        }\n        .aitl-doc-item .doc-favourite_icon:hover i { color: #2C3578; }\n        .aitl-doc-item .doc-favourite_icon.favourited i,\n        .aitl-doc-item .doc-favourite_icon i.active,\n        .aitl-doc-item .doc-favourite_icon i.fa-solid {\n            color: #2C3578 !important;\n            font-weight: 900;\n        }\n        .aitl-doc-item .doc-favourite_icon.loading i { opacity: 0; }\n        .aitl-doc-item .doc-fav-added-label { display: none !important; }\n        .aitl-doc-item .doc-fav-loader {\n            display: none;\n            width: 16px;\n            height: 16px;\n            border: 2px solid #ddd;\n            border-top-color: #0073aa;\n            border-radius: 50%;\n            animation: aitl-doc-fav-spin 0.7s linear infinite;\n            position: absolute;\n        }\n        .aitl-doc-item .doc-favourite_icon.loading .doc-fav-loader { display: block; }\n        @keyframes aitl-doc-fav-spin { to { transform: rotate(360deg); } }\n    <\/style><script>\n    (function () {\n        var input        = document.getElementById(\"aitl-doc-search\");\n        var searchBtn    = document.getElementById(\"aitl-doc-search-btn\");\n        var clearBtn     = document.getElementById(\"aitl-doc-search-clear\");\n        var spinner      = document.getElementById(\"aitl-doc-spinner\");\n        var perPageSel   = document.getElementById(\"aitl-doc-per-page\");\n        var foldersWrap  = document.getElementById(\"aitl-section-folders\");\n        var foldersEl    = document.getElementById(\"aitl-folders-container\");\n        var docsEl       = document.getElementById(\"aitl-documents-container\");\n        var emptyMsg     = document.getElementById(\"aitl-root-doc-filter-empty\");\n        var paginationEl = document.getElementById(\"aitl-doc-pagination\");\n        var ajaxUrl      = \"https:\\\/\\\/allintheloop.com\\\/eaa-annual-meeting-26\\\/wp-admin\\\/admin-ajax.php\";\n        var initialReady = true;\n        var timer;\n        var selectedTypeIds = [];\n        var currentPage = 1;\n\n        \/\/ \u2500\u2500 localStorage cache for document root page 1 (7-min TTL) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        var RDOC_LC_KEY    = \"ssp_rdoc_list_v1\";\n        var RDOC_LC_TTL_MS = 7 * 60 * 1000;\n\n        function rdocLcSave(docsHtml, foldersHtml, totalPages, currentPageNum, hasFolders) {\n            try {\n                localStorage.setItem(RDOC_LC_KEY, JSON.stringify({\n                    savedAt: Date.now(), docsHtml: docsHtml,\n                    foldersHtml: foldersHtml, totalPages: totalPages,\n                    currentPage: currentPageNum, hasFolders: hasFolders\n                }));\n            } catch(e) {}\n        }\n        function rdocLcRestore() {\n            try {\n                var raw = localStorage.getItem(RDOC_LC_KEY);\n                if (!raw) return null;\n                var obj = JSON.parse(raw);\n                if (!obj || !obj.savedAt || !obj.docsHtml) return null;\n                if (Date.now() - obj.savedAt >= RDOC_LC_TTL_MS) {\n                    localStorage.removeItem(RDOC_LC_KEY);\n                    return null;\n                }\n                return obj;\n            } catch(e) { return null; }\n        }\n        \/\/ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n        function updateSearchClearBtn() {\n            if (!clearBtn || !input) return;\n            clearBtn.style.display = input.value.trim().length > 0 ? \"\" : \"none\";\n        }\n\n        function showLoader() {\n            var overlay = document.getElementById(\"aitl-doc-loader-overlay\");\n            if (overlay) overlay.classList.add(\"active\");\n        }\n        function hideLoader() {\n            var overlay = document.getElementById(\"aitl-doc-loader-overlay\");\n            if (overlay) overlay.classList.remove(\"active\");\n        }\n\n        function getPerPage() {\n            return perPageSel ? parseInt(perPageSel.value, 10) : 10;\n        }\n\n        function updateClearButtons() {\n            var has      = selectedTypeIds.length > 0;\n            var clearMain = document.getElementById(\"aitl-root-doc-clear-filter\");\n            var clearBar  = document.querySelector(\".aitl-folder-doc-grid .filter-clear-bar\");\n            if (clearMain) clearMain.style.display = has ? \"\" : \"none\";\n            if (clearBar)  clearBar.style.display  = has ? \"\" : \"none\";\n        }\n\n        function readCheckboxes() {\n            selectedTypeIds = [];\n            document.querySelectorAll(\".aitl-folder-doc-grid .aitl-doc-filter-checkbox:checked\").forEach(function (cb) {\n                selectedTypeIds.push(cb.value);\n            });\n        }\n\n        function toggleEmptyMsg() {\n            if (!emptyMsg || !docsEl) return;\n            var hasItems  = docsEl.querySelector(\".aitl-doc-item\");\n            var noResults = docsEl.querySelector(\".aitl-doc-no-results\");\n            emptyMsg.style.display = (!hasItems && !noResults) ? \"\" : \"none\";\n        }\n\n        function renderPagination(current, total) {\n            if (!paginationEl) return;\n            paginationEl.setAttribute(\"data-current-page\", current);\n            paginationEl.setAttribute(\"data-total-pages\", total);\n\n            var perPageWrap = paginationEl.querySelector(\".aitl-doc-per-page-wrap\");\n\n            if (total <= 1) {\n                paginationEl.innerHTML = \"\";\n                if (perPageWrap) paginationEl.appendChild(perPageWrap);\n                return;\n            }\n\n            var html = \"\";\n            html += \"<button class=\\\"aitl-page-btn\\\" data-page=\\\"\" + (current > 1 ? current - 1 : 1) + \"\\\"\" + (current <= 1 ? \" disabled\" : \"\") + \">&laquo; Prev<\/button>\";\n\n            var start = Math.max(1, current - 2);\n            var end   = Math.min(total, current + 2);\n            if (start > 1) {\n                html += \"<button class=\\\"aitl-page-btn\\\" data-page=\\\"1\\\">1<\/button>\";\n                if (start > 2) html += \"<span class=\\\"aitl-page-ellipsis\\\">&hellip;<\/span>\";\n            }\n            for (var i = start; i <= end; i++) {\n                html += \"<button class=\\\"aitl-page-btn\" + (i === current ? \" aitl-page-active\" : \"\") + \"\\\" data-page=\\\"\" + i + \"\\\">\" + i + \"<\/button>\";\n            }\n            if (end < total) {\n                if (end < total - 1) html += \"<span class=\\\"aitl-page-ellipsis\\\">&hellip;<\/span>\";\n                html += \"<button class=\\\"aitl-page-btn\\\" data-page=\\\"\" + total + \"\\\">\" + total + \"<\/button>\";\n            }\n            html += \"<button class=\\\"aitl-page-btn\\\" data-page=\\\"\" + (current < total ? current + 1 : total) + \"\\\"\" + (current >= total ? \" disabled\" : \"\") + \">Next &raquo;<\/button>\";\n            html += \"<span class=\\\"aitl-page-info\\\">Page \" + current + \" of \" + total + \"<\/span>\";\n\n            paginationEl.innerHTML = html;\n            if (perPageWrap) paginationEl.appendChild(perPageWrap);\n\n            paginationEl.querySelectorAll(\".aitl-page-btn:not(:disabled)\").forEach(function (btn) {\n                btn.addEventListener(\"click\", function () {\n                    var page = parseInt(this.getAttribute(\"data-page\"), 10);\n                    if (page !== currentPage) {\n                        currentPage = page;\n                        loadDocuments();\n                    }\n                });\n            });\n        }\n\n        function openFilter() {\n            var sidebar  = document.getElementById(\"aitl-root-doc-filter-sidebar\");\n            var backdrop = document.querySelector(\".aitl-folder-doc-grid .aitl-doc-filter-backdrop\");\n            if (sidebar)  sidebar.classList.add(\"active\");\n            if (backdrop) backdrop.classList.add(\"active\");\n            document.body.style.overflow = \"hidden\";\n        }\n\n        function closeFilter() {\n            var sidebar  = document.getElementById(\"aitl-root-doc-filter-sidebar\");\n            var backdrop = document.querySelector(\".aitl-folder-doc-grid .aitl-doc-filter-backdrop\");\n            if (sidebar)  sidebar.classList.remove(\"active\");\n            if (backdrop) backdrop.classList.remove(\"active\");\n            document.body.style.overflow = \"\";\n        }\n\n        function clearFilters() {\n            document.querySelectorAll(\".aitl-folder-doc-grid .aitl-doc-filter-checkbox:checked\").forEach(function (cb) {\n                cb.checked = false;\n            });\n            selectedTypeIds = [];\n            updateClearButtons();\n            currentPage = 1;\n            loadDocuments();\n        }\n\n        if (input) {\n            input.addEventListener(\"input\", function () {\n                updateSearchClearBtn();\n                clearTimeout(timer);\n                currentPage = 1;\n                timer = setTimeout(loadDocuments, 350);\n            });\n            input.addEventListener(\"keydown\", function (e) {\n                if (e.key === \"Enter\") {\n                    e.preventDefault();\n                    clearTimeout(timer);\n                    currentPage = 1;\n                    loadDocuments();\n                }\n            });\n            updateSearchClearBtn();\n        }\n\n        if (searchBtn) {\n            searchBtn.addEventListener(\"click\", function () {\n                clearTimeout(timer);\n                currentPage = 1;\n                loadDocuments();\n            });\n        }\n\n        if (clearBtn) {\n            clearBtn.addEventListener(\"click\", function () {\n                if (!input) return;\n                input.value = \"\";\n                updateSearchClearBtn();\n                clearTimeout(timer);\n                currentPage = 1;\n                loadDocuments();\n                input.focus();\n            });\n        }\n\n        if (perPageSel) {\n            perPageSel.addEventListener(\"change\", function () {\n                currentPage = 1;\n                loadDocuments();\n            });\n        }\n\n        function loadDocuments(opts) {\n            opts = opts || {};\n            var silent = !!opts.silent;\n            if (!silent) showLoader();\n            var keyword  = input ? input.value.trim() : \"\";\n            var isFilter = selectedTypeIds.join(\",\");\n            var _isDefaultDocLoad = (keyword === \"\" && !isFilter && currentPage === 1);\n            var body = new FormData();\n            body.append(\"action\",   \"aitl_doc_search\");\n            body.append(\"keyword\",  keyword);\n            body.append(\"page_no\",  currentPage);\n            body.append(\"per_page\", getPerPage());\n            if (isFilter) body.append(\"is_filter\", isFilter);\n\n            fetch(ajaxUrl, { method: \"POST\", body: body })\n                .then(function (r) { return r.json(); })\n                .then(function (json) {\n                    if (!silent) hideLoader();\n                    if (!json.success) return;\n                    var d = json.data;\n\n                    if (docsEl) docsEl.innerHTML = d.documents_html;\n\n                    \/\/ Always keep folders visible when the API returns them.\n                    if (foldersEl && d.folders_html) {\n                        foldersEl.innerHTML = d.folders_html;\n                    }\n                    if (foldersWrap) {\n                        foldersWrap.style.display = d.has_folders ? \"\" : \"none\";\n                    }\n\n                    \/\/ If server says no docs and page > 1, go to last real page.\n                    if (!d.has_documents && d.current_page > 1) {\n                        currentPage = d.total_pages;\n                        loadDocuments();\n                        return;\n                    }\n\n                    toggleEmptyMsg();\n                    updateClearButtons();\n                    renderPagination(d.current_page, d.total_pages);\n                    \/\/ Save default view to localStorage for instant restore on revisit.\n                    if (_isDefaultDocLoad) {\n                        rdocLcSave(d.documents_html, d.folders_html || \"\", d.total_pages, d.current_page || 1, !!d.has_folders);\n                    }\n                    if (typeof window.aitlSyncDocFavourites === \"function\") {\n                        window.aitlSyncDocFavourites(true);\n                    }\n                    if (!silent) {\n                        window.scrollTo({ top: 0, behavior: \"smooth\" });\n                    }\n                })\n                .catch(function () {\n                    if (!silent) hideLoader();\n                });\n        }\n\n        function initFilterGroupToggles() {\n            var sidebars = document.querySelectorAll(\".aitl-doc-filter-sidebar\");\n            if (!sidebars.length) return;\n\n            sidebars.forEach(function (sidebar) {\n                sidebar.querySelectorAll(\".filter-checkbox-list\").forEach(function (list) {\n                    list.classList.add(\"collapsed\");\n                });\n                sidebar.querySelectorAll(\".group-title\").forEach(function (title) {\n                    title.classList.add(\"collapsed\");\n                });\n\n                var firstGroup = sidebar.querySelector(\".filter-group\");\n                if (firstGroup) {\n                    var firstTitle = firstGroup.querySelector(\".group-title\");\n                    var firstList  = firstGroup.querySelector(\".filter-checkbox-list\");\n                    if (firstTitle) firstTitle.classList.remove(\"collapsed\");\n                    if (firstList)  firstList.classList.remove(\"collapsed\");\n                }\n\n                sidebar.querySelectorAll(\".group-title\").forEach(function (title) {\n                    if (title.dataset.toggleBound === \"1\") return;\n                    title.dataset.toggleBound = \"1\";\n                    title.addEventListener(\"click\", function () {\n                        var list = this.nextElementSibling;\n                        if (!list || !list.classList.contains(\"filter-checkbox-list\")) return;\n                        var collapsed = this.classList.toggle(\"collapsed\");\n                        list.classList.toggle(\"collapsed\", collapsed);\n                    });\n                });\n            });\n        }\n\n        initFilterGroupToggles();\n\n        var openBtn = document.getElementById(\"aitl-root-doc-open-filter\");\n        if (openBtn) openBtn.addEventListener(\"click\", openFilter);\n\n        document.querySelectorAll(\".aitl-folder-doc-grid .aitl-doc-filter-backdrop, .aitl-folder-doc-grid .filter-close-btn\").forEach(function (el) {\n            el.addEventListener(\"click\", closeFilter);\n        });\n\n        document.querySelectorAll(\".aitl-folder-doc-grid .aitl-doc-apply-filter\").forEach(function (btn) {\n            btn.addEventListener(\"click\", function () {\n                readCheckboxes();\n                updateClearButtons();\n                currentPage = 1;\n                loadDocuments();\n                closeFilter();\n            });\n        });\n\n        document.querySelectorAll(\".aitl-folder-doc-grid .clear-filter-btn\").forEach(function (btn) {\n            btn.addEventListener(\"click\", function () { clearFilters(); closeFilter(); });\n        });\n\n        var clearMain = document.getElementById(\"aitl-root-doc-clear-filter\");\n        if (clearMain) clearMain.addEventListener(\"click\", clearFilters);\n\n        \/\/ Wire up initial pagination buttons\n        if (paginationEl) {\n            paginationEl.querySelectorAll(\".aitl-page-btn:not(:disabled)\").forEach(function (btn) {\n                btn.addEventListener(\"click\", function () {\n                    var page = parseInt(this.getAttribute(\"data-page\"), 10);\n                    if (page !== currentPage) {\n                        currentPage = page;\n                        loadDocuments();\n                    }\n                });\n            });\n        }\n\n        updateClearButtons();\n\n        if (initialReady) {\n            hideLoader();\n            if (typeof window.aitlSyncDocFavourites === \"function\") {\n                window.aitlSyncDocFavourites(true);\n            }\n        } else {\n            \/\/ Try localStorage before making an AJAX call.\n            var _rdocCached = rdocLcRestore();\n            if (_rdocCached && _rdocCached.docsHtml) {\n                if (docsEl) docsEl.innerHTML = _rdocCached.docsHtml;\n                if (foldersEl && _rdocCached.foldersHtml) foldersEl.innerHTML = _rdocCached.foldersHtml;\n                if (foldersWrap) foldersWrap.style.display = _rdocCached.hasFolders ? \"\" : \"none\";\n                renderPagination(_rdocCached.currentPage || 1, _rdocCached.totalPages || 1);\n                toggleEmptyMsg();\n                hideLoader();\n                if (typeof window.aitlSyncDocFavourites === \"function\") {\n                    window.aitlSyncDocFavourites(false);\n                }\n                \/\/ Refresh in background so concurrent users warm shared server cache.\n                setTimeout(function () { loadDocuments({ silent: true }); }, 50);\n            } else {\n                \/\/ Cache miss \u2014 fire list + corpus warm together (single-flight on server).\n                try {\n                    var warmBody = new FormData();\n                    warmBody.append(\"action\", \"aitl_doc_warm_corpus\");\n                    fetch(ajaxUrl, { method: \"POST\", body: warmBody, keepalive: true }).catch(function () {});\n                } catch (e) {}\n                loadDocuments();\n            }\n        }\n    })();\n    <\/script><script>\n    (function bootAitlDocFav(attempt) {\n        if (typeof jQuery === \"undefined\") {\n            if (attempt < 50) setTimeout(function () { bootAitlDocFav(attempt + 1); }, 100);\n            return;\n        }\n        jQuery(function ($) {\n        if (window.aitlDocBookmarkHandlerActive) return;\n        window.aitlDocBookmarkHandlerActive = true;\n\n        function ensureToastContainer() {\n            var $c = $(\"#agenda-toast-container\");\n            if (!$c.length) {\n                $c = $(\"<div id=\\\"agenda-toast-container\\\"><\/div>\");\n                $(\"body\").append($c);\n            }\n            $c.css({\n                display: \"block\",\n                position: \"fixed\",\n                top: \"70px\",\n                left: \"50%\",\n                transform: \"translateX(-50%)\",\n                zIndex: 99999,\n                textAlign: \"center\",\n                width: \"100%\",\n                maxWidth: \"420px\",\n                pointerEvents: \"none\"\n            });\n            return $c;\n        }\n\n        function showDocFavToast(type, text) {\n            var $c = ensureToastContainer();\n            var bg = (type === \"success\") ? \"#28a745\" : \"#dc3545\";\n            var $msg = $(\"<div class=\\\"agenda-toast\\\"><\/div>\").text(text).css({\n                display: \"block\",\n                margin: \"10px auto\",\n                padding: \"12px 20px\",\n                borderRadius: \"8px\",\n                fontWeight: \"600\",\n                color: \"#fff\",\n                backgroundColor: bg,\n                boxShadow: \"0 4px 12px rgba(0,0,0,0.15)\"\n            });\n            $c.append($msg);\n            $msg.fadeIn(150).delay(2500).fadeOut(400, function () { $(this).remove(); });\n        }\n\n        function setDocFavouriteState(icon, isOn) {\n            var $icon = $(icon);\n            var $i = $icon.find(\"i\").first();\n            if (!$i.length) {\n                $i = $(\"<i><\/i>\");\n                $icon.prepend($i);\n            }\n            if (isOn) {\n                $icon.addClass(\"favourited\");\n                $i.attr(\"class\", \"fas fa-solid fa-bookmark active\");\n                $icon.attr(\"title\", \"Remove from favourites\");\n                $icon.attr(\"aria-label\", \"Remove bookmark\");\n            } else {\n                $icon.removeClass(\"favourited\");\n                $i.attr(\"class\", \"far fa-regular fa-bookmark\");\n                $icon.attr(\"title\", \"Add to favourites\");\n                $icon.attr(\"aria-label\", \"Bookmark document\");\n            }\n        }\n\n        function isDocFavourited(icon) {\n            var $icon = $(icon);\n            if ($icon.hasClass(\"favourited\")) return true;\n            var $i = $icon.find(\"i\").first();\n            return $i.hasClass(\"fa-solid\") || $i.hasClass(\"active\");\n        }\n\n        \/\/ Sync bookmark icons with live API state (covers mobile app save\/unsave).\n        var favSyncInFlight = false;\n        var lastFavSyncAt = 0;\n        var lastFavIdSignature = \"\";\n        var localFavIdSet = null; \/\/ optimistic set used until next confirmed sync\n        var recentToggleUntil = 0; \/\/ ignore stale sync briefly after a local toggle\n\n        function getLocalFavIdSet() {\n            if (localFavIdSet) return localFavIdSet;\n            localFavIdSet = {};\n            $(\".doc-favourite_icon\").each(function () {\n                var id = String($(this).attr(\"data-document_id\") || \"\");\n                if (id && isDocFavourited(this)) localFavIdSet[id] = true;\n            });\n            return localFavIdSet;\n        }\n\n        function patchLocalDocFavouriteId(documentId, isOn) {\n            documentId = String(documentId || \"\");\n            if (!documentId) return;\n            var set = getLocalFavIdSet();\n            if (isOn) set[documentId] = true;\n            else delete set[documentId];\n            localFavIdSet = set;\n            lastFavIdSignature = Object.keys(set).sort().join(\",\");\n            recentToggleUntil = Date.now() + 5000;\n        }\n        window.aitlPatchDocFavouriteId = patchLocalDocFavouriteId;\n\n        \/\/ Paint bookmark icons from a known ID set (no AJAX). Used after list HTML\n        \/\/ is replaced by search\/pagination so favourites are not wiped.\n        function applyFavIdSet(idSet) {\n            if (!idSet) return;\n            $(\".doc-favourite_icon\").each(function () {\n                var $icon = $(this);\n                if ($icon.attr(\"data-busy\") === \"1\") return;\n                var docId = String($icon.attr(\"data-document_id\") || \"\");\n                if (!docId) return;\n                var shouldBeOn = !!idSet[docId];\n                if (isDocFavourited($icon) !== shouldBeOn) {\n                    setDocFavouriteState($icon, shouldBeOn);\n                }\n                if (!shouldBeOn && $icon.closest(\"#fav-documents\").length) {\n                    $icon.closest(\".aitl-doc-item, li, .fav-doc-row\").first().remove();\n                }\n            });\n        }\n\n        function syncDocFavouritesFromServer(force) {\n            var now = Date.now();\n\n            \/\/ After list AJAX replaces HTML, always re-paint from the last known set\n            \/\/ even if we skip a new network fetch (avoids empty bookmarks).\n            if (localFavIdSet) {\n                applyFavIdSet(localFavIdSet);\n            }\n\n            \/\/ Throttle network fetches only when we already have a known ID set.\n            \/\/ First load (localFavIdSet still null) must always fetch.\n            var minGap = force ? 5000 : 30000;\n            if (localFavIdSet && (now - lastFavSyncAt < minGap)) return;\n            if (favSyncInFlight) return;\n            \/\/ Do not overwrite icons right after a local save\/unsave while API may lag.\n            if (now < recentToggleUntil && !force) return;\n\n            var $probe = $(\".doc-favourite_icon\").first();\n            if (!$probe.length) return;\n\n            var userId = $probe.attr(\"data-user_id\") || \"\";\n            var eventId = $probe.attr(\"data-event_id\") || \"\";\n            if (!userId) return;\n\n            lastFavSyncAt = now;\n            var ajaxUrl = (typeof favorite_ajax !== \"undefined\" && favorite_ajax.ajax_url) ? favorite_ajax.ajax_url : \"https:\\\/\\\/allintheloop.com\\\/eaa-annual-meeting-26\\\/wp-admin\\\/admin-ajax.php\";\n            var nonce   = (typeof favorite_ajax !== \"undefined\" && favorite_ajax.nonce) ? favorite_ajax.nonce : \"fe028afd86\";\n\n            favSyncInFlight = true;\n            $.ajax({\n                type: \"POST\",\n                url: ajaxUrl,\n                dataType: \"json\",\n                timeout: 15000,\n                cache: false,\n                data: {\n                    action: \"aitl_doc_favourite_ids\",\n                    nonce: nonce,\n                    event_id: eventId,\n                    user_id: userId,\n                    _ts: Date.now()\n                }\n            }).done(function (response) {\n                \/\/ Only apply when API fetch succeeded \u2014 never clear icons on error\/empty failure.\n                if (!response || !response.success || !response.data || response.data.ok !== true) return;\n                \/\/ Still within post-toggle grace: keep optimistic local state.\n                if (Date.now() < recentToggleUntil) return;\n\n                var ids = response.data.favourite_ids || [];\n                var idSet = {};\n                for (var i = 0; i < ids.length; i++) {\n                    idSet[String(ids[i])] = true;\n                }\n                var signature = ids.slice().map(String).sort().join(\",\");\n                \/\/ Only treat as \"changed\" after we already have a baseline (avoids reload loop).\n                var changed = (lastFavIdSignature !== \"\" && signature !== lastFavIdSignature);\n                lastFavIdSignature = signature;\n                localFavIdSet = idSet;\n\n                applyFavIdSet(idSet);\n\n                var $favDocs = $(\"#fav-documents\");\n                if ($favDocs.length) {\n                    \/\/ App added\/removed favourites while this page was open \u2014 refresh list.\n                    if (changed) {\n                        window.location.reload();\n                        return;\n                    }\n                    if (!$favDocs.find(\".doc-favourite_icon\").length && !$favDocs.find(\".fav-empty-msg\").length) {\n                        $favDocs.find(\".agenda-documents, .aitl-root-doc-list, ul\").remove();\n                        if (!$favDocs.find(\".fav-empty-msg\").length) {\n                            $favDocs.append(\"<p class=\\\"fav-empty-msg\\\">No favourite abstracts &amp; e-posters yet.<\/p>\");\n                        }\n                    }\n                }\n            }).always(function () {\n                favSyncInFlight = false;\n            });\n        }\n        window.aitlSyncDocFavourites = syncDocFavouritesFromServer;\n\n        \/\/ Sync once on load \/ bfcache restore \/ tab becomes visible again.\n        \/\/ No setInterval and no window \"focus\" polling \u2014 those caused continuous\n        \/\/ aitl_doc_favourite_ids calls (especially with DevTools open).\n        $(window).on(\"pageshow.aitlDocFavSync\", function () {\n            syncDocFavouritesFromServer(true);\n        });\n        document.addEventListener(\"visibilitychange\", function () {\n            if (document.visibilityState === \"visible\") {\n                syncDocFavouritesFromServer(true);\n            }\n        });\n        setTimeout(function () { syncDocFavouritesFromServer(true); }, 400);\n\n        $(document).off(\"click.aitlDocFav\", \".doc-favourite_icon\").on(\"click.aitlDocFav\", \".doc-favourite_icon\", function (e) {\n            e.preventDefault();\n            e.stopPropagation();\n\n            var icon = $(this);\n            if (icon.attr(\"data-busy\") === \"1\") return;\n\n            var documentId = String(icon.attr(\"data-document_id\") || \"\");\n            var eventId    = icon.attr(\"data-event_id\") || \"\";\n            var userId     = icon.attr(\"data-user_id\") || \"\";\n            if (!documentId) return;\n            if (!userId) {\n                showDocFavToast(\"error\", \"Please log in to bookmark documents.\");\n                return;\n            }\n\n            var ajaxUrl = (typeof favorite_ajax !== \"undefined\" && favorite_ajax.ajax_url) ? favorite_ajax.ajax_url : \"https:\\\/\\\/allintheloop.com\\\/eaa-annual-meeting-26\\\/wp-admin\\\/admin-ajax.php\";\n            var nonce   = (typeof favorite_ajax !== \"undefined\" && favorite_ajax.nonce) ? favorite_ajax.nonce : \"fe028afd86\";\n            var wasFavourited = isDocFavourited(icon);\n            var willFavourite = !wasFavourited;\n            var actionType    = wasFavourited ? \"unfavourite\" : \"favourite\";\n\n            icon.attr(\"data-busy\", \"1\");\n            icon.addClass(\"loading\");\n            setDocFavouriteState(icon, willFavourite);\n            patchLocalDocFavouriteId(documentId, willFavourite);\n\n            $.ajax({\n                type: \"POST\",\n                url: ajaxUrl,\n                dataType: \"json\",\n                timeout: 20000,\n                data: {\n                    action: \"aitl_doc_favourite\",\n                    nonce: nonce,\n                    document_id: documentId,\n                    event_id: eventId,\n                    user_id: userId,\n                    fav_action: actionType\n                }\n            }).done(function (response) {\n                if (response && response.success) {\n                    var apiIsFavourite = response.data && response.data.is_favourite;\n                    var newState = (apiIsFavourite === true || apiIsFavourite === 1 || apiIsFavourite === \"1\") ? true\n                        : (apiIsFavourite === false || apiIsFavourite === 0 || apiIsFavourite === \"0\") ? false\n                        : willFavourite;\n                    setDocFavouriteState(icon, newState);\n                    patchLocalDocFavouriteId(documentId, newState);\n                    showDocFavToast(\"success\", newState ? \"Added to favourites\" : \"Removed from favourites\");\n                } else {\n                    setDocFavouriteState(icon, wasFavourited);\n                    patchLocalDocFavouriteId(documentId, wasFavourited);\n                    var msg = (response && response.data && response.data.message) ? response.data.message : \"Failed to update bookmark.\";\n                    showDocFavToast(\"error\", msg);\n                }\n            }).fail(function (xhr) {\n                setDocFavouriteState(icon, wasFavourited);\n                patchLocalDocFavouriteId(documentId, wasFavourited);\n                var msg = \"Request failed. Please try again.\";\n                if (xhr && xhr.responseJSON && xhr.responseJSON.data && xhr.responseJSON.data.message) {\n                    msg = xhr.responseJSON.data.message;\n                }\n                showDocFavToast(\"error\", msg);\n            }).always(function () {\n                icon.removeClass(\"loading\");\n                icon.attr(\"data-busy\", \"0\");\n            });\n        });\n        });\n    })(0);\n    <\/script><\/div>\n\t\t\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":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-698","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/wp-json\/wp\/v2\/pages\/698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/wp-json\/wp\/v2\/comments?post=698"}],"version-history":[{"count":13,"href":"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/wp-json\/wp\/v2\/pages\/698\/revisions"}],"predecessor-version":[{"id":1272,"href":"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/wp-json\/wp\/v2\/pages\/698\/revisions\/1272"}],"wp:attachment":[{"href":"https:\/\/allintheloop.com\/eaa-annual-meeting-26\/wp-json\/wp\/v2\/media?parent=698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}