Meta tags:
description= Previous Shows — curatingcontemporary.com.;
author= curatingcontemporary.com;
Headings (most frequently used words):
gallery, site, error, loading, not, found, metadata, import, galleries, from, json, or, classic, guid, schema, identity, image, licensing, optional, custom, html, full, bypass, wide, password, browser, login,
Text of the page (most frequently used words):
#gallery (185), window (150), the (117), url (101), const (95), console (78), function (71), error (63), log (61), return (60), for (60), iframe (55), link (54), document (50), pathname (48), siteguid (44), container (41), title (41), path (41), galleries (40), page (34), enhancedgallerysystem (33), matchingitem (33), typeof (32), try (31), with (31), gallerycontainer (31), preview (30), href (29), site (28), parent (28), true (28), newpathname (28), confidence (28), loadgallery (27), matchinfo (27), this (25), and (24), not (23), else (23), content (23), length (23), guid (22), loading (22), ispreviewmode (22), event (20), found (20), location (19), navigation (19), getelementbyid (18), data (18), from (18), startswith (18), image (17), catch (17), null (17), replace (16), mode (16), style (16), new (16), iframes (16), normalizedpath (16), create (15), add (15), hostname (15), let (15), matching (15), potentialmatches (15), message (14), use (14), galleryframe (14), update (14), gallery_data_cache (14), match (14), essay (14), when (13), opacity (13), egearly (13), load (13), wrapper (13), check (12), enhancedloadgallery (12), loadpage (12), targeturl (12), browserurl (12), origin (12), matchtype (12), first (11), browser (11), any (11), that (11), warn (11), click (11), curator (11), upload (10), neonsky (10), app (10), only (10), script (10), initialized (10), links (10), array (10), newurl (10), innerhtml (9), btntext (9), text (9), password (9), slug (9), critical (9), cache (9), siteid (9), galleryoptions (9), tolowercase (9), originalloadgallery (9), target (9), false (9), original (9), fallback (9), skip (9), pagemanager (9), activegalleryid (9), addeventlistener (9), special (9), galleriesdata (9), history (9), findgallerybypath (9), wrapperurl (9), normalizedpathwithsingledashes (9), available (8), string (8), all (8), menu (8), your (8), html (8), about (8), enhanced (8), system (8), font (8), sgitem (8), direct (8), handling (8), postmessage (8), dash (8), gallerypath (8), bestmatch (8), julie (8), remove (7), storage (7), edit (7), search (7), you (7), galleryinstanceid (7), parameters (7), find (7), ensure (7), options (7), preventdefault (7), stoppropagation (7), queryselector (7), reload (7), interceptor (7), prevent (7), global (7), handle (7), getsiteguidfrompath (7), closest (7), pushstate (7), frame (7), high (7), node (7), normalized (7), matches (7), usednormalizeddashes (7), push (7), galleryslugwithsingledashes (7), brian (7), curated (7), favicon (6), open (6), inp (6), current (6), same (6), file (6), clear (6), set (6), here (6), element (6), active (6), neon (6), already (6), standalone (6), after (6), refreshgallerycache (6), isarray (6), cleanpath (6), setupiframeintercept (6), cross (6), homepage (6), galleryslug (6), continue (6), next (6), david (6), jason (6), value (5), textcontent (5), again (5), social (5), imageresult (5), sitemetadata (5), json (5), top (5), will (5), existing (5), into (5), can (5), out (5), license (5), urls (5), used (5), primary (5), classlist (5), galleryid (5), using (5), forcegalleryreload (5), without (5), syncgalleryoptionsbuttonvisibility (5), contentloadgeneration (5), now (5), initialize (5), center (5), 100 (5), height (5), color (5), max (5), clicks (5), intercept (5), mutation (5), includes (5), ispage (5), default (5), via (5), foreach (5), isprimary (5), gallerycount (5), stripedgeslashes (5), overlapratio (5), paul (5), room (5), part (5), statement (5), john (5), gibson (5), imageinfo (4), ogimageurl (4), failed (4), import (4), items (4), added (4), classic (4), full (4), view (4), before (4), domain (4), public (4), bypass (4), one (4), recommended (4), sidebar (4), copyright (4), bottom (4), both (4), empty (4), google (4), based (4), home (4), type (4), appendchild (4), important (4), body (4), contains (4), initialization (4), errorelement (4), back (4), _loadinprogress (4), pageviewstillshowing (4), masonry (4), findgallerybyid (4), access (4), navigating (4), result (4), creategallerycontext (4), directly (4), store (4), our (4), styles (4), flex (4), width (4), size (4), details (4), loaded (4), initgallerylinkinterceptor (4), get (4), might (4), observer (4), debugging (4), undefined (4), date (4), need (4), formatgallerydocumenttitle (4), construct (4), but (4), paths (4), https (4), src (4), contentdocument (4), inject (4), newiframesfound (4), were (4), potential (4), overlap (4), sarah (4), peter (4), torres (4), alexander (4), julia (4), steve (4), chill (4), zen (4), funk (4), twang (4), faviconinput (3), imageuploader (3), alert (3), uploader (3), seturl (3), cancel (3), processing (3), submenu (3), imported (3), level (3), save (3), metadata (3), login (3), optional (3), enabled (3), visitors (3), fully (3), yet (3), hydra (3), then (3), _manage (3), shows (3), are (3), leave (3), states (3), structured (3), keep (3), embedded (3), local (3), select (3), what (3), results (3), language (3), each (3), graph (3), meta (3), none (3), admin (3), just (3), additional (3), fields (3), neongalleryconfig (3), version (3), show (3), createelement (3), showing (3), forcereload (3), ignoring (3), main (3), falling (3), clearing (3), rendered (3), _loadinggalleryid (3), _activecontenttype (3), await (3), clean (3), removegalleryscriptswithpause (3), which (3), isloading (3), run (3), ishydracontentloadcurrent (3), stale (3), bodyel (3), close (3), staleoptionsoverlay (3), method (3), css (3), messages (3), styleid (3), align (3), min (3), border (3), margin (3), family (3), arial (3), sans (3), serif (3), head (3), lastupdate (3), listener (3), _gallerylinkinterceptorinitialized (3), contain (3), variable (3), ctrlkey (3), metakey (3), shiftkey (3), javascript (3), spa (3), scrollto (3), lightbox (3), functions (3), preserves (3), custompath (3), encodeuricomponent (3), directpath (3), buster (3), queryselectorall (3), other (3), interception (3), contentwindow (3), navigate (3), pathparts (3), boolean (3), param (3), very (3), titleslug (3), substantial (3), math (3), best (3), getsitegalleriesarray (3), valerie (3), edmonds (3), rebecca (3), richard (3), lauren (3), introduction (3), mary (3), devincentis (3), eraser (3), refresh (2), uploadogimagebtntext (2), showogimagepreview (2), please (2), opening (2), ogimagepreviewcontainer (2), paste (2), under (2), fetch (2), format (2), enter (2), previews (2), 32x32px (2), shown (2), dialog (2), username (2), http (2), entire (2), loads (2), live (2), still (2), make (2), wide (2), uploaded (2), also (2), logout (2), png (2), ico (2), footer (2), overlay (2), images (2), contact (2), knowledge (2), panels (2), person (2), individual (2), artists (2), organization (2), represents (2), different (2), characters (2), spacer (2), block (2), avoid (2), existingparams (2), pageid (2), slugify (2), fix (2), isineditor (2), user (2), logged (2), these (2), properties (2), containerselector (2), include (2), permanent (2), manualcollectionname (2), layouttype (2), proper (2), isperma (2), permaurl (2), loadtxid (2), loadpermaurl (2), showerrormessage (2), trim (2), singleton (2), dismissgallerypasswordoverlay (2), flight (2), hasrenderedgallery (2), item (2), currentgalleryid (2), skipping (2), requested (2), lastinitializationtime (2), delete (2), clearcurrentpage (2), protection (2), methods (2), checkgallerypasswordaccess (2), creategallerypasswordoverlay (2), accessgranted (2), early (2), scripts (2), dom (2), cleanup (2), hidden (2), updateactivestates (2), updatemobiletitle (2), closemobilemenu (2), closeoptionspanel (2), updateurlwithgalleryslug (2), uierror (2), detailed (2), logging (2), availability (2), settimeout (2), usecdnproxy (2), containererror (2), initializegallerysystem (2), initializing (2), reference (2), addgallerysystemstyles (2), ready (2), display (2), direction (2), column (2), justify (2), 200px (2), 50px (2), rgba (2), spin (2), 20px (2), 16px (2), 555 (2), possible (2), handles (2), have (2), initonfirstclick (2), multiple (2), containers (2), maincontainer (2), handler (2), handlegloballinkclick (2), interceptalliframelinks (2), setupmutationobserver (2), helper (2), refreshed (2), was (2), _blank (2), work (2), api (2), resource (2), isresourceurl (2), intercepted (2), card (2), dataset (2), sgtargetid (2), nestedlinkmodeactive (2), isnestedgallerylinkmodeenabled (2), isgridgallerylink (2), opennestedgallerylightbox (2), opened (2), scroll (2), case (2), even (2), allow (2), handlers (2), there (2), constructing (2), tells (2), since (2), during (2), look (2), fail (2), due (2), policy (2), iframedoc (2), issamedomain (2), preserved (2), normally (2), iframeerror (2), expected (2), cannot (2), setuppostmessagelistener (2), linkclick (2), object (2), appropriate (2), send (2), injected (2), could (2), mutationobserver (2), mutations (2), childlist (2), addednodes (2), observe (2), resourceextensions (2), ext (2), split (2), filter (2), criteria (2), invalid (2), leading (2), trailing (2), slashes (2), dashes (2), levels (2), exact (2), highest (2), urlobj (2), gallerypathwithsingledashes (2), titleslugwithsingledashes (2), significant (2), score (2), sort (2), brennan (2), michael (2), sabine (2), tress (2), behnke (2), dialogue (2), abstraction (2), focused (2), field (2), lindsey (2), landfried (2), cypher (2), elizabeth (2), vincent (2), stephen (2), shear (2), ian (2), williams (2), miller (2), curatorial (2), stopa (2), form (2), karolak (2), vista (2), kim (2), helen (2), leary (2), alex (2), paik (2), scott (2), tune (2), paint (2), like (2), schwartz (2), mira (2), gerard (2), jennifer (2), being (2), jaqueline (2), cedar (2), joshua (2), fine (2), artist (2), emil (2), robinson (2), viewing (2), thing (2), melanie (2), parke (2), aubrey (2), levinthal (2), susan (2), denise (2), manning (2), jessica (2), simorte (2), hamlett (2), dobbins (2), tim (2), james (2), mandy (2), christy (2), freeman (2), party (2), whearty (2), matt (2), interview (2), fiction (2), daylight (2), between (2), aporia (2), anthony (2), falcetta (2), overlaid (2), underpinned (2), previous (2), stars (2), steer (2), volume (2), removefavicon, faviconurl, faviconpreviewcontainer, uploadfaviconbtntext, removed, uploadsiteogimage, containertype, quality, change, indexof, unknown, imageurl, removeogimage, download, checked, deleted, replaced, unchecked, structure, import_, pasted, area, below, collection, overrides, label, realm, stored, configuration, strong, anyone, require, basic, must, asset, credentials, editors, magic, turn, off, serve, shell, self, contained, tool, root, see, press, numpad, shift, keyboards, toggle, bar, visit, works, hydra_logout, custom, 16x16px, appears, inside, enable, where, someone, request, buy, required, acquire, how, may, terms, creative, commons, adds, imageobject, blank, behavior, badge, licensing, displayed, email, improves, visibility, searches, city, photojournalist, minneapolis, job, photographers, consultants, studios, agencies, companies, business, helps, understand, schema, identity, development, shouldn, appear, hide, engines, noindex, chrome, offer, translate, visitor, hindi, हिन्दी, arabic, العربية, korean, 한국어, japanese, 日本語, chinese, russian, русский, portuguese, português, italian, italiano, german, deutsch, nepali, नेपाली, french, français, spanish, español, english, example, xxxxxxxxxx, xxxxxxxx, analytics, code, 1200, 630px, including, instead, imessage, 150, 160, description, browsers, external, folder, icons, loadingindicator, preparing, setupgalleryparameters, uniqueness, clone, extend, losing, values, sitealias, initialpageuuid, initialpagealias, ensures, files, isediting, localstorage, getitem, hydra_is_admin, isadmin, ishydra, help, gallerycontainerid, galleryuniqueid, loadtimestamp, loadedgalleryid, config, usedata, usecdn, mod, grid, selector, too, explicitly, they, needed, div, classname, utility, convert, instance, replaces, async, _forcegalleryreload, stopautoadvancetimer, isconnected, detached, parentelement, bail, hiding, post, passes, affecting, abandoning, awaiting, horizontal, scroller, share, force, bypassing, ispagemenuitem, issubmenu, togglesubmenu, beginhydracontentload, isineditmode, passwordprotected, protected, granted, exit, entered, calls, interrupt, leaving, never, resolving, initpromise, does, rendering, aborting, shouldapplymenuhiddenforembedorgallery, applymenuoverlayclassforgallery, panel, optionsoverlay, optionsvisible, updating, state, checking, exists, hasloadgallery, calling, completion, 350, its, attempting, replacing, optimized, preload, boot, opens, preloadstylesonly, preloading, indicators, indicator, spinner, 3px, solid, radius, 4682b4, animation, ease, infinite, keyframes, transform, rotate, 360deg, padding, 30px, 24px, 211, 600px, 10px, 14px, 888, italic, immediately, reloads, quick, domcontentloaded, complete, small, delay, 200, init, interaction, removeeventlistener, once, initializations, partially, dynamically, debuggallerylinks, inpreviewmode, interceptorinitialized, cachedgalleries, urlpath, changes, doesn, exist, debug, catches, clicked, uses, targets, modifiers, hash, parse, specially, carry, internal, uselinks, openmultiplelightboxes, img, void, nested, staying, maintain, otherwise, onclick, allowing, friendly, correct, galleryurl, sites, site_, two, approaches, approach, further, normal, priority, attempted, setup, specific, iframewin, cases, relative, successfully, sameoriginerror, apply, setting, listen, verify, source, received, fixed, sent, able, tag, scenarios, write, likely, frames, trying, nodename, subtree, rather, than, jpg, jpeg, gif, webp, svg, pdf, ttf, woff, woff2, some, endswith, improved, accuracy, finds, better, prioritization, more, precise, whether, returns, provided, determine, searching, among, strip, regex, template, literal, embedding, mangles, escapes, becomes, left, unnormalized, broke, join, normalize, comparison, originalnormalizedpath, differently, starts, prefix, substring, sequences, become, single, double, patterns, inconsistencies, marked, ishomepage, returning, their, process, exact_slug, exact_slug_normalized_dashes, parsing, fails, exact_url_path, exact_url_path_normalized_dashes, title_slug_match, good, title_slug_match_normalized_dashes, partial, much, stricter, positives, portions, normalization, calculate, ratio, shorter, consider, over, round, partial_match_normalized, info, totalmatches, them, alternative, slice, map, helpful, globally, problem, later, patricia, satterlee, clayton, colvin, anderson, voss, brett, baker, mcnulty, ken, weathersby, henry, samelson, kazimira, rachfal, dan, roach, altoon, sultan, allison, long, hardy, annie, boyden, varnot, leslie, shellow, gordon, obsessive, aesthetics, terry, greene, sheppell, lael, marshall, materials, yifat, gat, hawkins, wright, justine, frischmann, inga, dalrymple, alltogethernow, 2012, linda, francis, myron, stout, karen, schifano, don, voisine, emptiness, kirk, stoller, murtaugh, joan, mellon, beth, gilfilen, matthew, neil, gehring, como, rachel, beach, megan, cotts, lilly, zuckerman, beck, kate, mcgraw, crystal, gregory, corey, escoto, giniewski, anna, mikolay, repetition, rhythm, pattern, shock, monkey, untitled, donovan, bishop, stack, florian, heinke, anoka, faruqee, campbell, lucy, mink, covello, donald, wynne, reeves, lia, lowenthal, aster, above, elbow, neck, jeffrey, cortland, jones, wille, geoffrey, todd, smith, bret, slater, benjamin, gardner, kroll, time, got, love, technique, dale, mcneil, order, manifest, 2013, minna, komi, sara, vide, ericson, dorland, hanneline, røgeberg, charles, ladson, remote, carlson, hatton, hull, mills, ben, pritchard, derrick, quevedo, judith, farr, garvey, virva, hinnemo, fresh, sangram, majumdar, patrick, fitzgerald, jasmine, justice, zamani, fran, neill, alan, van, every, yourself, talia, shulze, wanklyn, anne, russinof, pagk, victor, kord, zachary, keeting, gilflen, gale, rick, briggs, emily, berger, andrea, belag, mind, eye, ten, ways, float, plus, installation, views, video, roberto, marquez, sebastian, vallejo, pedro, fortunato, velasquez, nora, maite, nieves, nayda, collazo, llorens, lauri, hopkins, juan, alberto, negroni, ivelisse, jimenez, gracjana, rejmer, ernesto, canovas, emre, kocagil, pleasure, doing, sophia, alexandrov, carolyn, salas, mike, olin, meg, lipke, joy, curtis, surface, amy, pleasant, ingram, fish, douglas, degges, andy, moon, wilson, leah, raintree, travis, rezac, dilg, katy, fischer, soft, eyes, 2014, prez, lyn, ford, cyndy, goldman, ludovic, dervillez, julon, pinkston, mckie, iii, adams, puryear, macinnis, nick, depirro, rosaire, appel, lambert, melissa, jean, pollack, rohlf, lori, ott, myrvold, tom, duimtra, lyle, carbajal, william, lawer, nagle, gabriel, luis, perez, white, nina, schwanse, jooyoung, choi, jenny, corradetti, aryia, martin, alpert, julies, kimberly, rowe, ruth, seren, moran, jennnifer, turnage, decisions, decisons, polly, shindler, cassidy, garbutt, maria, theresa, barbist, ahna, serendren, granett, play, hard, human, summer, wheat, gagner, austin, furtake, cole, andry, vicki, sher, bolinger, morgan, caroline, chandler, wells, katherine, bradford, bienko, humphrey, intro, player, dinner, 2015, kyle, staver, nesbit, elaine, mari, kooyman, shaun, ellison, katelyn, eichwald, farrell, brickhouse, thibaud, thiercelin, pomegranate, carr, making, world, mud, castles, strange, wild, places, 2016, exhibition, smiddy, sfraga, danny, licul, kerry, law, brenda, goodman, frankie, gardiner, burns, herzog, samnang, riebe, kevin, lucey, vanessa, irzyk, hallinan, paolo, arao, catherine, haggarty, packer, george, rush, mones, kelly, mcraven, dustin, metz, 2017, desmond, lewis, boyts, yoder, space, eleanor, aldrich, jane, fox, hipple, night, kristi, hargrove, brandon, donahue, rogers, horton, day, curatingcontemporary, com,
Text of the page (random words):
lie shellow annie boyden varnot curator allison long hardy you were here you were here part 1 part 2 part 3 part 4 part 5 focused field focused field essay altoon sultan dan roach kazimira rachfal henry samelson ken weathersby sarah mcnulty brett baker a dialogue in abstraction a dialogue in abstraction room 1 room 2 room 3 room 4 paul behnke sabine tress michael voss ky anderson valerie brennan clayton colvin patricia satterlee links contact loading gallery container appendchild loadingindicator catch error console error enhancedgallerysystem error preparing container error setupgalleryparameters gallery galleryinstanceid set up gallery parameters with enhanced uniqueness window parameters window parameters clone and extend existing parameters to avoid losing important values const existingparams window parameters window parameters existingparams sitealias window location hostname initialpageuuid gallery pageid initialpagealias gallery slug this slugify gallery title critical fix set isineditor to true if user is logged in as admin or in edit mode this ensures gallery files bypass cache for any logged in admin not just when edit mode is active isineditor window isediting localstorage getitem hydra_is_admin true window isadmin true document body classlist contains hydra admin siteid window siteid gallery siteid ishydra true critical these properties help the gallery script find the container gallerycontainerid neon gallery container containerselector neon gallery container additional properties galleryinstanceid galleryinstanceid galleryuniqueid gallery container gallery id galleryinstanceid loadtimestamp galleryinstanceid loadedgalleryid gallery id set up gallery config critical include all permanent storage fields const galleryoptions gallery galleryoptions window neongalleryconfig usedata true usecdn true version live manualcollectionname galleryoptions manualcollectionname mod layouttype galleryoptions layouttype grid galleryoptions siteid window siteid gallery siteid galleryid gallery id galleryinstanceid galleryinstanceid add container selector here too containerselector neon gallery container critical explicitly include all permanent storage fields to ensure they re available these are needed for proper gallery initialization and data loading isperma galleryoptions isperma permaurl galleryoptions permaurl loadtxid galleryoptions loadtxid loadpermaurl galleryoptions loadpermaurl show error message in container showerrormessage container message critical add null check for container if container console error enhancedgallerysystem container is null in showerrormessage return try clear container container innerhtml create error message element const errorelement document createelement div errorelement classname gallery error errorelement innerhtml error loading gallery message container appendchild errorelement container style opacity 1 catch error console error enhancedgallerysystem error showing error message error utility function to convert title to slug slugify text return text tolowercase replace s g replace w g replace g trim create a singleton instance window enhancedgallerysystem window enhancedgallerysystem new enhancedgallerysystem enhanced loadgallery function using the enhancedgallerysystem this replaces the existing loadgallery function const enhancedloadgallery async function id event options const originalloadgallery window originalloadgallery const forcegalleryreload options forcereload true window _forcegalleryreload true stopautoadvancetimer if typeof dismissgallerypasswordoverlay function dismissgallerypasswordoverlay if event event target event target isconnected false console log enhancedloadgallery ignoring navigation from detached element return if event event preventdefault event stoppropagation let gallerycontainer document queryselector gallery container if gallerycontainer gallerycontainer document getelementbyid galleryframe parentelement document getelementbyid main content document getelementbyid content if gallerycontainer console error gallery container not found falling back to original function if typeof originalloadgallery function return originalloadgallery id event options else console error gallery container not found and no fallback available return bail out before hiding clearing when the same gallery is already loading or rendered post save passes forcereload true to bypass this path without affecting navigation const egearly window enhancedgallerysystem if egearly forcegalleryreload if egearly _loadinprogress egearly _loadinggalleryid id const pageviewstillshowing window _activecontenttype page document queryselector gallery container page container page container if pageviewstillshowing console log enhancedloadgallery abandoning standalone in flight load for page view id egearly _loadinprogress null egearly _loadinggalleryid null else console log enhancedloadgallery awaiting in flight load for gallery id await egearly _loadinprogress if gallerycontainer gallerycontainer style opacity 1 return const hasrenderedgallery document queryselector gallery wrapper masonry item gallery wrapper horizontal scroller gallery wrapper masonry embedded galleries on a page share currentgalleryid that is not a standalone gallery view const pageviewstillshowing window _activecontenttype page document queryselector gallery container page container page container if hasrenderedgallery egearly currentgalleryid id pageviewstillshowing console log enhancedloadgallery gallery already rendered skipping reload if gallerycontainer gallerycontainer style opacity 1 if typeof window syncgalleryoptionsbuttonvisibility function window syncgalleryoptionsbuttonvisibility return else if forcegalleryreload console log enhancedloadgallery force reload requested bypassing already rendered skip if egearly lastinitializationtime delete egearly lastinitializationtime delete id if egearly egearly _loadinprogress null egearly _loadinggalleryid null if gallerycontainer gallerycontainer style opacity 0 console log loading gallery with id enhancedloadgallery id const gallery findgallerybyid galleries id if gallery console warn no gallery found with id id if gallerycontainer gallerycontainer innerhtml gallery not found the requested gallery could not be found gallerycontainer style opacity 1 return if ispagemenuitem gallery return typeof window loadpage function window loadpage id event loadpage id event window _activecontenttype gallery if gallery issubmenu console log gallery is submenu skipping url update togglesubmenu id event stoppropagation if gallerycontainer gallerycontainer style opacity 1 return const contentloadgeneration beginhydracontentload gallery gallery id gallery pageid if window pagemanager typeof window pagemanager clearcurrentpage function window pagemanager clearcurrentpage console log found gallery gallery title check for gallery level password protection only for visitors not in edit mode if isineditmode gallery passwordprotected use pagemanager s gallery password protection methods if window pagemanager typeof window pagemanager checkgallerypasswordaccess function typeof window pagemanager creategallerypasswordoverlay function if window pagemanager checkgallerypasswordaccess gallery console log gallery is password protected showing overlay window pagemanager creategallerypasswordoverlay gallery accessgranted if accessgranted reload the gallery now that access is granted enhancedloadgallery id event return exit early will reload after password is entered window activegalleryid id activegalleryid id critical clean up page embedded gallery scripts dom before loading a standalone gallery loadpage calls removegalleryscriptswithpause which can interrupt enhancedgallerysystem initialize leaving isloading true with a never resolving initpromise re run cleanup here matching original loadgallery and clear the container so page content does not block gallery rendering if typeof window removegalleryscriptswithpause function await window removegalleryscriptswithpause if ishydracontentloadcurrent contentloadgeneration gallery gallery id console log enhancedloadgallery aborting stale load after cleanup for gallery id return if gallerycontainer gallerycontainer innerhtml const bodyel document body if shouldapplymenuhiddenforembedorgallery gallery bodyel classlist add menu hidden on page else bodyel classlist remove menu hidden on page applymenuoverlayclassforgallery gallery try if typeof updateactivestates function updateactivestates if typeof updatemobiletitle function updatemobiletitle if typeof closemobilemenu function closemobilemenu close the gallery options panel when navigating to a different gallery if typeof window closeoptionspanel function forcegalleryreload window closeoptionspanel const staleoptionsoverlay document getelementbyid optionsoverlay if staleoptionsoverlay staleoptionsoverlay remove window optionsvisible false if typeof updateurlwithgalleryslug function updateurlwithgalleryslug gallery catch uierror console error error updating ui state uierror try add detailed logging about enhancedgallerysystem availability console log checking enhancedgallerysystem availability exists window enhancedgallerysystem hasloadgallery window enhancedgallerysystem typeof window enhancedgallerysystem loadgallery function initialized window enhancedgallerysystem window enhancedgallerysystem initialized isloading window enhancedgallerysystem window enhancedgallerysystem isloading if window enhancedgallerysystem typeof window enhancedgallerysystem loadgallery function console log enhancedgallerysystem available calling loadgallery const result await window enhancedgallerysystem loadgallery gallery gallerycontainer options forcegalleryreload forcereload true contentloadgeneration if ishydracontentloadcurrent contentloadgeneration gallery gallery id console log enhancedloadgallery ignoring stale gallery completion for gallery id return console log enhancedgallerysystem loadgallery result result if result typeof originalloadgallery function console log ️ enhanced gallery loading failed falling back to original function return originalloadgallery id event options if gallerycontainer gallerycontainer style opacity 1 if typeof window syncgalleryoptionsbuttonvisibility function window syncgalleryoptionsbuttonvisibility settimeout window syncgalleryoptionsbuttonvisibility 350 else console error enhancedgallerysystem or its loadgallery method is not available enhancedgallerysystem window enhancedgallerysystem loadgallery window enhancedgallerysystem typeof window enhancedgallerysystem loadgallery function usecdnproxy window usecdnproxy false fallback try using creategallerycontext directly console log attempting fallback creategallerycontext if typeof creategallerycontext function creategallerycontext gallery gallerycontainer if gallerycontainer gallerycontainer style opacity 1 return if gallerycontainer gallerycontainer innerhtml gallery system not available enhancedgallerysystem window enhancedgallerysystem loadgallery window enhancedgallerysystem typeof window enhancedgallerysystem loadgallery function gallerycontainer style opacity 1 return catch error console error error loading gallery error if ishydracontentloadcurrent contentloadgeneration gallery gallery id console log enhancedloadgallery ignoring stale gallery error for gallery id return if gallerycontainer try gallerycontainer innerhtml error loading gallery there was a problem loading the gallery please try again later error message gallerycontainer style opacity 1 catch containererror console error error showing error message in container containererror if typeof originalloadgallery function console log falling back to original loadgallery after error return originalloadgallery id event options initialization function to set up the gallery system function initializegallerysystem console log initializing enhanced gallery system store reference to original function before replacing if typeof window loadgallery function window originalloadgallery window loadgallery replace the existing loadgallery function with our optimized version window loadgallery enhancedloadgallery add this css for loading error states addgallerysystemstyles preload styles only at boot scripts load when first gallery opens with container ready window enhancedgallerysystem preloadstylesonly catch error console warn gallery styles preloading failed error add css styles for loading indicators and error messages function addgallerysystemstyles const styleid enhanced gallery system styles skip if already added if document getelementbyid styleid return const style document createelement style style id styleid style textcontent loading indicator gallery loading display flex flex direction column justify content center align items center width 100 height 100 min height 200px opacity 0 important gallery loading spinner width 50px height 50px border 3px solid rgba 0 0 0 0 1 border radius 50 border top color 4682b4 animation spin 1s ease in out infinite margin bottom 20px opacity 0 important keyframes spin to transform rotate 360deg gallery loading loading text font family arial sans serif font size 16px color 555 opacity 0 error message gallery error display flex flex direction column justify content center align items center width 100 height 100 min height 200px padding 30px text align center gallery error h3 font family arial sans serif font size 24px color rgba 211 47 47 0 25 margin bottom 20px gallery error p font family arial sans serif font size 16px color 555 max width 600px margin bottom 10px gallery error error details font size 14px color 888 font style italic document head appendchild style initialize gallery system immediately if possible initializegallerysystem enhanced gallery link interceptor handles clicks on gallery links to prevent full page reloads function store any loaded gallery data for quick reference const gallery_data_cache initialized false galleries lastupdate 0 initialize when dom is ready to catch early clicks document addeventlistener domcontentloaded initgallerylinkinterceptor also initialize when window loads to ensure complete gallery data window addeventlistener load function use a small delay to ensure galleries have fully initialized settimeout initgallerylinkinterceptor 200 additional init on first user interaction document addeventlistener click function initonfirstclick initgallerylinkinterceptor remove this listener after first click document removeeventlistener click initonfirstclick once true main initialization function function initgallerylinkinterceptor prevent multiple initializations if window _gallerylinkinterceptorinitialized if already initialized just refresh the gallery data refreshgallerycache return window _gallerylinkinterceptorinitialized true console log initializing enhanced gallery link interceptor update our cache with current galleries data refreshgallerycache get primary containers that might contain links const gallerycontainer ...
|