1(function () { 2 var lastTouchTime = 0; 3 var menuPrepared = false; 4 5 function byId(id) { 6 return document.getElementById(id); 7 } 8 9 function isVisible(element) { 10 if (!element) return false; 11 var style = window.getComputedStyle ? window.getComputedStyle(element) : element.currentStyle; 12 return style && style.display !== 'none' && style.visibility !== 'hidden'; 13 } 14 15 function show(element, visible) { 16 if (!element) return; 17 element.style.setProperty('display', visible ? 'block' : 'none', 'important'); 18 element.style.setProperty('visibility', visible ? 'visible' : 'hidden', 'important'); 19 element.style.setProperty('opacity', visible ? '1' : '0', 'important'); 20 element.style.setProperty('pointer-events', visible ? 'auto' : 'none', 'important'); 21 } 22 23 function setExpanded(id, expanded) { 24 var button = byId(id); 25 if (button) button.setAttribute('aria-expanded', expanded ? 'true' : 'false'); 26 } 27 28 function prepareMenu() { 29 if (menuPrepared) return; 30 menuPrepared = true; 31 32 if (window.EP && EP.menu) { 33 if (typeof EP.menu.expand === 'function') EP.menu.expand(); 34 if (typeof EP.menu.moveCatsMobi === 'function') EP.menu.moveCatsMobi(); 35 if (EP.menu.mobile) EP.menu.mobile.opened = true; 36 } 37 38 var menu = document.querySelector('#lionmenu > ul.dropdown'); 39 if (menu) { 40 var extraItems = [ 41 ['/community/', 'COMMUNITY', 'â'], 42 ['/games/', 'SEX GAMES', 'â'], 43 ['/cat/full-scenes/', 'FULL SCENES', 'â¦'], 44 ['/live-sex/', 'LIVE SEX', 'â£'] 45 ]; 46 extraItems.length = 0; 47 var previouslyAddedItems = menu.querySelectorAll('.ep-menu-added-item'); 48 for (var removedIndex = 0; removedIndex < previouslyAddedItems.length; removedIndex++) { 49 previouslyAddedItems[removedIndex].remove(); 50 } 51 for (var i = 0; i < extraItems.length; i++) { 52 var item = extraItems[i]; 53 var exists = menu.querySelector('a[href="' + item[0] + '"]'); 54 if (exists) continue; 55 var li = document.createElement('li'); 56 li.className = 'ep-menu-added-item'; 57 li.innerHTML = '<span class="active"><a href="' + item[0] + '">' + 58 '<span class="ep-menu-root-label"><span class="ep-menu-added-icon" aria-hidden="true">' + item[2] + '</span>' + 59 '<span class="ep-menu-root-text">' + item[1] + '</span></span></a></span>'; 60 menu.appendChild(li); 61 } 62 } 63 64 var menuTitle = byId('ep-menu-title'); 65 if (menuTitle) menuTitle.remove(); 66 67 var lionMenu = byId('lionmenu'); 68 if (lionMenu && !lionMenu.querySelector('.ep-menu-mobile-footer')) { 69 var footer = document.createElement('div'); 70 footer.className = 'ep-menu-mobile-footer'; 71 footer.innerHTML = '<button type="button" class="ep-menu-theme-button" data-ep-theme="white" aria-label="Light mode">â¼</button>' + 72 '<button type="button" class="ep-menu-theme-button ep-menu-theme-dark" data-ep-theme="black" aria-label="Dark mode">â¾</button>'; 73 lionMenu.appendChild(footer); 74 var languages = byId('languages'); 75 var theme = byId('nightandday'); 76 if (languages) footer.appendChild(languages); 77 if (theme) footer.appendChild(theme); 78 var themeButtons = footer.querySelectorAll('[data-ep-theme]'); 79 function syncThemeButtons() { 80 var activeTheme = document.documentElement.classList.contains('epwhite') ? 'white' : 'black'; 81 for (var buttonIndex = 0; buttonIndex < themeButtons.length; buttonIndex++) { 82 var active = themeButtons[buttonIndex].getAttribute('data-ep-theme') === activeTheme; 83 themeButtons[buttonIndex].classList.toggle('ep-menu-theme-active', active); 84 themeButtons[buttonIndex].setAttribute('aria-pressed', active ? 'true' : 'false'); 85 } 86 } 87 for (var j = 0; j < themeButtons.length; j++) { 88 themeButtons[j].addEventListener('click', function (event) { 89 event.preventDefault(); 90 event.stopPropagation(); 91 var color = this.getAttribute('data-ep-theme'); 92 if (window.EP && EP.page && typeof EP.page.switchColor === 'function') { 93 EP.page.switchColor(color); 94 } else if (color === 'white') { 95 document.documentElement.classList.add('epwhite'); 96 } else { 97 document.documentElement.classList.remove('epwhite'); 98 } 99 syncThemeButtons(); 100 }, true); 101 } 102 syncThemeButtons(); 103 } 104 105 function revealVideoLinks() { 106 var videoLinks = document.querySelector('.lcsvideosmorediv'); 107 var videoList = byId('lcsvideosul'); 108 if (videoLinks) videoLinks.style.setProperty('display', 'block', 'important'); 109 if (videoList) videoList.style.setProperty('display', 'grid', 'important'); 110 } 111 revealVideoLinks(); 112 window.setTimeout(revealVideoLinks, 100); 113 window.setTimeout(revealVideoLinks, 400); 114 } 115 116 function closeMenu() { 117 var menuOuter = byId('lmenuouter'); 118 if (menuOuter) menuOuter.style.setProperty('transform', 'translateX(-100%)', 'important'); 119 show(menuOuter, false); 120 show(byId('lionmenu'), false); 121 setExpanded('menuslide', false); 122 } 123 124 function closeSearch() { 125 show(byId('searcharea'), false); 126 setExpanded('searchslide', false); 127 } 128 129 function stop(event) { 130 event.preventDefault(); 131 event.stopPropagation(); 132 if (event.stopImmediatePropagation) event.stopImmediatePropagation(); 133 } 134 135 function findControl(target) { 136 while (target && target !== document) { 137 if (target.id === 'menuslide' || target.id === 'searchslide' || 138 target.id === 'ep-menu-close' || target.id === 'ep-menu-overlay') return target.id; 139 target = target.parentNode; 140 } 141 return ''; 142 } 143 144 function findSubmenuItem(target) { 145 var eventTarget = target; 146 while (target && target !== document) { 147 if (target.tagName === 'LI' && target.parentNode && target.parentNode.matches && 148 target.parentNode.matches('#lionmenu > ul.dropdown')) { 149 var heading = target.querySelector(':scope > span.more'); 150 var panel = target.querySelector(':scope > .listcat'); 151 return heading && panel && heading.contains(eventTarget) ? target : null; 152 } 153 target = target.parentNode; 154 } 155 return null; 156 } 157 158 function toggleSubmenu(item) { 159 var menu = item.parentNode; 160 var items = menu ? menu.children : []; 161 var opening = !item.classList.contains('ep-mobile-submenu-open'); 162 for (var i = 0; i < items.length; i++) { 163 var otherPanel = items[i].querySelector && items[i].querySelector(':scope > .listcat'); 164 items[i].classList.remove('ep-mobile-submenu-open'); 165 if (otherPanel) otherPanel.style.setProperty('display', 'none', 'important'); 166 } 167 if (!opening) return; 168 item.classList.add('ep-mobile-submenu-open'); 169 var panel = item.querySelector(':scope > .listcat'); 170 panel.style.setProperty('display', 'block', 'important'); 171 var images = panel.querySelectorAll('img[data-src]'); 172 for (var j = 0; j < images.length; j++) { 173 if (images[j].getAttribute('data-src')) images[j].src = images[j].getAttribute('data-src'); 174 } 175 } 176 177 function activate(event) { 178 if (window.innerWidth <= 805) { 179 var submenuItem = findSubmenuItem(event.target); 180 if (submenuItem) { 181 if (event.type === 'touchend') lastTouchTime = Date.now(); 182 else if (Date.now() - lastTouchTime < 800) { 183 stop(event); 184 return; 185 } 186 stop(event); 187 toggleSubmenu(submenuItem); 188 return; 189 } 190 } 191 192 var control = findControl(event.target); 193 if (!control) return; 194 195 if (event.type === 'touchend') { 196 lastTouchTime = Date.now(); 197 } else if (Date.now() - lastTouchTime < 800) { 198 stop(event); 199 return; 200 } 201 202 stop(event); 203 if (control === 'menuslide') { 204 var openMenu = !isVisible(byId('lionmenu')); 205 closeSearch(); 206 if (openMenu) prepareMenu(); 207 var menuOuter = byId('lmenuouter'); 208 show(menuOuter, openMenu); 209 if (menuOuter) menuOuter.style.setProperty('transform', openMenu ? 'translateX(0)' : 'translateX(-100%)', 'important'); 210 show(byId('lionmenu'), openMenu); 211 setExpanded('menuslide', openMenu); 212 return; 213 } 214 215 if (control === 'searchslide') { 216 var openSearch = !isVisible(byId('searcharea')); 217 closeMenu(); 218 var searchArea = byId('searcharea'); 219 show(searchArea, openSearch); 220 if (searchArea && openSearch) { 221 searchArea.style.setProperty('position', 'fixed', 'important'); 222 searchArea.style.setProperty('top', '40px', 'important'); 223 searchArea.style.setProperty('left', '0', 'important'); 224 searchArea.style.setProperty('width', '100%', 'important'); 225 searchArea.style.setProperty('height', '42px', 'important'); 226 searchArea.style.setProperty('min-height', '42px', 'important'); 227 searchArea.style.setProperty('overflow', 'visible', 'important'); 228 searchArea.style.setProperty('transform', 'none', 'important'); 229 searchArea.style.setProperty('z-index', '1000012', 'important'); 230 searchArea.style.setProperty('padding', '6px 36px 6px 5px', 'important'); 231 searchArea.style.setProperty('box-sizing', 'border-box', 'important'); 232 searchArea.style.setProperty('background', '#111', 'important'); 233 } 234 setExpanded('searchslide', openSearch); 235 if (openSearch) window.setTimeout(function () { 236 var input = byId('srch'); 237 if (input) input.focus(); 238 }, 0); 239 return; 240 } 241 242 closeMenu(); 243 } 244 245 document.addEventListener('touchend', activate, true); 246 document.addEventListener('click', activate, true); 247}());
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.