PageSourceSearch

https://www.gluseum.com/US/Chicago/127786917240044/Tonantzin-Gallery-Shop

html gluseum.com collected 2026-10-02 07:24:40 UTC 124,062 bytes, 2,698 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head>
4        <link rel="canonical" href="https://www.gluseum.com/US/Chicago/127786917240044/Tonantzin-Gallery-Shop">
5        <meta name="robots" content="max-image-preview:standard">
6                  
7    <title>Tonantzin Gallery Shop, 1173 W. 18Th Street, Chicago, IL (2026)</title>
8        <meta name="Description" content="Paintings, hand-crafted scents, clothing, jewelry, books, music  and live events. We are currently closed until March 3, 2022 as we update and remodel the shop.">
9        
10    <meta charset="utf-8">
11    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
12          <meta name="referrer" content="strict-origin-when-cross-origin">
13        <meta http-equiv="x-ua-compatible" content="ie=edge">
14
15    
16<meta name="msvalidate.01" content="D49109743A3942DA9C7A030378CF0421" />
17
18<meta name="guestpostlinks-verification" content="guestpostlinks-verification-code-12785">
19
20        <meta property="og:title" content="Tonantzin Gallery Shop, 1173 W. 18Th Street, Chicago, IL (2026)">
21    <meta property="og:url" content="https://www.gluseum.com/US/Chicago/127786917240044/Tonantzin-Gallery-Shop">
22    <meta property="og:type" content="website">
23    <meta property="og:description" content="Paintings, hand-crafted scents, clothing, jewelry, books, music  and live events. We are currently closed until March 3, 2022 as we update and remodel the shop.">
24    <meta property="og:image" content="https://graph.facebook.com/127786917240044/picture?type=large">
25        
26    <link rel="shortcut icon" href="/img/gluseum/favicon.ico" type="image/x-icon">
27
28    <!-- Prefetch DNS for external assets -->
29        <link rel="dns-prefetch" href="//graph.facebook.com">
30    <link rel="preconnect" href="//graph.facebook.com">
31    <link rel="dns-prefetch" href="https://www.google-analytics.com">
32                <link rel="preconnect" href="https://pagead2.googlesyndication.com" crossorigin>
33        <link rel="preconnect" href="https://googleads.g.doubleclick.net" crossorigin>
vendor: 150 bytes, lines 33-35
33
34        
35    <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49"></script>
35<link rel="preload" href="/assets/vendor/icon-line/css/simple-line-icons.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
36    <noscript><link rel="stylesheet" href="/assets/vendor/icon-line/css/simple-line-icons.css"></noscript>
vendor: 142 bytes, lines 36-38
36
37
38    <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49"></script>
38<link rel="preload" href="/assets/vendor/icon-hs/style.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
39    <noscript><link rel="stylesheet" href="/assets/vendor/icon-hs/style.css"></noscript>
40
41    
42    <link rel="preload" href="/assets/vendor/icon-hs/fonts/hs-icons.ttf?xa77py" as="font" type="font/ttf" crossorigin>
43
44    
45        
46    
47    
47<script data-cfasync="false">
48    var userCountryCode='US';
49    </script>
49
50    
50<script data-cfasync="false" defer src="/js/adsense-unfilled-collapse.js?v=20260830-3"></script>
vendor: 1 bytes, line 50
50
51<script data-cfasync="false">
52(function () {
53    var consentGate = {
54        enabled: false,
55        requestPauseEnabled: false,
56        diagnosticsEnabled: false,
57        regulated: false,
58        ready: false,
59        startedAt: Date.now(),
60        queue: [],
61        surfaceQueued: {},
62        surfaceReleased: {},
63        requestPauseArmed: false,
64        requestPauseReleased: false,
65        requestPauseTimedOut: false,
66        requestPauseOutcomeRecorded: false,
67        telemetryEnabled: true,
68        telemetryToken: 'YWR0MXwxNzkwOTI1ODc5fDMzfHB2X2ZiMTJjZTJkYWVjNGY3MjhhZmMwNzQyMzQ5MGJlNDU2fDEwMA.0vDLh2_-KG852rxC4DWZDRTl7hCoMz4KTi_Cey5wMks',
69        telemetryPageviewId: 'pv_fb12ce2daec4f728afc07423490be456',
70        telemetryRate: 100,
71        pageType: 'item'
72    };
73    consentGate.requestPauseActive = consentGate.requestPauseEnabled && consentGate.regulated;
74    consentGate.active = (consentGate.enabled || consentGate.requestPauseEnabled) && consentGate.regulated;
75    consentGate.diagnosticsActive = consentGate.active || (consentGate.diagnosticsEnabled && consentGate.regulated);
76    var consentGatePublicState = {
77        enabled: consentGate.enabled,
78        requestPauseEnabled: consentGate.requestPauseEnabled,
79        requestPauseActive: consentGate.requestPauseActive,
80        requestPauseArmed: false,
81        requestPauseReleased: false,
82        requestPauseTimedOut: false,
83        diagnosticsEnabled: consentGate.diagnosticsEnabled,
84        regulated: consentGate.regulated,
85        active: consentGate.active,
86        diagnosticsActive: consentGate.diagnosticsActive,
87        ready: false,
88        queuedSurfaces: 0,
89        releasedSurfaces: 0,
90        abandonedSurfaces: 0,
91        autoRequestObserved: false,
92        autoDomObserved: false,
93        autoFilledObserved: false,
94        autoUnfilledObserved: false
95    };
96    window.fglConsentReadyGateState = consentGatePublicState;
97
98    // This partial is emitted before every AdSense loader on Unify01. Arming
99    // synchronously here prevents both account-configured Auto Ads and manual
100    // slots from issuing requests before Funding Choices is ready.
101    if (consentGate.requestPauseActive) {
102        window.adsbygoogle = window.adsbygoogle || [];
103        window.adsbygoogle.pauseAdRequests = 1;
104        consentGate.requestPauseArmed = true;
105        consentGatePublicState.requestPauseArmed = true;
106    }
107
108    function consentGateSampled() {
109        var hash = 2166136261;
110        if (!consentGate.telemetryEnabled || !consentGate.telemetryToken ||
111                !consentGate.telemetryPageviewId || consentGate.telemetryRate < 1) return false;
112        for (var i = 0; i < consentGate.telemetryPageviewId.length; i++) {
113            hash ^= consentGate.telemetryPageviewId.charCodeAt(i);
114            hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
115        }
116        return ((hash >>> 0) % 1000) < consentGate.telemetryRate;
117    }
118    consentGate.sampled = consentGateSampled();
119
120    function consentGateBrowserFamily() {
121        var ua = String(navigator && navigator.userAgent || '').toLowerCase();
122        if (ua.indexOf('edg/') !== -1 || ua.indexOf('edge/') !== -1) return 'edge';
123        if (ua.indexOf('opr/') !== -1 || ua.indexOf('opera') !== -1) return 'opera';
124        if (ua.indexOf('firefox/') !== -1 || ua.indexOf('fxios/') !== -1) return 'firefox';
125        if (ua.indexOf('chrome/') !== -1 || ua.indexOf('crios/') !== -1) return 'chrome';
126        if (ua.indexOf('safari/') !== -1) return 'safari';
127        return 'other';
128    }
129
130    function consentGateTrafficSource() {
131        var referrer = String(document.referrer || ''), parser, host, current;
132        if (!referrer) return 'direct';
133        try {
134            parser = document.createElement('a'); parser.href = referrer;
135            host = String(parser.hostname || '').toLowerCase();
136            current = String(window.location.hostname || '').toLowerCase();
137        } catch (e) { return 'unknown'; }
138        if (!host) return 'unknown';
139        if (host === current || host.slice(-(current.length + 1)) === '.' + current) return 'internal';
140        if (/(^|\.)google\./.test(host)) return 'google';
141        if (/(^|\.)(bing\.com|yahoo\.[a-z.]+)$/.test(host) || host.indexOf('search.yahoo.') !== -1) return 'bing_yahoo';
142        if (/(^|\.)(duckduckgo\.com|ecosia\.org|yandex\.[a-z.]+|baidu\.com)$/.test(host)) return 'other_search';
143        if (/(^|\.)(facebook\.com|instagram\.com|twitter\.com|t\.co|linkedin\.com|pinterest\.[a-z.]+)$/.test(host)) return 'social';
144        return 'other_referral';
145    }
146
147    function recordConsentGateEvent(eventType, surface, elapsedMs, diagnostic, placement) {
148        var body, event, xhr;
149        if (!consentGate.sampled) return;
150        diagnostic = diagnostic || {};
151        event = {
152            event_type: eventType,
153            placement: placement || '',
154            elapsed_ms: Math.max(0, elapsedMs || 0),
155            layout: 'unify01',
156            page_type: consentGate.pageType,
157            browser_family: consentGateBrowserFamily(),
158            loader_source: diagnostic.loader_source || 'adsbygoogle',
159            visibility_state: document.visibilityState || 'unknown',
160            failure_class: 'none',
161            client_profile: 'unknown',
162            resource_entry_state: diagnostic.resource_entry_state || 'unknown',
163            traffic_source_family: consentGateTrafficSource(),
164            delivery_surface: surface,
165            tcf_probe_stage: diagnostic.tcf_probe_stage || 'none',
166            tcf_observation_phase: diagnostic.tcf_observation_phase || 'none',
167            tcf_api_state: diagnostic.tcf_api_state || 'not_probed',
168            tcf_cmp_family: diagnostic.tcf_cmp_family || 'unknown',
169            tcf_cmp_status: diagnostic.tcf_cmp_status || 'unknown',
170            tcf_event_status: diagnostic.tcf_event_status || 'unknown',
171            tcf_string_state: diagnostic.tcf_string_state || 'unknown',
172            gdpr_applies_state: diagnostic.gdpr_applies_state || 'unknown'
173        };
174        body = JSON.stringify({
175            token: consentGate.telemetryToken,
176            pageview_id: consentGate.telemetryPageviewId,
177            sample_rate_permille: consentGate.telemetryRate,
178            events: [event]
179        });
180        try {
181            if (navigator.sendBeacon && window.Blob && navigator.sendBeacon('/adt', new Blob([body], {type: 'application/json'}))) return;
182        } catch (e) {}
183        try {
184            if (window.fetch) {
185                window.fetch('/adt', {method: 'POST', body: body, credentials: 'same-origin', keepalive: true,
186                    headers: {'Content-Type': 'application/json'}}).catch(function () {});
187                return;
188            }
189            if (window.XMLHttpRequest) {
190                xhr = new XMLHttpRequest();
191                xhr.open('POST', '/adt', true);
192                xhr.setRequestHeader('Content-Type', 'application/json');
193                xhr.send(body);
194            }
195        } catch (e) {}
196    }
197
198    function recordRequestPauseOutcome(outcome, elapsedMs, diagnostic) {
199        var placement;
200        if (!consentGate.requestPauseArmed || consentGate.requestPauseOutcomeRecorded) return;
201        consentGate.requestPauseOutcomeRecorded = true;
202        placement = 'request_pause_v3_' + outcome +
203            (consentGate.requestPauseTimedOut ? '_after_timeout' : '_before_timeout');
204        recordConsentGateEvent(
205            outcome === 'released' ? 'adsense_request_pause_released' : 'adsense_request_pause_abandoned',
206            'unknown',
207            elapsedMs,
208            diagnostic,
209            placement
210        );
211    }
212
213    if (consentGate.requestPauseArmed) {
214        recordConsentGateEvent('adsense_request_pause_armed', 'unknown', 0, null, 'request_pause_v3_armed');
215    }
216
217    var autoConsentTrace = {
218        consentReadyAt: null,
219        consentReadyDiagnostic: null,
220        tcfSnapshots: [],
221        listenerId: null,
222        applicationPushAt: null,
223        requestRecorded: false,
224        requestBeforeRecorded: false,
225        boundaryOutcomeRecorded: false,
226        boundaryTimer: null,
227        domRecorded: false,
228        filledRecorded: false,
229        unfilledRecorded: false,
230        statusOutcomeRecorded: false,
231        statusWindowClosed: false,
232        statusWindowTimer: null,
233        resourceObserverStarted: false,
234        domObserverStarted: false,
235        domObserver: null,
236        tcfListenerStarted: false,
237        prePushRecorded: {}
238    };
239
240    function autoTraceNow() {
241        try {
242            if (window.performance && typeof window.performance.now === 'function') return window.performance.now();
243        } catch (e) {}
244        return Date.now() - consentGate.startedAt;
245    }
246
247    function autoTraceBoundedSnapshot(data) {
248        var cmpId = data && parseInt(data.cmpId, 10), tcString;
249        if (data && typeof data.tcString === 'string') tcString = data.tcString.length ? 'present' : 'absent';
250        else tcString = 'unknown';
251        return {
252            observedAt: autoTraceNow(),
253            cmpFamily: cmpId === 300 ? 'google' : (cmpId > 0 ? 'other' : 'unknown'),
254            cmpStatus: String(data && data.cmpStatus || 'unknown').toLowerCase(),
255            eventStatus: String(data && data.eventStatus || 'unknown').toLowerCase(),
256            stringState: tcString,
257            gdprState: data && data.gdprApplies === true ? 'yes' :
258                (data && data.gdprApplies === false ? 'no' : 'unknown')
259        };
260    }
261
262    function autoTraceSnapshotAt(observedAt) {
263        var snapshots = autoConsentTrace.tcfSnapshots, i;
264        for (i = snapshots.length - 1; i >= 0; i--) {
265            if (snapshots[i].observedAt <= observedAt) {
266                return snapshots[i];
267            }
268        }
269        return null;
270    }
271
272    function autoTraceDiagnosticAt(observedAt, resourceState) {
273        var snapshot = autoTraceSnapshotAt(observedAt);
274        if (snapshot) {
275            return {
276                resource_entry_state: resourceState || 'present',
277                tcf_observation_phase: 'first',
278                tcf_api_state: 'responded',
279                tcf_cmp_family: snapshot.cmpFamily,
280                tcf_cmp_status: snapshot.cmpStatus,
281                tcf_event_status: snapshot.eventStatus,
282                tcf_string_state: snapshot.stringState,
283                gdpr_applies_state: snapshot.gdprState
284            };
285        }
286        return {
287            resource_entry_state: resourceState || 'present',
288            tcf_observation_phase: 'first',
289            tcf_api_state: typeof window.__tcfapi === 'function' ? 'not_probed' : 'absent',
290            tcf_string_state: 'unknown',
291            gdpr_applies_state: 'unknown'
292        };
293    }
294
295    function autoTraceRecord(kind, observedAt, placement) {
296        var afterConsent = autoConsentTrace.consentReadyAt !== null && observedAt >= autoConsentTrace.consentReadyAt;
297        var eventType = kind === 'request'
298            ? 'adsense_auto_request_before_consent'
299            : (afterConsent ? 'adsense_auto_dom_after_consent' : 'adsense_auto_dom_before_consent');
300        recordConsentGateEvent(
301            eventType,
302            'auto_ads',
303            observedAt,
304            autoTraceDiagnosticAt(observedAt),
305            placement || (kind === 'request' ? 'auto_request' : 'auto_dom')
306        );
307        return afterConsent;
308    }
309
310    function autoTraceIsGoogleAdRequest(resourceName) {
311        var parser, host, path;
312        try {
313            parser = document.createElement('a');
314            parser.href = String(resourceName || '');
315            host = String(parser.hostname || '').toLowerCase();
316            path = String(parser.pathname || '').toLowerCase();
317        } catch (e) { return false; }
318        return (host === 'pagead2.googlesyndication.com' || host === 'googleads.g.doubleclick.net') &&
319            path.indexOf('/pagead/ads') === 0;
320    }
321
322    function autoTraceQueryValue(resourceName, parameterName) {
323        var parser, query, parts, i, pair, key, value;
324        try {
325            parser = document.createElement('a');
326            parser.href = String(resourceName || '');
327            query = String(parser.search || '').replace(/^\?/, '');
328            if (!query) return null;
329            parts = query.split('&');
330            for (i = 0; i < parts.length; i++) {
331                pair = parts[i].split('=');
332                key = decodeURIComponent(String(pair.shift() || '').replace(/\+/g, ' '));
333                if (key !== parameterName) continue;
334                value = decodeURIComponent(String(pair.join('=') || '').replace(/\+/g, ' '));
335                return value;
336            }
337        } catch (e) {}
338        return null;
339    }
340
341    function autoTraceRequestClassification(resourceName) {
342        var gdpr = autoTraceQueryValue(resourceName, 'gdpr');
343        var tcString = autoTraceQueryValue(resourceName, 'gdpr_consent');
344        var signal = tcString ? 'tc_present' :
345            (gdpr === '1' ? 'gdpr_without_tc' : (gdpr === '0' ? 'gdpr_not_applicable' : 'no_url_signal'));
346        var mode = autoTraceQueryValue(resourceName, 'ltd') === '1' ? 'limited' :
347            (autoTraceQueryValue(resourceName, 'npa') === '1' ? 'non_personalized' :
348                (autoTraceQueryValue(resourceName, 'rdp') === '1' ? 'restricted' : 'no_url_marker'));
349        return 'req_' + signal + '_' + mode;
350    }
351
352    function autoTraceResourceEntry(entry) {
353        var observedAt;
354        if (autoConsentTrace.requestRecorded || autoConsentTrace.boundaryOutcomeRecorded ||
355                !autoTraceIsGoogleAdRequest(entry && entry.name)) return;
356        observedAt = typeof entry.startTime === 'number' ? entry.startTime : autoTraceNow();
357        if (autoConsentTrace.applicationPushAt !== null && observedAt >= autoConsentTrace.applicationPushAt) return;
358        if (autoConsentTrace.consentReadyAt !== null && observedAt >= autoConsentTrace.consentReadyAt) return;
359        autoConsentTrace.requestRecorded = true;
360        autoTraceRecord('request', observedAt, autoTraceRequestClassification(entry.name));
361        autoConsentTrace.requestBeforeRecorded = true;
362        autoConsentTrace.boundaryOutcomeRecorded = true;
363        if (autoConsentTrace.boundaryTimer !== null) window.clearTimeout(autoConsentTrace.boundaryTimer);
364        autoConsentTrace.boundaryTimer = null;
365        consentGatePublicState.autoRequestObserved = true;
366    }
367
368    function autoTraceDrainResourceEntries() {
369        var resources, i;
370        try {
371            if (!window.performance || !window.performance.getEntriesByType) return;
372            resources = window.performance.getEntriesByType('resource');
373            for (i = 0; i < resources.length && !autoConsentTrace.requestRecorded; i++) {
374                autoTraceResourceEntry(resources[i]);
375            }
376        } catch (e) {}
377    }
378
379    function autoTraceStartResourceObserver() {
380        var observer;
381        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.resourceObserverStarted) return;
382        autoConsentTrace.resourceObserverStarted = true;
383        try {
384            autoTraceDrainResourceEntries();
385            if (window.PerformanceObserver) {
386                observer = new PerformanceObserver(function (list) {
387                    var entries = list.getEntries(), j;
388                    for (j = 0; j < entries.length; j++) autoTraceResourceEntry(entries[j]);
389                });
390                try { observer.observe({type: 'resource', buffered: true}); }
391                catch (bufferedError) { observer.observe({entryTypes: ['resource']}); }
392            }
393        } catch (e) {}
394    }
395
396    function autoTraceIsInjectedAdNode(node) {
397        if (!node || node.nodeType !== 1) return false;
398        try {
399            if (node.closest && node.closest('[data-fgl-adsense-manual="1"]')) return false;
400            if (node.matches && node.matches('.adsbygoogle, iframe[id^="google_ads_iframe_"]')) return true;
401            return String(node.id || '').toLowerCase().indexOf('google_vignette') === 0;
402        } catch (e) { return false; }
403    }
404
405    function autoTraceRecordAdStatus(status, observedAt) {
406        var afterConsent, eventType, placement;
407        if (autoConsentTrace.statusWindowClosed || (status !== 'filled' && status !== 'unfilled')) return;
408        afterConsent = autoConsentTrace.consentReadyAt !== null && observedAt >= autoConsentTrace.consentReadyAt;
409        if (!autoConsentTrace.statusOutcomeRecorded) {
410            autoConsentTrace.statusOutcomeRecorded = true;
411            recordConsentGateEvent(
412                'adsense_auto_status_observed_' + (afterConsent ? 'after' : 'before') + '_consent',
413                'auto_ads',
414                observedAt,
415                autoTraceDiagnosticAt(observedAt),
416                status === 'filled' ? 'auto_status_filled' : 'auto_status_unfilled'
417            );
418        }
419        if (status === 'filled') {
420            if (autoConsentTrace.filledRecorded) return;
421            autoConsentTrace.filledRecorded = true;
422            consentGatePublicState.autoFilledObserved = true;
423            placement = 'auto_window_filled';
424        } else if (status === 'unfilled') {
425            if (autoConsentTrace.unfilledRecorded) return;
426            autoConsentTrace.unfilledRecorded = true;
427            consentGatePublicState.autoUnfilledObserved = true;
428            placement = 'auto_window_unfilled';
429        }
430        eventType = 'adsense_auto_' + status + '_' + (afterConsent ? 'after' : 'before') + '_consent';
431        recordConsentGateEvent(eventType, 'auto_ads', observedAt,
432            autoTraceDiagnosticAt(observedAt), placement);
433    }
434
435    function autoTraceInspectAdStatusNode(node) {
436        var candidates, i, status;
437        if (!node || node.nodeType !== 1) return;
438        try {
439            if (node.closest && node.closest('[data-fgl-adsense-manual="1"]')) return;
440            if (node.matches && node.matches('.adsbygoogle[data-ad-status]')) {
441                status = String(node.getAttribute('data-ad-status') || '').toLowerCase();
442                autoTraceRecordAdStatus(status, autoTraceNow());
443            }
444            if (!node.querySelectorAll) return;
445            candidates = node.querySelectorAll('.adsbygoogle[data-ad-status]');
446            for (i = 0; i < candidates.length; i++) {
447                if (candidates[i].closest && candidates[i].closest('[data-fgl-adsense-manual="1"]')) continue;
448                status = String(candidates[i].getAttribute('data-ad-status') || '').toLowerCase();
449                autoTraceRecordAdStatus(status, autoTraceNow());
450            }
451        } catch (e) {}
452    }
453
454    function autoTraceInspectDomNode(node) {
455        var candidates, i;
456        if (autoConsentTrace.domRecorded || autoConsentTrace.applicationPushAt !== null || !node || node.nodeType !== 1) return;
457        if (autoTraceIsInjectedAdNode(node)) {
458            autoConsentTrace.domRecorded = true;
459            autoTraceRecord('dom', autoTraceNow());
460            consentGatePublicState.autoDomObserved = true;
461            return;
462        }
463        if (!node.querySelectorAll) return;
464        candidates = node.querySelectorAll('.adsbygoogle, iframe[id^="google_ads_iframe_"], [id^="google_vignette"]');
465        for (i = 0; i < candidates.length && !autoConsentTrace.domRecorded; i++) {
466            if (autoTraceIsInjectedAdNode(candidates[i])) {
467                autoConsentTrace.domRecorded = true;
468                autoTraceRecord('dom', autoTraceNow());
469                consentGatePublicState.autoDomObserved = true;
470            }
471        }
472    }
473
474    function autoTraceStartDomObserver() {
475        var observer, root = document.documentElement || document.body;
476        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.domObserverStarted || !root) return;
477        autoConsentTrace.domObserverStarted = true;
478        autoTraceInspectDomNode(root);
479        autoTraceInspectAdStatusNode(root);
480        if (!window.MutationObserver) return;
481        observer = new MutationObserver(function (records) {
482            var i, j;
483            for (i = 0; i < records.length; i++) {
484                if (records[i].type === 'attributes') autoTraceInspectAdStatusNode(records[i].target);
485                for (j = 0; j < records[i].addedNodes.length; j++) {
486                    autoTraceInspectDomNode(records[i].addedNodes[j]);
487                    autoTraceInspectAdStatusNode(records[i].addedNodes[j]);
488                }
489            }
490        });
491        observer.observe(root, {childList: true, subtree: true, attributes: true, attributeFilter: ['data-ad-status']});
492        autoConsentTrace.domObserver = observer;
493    }
494
495    function autoTraceDrainDomRecords() {
496        var records, i, j;
497        if (!autoConsentTrace.domObserver || !autoConsentTrace.domObserver.takeRecords) return;
498        try {
499            records = autoConsentTrace.domObserver.takeRecords();
500            for (i = 0; i < records.length; i++) {
501                if (records[i].type === 'attributes') autoTraceInspectAdStatusNode(records[i].target);
502                for (j = 0; j < records[i].addedNodes.length; j++) {
503                    autoTraceInspectDomNode(records[i].addedNodes[j]);
504                    autoTraceInspectAdStatusNode(records[i].addedNodes[j]);
505                }
506            }
507        } catch (e) {}
508    }
509
510    function autoTraceStartTcfListener() {
511        var api = window.__tcfapi;
512        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.tcfListenerStarted ||
513                typeof api !== 'function') return;
514        try {
515            api('addEventListener', 2, function (data, success) {
516                if (!success || !data) return;
517                autoConsentTrace.listenerId = data.listenerId || autoConsentTrace.listenerId;
518                autoConsentTrace.tcfSnapshots.push(autoTraceBoundedSnapshot(data));
519                if (autoConsentTrace.tcfSnapshots.length > 8) autoConsentTrace.tcfSnapshots.shift();
520            });
521            autoConsentTrace.tcfListenerStarted = true;
522        } catch (e) {}
523    }
524
525    function autoTraceFinalizeBoundary(fallbackBoundaryAt) {
526        var boundaryAt, boundaryDiagnostic;
527        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.boundaryOutcomeRecorded) return;
528        boundaryAt = autoConsentTrace.consentReadyAt !== null
529            ? autoConsentTrace.consentReadyAt
530            : (typeof fallbackBoundaryAt === 'number' ? fallbackBoundaryAt : null);
531        if (boundaryAt === null) return;
532        autoTraceDrainResourceEntries();
533        if (autoConsentTrace.requestBeforeRecorded || autoConsentTrace.boundaryOutcomeRecorded) return;
534        autoConsentTrace.boundaryOutcomeRecorded = true;
535        autoConsentTrace.boundaryTimer = null;
536        boundaryDiagnostic = autoConsentTrace.consentReadyAt !== null
537            ? autoConsentTrace.consentReadyDiagnostic
538            : autoTraceDiagnosticAt(boundaryAt, 'missing');
539        recordConsentGateEvent(
540            'adsense_auto_no_request_before_consent',
541            'auto_ads',
542            boundaryAt,
543            boundaryDiagnostic || autoTraceDiagnosticAt(boundaryAt, 'missing'),
544            'auto_request'
545        );
546    }
547
548    function autoTraceFinalizeStatusWindow(fallbackBoundaryAt) {
549        var boundaryAt, boundaryDiagnostic;
550        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.statusWindowClosed) return;
551        autoConsentTrace.statusWindowClosed = true;
552        if (autoConsentTrace.statusWindowTimer !== null) window.clearTimeout(autoConsentTrace.statusWindowTimer);
553        autoConsentTrace.statusWindowTimer = null;
554        if (autoConsentTrace.statusOutcomeRecorded) return;
555        autoConsentTrace.statusOutcomeRecorded = true;
556        boundaryAt = autoConsentTrace.consentReadyAt !== null
557            ? autoTraceNow()
558            : (typeof fallbackBoundaryAt === 'number' ? fallbackBoundaryAt : autoTraceNow());
559        boundaryDiagnostic = autoTraceDiagnosticAt(boundaryAt, 'missing');
560        recordConsentGateEvent(
561            'adsense_auto_no_status_observed',
562            'auto_ads',
563            boundaryAt,
564            boundaryDiagnostic,
565            'auto_status_none'
566        );
567    }
568
569    function autoTraceMarkApplicationPush() {
570        if (autoConsentTrace.applicationPushAt !== null) return;
571        autoTraceDrainResourceEntries();
572        autoTraceDrainDomRecords();
573        autoConsentTrace.applicationPushAt = autoTraceNow();
574    }
575
576    function autoTraceManualSlot(elem) {
577        var slot = elem && elem.getAttribute ? String(elem.getAttribute('data-ad-slot') || '') : '';
578        return /^\d{1,20}$/.test(slot) ? 'slot_' + slot : '';
579    }
580
581    function autoTraceRecordPrePush(surface, placement) {
582        var observedAt, snapshot;
583        if (!consentGate.diagnosticsActive || !consentGate.sampled ||
584                autoConsentTrace.prePushRecorded[surface]) return;
585        autoConsentTrace.prePushRecorded[surface] = true;
586        observedAt = autoTraceNow();
587        snapshot = autoTraceSnapshotAt(observedAt);
588        recordConsentGateEvent(
589            'adsense_tcf_probe',
590            surface,
591            snapshot ? Math.max(0, observedAt - snapshot.observedAt) : 0,
592            autoTraceDiagnosticAt(observedAt, 'missing'),
593            placement || ''
594        );
595    }
596
597    autoTraceStartResourceObserver();
598    autoTraceStartDomObserver();
599    if (!autoConsentTrace.domObserverStarted && document.readyState === 'loading') {
600        document.addEventListener('DOMContentLoaded', autoTraceStartDomObserver);
601    }
602
603    function queueConsentGatePush(surface, action) {
604        if (!consentGate.active || consentGate.ready) return false;
605        consentGate.queue.push({surface: surface, action: action});
606        if (!consentGate.surfaceQueued[surface]) {
607            consentGate.surfaceQueued[surface] = true;
608            consentGatePublicState.queuedSurfaces++;
609            recordConsentGateEvent('adsense_consent_push_queued', surface, Date.now() - consentGate.startedAt);
610        }
611        return true;
612    }
613
614    function releaseConsentGatePushes() {
615        var queued, item, i, elapsed;
616        if (!consentGate.diagnosticsActive || consentGate.ready) return;
617        autoTraceDrainDomRecords();
618        if (autoConsentTrace.consentReadyAt === null) autoConsentTrace.consentReadyAt = autoTraceNow();
619        autoConsentTrace.consentReadyDiagnostic = autoTraceDiagnosticAt(autoConsentTrace.consentReadyAt, 'missing');
620        autoConsentTrace.boundaryTimer = window.setTimeout(autoTraceFinalizeBoundary, 10000);
621        autoConsentTrace.statusWindowTimer = window.setTimeout(autoTraceFinalizeStatusWindow, 10000);
622        consentGate.ready = true;
623        consentGatePublicState.ready = true;
624        elapsed = Date.now() - consentGate.startedAt;
625        if (consentGate.requestPauseArmed && !consentGate.requestPauseReleased) {
626            recordRequestPauseOutcome('released', elapsed, autoConsentTrace.consentReadyDiagnostic);
627            window.adsbygoogle = window.adsbygoogle || [];
628            window.adsbygoogle.pauseAdRequests = 0;
629            consentGate.requestPauseReleased = true;
630            consentGatePublicState.requestPauseReleased = true;
631        }
632        queued = consentGate.queue.slice(0);
633        consentGate.queue = [];
634        for (i = 0; i < queued.length; i++) {
635            item = queued[i];
636            if (!consentGate.surfaceReleased[item.surface]) {
637                consentGate.surfaceReleased[item.surface] = true;
638                consentGatePublicState.releasedSurfaces++;
639                recordConsentGateEvent('adsense_consent_push_released', item.surface, elapsed);
640            }
641            try { item.action(); } catch (e) {}
642        }
643    }
644
645    if (consentGate.diagnosticsActive) {
646        window.googlefc = window.googlefc || {};
647        window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
648        window.googlefc.callbackQueue.push({'CONSENT_API_READY': autoTraceStartTcfListener});
649        window.googlefc.callbackQueue.push({'CONSENT_DATA_READY': releaseConsentGatePushes});
650        autoTraceStartTcfListener();
651        if (consentGate.requestPauseArmed) {
652            window.setTimeout(function () {
653                if (consentGate.requestPauseReleased || consentGate.requestPauseTimedOut) return;
654                consentGate.requestPauseTimedOut = true;
655                consentGatePublicState.requestPauseTimedOut = true;
656                recordConsentGateEvent(
657                    'adsense_request_pause_timeout',
658                    'unknown',
659                    Date.now() - consentGate.startedAt,
660                    autoTraceDiagnosticAt(autoTraceNow(), 'missing'),
661                    'request_pause_v3_timeout_checkpoint'
662                );
663            }, 10000);
664        }
665        window.addEventListener('pagehide', function (event) {
666            var seen = {}, i, surface;
667            if (event && event.persisted) return;
668            if (consentGate.requestPauseArmed && !consentGate.requestPauseReleased) {
669                recordRequestPauseOutcome(
670                    'abandoned',
671                    Date.now() - consentGate.startedAt,
672                    autoTraceDiagnosticAt(autoTraceNow(), 'missing')
673                );
674            }
675            autoTraceFinalizeBoundary(autoTraceNow());
676            autoTraceFinalizeStatusWindow(autoTraceNow());
677            if (!consentGate.active || consentGate.ready || !consentGate.queue.length) return;
678            for (i = 0; i < consentGate.queue.length; i++) {
679                surface = consentGate.queue[i].surface;
680                if (!seen[surface]) {
681                    seen[surface] = true;
682                    consentGatePublicState.abandonedSurfaces++;
683                    recordConsentGateEvent('adsense_consent_push_abandoned', surface, Date.now() - consentGate.startedAt);
684                }
685            }
686        });
687    }
688
689    function getBrowserTimeZone() {
690        try {
691            return String(Intl.DateTimeFormat().resolvedOptions().timeZone || '');
692        } catch (e) {
693            return '';
694        }
695    }
696
697    function clientMatchesSuspiciousAdsenseProfile() {
698        var scr = window.screen || {};
699        if (scr.width === 1280 && scr.height === 1200) {
700            var browserTimeZone = getBrowserTimeZone();
701            return browserTimeZone.indexOf('Asia/') === 0;
702        }
703
704        return false;
705    }
706
707    function sendTarpitGaEvent(name) {
708        try {
709            if (window.fglGtagConfigured && typeof window.gtag === 'function') {
710                window.gtag('event', name, {
711                    'event_category': 'scraper_tarpit',
712                    'event_label': '1280x1200_asia_timezone',
713                    'non_interaction': true
714                });
715                return;
716            }
717
718            window.fglPendingTarpitGaEvents = window.fglPendingTarpitGaEvents || [];
719            window.fglPendingTarpitGaEvents.push({
720                name: name,
721                params: {
722                    'event_category': 'scraper_tarpit',
723                    'event_label': '1280x1200_asia_timezone',
724                    'non_interaction': true
725                }
726            });
727        } catch (e) {
728        }
729    }
730
731    window.fglFlushTarpitGaEvents = function () {
732        if (typeof window.gtag !== 'function') {
733            return;
734        }
735
736        var events = window.fglPendingTarpitGaEvents || [];
737        window.fglPendingTarpitGaEvents = [];
738        for (var i = 0; i < events.length; i++) {
739            window.gtag('event', events[i].name, events[i].params);
740        }
741    };
742
743    function runClientTarpit(durationMs) {
744        var endAt = Date.now() + durationMs;
745        var sink = 0;
746        while (Date.now() < endAt) {
747            sink += Math.sqrt((Date.now() % 997) + Math.random());
748        }
749        window.fglTarpitSink = sink;
750    }
751
752    function runSuspiciousClientTarpit() {
753        var waitStartedAt = Date.now();
754
755        sendTarpitGaEvent('fgl_tarpit_start_20260610_a');
756
757        function runAfterGaStartFlush() {
758            if (!window.fglGtagConfigured && Date.now() - waitStartedAt < 3000) {
759                window.setTimeout(runAfterGaStartFlush, 50);
760                return;
761            }
762
763            if (window.fglFlushTarpitGaEvents) {
764                window.fglFlushTarpitGaEvents();
765            }
766
767            window.setTimeout(function () {
768                runClientTarpit(25000);
769                sendTarpitGaEvent('fgl_tarpit_end_25s_20260610_a');
770                if (window.fglFlushTarpitGaEvents) {
771                    window.fglFlushTarpitGaEvents();
772                }
773
774                window.setTimeout(function () {
775                    runClientTarpit(30000);
776                    sendTarpitGaEvent('fgl_tarpit_end_55s_20260610_a');
777                    if (window.fglFlushTarpitGaEvents) {
778                        window.fglFlushTarpitGaEvents();
779                    }
780                }, 0);
781            }, 3000);
782        }
783
784        window.setTimeout(runAfterGaStartFlush, 0);
785    }
786
787    if (clientMatchesSuspiciousAdsenseProfile()) {
788        runSuspiciousClientTarpit();
789    }
790
791    window.fglShouldBlockAdsenseClient = function () {
792        return clientMatchesSuspiciousAdsenseProfile();
793    };
794
795    window.fglCanLoadAdsenseClient = function () {
796        return !window.fglShouldBlockAdsenseClient();
797    };
798
799    function pushAdsenseElementNow(elem) {
800        if (!window.fglCanLoadAdsenseClient() || !elem) {
801            return false;
802        }
803
804        if (elem.getAttribute('data-adsbygoogle-status') || elem.getAttribute('data-fgl-adsbygoogle-pushed')) {
805            return false;
806        }
807
808        autoTraceRecordPrePush('manual_placement', autoTraceManualSlot(elem));
809        autoTraceMarkApplicationPush();
810        elem.setAttribute('data-fgl-adsbygoogle-pushed', '1');
811        try {
812            (window.adsbygoogle = window.adsbygoogle || []).push({});
813        } catch (e) {
814            if (String(e && e.message || '').indexOf('already have ads') !== -1) {
815                return false;
816            }
817            elem.removeAttribute('data-fgl-adsbygoogle-pushed');
818            throw e;
819        }
820        return true;
821    }
822
823    window.fglPushAdsenseElement = function (elem) {
824        if (!window.fglCanLoadAdsenseClient() || !elem) return false;
825        if (elem.getAttribute('data-adsbygoogle-status') || elem.getAttribute('data-fgl-adsbygoogle-pushed') ||
826                elem.getAttribute('data-fgl-adsbygoogle-consent-queued')) return false;
827        elem.setAttribute('data-fgl-adsense-manual', '1');
828        if (queueConsentGatePush('manual_placement', function () {
829            elem.removeAttribute('data-fgl-adsbygoogle-consent-queued');
830            if (document.documentElement.contains(elem)) pushAdsenseElementNow(elem);
831        })) {
832            elem.setAttribute('data-fgl-adsbygoogle-consent-queued', '1');
833            return true;
834        }
835        return pushAdsenseElementNow(elem);
836    };
837
838    function pushAdsenseOptionsNow(opts) {
839        if (!window.fglCanLoadAdsenseClient() || window.fglAdsenseOptionsPushed) {
840            return false;
841        }
842
843        if (document.querySelector('.adsbygoogle')) {
844            return false;
845        }
846
847        autoTraceRecordPrePush('auto_ads');
848        autoTraceMarkApplicationPush();
849        window.fglAdsenseOptionsPushed = true;
850        try {
851            (window.adsbygoogle = window.adsbygoogle || []).push(opts);
852        } catch (e) {
853            if (String(e && e.message || '').indexOf('already have ads') !== -1) {
854                return false;
855            }
856            window.fglAdsenseOptionsPushed = false;
857            throw e;
858        }
859        return true;
860    }
861
862    window.fglPushAdsenseOptions = function (opts) {
863        if (!window.fglCanLoadAdsenseClient() || window.fglAdsenseOptionsPushed || window.fglAdsenseOptionsConsentQueued) return false;
864        if (document.querySelector('.adsbygoogle')) return false;
865        if (queueConsentGatePush('auto_ads', function () {
866            window.fglAdsenseOptionsConsentQueued = false;
867            pushAdsenseOptionsNow(opts);
868        })) {
869            window.fglAdsenseOptionsConsentQueued = true;
870            return true;
871        }
872        return pushAdsenseOptionsNow(opts);
873    };
874
875    window.fglLoadAdsenseScript = function (src, anon, callback) {
876        if (!window.fglCanLoadAdsenseClient()) {
877            return false;
878        }
879
880        var scriptKey = src.indexOf('/adsbygoogle.js') !== -1 ? 'adsbygoogle' : src;
881        window.fglLoadedAdScripts = window.fglLoadedAdScripts || {};
882        if (window.fglLoadedAdScripts[scriptKey]) {
883            return false;
884        }
885        window.fglLoadedAdScripts[scriptKey] = true;
886
887        var script = document.createElement('script');
888        script.type = 'text/javascript';
889        script.async = true;
890        if (src.indexOf('/adsbygoogle.js') === -1) {
891            script.setAttribute('data-cfasync', 'false');
892        } else {
893            script.setAttribute('fetchpriority', 'high');
894        }
895        script.src = src;
896        if (anon) {
897            script.crossOrigin = 'anonymous';
898        }
899        if (callback) {
900            script.onload = callback;
901        }
902        document.head.appendChild(script);
903        return true;
904    };
905
906}());
907</script>
907
908
909    
910        
911        
911<script data-cfasync="false">
912
913        var _errsLogged=0;
914        function _logErr(err) {
915            if (_errsLogged>=5) {
916                return;
917            }
918            _errsLogged++;
919            var client = new XMLHttpRequest();
920            client.open('POST', '/err');
921            client.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');
922            client.send(err);
923        }
924
925        function loadScript(jsFile, anon, callback) {
926            const script = document.createElement('script');
927            script.type = 'text/javascript';
928            script.async = true;
929            script.onerror = function() {
930                console.log("Error loading " + this.src);
931                if ((this.src.search("addthis") === -1) && (this.src.search("cse.google") === -1) && !navigator.userAgent.includes("Googlebot") && !navigator.userAgent.includes("bingbot")) {
932                    _logErr(['loadScript error ' + jsFile,
933                        'Loc: ' + window.location.href,
934                        'Country: ' + userCountryCode,
935                        'UA: ' + navigator.userAgent,
936                        this.src].join('\n'));
937                }
938            };
939            script.src = jsFile;
940            if (anon) {
941                script.crossOrigin = 'anonymous';
942            }
943            if (callback) {
944                script.onload=callback;
945            }
946
947            document.head.appendChild(script);
948        }
949        </script>
949
950        
951                    
951<script data-cfasync="false">
952              window.dataLayer = window.dataLayer || [];
953              function gtag(){ dataLayer.push(arguments); }
954
955              gtag('consent','default',{
956                ad_storage:'denied',
957                analytics_storage:'denied',
958                ad_user_data:'denied',
959                ad_personalization:'denied'
960              },{
961                region:[
962                  'AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IE','IT',
963                  'LV','LT','LU','MT','NL','PL','PT','RO','SK','SI','ES','SE','IS','LI','NO',
964                  'GB','CH'
965                ]
966              });
967
968              gtag('consent','default',{
969                ad_storage:'granted',
970                analytics_storage:'granted',
971                ad_user_data:'granted',
972                ad_personalization:'granted'
973              });
974            </script>
974
975                    
976                    
976<script data-cfasync="false">
977            window.fglLoadAdsenseScript("https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1320440489789837", true);
978            </script>
978
979                
980                
981        
982  <link rel="stylesheet" type="text/css" href="/css/font-awesome.4.7.0.min.css" />
983<link rel="stylesheet" type="text/css" href="/assets/css.css" />
984<link rel="stylesheet" href="/css/directory-shared.css?v=13">
985<script data-cfasync="false" src="/js/jquery.3.7.1.min.js"></script>
vendor: 1 bytes, line 985
985
986<script data-cfasync="false" src="/assets/js.js?v=2"></script>
986
987
988
989    
989<script data-cfasync="false">var FbInited = false;</script>
989
990    
991                                
991<script data-cfasync="false">
992            
993            </script>
993
994                    
994<script data-cfasync="false">
995(function () {
996  try {
997    var nav = window.navigator || {};
998    var scr = window.screen || {};
999    var lang = String(nav.language || '');
1000    var langs = nav.languages || [];
1001    var firstLang = langs && langs.length ? String(langs[0] || '') : lang;
1002    var ref = String(document.referrer || '');
1003
1004    if (scr.width !== 1280 || scr.height !== 1200) {
1005      return;
1006    }
1007
1008    var payload = {
1009      sw: scr.width || 0,
1010      sh: scr.height || 0,
1011      aw: scr.availWidth || 0,
1012      ah: scr.availHeight || 0,
1013      iw: window.innerWidth || 0,
1014      ih: window.innerHeight || 0,
1015      dpr: window.devicePixelRatio || 0,
1016      lang: lang,
1017      langs: Array.prototype.slice.call(langs || []).slice(0, 8),
1018      ref: ref,
1019      uri: window.location.pathname + window.location.search
1020    };
1021    var body = JSON.stringify(payload);
1022    var endpoint = '/asvl';
1023
1024    if (nav.sendBeacon) {
1025      nav.sendBeacon(endpoint, new Blob([body], {type: 'application/json'}));
1026      return;
1027    }
1028
1029    if (window.fetch) {
1030      window.fetch(endpoint, {
1031        method: 'POST',
1032        body: body,
1033        headers: {'Content-Type': 'application/json'},
1034        keepalive: true,
1035        credentials: 'same-origin'
1036      });
1037    }
1038  } catch (e) {
1039  }
1040}());
1041</script>
1041
1042        
1043                
1044    
1045
1046    
1047        
1047<script data-cfasync="false">
1048    var configuredWebsiteHost = 'www.gluseum.com';
1049    var configuredAccountHost = 'account.' + configuredWebsiteHost.replace(/^www\./, '');
1050    if ((window.location.hostname !== configuredWebsiteHost) && (window.location.hostname !== configuredAccountHost) && (window.location.hostname.indexOf('localhost') === -1)) {
1051        window.top.location.href = 'http://www.gluseum.com' + window.location.pathname; 
1052    }
1053    </script>
1053
1054    
1055
1056    <link rel="stylesheet" href="/css/listing-picture-initials.css?v=1" />
1057    
1057<script data-cfasync="false" defer src="/js/facebook-picture-placeholder.js?v=6"></script>
1057
1058  </head>
1059
1060  <body class="page-item">
1061    <main itemscope itemtype="http://schema.org/LocalBusiness">
1062        
1063
1064    
1065<!-- Header -->
1066    <header id="js-header" class="u-header u-header--sticky-top u-header--toggle-section u-header--change-appearance" data-header-fix-moment="300">
1067      <div class="u-header__section u-header__section--dark g-bg-primary g-transition-0_3 g-py-10" data-header-fix-moment-exclude="g-py-10" data-header-fix-moment-classes="g-py-0">        
1068        
1069        <nav class="navbar navbar-expand-lg">
1070            <div class="container">
1071                <!-- Responsive Toggle Button -->
1072                <button class="navbar-toggler navbar-toggler-right btn g-line-height-1 g-brd-none g-pa-0 g-pos-abs g-top-3 g-right-0" type="button" 
1073                        aria-label="Toggle navigation" aria-expanded="false" aria-controls="navBar" data-toggle="collapse" data-target="#navBar">
1074                    <span class="hamburger hamburger--slider">
1075                        <span class="hamburger-box">
1076                            <span class="hamburger-inner">
1077                            </span>
1078                        </span>
1079                    </span>
1080                </button>
1081                <!-- End Responsive Toggle Button -->
1082
1083                <!-- Logo -->
1084                <a href="https://www.gluseum.com/" class="navbar-brand">
1085                    <img src="/img/gluseum/h30/logo.png" height="30" alt="Gluseum">
1086                </a>
1087                <!-- End Logo -->
1088
1089                <!-- Navigation -->
1090                <div class="collapse navbar-collapse align-items-center flex-sm-row g-pt-10 g-pt-5--lg" id="navBar">
1091                    <ul class="navbar-nav text-uppercase g-font-weight-600 ml-auto">
1092                        
1093                                                
1094                        <li class="nav-item g-mx-20--lg ">
1095                            <a href="https://www.gluseum.com/" class="nav-link px-0" data-google-interstitial="false">
1096                                Home                            </a>
1097                        </li>
1098                                                <li class="nav-item g-mx-20--lg ">
1099                            <a href="https://www.gluseum.com/US" class="nav-link px-0"><i class='fa fa-map-marker'></i> Cities</a>
1100                        </li>
1101                                                <li class="nav-item g-mx-20--lg ">
1102                            <a href="https://www.gluseum.com/countries" class="nav-link px-0"><i class='fa fa-globe'></i> Countries<span class='sr-only'>(current)</span></a>
1103                        </li>
1104                        
1105                                                    <li class="nav-item g-mx-20--lg">
1106                                                                    <a href="/login/127786917240044" class="nav-link px-0" data-google-interstitial="false">Login<span class='sr-only'>(current)</span></a>                                                            </li>
1107                                                
1108                    </ul>
1109                </div>
1110                <!-- End Navigation -->
1111            </div>
1112        </nav>
1113    </div>
1114 </header>
1115 <!-- End Header -->
1116
1117
1118
1119<!--<div class="row" id="contentrow">
1120    <div class="col-xs-12">-->
1121        <link rel="stylesheet" href="/css/listing-description.css?v=20260916-2">
1122<script defer src="/js/listing-description.js?v=20260916-3" type="dc2307b2fbdc7afa35e8b229-text/javascript"></script>
1122
1123
1124
1125                                
1125<script type="application/ld+json">
1126{
1127  "@context": "http://schema.org",
1128  "@type": "BreadcrumbList",
1129  "itemListElement": [{
1130    "@type": "ListItem",
1131    "position": 1,
1132    "item": {
1133      "@id": "https:\/\/www.gluseum.com\/US",
1134      "name": "United States"    }
1135  },{
1136    "@type": "ListItem",
1137    "position": 2,
1138    "item": {
1139      "@id": "https:\/\/www.gluseum.com\/US\/Chicago-IL\/211818",
1140      "name": "Chicago, IL"    }
1141  },{
1142    "@type": "ListItem",
1143    "position": 3,
1144    "item": {
1145      "@id": "https:\/\/www.gluseum.com\/US\/Chicago\/127786917240044\/Tonantzin-Gallery-Shop",
1146      "name": "Tonantzin Gallery Shop",
1147      "image": "https:\/\/graph.facebook.com\/127786917240044\/picture?type=large"     }
1148  }]
1149}
1150</script>
1150
1151
1152<script type="application/ld+json">
1153{
1154    "@context": "https://schema.org",
1155    "@type": "ArtGallery",
1156    "image": "https:\/\/graph.facebook.com\/127786917240044\/picture?type=large",
1157    "logo": "https:\/\/graph.facebook.com\/127786917240044\/picture?type=large",
1158    "name": "Tonantzin Gallery Shop",
1159    "address": {
1160        "@type": "PostalAddress",
1161        "streetAddress": "1173 W. 18Th Street",
1162        "addressLocality": "Chicago",
1163        "addressRegion": "IL",
1164        "postalCode": "60608",
1165        "addressCountry": "US"    }
1166            ,"geo": {
1167        "@type": "GeoCoordinates",
1168        "latitude": 41.8578,
1169        "longitude": -87.6561    }
1170        ,"containedInPlace": {
1171        "@context": "http://schema.org",
1172        "@id": "https:\/\/www.gluseum.com\/US\/Chicago-IL\/211818",
1173        "@type": "Place",
1174        "name": "Chicago, IL"                   ,"sameAs": ["http:\/\/sws.geonames.org\/4887398"]
1175            }
1176    ,"url": "http:\/\/Tonantzinarts.com\/"	,"sameAs" : [
1177		"https:\/\/www.facebook.com\/TonantzinGallery"	]                ,"priceRange": "$$"            ,"openingHoursSpecification": [
1178        {
1179        "@type": "OpeningHoursSpecification",
1180        "dayOfWeek": "Monday",
1181        "opens": "17:00",
1182        "closes": "21:30"    },        {
1183        "@type": "OpeningHoursSpecification",
1184        "dayOfWeek": "Tuesday",
1185        "opens": "17:00",
1186        "closes": "21:30"    },        {
1187        "@type": "OpeningHoursSpecification",
1188        "dayOfWeek": "Wednesday",
1189        "opens": "17:00",
1190        "closes": "21:30"    },        {
1191        "@type": "OpeningHoursSpecification",
1192        "dayOfWeek": "Thursday",
1193        "opens": "17:00",
1194        "closes": "21:30"    },        {
1195        "@type": "OpeningHoursSpecification",
1196        "dayOfWeek": "Friday",
1197        "opens": "17:00",
1198        "closes": "22:00"    },        {
1199        "@type": "OpeningHoursSpecification",
1200        "dayOfWeek": "Saturday",
1201        "opens": "14:00",
1202        "closes": "22:00"    },        {
1203        "@type": "OpeningHoursSpecification",
1204        "dayOfWeek": "Sunday",
1205        "opens": "14:00",
1206        "closes": "20:00"    }        ]
1207    }
1208</script>
1208
1209
1210<script type="application/ld+json">
1211{
1212    "@context": "https://schema.org",
1213    "@type": "FAQPage",
1214    "mainEntity": [
1215            {
1216        "@type": "Question",
1217        "name": "What are the opening hours?",
1218        "acceptedAnswer": {
1219            "@type": "Answer",
1220            "text": "<ul><li>Monday 5pm - 9:30pm<\/li><li>Tuesday 5pm - 9:30pm<\/li><li>Wednesday 5pm - 9:30pm<\/li><li>Thursday 5pm - 9:30pm<\/li><li>Friday 5pm - 10pm<\/li><li>Saturday 2pm - 10pm<\/li><li>Sunday 2pm - 8pm<\/li><\/ul>"        }
1221    },
1222                    {
1223        "@type": "Question",
1224        "name": "What is the address?",
1225        "acceptedAnswer": {
1226          "@type": "Answer",
1227          "text": "1173 W. 18Th Street"        }
1228    },
1229        {
1230        "@type": "Question",
1231        "name": "What is the website?",
1232        "acceptedAnswer": {
1233            "@type": "Answer",
1234            "text": "http:\/\/Tonantzinarts.com\/"        }
1235    }
1236    ]
1237}
1238</script>
1238
1239    
1240
1241
1242
1243<div class="g-pt-85">
1244    <section class="g-bg-size-cover g-bg-pos-center g-bg-cover g-bg-black-opacity-0_5--after g-color-white g-py-50 g-mb-20"
1245             style="background-image: url(/img/directory/1920x800/cities/211818-chicago.jpg);">
1246        <div class="container g-bg-cover__inner">
1247            
1248            <header class="g-mb-20">
1249                <h1 class="h1 g-font-weight-300 text-uppercase" itemprop="name">Tonantzin Gallery Shop</h1>
1250            </header>
1251
1252            <ul class="u-list-inline">
1253                <li class="list-inline-item g-mr-7">
1254                    <a href="/" class="u-link-v5 g-color-white g-color-primary--hover">Home</a>                    <i class="fa fa-angle-right g-ml-7"></i>
1255                </li>
1256                                <li class="list-inline-item g-mr-7">
1257                    <a href="/US" class="u-link-v5 g-color-white g-color-primary--hover">United States</a>                    <i class="fa fa-angle-right g-ml-7"></i>
1258                </li>
1259                <li class="list-inline-item g-mr-7">
1260                    <a href="/US/Chicago-IL/211818" class="u-link-v5 g-color-white g-color-primary--hover">Chicago, IL</a>                    <i class="fa fa-angle-right g-ml-7"></i>
1261                </li>
1262                                <li class="list-inline-item g-color-primary">
1263                    <span>Tonantzin Gallery Shop</span>
1264                </li>
1265            </ul>
1266            
1267            
1268        </div>
1269    </section>
1270</div>
1271
1272
1273
1274
1275<div class="container">
1276    <div class="row">
1277        <div class="col-sm-12 w-100">
1278                        
1279            <p data-listing-description data-description-more="Read more" data-description-less="Show less" itemprop="description" class="directory-provider-intro lead mb-0 g-line-height-1_8 float-left w-100">
1280                
1281                <!-- Logo image -->
vendor: 153 bytes, lines 1281-1282
1281
1282                <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49"></script>
1282<img class="rounded g-width-135 float-right g-ml-10"
1283                              src="https://graph.facebook.com/127786917240044/picture?type=large"
1284        
1285                     width="135" height="135"
1286                     itemprop="image"
1287                     alt="Tonantzin Gallery Shop"
1288                     onerror="this.onerror=null;this.src='/img/gluseum/logo.png';" />
1289                
1290                
1291                Paintings, hand-crafted scents, clothing, jewelry, books, music  and live events. We are currently closed until March 3, 2022 as we update and remodel the shop.                
1292                            </p>
1293
1294        </div>
1295    </div>
1296            
1297            <div class="row g-mb-10 g-mt-10">
1298            <div class="col-sm-12 w-100 text-center">
1299                            </div>
1300        </div>
1301    </div>
1302
1303
1304
1305
1306
1307<div class="container g-pt-20 g-pb-10">
1308    <div class="row justify-content-between">
1309        <div class="col-xl-8 col-lg-9 col-md-6 order-2 g-mb-80" style="float:right">
1310
1311                                                                        
1312                        <div class="g-pl-20--lg">   
1313                <section style="overflow: hidden">
1314                    
1315                                        
1316                    
1317                    <div data-listing-description data-description-more="Read more" data-description-less="Show less">
1318                                                    <p>Thanks for your continuous support!</p>
1319                        
1320                        
1321                                            </div>
1322
1323
1324                                        
1325                                        
1326                                        
1327                                        
1328                                       
1329                </section>
1330            </div>
1331                        
1332            
1333            
1334                        
1335                        <div class="u-divider u-divider-center u-divider-linear-gradient u-divider-linear-gradient--gray-light-v3 w-50 mx-auto g-my-30">
1336                <i class="fa fa-circle u-divider__icon g-bg-white g-color-primary"></i>
1337            </div>
1338            
1339            <div class="g-pl-20--lg">
1340                
1341                                
1342                <div class="masonry-grid row directory-post-grid postsgrid">
1343                    
1344
1345                                                                                    <div class="masonry-grid-item col-lg-6 g-mb-30" style="">
1346                            <article class="u-shadow-v11 shareimg" style="overflow: hidden">
vendor: 242 bytes, lines 1346-1348
1346
1347
1348                                                                                                        <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49"></script>
1348<img class="img-fluid w-100" onerror="this.hidden=true"
1349                                        width="720" height="720"                                        style="width:100%; height:auto"
1350                                         src="https://img3.gluseum.com/612/601/1660051176126017.jpg"
1351                                                                                  alt="🎨 Make Tonantzin one of your stops during Pilsen Apoya!As you explore Pilsen on August 15–16, stop by Tonantzin to see t...">
1352                                                                                                    <div class="g-bg-white g-pa-20">
1353                                    <h5 class="d-block g-color-gray-dark-v4 g-font-weight-600 g-font-size-12 text-uppercase mb-2">
1354                                                                                08/14/2026                                                                            </h5>
1355
1356                                    
1357                                                                            <p class="g-color-gray-dark-v4 g-line-height-1_8">
1358                                            🎨 Make Tonantzin one of your stops during Pilsen Apoya!<br />
1359<br />
1360As you explore Pilsen on August 15–16, stop by Tonantzin to see the work of two Chicago artists currently showing in our gallery.<br />
1361<br />
1362Juan Carlos Torres is a longtime Chicago local artist and muralist rooted in Pilsen.<br />
1363Lucero Sanchez is a first-generation Mexican American artist and illustrator from Chicago.<br />
1364<br />
1365Come see their work in person, explore the gallery, and discover something new while supporting local artists and Pilsen businesses. ❤️<br />
1366<br />
1367📍 Tonantzin | Pilsen<br />
1368 ✨ Pilsen Apoya Business Crawl hosted by <br />
1369🗓️ August 15–16<br />
1370<br />
1371                                                       </p>
1372                                    
1373                                                                    </div>
1374                                
1375                                                            </article>
1376                                
1377                        </div>
1378                    
1379                    
1380                                                
1381                        
1382                                        
1383                                                                <div class="masonry-grid-item col-lg-6 g-mb-30" style="">
1384                            <article class="u-shadow-v11 shareimg" style="overflow: hidden">
vendor: 242 bytes, lines 1384-1386
1384
1385
1386                                                                                                        <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49"></script>
1386<img class="img-fluid w-100" onerror="this.hidden=true"
1387                                        width="720" height="720"                                        style="width:100%; height:auto"
1388                                         src="https://img5.gluseum.com/286/883/1659289642868837.jpg"
1389                                                                                  alt="Need another stop for your Pilsen Apoya Business Crawl adventure?Here’s why we hope you’ll visit Tonantzin:✨ Original ar...">
1390                                                                                                    <div class="g-bg-white g-pa-20">
1391                                    <h5 class="d-block g-color-gray-dark-v4 g-font-weight-600 g-font-size-12 text-uppercase mb-2">
1392                                                                                08/14/2026                                                                            </h5>
1393
1394                                    
1395                                                                            <p class="g-color-gray-dark-v4 g-line-height-1_8">
1396                                            Need another stop for your Pilsen Apoya Business Crawl adventure?<br />
1397<br />
1398Here’s why we hope you’ll visit Tonantzin:<br />
1399<br />
1400✨ Original artwork<br />
1401🎨 Handmade goods<br />
1402❤️ Support local artists<br />
1403🖼️ Free 4x6 print with every raffle ticket<br />
1404🏆 Chance to win an original artwork<br />
1405<br />
1406Whether you’re adding another stamp to your lotería card or simply looking for something beautiful to take home, we’d love to see you.<br />
1407<br />
1408                                                 </p>
1409                                    
1410                                                                    </div>
1411                                
1412                                                            </article>
1413                                
1414                        </div>
1415                    
1416                    
1417                                                
1418                        
1419                                        
1420                                                                <div class="masonry-grid-item col-lg-6 g-mb-30" style="">
1421                            <article class="u-shadow-v11 shareimg" style="overflow: hidden">
1422
1423                                                                    
1424                                        
1425                                        <div class="fb-video-lazy" style="height:599.40886699507px;"                                          data-href="https://www.facebook.com/reel/1082443281018362/"
1426                                          data-width="640"
1427                                          data-allowfullscreen="true"
1428                                          data-autoplay="false"
1429                                          data-show-captions="true"></div>
1430                                                                                                    <div class="g-bg-white g-pa-20">
1431                                    <h5 class="d-block g-color-gray-dark-v4 g-font-weight-600 g-font-size-12 text-uppercase mb-2">
1432                                                                                08/10/2026                                                                            </h5>
1433
1434                                    
1435                                                                            <p class="g-color-gray-dark-v4 g-line-height-1_8">
1436                                            Looking for an excuse to spend a day in Pilsen?<br />
1437<br />
1438This is it.<br />
1439<br />
1440Stop into Tonantzin during Pilsen Apoya Business Crawl hosted by PUÑO (Pilsen Unidos por Nuestro Orgullo) , explore original artwork, discover handmade treasures, and enter our Art Raffle for a chance to win an original piece.<br />
1441<br />
1442🎟️ $25 per ticket<br />
1443🖼️ Every ticket comes with a FREE 4x6 print.<br />
1444<br />
1445Tickets are available online (🔗 link in bio) or in-store.<br />
1446<br />
1447We’ll see you August 15–16. ❤️<br />
1448<br />
1449                                                 </p>
1450                                    
1451                                                                    </div>
1452                                
1453                                                            </article>
1454                                
1455                        </div>
1456                    
1457                    
1458                                                <div class="masonry-grid-item col-sm-6 g-mb-20" >
1459                            <article class="u-shadow-v11">
1460                                <center>
1461                                                                                                                                </center>
1462                            </article>
1463                        </div>
1464                                                
1465                        
1466                                        
1467                                                                <div class="masonry-grid-item col-lg-6 g-mb-30" style="">
1468                            <article class="u-shadow-v11 shareimg" style="overflow: hidden">
vendor: 242 bytes, lines 1468-1470
1468
1469
1470                                                                                                        <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49"></script>
1470<img class="img-fluid w-100" onerror="this.hidden=true"
1471                                        width="720" height="900"                                        style="width:100%; height:auto"
1472                                         src="https://img4.gluseum.com/354/795/1652498483547953.jpg"
1473                                                                                  alt="🎉 We’re excited to share that Tonantzin is participating in Pilsen Apoya Business Crawl hosted by PUÑO (Pilsen Unidos po...">
1474                                                                                                    <div class="g-bg-white g-pa-20">
1475                                    <h5 class="d-block g-color-gray-dark-v4 g-font-weight-600 g-font-size-12 text-uppercase mb-2">
1476                                                                                08/06/2026                                                                            </h5>
1477
1478                                    
1479                                                                            <p class="g-color-gray-dark-v4 g-line-height-1_8">
1480                                            🎉 We’re excited to share that Tonantzin is participating in Pilsen Apoya Business Crawl hosted by PUÑO (Pilsen Unidos por Nuestro Orgullo) on August 15–16!<br />
1481<br />
1482Pilsen Apoya is a neighborhood-wide business crawl created to support the small businesses that make Pilsen such a vibrant and welcoming community. ❤️<br />
1483<br />
1484To celebrate, we’re hosting a special Art Raffle!<br />
1485🎟️ $25 per ticket<br />
1486🖼️ Every ticket includes a FREE 4x6 art print<br />
1487🏆 Winner announced Sunday, August 16<br />
1488<br />
1489Tickets are available online (🔗 link in bio) or in-store.<br />
1490<br />
1491✨ Please note: Your complimentary print and raffle prize (if you win!) must be picked up at Tonantzin. Please present your receipt or online order confirmation at pickup.<br />
1492<br />
1493While you’re exploring Pilsen during the crawl, stop by our shop, discover local art, collect your PUÑO stamp, and support the artists and small businesses that help keep our neighborhood thriving.<br />
1494<br />
1495See you soon! ❤️<br />
1496<br />
1497          ShopSmallChicago Pilsen ChicagoArt                                        </p>
1498                                    
1499                                                                    </div>
1500                                
1501                                                            </article>
1502                                
1503                        </div>
1504                    
1505                    
1506                                                
1507                        
1508                                        
1509                                                                <div class="masonry-grid-item col-lg-6 g-mb-30" style="">
1510                            <article class="u-shadow-v11 shareimg" style="overflow: hidden">
vendor: 242 bytes, lines 1510-1512
1510
1511
1512                                                                                                        <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49"></script>
1512<img class="img-fluid w-100" onerror="this.hidden=true"
1513                                        width="720" height="960"                                        style="width:100%; height:auto"
1514                                         src="https://img5.gluseum.com/623/489/1625629076234894.jpg"
1515                                                                                  alt="Thank you customers for all your love and support to our shop.❤️        ❤️  ">
1516                                                                                                    <div class="g-bg-white g-pa-20">
1517                                    <h5 class="d-block g-color-gray-dark-v4 g-font-weight-600 g-font-size-12 text-uppercase mb-2">
1518                                                                                07/09/2026                                                                            </h5>
1519
1520                                    
1521                                                                            <p class="g-color-gray-dark-v4 g-line-height-1_8">
1522                                            Thank you customers for all your love and support to our shop.❤️        ❤️                                          </p>
1523                                    
1524                                                                    </div>
1525                                
1526                                                            </article>
1527                                
1528                        </div>
1529                    
1530                    
1531                                                
1532                        
1533                                        
1534                                                                <div class="masonry-grid-item col-lg-6 g-mb-30" style="">
1535                            <article class="u-shadow-v11 shareimg" style="overflow: hidden">
vendor: 242 bytes, lines 1535-1537
1535
1536
1537                                                                                                        <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49"></script>
1537<img class="img-fluid w-100" onerror="this.hidden=true"
1538                                        width="720" height="846"                                        style="width:100%; height:auto"
1539                                         src="data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
1540                                         data-src="https://img4.gluseum.com/702/102/1617767737021028.jpg"                                         alt="Tonantzin jewelry, new arrivals! Stop by we are currently open Monday-Thursday from 12:00pm to 9:30pm, Friday from 3pm t...">
1541                                                                                                    <div class="g-bg-white g-pa-20">
1542                                    <h5 class="d-block g-color-gray-dark-v4 g-font-weight-600 g-font-size-12 text-uppercase mb-2">
1543                                                                                07/01/2026                                                                            </h5>
1544
1545                                    
1546                                                                            <p class="g-color-gray-dark-v4 g-line-height-1_8">
1547                                            Tonantzin jewelry, new arrivals! Stop by we are currently open Monday-Thursday from 12:00pm to 9:30pm, Friday from 3pm to 10pm,  Saturday 12:00pm to 9:30pm and Sunday from 12pm to 7pm.  <br />
1548<br />
1549                                                 </p>
1550                                    
1551                                                                    </div>
1552                                
1553                                                            </article>
1554                                
1555                        </div>
1556                    
1557                    
1558                                                
1559                        
1560                                        
1561                    
1562                    <div class="masonry-grid-sizer"></div>
1563                </div>
1564                            </div>
1565            
1566            <div id="location"></div>
1567
1568            <!-- Map and address -->
1569            <div class="g-pl-20--lg g-pt-30">
1570                <section>
1571                    <div class="u-heading-v1-4 g-bg-main g-brd-primary g-mb-20">
1572                        <h2 class="h3 u-heading-v1__title">Address</h2>
1573                    </div>
1574                    
1575                                        
1576                    <p itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
1577                        <span itemprop="streetAddress">1173 W. 18Th Street</span> <br/>                        <span itemprop="addressLocality">Chicago</span>, <span itemprop="addressRegion">IL</span>  <br/>
1578                        <span itemprop="postalCode">60608</span>
1579                    </p>
1580
1581                                            <div id="map" style="height: 400px; width: 100%;"></div>
1582
1583                    
1584                                        <div class="g-pt-10 text-center">
1585                        
1586                    </div>
1587                     
1588                    
1589                                        
1590                </section>
1591            </div>
1592            <!-- End Map and address -->
1593
1594            <!-- General info -->
1595                        
1596            <div id="hours"></div>
1597            <div id="telephone"></div>
1598            <div id="website"></div>
1599            <div id="restaurant_services"></div>
1600            
1601            <div class="g-pl-20--lg g-mt-30">
1602                <div class="masonry-grid2 row">
1603                    <div class="masonry-grid-sizer"></div>
1604
1605                        
1606                    <!-- Hours -->
1607                                        <div class="g-pl-20--lg masonry-grid-item col-sm-6 g-mb-30">
1608                        <div class="u-heading-v1-4 g-bg-main g-brd-primary g-mb-20">
1609                            <h2 class="h3 u-heading-v1__title">Opening Hours</h2>
1610                        </div>
1611                        
1612                                                
1613                        <table class="table table-sm" id="hrs">
1614                                                        <tr>
1615                                <td>
1615Monday</td>
1616                                <td>5pm - 9:30pm</td>
1617                            </tr>
1618                                                        <tr>
1619                                <td>Tuesday</td>
1620                                <td>5pm - 9:30pm</td>
1621                            </tr>
1622                                                        <tr>
1623                                <td>Wednesday</td>
1624                                <td>5pm - 9:30pm</td>
1625                            </tr>
1626                                                        <tr>
1627                                <td>Thursday</td>
1628                                <td>5pm - 9:30pm</td>
1629                            </tr>
1630                                                        <tr>
1631                                <td>Friday</td>
1632                                <td>5pm - 10pm</td>
1633                            </tr>
1634                                                        <tr>
1635                                <td>Saturday</td>
1636                                <td>2pm - 10pm</td>
1637                            </tr>
1638                                                        <tr>
1639                                <td>Sunday</td>
1640                                <td>2pm - 8pm</td>
1641                            </tr>
1642                                                    </table>
1643                    </div>
1644                                        <!-- End Hours -->
1645
1646            
1647                    <!-- Telephone -->
1648                                        <!-- End Telephone -->
1649            
1650                    <!-- WhatsApp -->
1651                                        <!-- End WhatsApp -->
1652            
1653                    <!-- Website -->
1654                    <div class="g-pl-20--lg masonry-grid-item col-sm-6 g-mb-30">
1655                        <div class="u-heading-v1-4 g-bg-main g-brd-primary g-mb-20">
1656                            <h2 class="h3 u-heading-v1__title">Website</h2>
1657                        </div>
1658                                                <p style='overflow-wrap:anywhere'>
1659                                                            <a href="http://Tonantzinarts.com/" itemprop="url" target="_blank">http://Tonantzinarts.com/</a>                                                    </p>
1660                    </div>
1661                    <!-- End Website -->
1662
1663                    <!-- Restaurant services -->
1664                                        <!-- End Restaurant services -->
1665            
1666                    <!-- Restaurant specialties -->
1667                                        <!-- End Restaurant specialties -->
1668                    
1669                    <!-- Products -->
1670                                        <!-- End Restaurant specialties -->
1671                </div>
1672            </div>
1673            
1674            <!-- Comments -->
1675            
1676            
1677            
1678            <div id="contact"></div>
1679
1680            <!-- Alerts -->
1681            <div id="alerts" class="g-pl-20--lg g-mb-40">
1682                <div class="u-heading-v1-4 g-bg-main g-brd-primary g-mb-20">
1683                    <h2 class="h3 u-heading-v1__title">Alerts</h2>
1684                </div>
1685                <p>
1686                    Be the first to know and let us send you an email when Tonantzin Gallery Shop posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.                
1687                    <form class="g-mt-15" onsubmit="if (!window.__cfRLUnblockHandlers) return false; event.preventDefault(); subscribe(null,127786917240044);" data-cf-modified-dc2307b2fbdc7afa35e8b229-="">
1688                        <div class="row">
1689                            <div class="col-12">
1690                                <div class="form-group g-mb-10">
1691                                    <label class="sr-only" for="alert_email">Your Email</label>
1692                                    <input id="alert_email" class="form-control g-brd-primary--focus g-px-20 g-py-12" type="email" placeholder="Your Email">
1693                                </div>
1694                            </div>
1695
1696                            <div class="col-12">
1697                                <button id="alert_submit" class="btn btn-md u-btn-primary g-font-size-12 text-uppercase rounded g-py-11 g-px-30" type="submit">Subscribe</button>
1698                            </div>
1699                        </div>
1700                    </form>
1701                </p>
1702            </div>
1703                
1704            <!-- Contact business -->
1705                        <!-- End Contact business -->
1706
1707            
1708
1709            
1709<script type="dc2307b2fbdc7afa35e8b229-text/javascript">
1710                var my_video_player;
1711                var start_playing = false;
1712                
1713                window.fbAsyncInit = function() {
1714                    FB.init({
1715                        appId            : '1649304618667893',
1716                        autoLogAppEvents : true,
1717                        xfbml            : true,
1718                        version          : 'v14.0'
1719                    });
1720                    
1721                    FbInited = true;
1722
1723                    FB.Event.subscribe('xfbml.ready', function(msg) {
1724                        if (msg.type === 'video') {
1725                            my_video_player = msg.instance;
1726                            if (start_playing)
1727                                my_video_player.play();
1728                            var myEventHandler = my_video_player.subscribe('startedPlaying', function(e) {
1729                            });
1730                        }
1731                        
1732                                                FB.Event.subscribe('xfbml.ready', function(msg) {
1733                            $grid.masonry('layout');
1734                        });
1735                                                
1736                    });
1737                };
1738
1739
1740              (function(d, s, id){
1741                 var js, fjs = d.getElementsByTagName(s)[0];
1742                 if (d.getElementById(id)) {return;}
1743                 js = d.createElement(s); js.id = id;
1744                 js.src = "//connect.facebook.net/en_US/sdk.js";
1745                 fjs.parentNode.insertBefore(js, fjs);
1746               }(document, 'script', 'facebook-jssdk'));
1747            </script>
1747
1748
1749            
1750            <!-- Videos -->
1751                        <!-- End Videos -->
1752            
1753        </div>
1754            
1755        <div class="col-xl-4 col-lg-3 col-md-6 order-1 g-brd-right--lg g-brd-gray-light-v4 g-mb-40">
1756            <div class="g-pr-20--lg">
1757
1758                <!-- Shortcuts -->
1759                <div class="g-mb-10">
1760                    <h3 class="h5 g-color-black g-font-weight-600 mb-4">Shortcuts</h3>
1761                    <ul class="list-unstyled g-font-size-13 mb-0">
1762                        <li><a class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover" href="#location">
1763                                <i class="mr-2 fa fa-angle-right"></i> Address</a>
1764                        </li>
1765                                                                        <li><a class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover" href="#hours">
1766                                <i class="mr-2 fa fa-angle-right"></i> Opening Hours</a>
1767                        </li>
1768                                                                                                <li><a class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover" href="#alerts">
1769                                <i class="mr-2 fa fa-angle-right"></i> Alerts</a>
1770                        </li>
1771                                                <li><a class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover" href="#contact">
1772                                <i class="mr-2 fa fa-angle-right"></i> Contact The Museum</a>
1773                        </li>
1774                                                
1775                                                
1776    <li><form action="/claim/start/127786917240044" method="post" style="margin:0;"><button type="submit" class="d-block u-link-v5 g-color-black g-px-20 g-py-8 g-pa-5 g-mb-minus-1 g-bg-primary rounded g-mb-5" style="border:0;text-align:left;width:100%;" data-google-interstitial="false"><i class="mr-2 fa fa-angle-right"></i>Claim ownership or report listing</button></form>
1777    </li>
1778            <li><button type="button" class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover" style="border:0;background:transparent;text-align:left;width:100%;" data-takedown-open data-google-interstitial="false"><i class="mr-2 fa fa-angle-right"></i>Request takedown</button></li>
1779    
1780                    </ul>
1781                </div>
1782                <!-- End Shortcuts -->
1783
1784
1785                
1786                                            <div class="g-mb-10 g-mt-30">
1787                            <h3 class="h5 g-color-black g-font-weight-600 mb-4" id="nearby">Featured</h3>
1788
1789                            <ul class="list-unstyled g-font-size-13 mb-0">
1790                                                                                                                                <li class="g-brd-gray-light-v4 g-pa-5 g-bg-primary rounded g-mb-5" style="overflow: hidden">
1791                                    <div class="media">
1792                                        <div class="d-flex g-mt-2 g-mr-15">
vendor: 181 bytes, lines 1792-1793
1792
1793                                            <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49"></script>
1793<img class="g-width-40 g-height-40 rounded-circle"
1794                                                 width="100" height="100"
1795                                                 src="https://graph.facebook.com/7736674485/picture?type=square"
1796                                                 alt="Institute for the Study of Ancient Cultures"
1797                                                 onerror="this.onerror=null;this.src='/img/gluseum/logo.png'" />
1798                                        </div>
1799                                        <div class="media-body">
1800                                                                                        <p class="m-0">
1801                                                <strong>
1802                                                    <a href="/US/Chicago/7736674485/Institute-for-the-Study-of-Ancient-Cultures" class="u-link-v5 g-color-black g-color-white--hover">Institute for the Study of Ancient Cultures</a>                                                </strong>
1803                                            </p>
1804                                            <span class="g-font-size-12 g-color-gray">
1805                                                1155 E 58th Street                                                                                            </span>
1806                                        </div>
1807                                    </div>
1808                                </li>
1809                                                            </ul>
1810                        </div>
1811                    
1812                                            <div class="g-mb-10">
1813                            <ul class="list-unstyled g-font-size-13 mb-0">
1814                                <li class="g-brd-gray-light-v4 g-pa-5 g-mb-minus-1 g-bg-primary rounded g-mb-5 g-mt-10">
1815                                    <div class="media">
1816                                        <div class="d-flex g-mt-2 g-mr-15">
1817                                            <img class="g-width-40 g-height-40 rounded-circle" src="/img/feature.jpg"
1818                                                 alt="">
1819                                        </div>
1820                                        <div class="media-body">
1821                                            <p class="m-0">
1822                                                <strong>
1823                                                                                                            <a href="/US/Chicago-IL/211818/feature/start?exp=1790929479&amp;id=127786917240044" class="u-link-v5 g-color-black g-color-white--hover" data-google-interstitial="false">Want your museum to be the top-listed Museum in Chicago?</a>                                                                                                    </strong>
1824                                            </p>
1825                                        </div>
1826                                    </div>
1827                                </li>
1828                            </ul>
1829                        </div>
1830                                    
1831                                
1832                
1833                                        <div class="g-pr-20--lg g-mt-30">
1834        <div class="g-mb-30">
1835            <h3 class="h5 g-color-black g-font-weight-600 mb-4">Share</h3>
1836            <div>
1837  <a href="https://www.facebook.com/sharer/sharer.php?u=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnFacebook(); return false;" data-cf-modified-dc2307b2fbdc7afa35e8b229-="">
1838    <img src="/img/facebook.png" height="50" width="50" alt="Share on Facebook">
1839  </a>
1840  <a href="https://twitter.com/intent/tweet?url=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnTwitter(); return false;" data-cf-modified-dc2307b2fbdc7afa35e8b229-="">
1841    <img src="/img/twitter.png" height="50" width="50" alt="Share on Twitter">
1842  </a>
1843  <a href="https://www.linkedin.com/shareArticle?url=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnLinkedIn(); return false;" data-cf-modified-dc2307b2fbdc7afa35e8b229-="">
1844    <img src="/img/linkedin.png" height="50" width="50" alt="Share on LinkedIn">
1845  </a>
1846    <br/>
1847  <a href="https://pinterest.com/pin/create/button/?url=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnPinterest(); return false;" data-cf-modified-dc2307b2fbdc7afa35e8b229-="">
1848    <img src="/img/pinterest.png" height="50" width="50" alt="Share on Pinterest" style="margin-top:10px">
1849  </a>
1850    <a href="https://www.reddit.com/submit?url=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnReddit(); return false;" data-cf-modified-dc2307b2fbdc7afa35e8b229-="">
1851      <img src="/img/reddit.png" height="50" width="50" alt="Share on Reddit" style="margin-top:10px">
1852    </a>
1853<a href="/cdn-cgi/l/email-protection#bc83cfc9ded6d9dfc881ffd4d9dfd7998e8cd3c9c8998e8cc8d4d5cf998e8cccdddbd99aded3d8c5819f">
1854    <img src="/img/email.png" height="50" width="50" alt="Share via Email" style="margin-top:10px">
1855  </a>
1856    <br/>
1857  <a href="whatsapp://send?text=#" data-action="share/whatsapp/share">
1858    <img src="/img/whatsapp.png" height="50" width="50" alt="Share on WhatsApp" style="margin-top:10px">
1859  </a>
1860  <a href="#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnInstagram(); return false;" data-cf-modified-dc2307b2fbdc7afa35e8b229-="">
1861    <img src="/img/instagram.png" height="50" width="50" alt="Share on Instagram" style="margin-top:10px">
1862  </a>
1863<a href="#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnTelegram(); return false;" data-cf-modified-dc2307b2fbdc7afa35e8b229-="">
1864    <img src="/img/telegram.png" height="50" width="50" alt="Share on Telegram" style="margin-top:10px">
1865  </a>
1866</div>
vendor: 109 bytes, lines 1866-1867
1866
1867<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1867<script type="dc2307b2fbdc7afa35e8b229-text/javascript">
1868  function getCurrentPageUrl() {
1869    return encodeURIComponent(window.location.href);
1870  }
1871  
1872  function shareOnFacebook() {
1873    var url = getCurrentPageUrl();
1874    window.open('https://www.facebook.com/sharer/sharer.php?u=' + url, '_blank');
1875  }
1876  
1877  function shareOnTwitter() {
1878    var url = getCurrentPageUrl();
1879    window.open('https://twitter.com/intent/tweet?url=' + url, '_blank');
1880  }
1881  
1882  function shareOnLinkedIn() {
1883    var url = getCurrentPageUrl();
1884    window.open('https://www.linkedin.com/shareArticle?url=' + url, '_blank');
1885  }
1886  
1887  function shareOnPinterest() {
1888    var url = getCurrentPageUrl();
1889    window.open('https://pinterest.com/pin/create/button/?url=' + url, '_blank');
1890  }
1891  function shareOnReddit() {
1892    var url = getCurrentPageUrl();
1893    window.open('https://www.reddit.com/submit?url=' + url, '_blank');
1894  }
1895  function shareViaEmail() {
1896    var url = getCurrentPageUrl();
1897    var subject = encodeURIComponent('Check out this page');
1898    var body = encodeURIComponent(url);
1899    window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
1900  }
1901  
1902  function shareOnWhatsApp() {
1903    var url = getCurrentPageUrl();
1904    window.location.href = 'whatsapp://send?text=' + encodeURIComponent(url);
1905  }  
1906   function shareOnInstagram() {
1907    var url = getCurrentPageUrl();
1908    var caption = encodeURIComponent("Check out this page: " + url);
1909    window.location.href = 'instagram://library?AssetPath=' + url + '&InstagramCaption=' + caption;
1910  }
1911  function shareOnTelegram() {
1912    var url = getCurrentPageUrl();
1913    window.open('https://t.me/share/url?url=' + encodeURIComponent(url));
1914  }  
1915</script>
1915
1916
1917        </div>
1918    </div>
1919
1920        <div class="g-pr-20--lg">
1921        <div class="g-mb-50">
1922            <h3 class="h5 g-color-black g-font-weight-600 mb-4">Category</h3>
1923            <ul class="list-unstyled g-font-size-13 mb-0">
1924
1925                                <li>
1926                                            <a href="/US/Chicago-IL/211818/genre/197384240287028/Art+Gallery" class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover"><i class="mr-2 fa fa-angle-right"></i>&nbsp;Art Gallery</a>                                    </li>
1927                
1928            </ul>
1929        </div>
1930    </div>
1931    
1932
1933
1934
1935
1936<div class="g-mb-50">
1937    
1938        <ul class="list-unstyled">
1939            </ul>
1940</div>
1941
1942
1943<div class="g-mb-50 text-center">
1944   </div>
1945
1946
1947
1948
1949 
1950
1951
1952
1953
1954
1955                                
1956            </div>
1957        </div>
1958    </div>
1959
1960    
1961        
1962</div>
1963
1964                    
1965    
1966
1967    
1968
1969
1970<script data-cfasync="false">
1971    
1972function trunc20(str) {
1973    if (str.length > 20) {
1974        return str.substring(0,20) + "...";
1975    } else {
1976        return str;
1977    }
1978}
1979
1980
1981
1982var map;
1983
1984document.addEventListener("DOMContentLoaded", function(){
1985
1986    setTimeout(function (){
1987        loadCss("https://unpkg.com/[email protected]/dist/leaflet.css", false);
1988        loadScript("https://unpkg.com/[email protected]/dist/leaflet.js", false, function () {
1989        
1990            map = L.map('map').setView([41.8578, -87.6561], 14);
1991            var markersLayer = new L.LayerGroup();
1992            markersLayer.addTo(map);
1993            var osmAttrib='&copy; <a href="https://maptiler.com">MapTiler</a> &copy; <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
1994            var locations = [
1995                                    {id:127786917240044,lat:41.8578,lng:-87.6561,title:'Tonantzin Gallery Sh...',popupHtml:'<center><a href="/US/Chicago/127786917240044/Tonantzin-Gallery-Shop"><img height="100" width="100" src="https://graph.facebook.com/127786917240044/picture?type=large"/><h5>Tonantzin Gallery Shop</h5></a></center>',urlPath:'US/Chicago/127786917240044/Tonantzin-Gallery-Shop',pictureUrl:'https://graph.facebook.com/127786917240044/picture?type=large',label:''},
1996                            ];
1997            var locationIds = [127786917240044,];
1998            var gettingMore = false;
1999
2000            map.on('moveend', function(e) {
2001                //getMore();
2002            });
2003
2004            map.on('zoomend', function(e) {
2005                //getMore();
2006            });
2007
2008            map._addMarker = function(loc) {
2009                var marker = L.marker([loc.lat,loc.lng], {
2010                                    title: loc.title,
2011                                    riseOnHover: true,
2012                                                                        icon: loc.label ? new L.DivIcon({
2013                                        className: 'directory-map-marker',
2014                                        html: '<span aria-hidden="true">' + loc.label + '</span>',
2015                                        iconSize: [34, 34],
2016                                        iconAnchor: [17, 34],
2017                                        popupAnchor: [0, -34]
2018                                    }) : new L.Icon.Default()
2019                                                                    })
2020                                                                .bindTooltip('<a href="/' + loc.urlPath + '">' + loc.title + '</a>', {
2021                                    permanent: false,
2022                                    direction: 'top',
2023                                    offset: L.point(0, -30),
2024                                    opacity: 0.88,
2025                                    interactive: true
2026                                })
2027                                .bindPopup(loc.popupHtml);
2028                                                markersLayer.addLayer(marker);
2029            }
2030
2031            var mapPopulated = false;
2032            function populateMap() {
2033                if (mapPopulated) {
2034                    return;
2035                }
2036                mapPopulated = true;
2037                locations.forEach(function(loc) {
2038                    map._addMarker(loc);
2039                });
2040                L.tileLayer('https://map.gluseum.com/api/maps/bright/{z}/{x}/{y}.png', {
2041                    attribution: osmAttrib,
2042                    tileSize: 512,
2043                    zoomOffset: -1
2044                }).addTo(map);
2045            }
2046
2047                            if ("IntersectionObserver" in window) {
2048                    let lazyMapObserver = new IntersectionObserver(function(entries, observer) {
2049                        entries.forEach(function(entry) {
2050                            if (entry.isIntersecting) {
2051                                lazyMapObserver.unobserve(entry.target);
2052                                populateMap();
2053                            }
2054                        });
2055                    });
2056                    lazyMapObserver.observe(document.querySelector("#map"));
2057                } else {
2058                    populateMap();
2059                }
2060            
2061            map._addMarker2 = function(label, name, latitude, longitude) {
2062            
2063            
2064                var marker = L.marker([latitude,longitude], {
2065                                    //title: loc.title,
2066                                                                        icon: label ? new L.DivIcon({
2067                                        className: 'directory-map-marker',
2068                                        html: '<span aria-hidden="true">' + label + '</span>',
2069                                        iconSize: [34, 34],
2070                                        iconAnchor: [17, 34],
2071                                        popupAnchor: [0, -34]
2072                                    }) : new L.Icon.Default()
2073                                                
2074                                        //className: 'my-div-icon',
2075                                        //iconUrl: "https://graph.facebook.com/" + loc.id + "/picture?type=square",
2076                                        //iconSize: [32, 32],
2077                                        //html: '<span class="my-div-span"><img height="24" width="24" border="2" src="https://graph.facebook.com/' + loc.id + '/picture?type=square" /></span>'
2078            
2079                                })
2080            
2081                                .bindTooltip(name, {
2082                                    //permanent: true, 
2083                                    direction: 'bottom',
2084                                    //offset: L.point(12, 25),
2085                                    //opacity: 0.88,
2086                                    interactive: true
2087                                })
2088                                .bindPopup(name);
2089                markersLayer.addLayer(marker);
2090
2091            }
2092
2093            function getMore() {
2094                if (gettingMore) {
2095                    return;
2096                }
2097                gettingMore = true;
2098                var center = map.getCenter();
2099
2100                $.ajax({
2101                    url: "/vicinitysearch",
2102                    data: { lat: center.lat, lng: center.lng, country: "UNITED STATES"  }
2103                })
2104                .done(function(data) {
2105                    var added = 0;
2106                    data.forEach(function(loc) {
2107                        if (!locationIds.includes(loc.id)) {
2108                            var mapLoc = {id:loc.id,lat:loc.latitude,lng:loc.longitude,title:trunc20(loc.name),popupHtml:loc.popupHtml,urlPath:loc.urlPath,pictureUrl:loc.pictureUrl};
2109                            locations.push(mapLoc);
2110                            locationIds.push(loc.id);
2111                            map._addMarker(mapLoc);
2112                            added++;
2113                        }
2114                    });
2115                })
2116                .always(function() {
2117                    gettingMore = false;
2118                });
2119            }
2120            
2121            map._clearMarkers = function() {
2122                markersLayer.clearLayers();
2123            }
2124
2125        });
2126
2127    }, 4000);
2128        
2129
2130});
2131
2132 </script>
2132
2133  
2134  
2135
2136
2137
2138
2139
2140
2141<script data-cfasync="false">
2142    function recaptchaCallback() {
2143        document.getElementById("contact_submit").disabled = false;
2144    };
2145
2146
2147
2148    window.setTimeout(function() {
2149        $.ajax({
2150            url: "/pv/127786917240044"
2151        });
2152    }, 4000);
2153</script>
2153
2154                
2155
2156
2157
2158<div class="takedown-dialog" id="takedownRequestDialog" hidden aria-hidden="true">
2159    <div class="takedown-dialog__backdrop" data-takedown-close></div>
2160    <section class="takedown-dialog__panel" role="dialog" aria-modal="true" aria-labelledby="takedownRequestTitle" tabindex="-1">
2161        <button type="button" class="takedown-dialog__close" data-takedown-close aria-label="Close">&times;</button>
2162        <h2 id="takedownRequestTitle">Listing takedown request</h2>
2163        <p class="takedown-dialog__intro">Tell us why this listing should be removed. Our team will review your request.</p>
2164        <form id="takedownRequestForm" action="/takedown-request/127786917240044" method="post">
2165            <input name="language" type="hidden" value="en">
2166            <div class="takedown-dialog__field">
2167                <label for="takedownName">Name</label>
2168                <input id="takedownName" name="name" type="text" maxlength="200" autocomplete="name" required>
2169            </div>
2170            <div class="takedown-dialog__field">
2171                <label for="takedownEmail">Email</label>
2172                <input id="takedownEmail" name="email" type="email" maxlength="254" autocomplete="email" required>
2173            </div>
2174            <div class="takedown-dialog__field">
2175                <label for="takedownDetails">Comments</label>
2176                <textarea id="takedownDetails" name="details" rows="6" maxlength="5000" placeholder="Include the reason for your request and any helpful context." required></textarea>
2177            </div>
2178            <div class="takedown-dialog__honeypot" aria-hidden="true">
2179                <label for="takedownWebsite">Website</label>
2180                <input id="takedownWebsite" name="website" type="text" tabindex="-1" autocomplete="off">
2181            </div>
2182            <div class="takedown-dialog__captcha" data-sitekey="6LcrPjMUAAAAAL4bKG3JdFuqRKrjFDI2elJ8wEvp"></div>
2183            <p class="takedown-dialog__status" id="takedownRequestStatus" role="alert" aria-live="polite"></p>
2184            <button type="submit" class="btn btn-danger takedown-dialog__submit" data-label="Submit" data-sending-label="Sending…" data-error-label="We could not send your request. Please try again.">Submit</button>
2185        </form>
2186    </section>
2187</div>
2188<link rel="stylesheet" href="/css/takedown-request.css?v=20260813-2">
2189<script data-cfasync="false" src="/js/takedown-request.js?v=20260821-2" defer></script>
2189
2190
2191<script type="dc2307b2fbdc7afa35e8b229-text/javascript">
2192    var imgErr=false;
2193</script>
2193
2194
2195       
2196<!--    </div>
2197</div>-->
2198
2199
2200
2201      <!-- Footer -->
2202  <footer class="g-bg-black-opacity-0_9 g-color-white-opacity-0_6 g-py-60">
2203    <div class="container">
2204      <div class="row">
2205        <!-- Footer Content -->
2206        <div class="col-lg-4 g-mb-50 g-mb-0--lg">
2207          <h6 class="h6 g-color-white text-uppercase g-font-weight-700 g-mb-20">About Gluseum</h6>
2208          <div class="g-mb-25">
2209              <p>
2210                  One of the largest resources on the Internet for finding museums worldwide.              </p>
2211          </div>
2212
2213        </div>
2214        <!-- End Footer Content -->
2215
2216        <!-- Footer Content -->
2217        <div class="col-lg-4 g-mb-30 g-mb-0--lg">
2218          <h6 class="h6 g-color-white text-uppercase g-font-weight-700 g-mb-20">Useful Links</h6>
2219          <div class="row">
2220            <div class="col-sm-6">
2221              <ul class="list-unstyled g-mb-30 g-mb-0--md">
2222                <li class="d-flex g-mb-12">
2223                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
2224                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.gluseum.com/about/127786917240044" data-google-interstitial="false">
2225                      About Gluseum</a>
2226                </li>
2227                <li class="d-flex g-mb-12">
2228                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
2229                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.gluseum.com/terms" data-google-interstitial="false">
2230                      Terms</a>
2231                </li>
2232                <li class="d-flex g-mb-12">
2233                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
2234                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.gluseum.com/privacy" data-google-interstitial="false">
2235                    Privacy Policy</a>
2236                </li>
2237                <li class="d-flex">
2238                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
2239                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.gluseum.com/faq" data-google-interstitial="false">
2240                      FAQ</a>
2241                </li>
2242              </ul>
2243            </div>
2244
2245            <div class="col-sm-6">
2246              <ul class="list-unstyled mb-0">
2247                                <li class="d-flex g-mb-12">
2248                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
2249                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.gluseum.com/advertise" data-google-interstitial="false">
2250                      Advertise</a>
2251                </li>
2252                                <li class="d-flex g-mb-12">
2253                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
2254                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.gluseum.com/login/start" data-google-interstitial="false">
2255                      Add listing</a>
2256                </li>
2257                                    <li class="d-flex">
2258                        <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
2259                                                    <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="/login/127786917240044" data-google-interstitial="false">
2260                                Login</a>
2261                                            </li>
2262                              </ul>
2263            </div>
2264          </div>
2265        </div>
2266        <!-- End Footer Content -->
2267
2268        <!-- Footer Content -->
2269        <div class="col-lg-4">
2270          <h6 class="h6 g-color-white text-uppercase g-font-weight-700 g-mb-20">Subscribe</h6>
2271          
2272          <p> We will notify you when anything happens in Chicago. </p>
2273
2274          <form class="g-mt-25" onsubmit="if (!window.__cfRLUnblockHandlers) return false; event.preventDefault(); subscribe(211818,null);" data-cf-modified-dc2307b2fbdc7afa35e8b229-="">
2275            <div class="row">
2276              <div class="col-md-8 col-lg-12">
2277                
2278                <div class="form-group g-mb-20">
2279                    <label class="sr-only" for="email">Your Email</label>
2280                    <input id="email" class="form-control g-color-white g-bg-transparent g-bg-transparent--focus g-brd-white-opacity-0_1 g-brd-primary--focus g-px-20 g-py-12" type="email" placeholder="Your Email">
2281                </div>
2282              </div>
2283
2284              <div class="col-md-4 col-lg-12">
2285                <button id="submit" class="btn btn-md u-btn-primary g-font-size-12 text-uppercase rounded g-py-11 g-px-30" type="submit">Subscribe</button>
2286              </div>
2287            </div>
2288          </form>
2289        </div>
2290        <!-- End Footer Content -->
2291      </div>
2292    </div>
2293  </footer>
2294  <!-- End Footer -->
2295  <div class="container" id="google-consent-footer"></div>
2296  
2296<script data-cfasync="false" defer src="/js/google-consent-footer.js?v=20260917-1"></script>
2296
2297
2298<script type="dc2307b2fbdc7afa35e8b229-text/javascript">
2299    function subscribe(city, page) {
2300        var email;
2301        if (page === null) {
2302            email = $("#email").val();
2303            $("#email").prop('disabled', true);
2304            $("#submit").hide(300);
2305        } else {
2306            email = $("#alert_email").val();
2307            $("#alert_email").prop('disabled', true);
2308            $("#alert_submit").hide(300);
2309        }
2310        
2311        $.ajax({
2312            method: "POST",
2313            contentType : 'application/json',
2314            url: "/subscribe",
2315            data: JSON.stringify({email: email, city: city, page: page})
2316        }).done(function(response) {
2317            console.log(response);
2318        })            
2319        .fail(function( jqXHR, textStatus) {
2320            console.log(textStatus);
2321        });
2322        
2323        return false;
2324    }
2325</script>
2325
2326
2327
2328<!--
2328<script async type="text/javascript" src="https://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en"></script>
2328-->
2329    </main>
2330    
2331
2332
2333    
2333<script data-cfasync="false">
2334
2335/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
2336(function(w){
2337	"use strict";
2338	/* exported loadCSS */
2339	var loadCSS = function( href, before, media ){
2340		// Arguments explained:
2341		// `href` [REQUIRED] is the URL for your CSS file.
2342		// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet <link> before
2343		// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.
2344		// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'
2345		var doc = w.document;
2346		var ss = doc.createElement( "link" );
2347		var ref;
2348		if( before ){
2349			ref = before;
2350		}
2351		else {
2352			var refs = ( doc.body || doc.getElementsByTagName( "head" )[ 0 ] ).childNodes;
2353			ref = refs[ refs.length - 1];
2354		}
2355
2356		var sheets = doc.styleSheets;
2357		ss.rel = "stylesheet";
2358		ss.href = href;
2359		// temporarily set media to something inapplicable to ensure it'll fetch without blocking render
2360		ss.media = "only x";
2361
2362		// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.
2363		function ready( cb ){
2364			if( doc.body ){
2365				return cb();
2366			}
2367			setTimeout(function(){
2368				ready( cb );
2369			});
2370		}
2371		// Inject link
2372			// Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the argument to "after" in a later release and standardize on ref.nextSibling for all refs
2373			// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/
2374		ready( function(){
2375			ref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );
2376		});
2377		// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.
2378		var onloadcssdefined = function( cb ){
2379			var resolvedHref = ss.href;
2380			var i = sheets.length;
2381			while( i-- ){
2382				if( sheets[ i ].href === resolvedHref ){
2383					return cb();
2384				}
2385			}
2386			setTimeout(function() {
2387				onloadcssdefined( cb );
2388			});
2389		};
2390
2391		function loadCB(){
2392			if( ss.addEventListener ){
2393				ss.removeEventListener( "load", loadCB );
2394			}
2395			ss.media = media || "all";
2396		}
2397
2398		// once loaded, set link's media back to `all` so that the stylesheet applies once it loads
2399		if( ss.addEventListener ){
2400			ss.addEventListener( "load", loadCB);
2401		}
2402		ss.onloadcssdefined = onloadcssdefined;
2403		onloadcssdefined( loadCB );
2404		return ss;
2405	};
2406	// commonjs
2407	if( typeof exports !== "undefined" ){
2408		exports.loadCSS = loadCSS;
2409	}
2410	else {
2411		w.loadCSS = loadCSS;
2412	}
2413}( typeof global !== "undefined" ? global : this ));
2414  </script>
2414
2415
2416    
2417            
2418<script data-cfasync="false">
2419
2420var $grid, $grid2;
2421$(function () {
2422
2423    $grid = $('.masonry-grid').masonry({
2424        columnWidth: '.masonry-grid-item',
2425        itemSelector: '.masonry-grid-item',
2426        transitionDuration: 0,
2427    });
2428
2429    $grid2 = $('.masonry-grid2').masonry({
2430        columnWidth: '.masonry-grid-item',
2431        itemSelector: '.masonry-grid-item',
2432        transitionDuration: 0,
2433    });
2434
2435    var layoutPending = false;
2436    function scheduleLayout() {
2437        if (layoutPending) return;
2438        layoutPending = true;
2439        requestAnimationFrame(function () {
2440            layoutPending = false;
2441            $grid.masonry('layout');
2442            $grid2.masonry('layout');
2443        });
2444    }
2445    var grids = document.querySelectorAll('.masonry-grid, .masonry-grid2');
2446    // Lazy images, failed images and embedded media can change size after load.
2447    // Observe item dimensions, not container height, to avoid layout feedback.
2448    if (window.ResizeObserver) {
2449        var sizeObserver = new ResizeObserver(scheduleLayout);
2450        grids.forEach(function (grid) {
2451            grid.querySelectorAll('.masonry-grid-item').forEach(function (item) {
2452                sizeObserver.observe(item);
2453            });
2454        });
2455    }
2456    grids.forEach(function (grid) {
2457        grid.addEventListener('load', scheduleLayout, true);
2458        grid.addEventListener('error', scheduleLayout, true);
2459    });
2460    $(window).on('resize', scheduleLayout);
2461    if (document.fonts && document.fonts.ready) document.fonts.ready.then(scheduleLayout);
2462    scheduleLayout();
2463
2464});
2465$(window).on('load', function () {
2466    if ($grid !== undefined) {
2467        $grid.masonry('layout');
2468    }
2469});
2470</script>
2470
2471    
2472    
2472<script data-cfasync="false">
2473    var documentReady=false, carouselInit=false;
2474    </script>
2474
2475    
2475<script src="https://cdnjs.cloudflare.com/polyfill/v2/polyfill.min.js?features=IntersectionObserver" type="dc2307b2fbdc7afa35e8b229-text/javascript"></script>
vendor: 1 bytes, line 2475
2475
2476<script data-cfasync="false">
2477
2478document.addEventListener("DOMContentLoaded", function() {
2479
2480    var lazyImages = [].slice.call(document.querySelectorAll("img[data-src]"));
2481    var lazyVideos = [].slice.call(document.querySelectorAll("div.fb-video-lazy"));
2482    var captchaDivs = [].slice.call(document.querySelectorAll("div.g-recaptcha"));
2483
2484    if ("IntersectionObserver" in window) {
2485
2486      
2487
2488        let lazyImageObserver = new IntersectionObserver(function(entries, observer) {
2489            entries.forEach(function(entry) {
2490                if (entry.isIntersecting) {
2491
2492                    let lazyImage = entry.target;
2493                    if (typeof lazyImage.dataset.src !== 'undefined') {
2494                        lazyImage.src = lazyImage.dataset.src;
2495                    }
2496                    lazyImageObserver.unobserve(lazyImage);
2497
2498                                            if ($grid !== undefined) {
2499                            $grid.masonry('layout');
2500                        }
2501                    
2502                    if (typeof addthis !== 'undefined') {
2503                        if (typeof addthis.layers.refresh !== 'undefined' && $.isFunction(addthis.layers.refresh)) {
2504                            addthis.layers.refresh();
2505                        } 
2506                    } 
2507
2508                    if (documentReady && !carouselInit) {
2509                        // initialization of carousel
2510                        carouselInit = true;
2511                        $.HSCore.components.HSCarousel.init('.js-carousel');
2512                    }
2513                }
2514        });
2515    }, {
2516          rootMargin: "0px 0px 600px 0px"
2517    });
2518
2519    lazyImages.forEach(function(lazyImage) {
2520        lazyImageObserver.observe(lazyImage);
2521    });
2522
2523    
2524
2525    let lazyVideoObserver = new IntersectionObserver(function(entries, observer) {
2526        entries.forEach(function(entry) {
2527            if (entry.isIntersecting) {
2528
2529                var timerId;
2530                var renderVid = function() {
2531                    if (FbInited) {
2532                        clearInterval(timerId);
2533                        let lazyVideo = entry.target;
2534                        observer.unobserve(lazyVideo);
2535                        lazyVideo.classList.add('fb-video');
2536                        lazyVideo.classList.remove('fb-video-lazy');
2537                        FB.XFBML.parse(lazyVideo.parentNode);
2538
2539                                                    if ($grid !== undefined) {
2540                                $grid.masonry('layout');
2541                            }
2542                                            }
2543                };
2544
2545                if (!FbInited) {
2546                    timerId = setInterval(renderVid, 500);
2547                } else {
2548                    renderVid();
2549                }
2550            }
2551        });
2552    }, {
2553        rootMargin: "0px 0px 600px 0px"
2554    });
2555
2556    lazyVideos.forEach(function(lazyVideo) {
2557        lazyVideoObserver.observe(lazyVideo);
2558    });
2559
2560    
2561
2562    let captchaObserver = new IntersectionObserver(function(entries, observer) {
2563        entries.forEach(function(entry) {
2564            if (entry.isIntersecting) {
2565                observer.unobserve(entry.target);
2566                if (!document.querySelector('script[src*="/recaptcha/api.js"]')) {
2567                    var rc = document.createElement('script');
2568                    rc.setAttribute('src','https://www.google.com/recaptcha/api.js');
2569                    document.head.appendChild(rc);
2570                }
2571            }
2572        });
2573    }, {
2574        rootMargin: "0px 0px 256px 0px"
2575    });
2576
2577    captchaDivs.forEach(function(captchaDiv) {
2578        captchaObserver.observe(captchaDiv);
2579    });
2580
2581    } else {
2582          }
2583  });        
2584</script>
2584
2585    
2586        
2587    
2588    
2588<script data-cfasync="false">
2589      
2590    $(function () {
2591        
2592        documentReady = true;
2593
2594        // initialization of go to
2595        $.HSCore.components.HSGoTo.init('.js-go-to');
2596
2597        // initialization of header
2598        $.HSCore.components.HSHeader.init($('#js-header'));
2599        $.HSCore.helpers.HSHamburgers.init('.hamburger');
2600
2601        // initialization of rating
2602        $.HSCore.components.HSRating.init($('.js-rating'), {
2603          spacing: 4
2604        });
2605
2606        
2607        
2608        
2609              
2610    });
2611    </script>
2611
2612
2613                
2614        
2615        
2615<script type="dc2307b2fbdc7afa35e8b229-text/javascript">
2616      window._taboola = window._taboola || [];
2617      _taboola.push({flush: true});
2618    </script>
2618 
2619        
2620    
2621    <br/>
2622    <br/>
2623    <br/>
2624
2625
2626            
2627                                                                        
2628        
2628<script data-cfasync="false">
2629        document.addEventListener('DOMContentLoaded', () => {
2630
2631            [].forEach.call(document.querySelectorAll('.js-directory-results-toggle'), function (button) {
2632                var results = document.getElementById(button.getAttribute('aria-controls'));
2633                if (!results) return;
2634                button.addEventListener('click', function () {
2635                    var expanded = button.getAttribute('aria-expanded') === 'true';
2636                    results.classList.toggle('is-expanded', !expanded);
2637                    button.setAttribute('aria-expanded', expanded ? 'false' : 'true');
2638                    button.textContent = expanded ? button.getAttribute('data-collapsed-label') : button.getAttribute('data-expanded-label');
2639                });
2640                results.classList.add('is-collapsible');
2641                button.classList.add('is-enhanced');
2642            });
2643            [].forEach.call(document.querySelectorAll('.js-directory-list-toggle'), function (button) {
2644                var list = document.getElementById(button.getAttribute('aria-controls'));
2645                if (!list) return;
2646                button.addEventListener('click', function () {
2647                    var expanded = button.getAttribute('aria-expanded') === 'true';
2648                    list.classList.toggle('is-expanded', !expanded);
2649                    button.setAttribute('aria-expanded', expanded ? 'false' : 'true');
2650                    button.textContent = expanded ? button.getAttribute('data-collapsed-label') : button.getAttribute('data-expanded-label');
2651                });
2652                list.classList.add('is-collapsible');
2653                button.classList.add('is-enhanced');
2654            });
2655
2656                    
2657            setTimeout(function (){
2658                loadScript("https://cdnjs.cloudflare.com/polyfill/v2/polyfill.min.js?features=IntersectionObserver");
2659
2660                                    
2661                                        
2662                    
2663                                            loadScript("https://s.skimresources.com/js/117608X1595506.skimlinks.js");
2664                    
2665                                            window._taboola = window._taboola || [];
2666_taboola.push({article:'auto'});
2667!function (e, f, u, i) {
2668  if (!document.getElementById(i)){
2669    e.async = 1;
2670    e.src = u;
2671    e.id = i;
2672    f.parentNode.insertBefore(e, f);
2673  }
2674}(document.createElement('script'),
2675document.getElementsByTagName('script')[0],
2676'//cdn.taboola.com/libtrc/univalence-network/loader.js',
2677'tb_loader_script');
2678if(window.performance && typeof window.performance.mark == 'function')
2679  {window.performance.mark('tbl_ic');}
2680                                                }, 3500);
2681        });
2682
2683        function loadCss(cssFile) {
2684            var head  = document.getElementsByTagName('head')[0];
2685            var link  = document.createElement('link');
2686            link.rel  = 'stylesheet';
2687            link.type = 'text/css';
2688            link.href = cssFile;
2689            link.media = 'all';
2690            head.appendChild(link);
2691        }    
2692        </script>
vendor: 156 bytes, lines 2692-2696
2692
2693    
2694
2695    
2696  <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="dc2307b2fbdc7afa35e8b229-|49" defer></script>
2696<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a441f7fbc81d78af',t:'MTc5MDkyNTg3OQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2696<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"2c6fdb80999745ad9357e2c193b0c351","r":1,"spa":2}' crossorigin="anonymous"></script>
2696
2697</body>
2698</html>

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.