PageSourceSearch

https://www.diningoutnycmarketplace.info/Directory/

html diningoutnycmarketplace.info collected 2026-10-08 07:38:43 UTC 169,239 bytes, 3,798 lines download raw bytes

1
2
3
4<!DOCTYPE html>
5<html lang="en-US" data-lang="en-US" crm-lang="en-US" dir="ltr" crm-lcid="1033"
6	same-site-mode="None">
7<head>
8		
9		<meta charset="utf-8" /><meta name="viewport" content="width=device-width,&#32;initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="IE=edge" />
10		
10<script type="text/javascript" >
11				
12        </script>
12
13	<title>
14	
15		Directory
16		
17</title>
18		
19		
19<script src="/_portal/1437c32f-d79a-ee11-be36-001dd80a7efc/Resources/ResourceManager?lang=en-US"></script>
19
20	
21	
21<script type="text/javascript">
22        // Refresh all powerBI Iframes on Login in one Iframe
23        window.addEventListener('message', function (event) {
24            if (event && event.data && event.data == 'refreshPowerBI') {
25                $("iframe.powerbi").each(function () {
26                    this.src = this.src;
27                });
28            }
29        });
30
31        // Fix for incorrect viewport width setting in IE 10 on Windows Phone 8.
32        if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
33            var msViewportStyle = document.createElement("style");
34            msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}"));
35            document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
36        }
37    </script>
37
38		
39	
40		<link href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css" rel="stylesheet" />
41 
42		<link href="/css/bootstrap.min.css" rel="stylesheet" />
43
44		<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/font-awesome.bundle-3d8a58a48f.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/font-awesome.bundle-3d8a58a48f.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
45
46				<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/preform.bundle-b72a6ea21d.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/preform.bundle-b72a6ea21d.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
47
48
49		
50		<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/privatemode.bundle-049b12b66e.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/privatemode.bundle-049b12b66e.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
51
52
53		
54			
55
56
57		
58		<link href="/thumbnail.css" rel="stylesheet" />
59<link href="/theme.css" rel="stylesheet" />
60<link href="/site.css" rel="stylesheet" />
61<link href="/portalbasictheme.css" rel="stylesheet" />
62
63		
64		
65		
66		
67		
68	
69		
70		<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/pwa-style.bundle-55718a4c0d.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/pwa-style.bundle-55718a4c0d.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
71
72		</head>
73<body data-sitemap-state="/Directory/:/"
74	data-dateformat="M/d/yyyy"
75	data-timeformat="h:mm tt"
76	data-datetimeformat="M/d/yyyy h:mm tt"
77	data-app-path="/"
78	data-ckeditor-basepath="/js/BaseHtmlContentDesigner/Libs/msdyncrm_/libs/ckeditor/"
79	data-case-deflection-url="/_services/search/1437c32f-d79a-ee11-be36-001dd80a7efc">
80
81
82	
83		<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-style.bundle-373a0f4982.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/pcf-style.bundle-373a0f4982.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />
84
85			
86	
87		
88
89	<div id="offlineNotificationBar" class="displayNone">
90		<img alt="web" id="web" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;img&#32;=&#32;document.createElement(&#39;img&#39;);&#32;img.src&#32;=&#32;&#39;/css/images/web.png&#39;;&#32;img.alt&#32;=&#32;&#39;web&#39;;&#32;img.id&#32;=&#32;&#39;web&#39;&#32;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,img);&#32;target.remove();" src="https://gov.content.powerapps.us/resource/powerappsportal/img/web.png" />
91		<div id="message">You&#8217;re offline. This is a read only version of the page.</div>
92		<div id="close" onclick="this.parentElement.style.display='none';"><img alt="close" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;img&#32;=&#32;document.createElement(&#39;img&#39;);&#32;img.src&#32;=&#32;&#39;/css/images/close.png&#39;;&#32;img.alt&#32;=&#32;&#39;close&#39;;&#32;img.id&#32;=&#32;&#39;&#39;&#32;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,img);&#32;target.remove();" src="https://gov.content.powerapps.us/resource/powerappsportal/img/close.png" /></div>
93	</div>
94
95	
96
97	
97<script type="text/javascript">
98        window.DisableCkEditor = window.DisableCkEditor || {};
99		
100		DisableCkEditor.Value = 'False';
101    </script>
101
102
103	
103<script type="text/javascript">
104        var enableOmniChannelWidgetWithSiteCopilot = 'False';
105        if (enableOmniChannelWidgetWithSiteCopilot === "True" || enableOmniChannelWidgetWithSiteCopilot === "true") {
106            const authUrl = window.location.origin + "/_services/auth/portalusertoken";
107            const fetchWithRetries = async (url, options, retries) => {
108                try {
109                    const authResponse = await fetch(url, options);
110                    const token = await authResponse.text();
111                    sessionStorage['c2Token'] = token;
112                } catch (err) {
113                    if (retries === 1) throw err;
114                    return await fetchWithRetries(url, options, retries - 1);
115                }
116            };
117            fetchWithRetries(authUrl, { method: "POST" }, 4);
118
119            // Enable/disable Omnichannel session refresh on auth state change
120            // When enabled, closeChat() is called when user logs in/out to start a fresh session
121            var enableOmniChannelSessionRefreshSetting = 'True';
122            window.enableOmniChannelSessionRefresh = enableOmniChannelSessionRefreshSetting === 'True' || enableOmniChannelSessionRefreshSetting === 'true';
123        }
124    </script>
124
125
126	
126<script type="text/javascript">
127		var isPvaBotAuthenticated = sessionStorage['isPvaBotAuthenticated'];
128		var isPortalUserLoggedIn = 'False';
129
130        if ((isPvaBotAuthenticated != null || isPvaBotAuthenticated != undefined) && isPvaBotAuthenticated != isPortalUserLoggedIn) {
131			sessionStorage['triggerPvaBotSignOut'] = true;
132			sessionStorage.removeItem('c2Token');
133            sessionStorage.removeItem('directLinetoken');
134            sessionStorage.removeItem('conversation_Id');
135
136			sessionStorage.removeItem('bot_c2Token');
137			sessionStorage.removeItem('botdirectLinetoken');
138            sessionStorage.removeItem('botconversation_Id');
139		}
140		sessionStorage['isPvaBotAuthenticated'] = isPortalUserLoggedIn;
141    </script>
141
142
143	
143<script type="text/javascript">
144		window["CSPSettings"] = window["CSPSettings"] || {};
145		window["CSPSettings"].nonce = '';
146        window["FabricConfig"] = window["FabricConfig"] || {};
147        window["FabricConfig"].mergeStyles = window["FabricConfig"].mergeStyles || {};
148		window["FabricConfig"].mergeStyles.cspSettings = window["CSPSettings"];
149        window["Microsoft"] = window["Microsoft"] || {};
150		window["Microsoft"].Dynamic365 = {
151			Portal: {
152				
153				User: {
154					userName: '',
155					firstName: '',
156					lastName: '',
157					email: '',
158					contactId: '',
159					userRoles: [],
160				},
161				
162				type: 'PowerPages_BlankTemplate_V2',
163				id: 'df3994f4-e97d-4e7b-9291-96b338ce5166', 
164				geo: 'GCC2', 
165				tenant: '21c62253-c3dd-4661-9659-cd01aff2d452', 
166				correlationId: 'eae8aca8-a030-4f9d-8b14-cf37caa9b38a',
167                orgEnvironmentId: 'e9a35ecd-702d-e35c-a34b-93e912e7c0ad',
168                orgId: 'fa6b2bce-1599-ee11-be33-001dd83088dd',
169                portalProductionOrTrialType: 'Production',
170                isTelemetryEnabled: 'True',
171                InstrumentationSettings: {
172                    instrumentationKey: '47d84c9b995341e19219d73ab0c6bcd2-e951660d-d17d-4de3-83c3-6a766bd23de8-7007',
173                    collectorEndpoint: 'https://tb.events.data.microsoft.com/OneCollector/1.0/'
174                },
175                timerProfileForBatching: 'NEAR_REAL_TIME',
176                activeLanguages: ["en-US"],
177                isClientApiEnabled: 'True',
178                isSpaSite: 'False'
179            }
180        };
181
182		window["Microsoft"].PowerPages = window["Microsoft"].PowerPages || {};
183		window["Microsoft"].PowerPages.onPagesClientApiReady = (callback) => {
184			return new Promise((resolve, reject) => {
185				let isComplete = false;
186				let timeoutId;
187				const timeoutInterval = 10000;
188		
189				function handleReady() {
190					if (!isComplete && window.$pages) {
191						isComplete = true;
192						clearTimeout(timeoutId);
193						try {
194							if (typeof callback === "function") {
195								callback(window.$pages);
196							}
197						} catch (e) {
198							console.error("onPagesClientApiReady callback error:", e);
199						}
200						resolve(window.$pages); // should we reject if callback throws an error
201					}
202				}
203		
204				if (window.$pages) {
205					handleReady();
206					return;
207				}
208		
209				function sdkListener() {
210					handleReady();
211					window.removeEventListener('pagesSDKInitialized', sdkListener);
212				}
213		
214				window.addEventListener('pagesSDKInitialized', sdkListener);
215		
216				timeoutId = setTimeout(() => {
217					if (!isComplete) {
218						window.removeEventListener('pagesSDKInitialized', sdkListener);
219						if (window.$pages) {
220							handleReady();
221						} else {
222							isComplete = true;
223							reject(new Error('window.$pages not available.'));
224						}
225					}
226				}, timeoutInterval);
227			});
228		};
229
230		// Deprecated alias: Microsoft.Dynamic365.Portal.onPagesClientApiReady.
231		// Remove once telemetry shows no callers remain.
232		(function () {
233			var _impl = window["Microsoft"].PowerPages.onPagesClientApiReady;
234			var _logged = false;
235
236			window["Microsoft"].Dynamic365.Portal.onPagesClientApiReady = function (callback) {
237				if (!_logged) {
238					_logged = true;
239					try {
240						if (window.clientLogWrapper && typeof window.clientLogWrapper.traceWarning === "function") {
241							window.clientLogWrapper.traceWarning(
242								"Microsoft.Dynamic365.Portal.onPagesClientApiReady invoked (deprecated)",
243								"DeprecatedApi",
244								"ClientApiReady",
245								"Invoke",
246								"DeprecationTracker"
247							);
248						}
249						if (typeof console !== "undefined" && console.warn) {
250							console.warn(
251								"[DEPRECATED] Microsoft.Dynamic365.Portal.onPagesClientApiReady is deprecated " +
252								"and will be removed in a future release. Use Microsoft.PowerPages.onPagesClientApiReady instead."
253							);
254						}
255					} catch (_) { /* never break the caller */ }
256				}
257
258				return _impl(callback);
259			};
260		})();
261
262        // Mark request not cacheable if Dynamics365PortalAnalytics cookie is being refreshed by the server or if the cookie in request header is invali
262d
263		
264
265        // For client side telemetry intializing Dynamics365PortalAnalytics cookie object
266		
267        window["Microsoft"].Dynamic365.Portal.dynamics365PortalAnalytics = 'jkfvfpU41UOMlNkQb-JmA91UxXDCZzekb3rekuI7KrHx46U5oyNGbfo7JdOdZoGd2zqbFB7JruVeUEW039BelagS6gnaHLvJYZwUZI_GgZf139XMGaWXLOQ-dPgIVnnDq9PIDZr6jW-cQxt1jDpZJg2'; // CodeQL [SM00430] False Positive: only alphanumeric chars allowed, for non-alphanumeric char it will return INVALID_CHARACTERS_IN_COOKIE 
268		
269
270	</script>
270
271	
272	
272<script type="text/javascript">
273
274		
275    </script>
275
276
277	
278		
279
280
281<header class="navbar navbar-inverse navbar-static-top" role="banner">
282   <section class="region region-top-top-header header-container">
283      <div id="block-311-2" class="block block-block-content">
284         <div class="content">
285            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item">
286               <div class="nyclogo"><a href="http://www.nyc.gov">
287                  <img src="/NYClogo.png" alt="NYC logo"></a><span class="vbar">|</span><a href="https://www.diningoutnyc.info/" target="_blank">Dining Out NYC</a>
288               </div>
289               <div class="topright"><a href="https://portal.311.nyc.gov/" target="_blank">NYC 311</a> <a href="https://www.nyc.gov/home/search/index.page" target="_blank">Search all NYC.gov</a></div>
290            </div>
291         </div>
292      </div>
293   </section>
294   <div class="skip-to-content"><a href="#mainContent">Skip to main content</a></div>
295   <div class="header-container header-menu">
296      <div class="navbar-header fit-content">
297         <div class="navbar-brand">
298            <!--visible-sm-block visible-md-block visible-lg-block visible-xs-block -->
299            <div class="xrm-editable-html&#32;xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><a href='~/'>
300  <img src='/DineOutNYCMarketLogo.png' alt='Dining Out NYC logo' style='width: auto; height: 45px;'> <!-- margin: 0 10px;-->
301  
302    <h1 class='siteTitle'>Dining Out NYC Marketplace</h1>
303  
304</a>
305</div></div>
306         </div>
307         <button type="button" class="navbar-toggle collapsed" title="Toggle navigation" data-toggle="collapse" data-target="#navbar" aria-expanded="false" onclick="setHeight();">
308         <span class="sr-only">Toggle navigation</span>
309         <span class="icon-bar"></span>
310         <span class="icon-bar"></span>
311         <span class="icon-bar"></span>
312         </button>
313      </div>
314      <div id="navbar" class="navbar-collapse collapse navbar-expand-lg fit-content">
315         
316         
317         
318         
319         <nav aria-label="Main Navigation" class="navbar-right menu-bar " data-weblinks-maxdepth="2">
320            <ul class="nav navbar-nav weblinks">
321               
322               
323               
324               
325               
326               <li class="weblink ">
327                  <a aria-label="Directory" href="/Directory/" aria-roledescription="link" title="Directory" >
328                  Directory
329                  </a>
330                  
331               </li>
332               
333               
334               
335               <li class="divider-vertical" aria-hidden="true"></li>
336               <li class="dropdown">
337                  <a id="translateToogle" data-toggle="collapse"  href="#translate"  aria-expanded="false" aria-controls="translate">
338                  <span class="bi bi-translate"> Translate</span>
339                  </a> 
340               </li>
341               <!---->
342               
343               
344            </ul>
345            
346         </nav>
347         
348      </div>
349   </div>
350   <div id="translate" class="header-container collapse">
351      <div id="google_translate_element"></div>
352      
352<script type="text/javascript">
353         function googleTranslateElementInit() {
354                 new google.translate.TranslateElement(
355                     {pageLanguage: 'en', 
356                     layout: google.translate.TranslateElement.InlineLayout.VERTICAL, 
357                     cookie_flags: 'secure;samesite=none'}, 
358                     'google_translate_element');
359             }
360         
361      </script>
361
362      
362<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
362
363   </div>
364</header>
365
366
367
368
369
370
371
372
373<script type="text/javascript">
374    /*(function(c,l,a,r,i,t,y){
375        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
376        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
377        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
378    })(window, document, "clarity", "script", "m46s79j55a");*/
379    (function(c,l,a,r,i,t,y){
380        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
381        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
382        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
383    })(window, document, "clarity", "script", "m4766fou1s");
384    
385   window.onload = function() {
386     if (window.navigator.appName == "Microsoft Internet Explorer" || window.navigator.userAgent.indexOf("Trident") > 0) {
387       var searchElement = document.getElementById("search");
388       if (searchElement != null) searchElement.setAttribute("href", "");
389     }
390   };
391   function setHeight() {
392     var windowHeight = window.innerHeight - 140;
393     var navbar = document.getElementById("navbar");
394     if (navbar) {
395       navbar.style.maxHeight = windowHeight + "px";
396     }
397   }
398   window.addEventListener('resize', function(event) {
399     setHeight();
400   });
401</script>
401
402<link rel="stylesheet" media="all" href="//fonts.googleapis.com/css?family=Roboto|Roboto+Condensed:700">
403	
404
405	<!-- add anti-forgery token-->
406	<div id="antiforgerytoken" data-url="/_layout/tokenhtml"></div>
407
408	
409			<!-- Client Telemetry init if telemetry enabled-->
410			
410<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/client-telemetry.bundle-d490766e4f.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/client-telemetry.bundle-d490766e4f.js" type="text/javascript"></script>
410
411
412		
413	
414		<!-- Client Telemetry Wrapper init -->
415		
415<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/client-telemetry-wrapper.bundle-633e70f51b.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/client-telemetry-wrapper.bundle-633e70f51b.js" type="text/javascript"></script>
415
416
417		
417<script>
418			window.clientLogWrapper = new ClientLogWrapper();
419		</script>
419
420		
420<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/preform.moment_2_29_4.bundle-750b699ecd.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/preform.moment_2_29_4.bundle-750b699ecd.js" type="text/javascript"></script>
420
421
422		
423
424		
424<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-dependency.bundle-805a1661b7.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-dependency.bundle-805a1661b7.js" type="text/javascript"></script>
424
425
426							   
426<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf.bundle-60440c37cb.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf.bundle-60440c37cb.js" type="text/javascript"></script>
426
427
428							   
428<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-extended.bundle-b0e01b5622.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-extended.bundle-b0e01b5622.js" type="text/javascript"></script>
428
429
430						
431	<!-- Default studio template. Please do not modify -->
432<div id="mainContent" class = "wrapper-body" role="main">
433    <div class="page-copy">
434 <div class="xrm-editable-html&#32;xrm-attribute"><div class="xrm-attribute-value"><div class="container-fluid">
435
436      <div class="row sectionBlockLayout text-left" style="display: flex; flex-wrap: wrap; padding: 8px; margin: 0px; min-height: auto;">
437            
438
439<!--Disclaimer -->
440    
441    
441<script>
442        function chkDisclaimer(){
443            let ckv = getCookie('view_discl');
444            if (!(ckv=="Y"))
445            {
446                openCloseDisclaimer("OPEN"); 
447            }
448        }
449
450        function setCookie(nm, v, days)
451        {
452        if (days==null){days=1;}
453        var d1=new Date();
454        d1.setDate(d1.getDate() + days);
455        document.cookie=nm + "=" + escape(v) + "; path=/; expires="+d1.toUTCString() + "; Secure";
456        }
457
458        function getCookie(nm)
459        {
460        let ret = "";
461        if (document.cookie!=undefined && document.cookie!=null){
462            let ck = decodeURIComponent(document.cookie);
463            const cks=ck.split(";");
464            for (let i=0; i<cks.length; i++)
465            {
466                let cnm=cks[i].substr(0,cks[i].indexOf("="));
467                let cv=cks[i].substr(cks[i].indexOf("=")+1);
468                cnm=cnm.trim();
469                if (cnm.indexOf(nm)==0){
470                    ret = cv;
471                    break;
472                }
473            }
474        }
475        return ret;
476        }
477        function openCloseDisclaimer(flg){
478            event.preventDefault();
479            document.getElementById("wDisclaimer").style.display = (flg=='CLOSE')?"none":"block";
480            document.getElementById("wDisclaimer").scrollIntoView();        
481            if (flg=="CLOSE"){
482                setCookie("view_discl", "Y", 1);
483                document.getElementsByTagName("body")[0].scrollIntoView();
484            }        
485        }
486
487        function clrDisclaimer(){
488            setCookie("view_discl", "N", 1);
489        }
490    </script>
490
491    <style>
492    .card.custcard{position:relative!important;;display:flex!important;
493    flex-direction:column!important;;min-width:0!important;
494    word-wrap:break-word!important;background-color:#fff!important;
495    background-clip:border-box!important;border:1px solid rgba(0, 0, 0, 0.125)!important;
496    border-radius: 0.25rem!important;}
497    .do-lnk2{text-transform:uppercase;text-decoration:underline!important;cursor:pointer!important;color:blue;font-size:0.8em;font-weight:700;}
498    .do-smtxt{font-size:0.8em;font-weight:700!important;}
499    .btn-do2{width:100px!important;background-color:#28284F!important;color:#fff!important;}
500    .custcard2{position:absolute!important;top:50%!important;left:50%!important;width:90%!important;max-width:90vw!important;z-index:10002!important;transform:translate(-50%, -50%);box-shadow:rgba(40, 40, 79, 0.4) 3px 3px 2px!important;background-color:#fff;}
501    #wDisclaimer{position:absolute!important;top:25%!important;left:0!important;width:98%!important;max-width:98vw!important;}
502    .custcardx{position:absolute!important;top:50%!important;left:50%!important;width:90%!important;max-width:90vw!important;transform:translate(-50%, -50%);z-index:10002!important;z-index:10002!important;box-shadow:rgba(40, 40, 79, 0.4) 3px 3px 2px!important;background-color:#fff;}
503    .custcard{left:5%!important;width:90%!important;max-width:90vw!important;z-index:10002!important;box-shadow:rgba(40, 40, 79, 0.4) 3px 3px 2px!important;background-color:#fff;}
504    .custcard .card-header{background-color:#28284F!important;color:#fff!important;padding:6px!important;}
505    .custcard .card-body{padding:15px;overflow-y:scroll;}
506    .custcardovl{position:fixed!important;top:0!important;left:0!important;width:9999px;height:9999px;z-index:10001;background-color:#000;opacity:0.2;overflow-y:hidden;}
507    .dislc_txt, .dislc_txt p,  .dislc_txt li{font-size:1em!important;font-weight:normal!important;font-color:#000!important;}
508
509    </style> 
510    <div id="wDisclaimer" style="display:none;">
511    <div class="card custcard">
512        <div class="card-header">Important information to use the directory</div>
513        <div class="card-body">
514            <div class="dislc_txt">
515            
516            
517
518                
519                    <div class="xrm-editable-html&#32;xrm-attribute"><div class="xrm-attribute-value"> <p>To assist restaurants in installing sidewalk and roadway cafes for the Dining Out NYC program, 
520the City of New York (the “City”) has compiled an optional directory of local and national 
521suppliers and fabricators of outdoor dining setups, vendors offering installation and  
522storage services, products, and designs tested by the City in its Setup Menu Prototype 
523project (the “Directory”).This Directory is meant to be a helpful resource and is not a 
524requirement for the Dining Out NYC program, restaurants may choose vendors or products at their own discretion. 
525The City has also made available for download drawings from the Dining Out NYC Setup Menu Prototype project 
526that were prepared by a registered design professional.
527</p>
528   <p>Please be advised that neither the City, nor any agency, officer, or employee of the City guarantees the accuracy, reliability, or timeliness of any information or drawings published in this Directory, nor endorses any contents, products, or services linked from this Directory.
529   </p>
530   <p>The user of this Directory agrees that the City, and any agency, officer, or employee of the City, shall not be held liable for any losses caused by reliance on the accuracy, reliability, or timeliness of such information on third-party websites or drawings linked from this Directory. Portions of such information or drawings linked in this Directory may be incorrect or not current. Any person or entity that relies on any information or drawings obtained from this Directory does so at their own risk. 
531</p>
532   <p>Every restaurant participating in the Dining Out NYC program is responsible for ensuring that their sidewalk or roadway cafe complies with all requirements of the Dining Out NYC program, including the design requirements contained in Chapter 5 of Title 34 of the Rules of the City of New York.
533</p></div></div>
534                    <div class="xrm-editable-html&#32;xrm-attribute"><div class="xrm-attribute-value">  <p><b>How NYC DOT put together this service directory - What does NYC DOT check for?  </b></p>
535
536        <ul>
537            <li>That the business attended an NYC DOT training session that outlined the Dining Out NYC design requirements and lessons learned from the Setup Menu Prototype project. </li>
538            <li>That the business provided NYC DOT with documentation that they have obtained the requisite insurance that NYC DOT requires to be listed in this directory.</li>
539            <li>
540           That the business would be eligible to do business with the City of New York.  To make this determination, NYC DOT will conduct a variety of searches to find out if the 
541           business is in good standing with the state and federal government (e.g., does not owe any taxes, is current in its corporate filings, etc.), 
542           has not committed any serious workplace safety violations, and if there are any civil judgements or criminal convictions against the business. </li>
543           <li>NYC DOT conducts the above-searches one time and therefore it should be noted that this information is subject to change after the business is listed 
544           in this service directory. </li>
545        </ul>
546
547        <p>
548        <b>Your responsibility in using this business directory - What should YOU check for? </b>
549        </p>
550        <ul>
551        <li>That any component of an outdoor dining setup purchased from a third-party website complies with all the 
552        requirements of the Dining Out NYC Program. 
553        Please note that every location has unique features so make sure the plan you choose is appropriate.</li>
554<li>That any business offering a licensed service has a valid license: 
555<ul>
556<li>For licensing information on architects, engineers, landscape architects, and other professionals, go to the <a href="http://www.op.nysed.gov/opsearches.htm" target="_blank">NYS Office of the Professions’ Verification Search.</a></li>
557<li>For licensing information on General Contractors, go to the <a href="https://a810-bisweb.nyc.gov/bisweb/LicenseTypeServlet?vlfirst=N" target="_blank">NYC DOB Skilled Trades Licensees/General Contractors/Registrant Search.</a></li>
558</ul>
559</li>
560</ul></div></div>
561                
562            </div>
563            <div class="mt-4 p-4 text-center">
564                <button class="btn btn-sm btn-do2" onclick="openCloseDisclaimer('CLOSE')">I Agree to the Above</button>
565            </div>
566        </div>
567    </div>
568    <div class="custcardovl"></div>
569    </div>
570
571
572<style>
573    .searchbar{top:0;left:0;padding:10px 0px 10px 0px;background-color:#fcfcfc;min-height:100px;}
574    .fSec{position:absolute;top:100px;left:0;margin-top:100px;}
575    .custcard2{position:fixed;top:50%;left:50%;width:90%!important;z-index:10002;transform:translate(-50%, -50%);}
576    .sq{border-radius:0px!important;width:100%;max-width:330px;}
577    .sq1{border-top:0px solid #fff;border-bottom:0px solid #fff;}
578    .sq2{border-radius:0px!important;border-bottom:0px solid #fff;border-bottom:0px solid #fff;}
579    .sq_hdr{color:#fff!important;background-color:#28284F!important;border-radius:0px!important;font-size:0.8em;
580      letter-spacing:0.2rem;padding:3px 3px 3px 15px;height:25px;}
581    .chdr{font-size:0.9em!important;font-weight:700!important;
582        padding:10px 1px 10px 5px!important;text-transform:uppercase!important;
583        cursor:pointer;white-space:nowrap!important;width:100%;} 
584    .sbtn{font-size:0.8em!important;padding:2px!important;margin:2px!important;width:90px;}
585    .dir{font-weight:600!important;}
586    .dir option{font-weight:600!important;}
587    .btn-do{padding:4px!important;width:45%!important;background-color:#28284F!important;font-size:0.72em!important;}
588    .btn-do2{width:100px!important;background-color:#28284F!important;color:#fff!important;}
589    .btn-do3{padding:4px!important;width:45%!important;font-size:0.72em!important;}
590    .btn-filtr{color:#fff!important;background-color:#28284F!important;border-radius:0px!important;}
591    .clico{max-height:24px!important;width:24px!important;height:24px!important;border-radius:5px;font-size:0.9em;padding:2px;background-color:#6C757D;color:#fff;}
592    .l1{background-color:#e0e0e0;font-size:0.9em;font-weight:600;padding:1px 0px 1px 4px!important;}
593    .form-check-label{width:100%!important;}
594    .form-check-label:hover{background-color:#ffffc0!important;}
595    .t_ico{cursor:pointer;margin:0px 5px 0px 5px!important;padding:0px 5px 0px 5px!important;}
596    .s_sec label{font-size:0.9em;}
597    .moffsetx{margin-left:230px!important;}
598    .rpanel{margin:0px 0px 0px 5px;display:flex!important;flex-flow:row!important;flex-wrap:wrap!important;justify-content:flex-start!important;}
599    .fslide{transition: all 5s ease-in-out!important;}
600</style>
601 
602 <!-- compatbility to bs5-->
603<style>
604.card {position:relative!important;;display:flex!important;
605  flex-direction:column!important;;min-width:0!important;
606  word-wrap:break-word!important;background-color:#fff!important;
607  background-clip:border-box!important;border:1px solid rgba(0, 0, 0, 0.125)!important;
608  border-radius: 0.25rem!important;}
609.card > hr {margin-right: 0;  margin-left: 0;}
610.card > .list-group {  border-top: inherit;  border-bottom: inherit;}
611.card > .list-group:first-child {  border-top-width: 0;  border-top-left-radius: calc(0.25rem - 1px);  border-top-right-radius: calc(0.25rem - 1px);}
612.card > .list-group:last-child {  border-bottom-width: 0;  border-bottom-right-radius: calc(0.25rem - 1px);  border-bottom-left-radius: calc(0.25rem - 1px);}
613.card > .card-header + .list-group,
614.card > .list-group + .card-footer {  border-top: 0;}
615.card-body {  flex: 1 1 auto;  padding: 1rem 1rem!important;}
616.card-title {  margin-bottom: 0.5rem;}
617.card-subtitle {  margin-top: -0.25rem;  margin-bottom: 0;}
618.card-text:last-child {  margin-bottom: 0;}
619.card-link:hover {  text-decoration: none;}
620.card-link + .card-link {  margin-left: 1rem;}
621.card-header {  padding: 0.5rem 1rem;  margin-bottom: 0;  background-color: rgba(0, 0, 0, 0.03);  border-bottom: 1px solid rgba(0, 0, 0, 0.125);}
622.card-header:first-child {  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;}
623.card-footer {  padding: 0.5rem 1rem;  background-color: rgba(0, 0, 0, 0.03);  border-top: 1px solid rgba(0, 0, 0, 0.125);}
624.card-footer:last-child {  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);}
625.card-header-tabs {  margin-right: -0.5rem;  margin-bottom: -0.5rem;  margin-left: -0.5rem;  border-bottom: 0;}
626.card-header-pills {  margin-right: -0.5rem;  margin-left: -0.5rem;}
627.card-img-overlay {  position: absolute;  top: 0;  right: 0;  bottom: 0;  left: 0;  padding: 1rem;  border-radius: calc(0.25rem - 1px);}
628.card-img,
629.card-img-top,
630.card-img-bottom {  width: 100%;}
631.card-img,
632.card-img-top {  border-top-left-radius: calc(0.25rem - 1px);  border-top-right-radius: calc(0.25rem - 1px);}
633.card-img,
634.card-img-bottom {  border-bottom-right-radius: calc(0.25rem - 1px);  border-bottom-left-radius: calc(0.25rem - 1px);}
635.card-group > .card {  margin-bottom: 0.75rem;}
636@media (min-width: 576px) {  
637  .card-group {    display: flex;    flex-flow: row wrap;  }
638  .card-group > .card {    flex: 1 0 0%;    margin-bottom: 0;  }
639  .card-group > .card + .card {    margin-left: 0;    border-left: 0;  }
640  .card-group > .card:not(:last-child) {    border-top-right-radius: 0;    border-bottom-right-radius: 0;  }
641  .card-group > .card:not(:last-child) .card-img-top,
642  .card-group > .card:not(:last-child) .card-header {    border-top-right-radius: 0;  }
643  .card-group > .card:not(:last-child) .card-img-bottom,
644  .card-group > .card:not(:last-child) .card-footer {    border-bottom-right-radius: 0;  }
645  .card-group > .card:not(:first-child) {    border-top-left-radius: 0;    border-bottom-left-radius: 0;  }
646  .card-group > .card:not(:first-child) .card-img-top,
647  .card-group > .card:not(:first-child) .card-header {    border-top-left-radius: 0;  }
648  .card-group > .card:not(:first-child) .card-img-bottom,
649  .card-group > .card:not(:first-child) .card-footer {    border-bottom-left-radius: 0;  }
650}
651
652.m-0 {  margin: 0 !important;}
653.m-1 {  margin: 0.25rem !important;}
654.m-2 {  margin: 0.5rem !important;}
655.m-3 {  margin: 1rem !important;}
656.m-4 {  margin: 1.5rem !important;}
657.m-5 {  margin: 3rem !important;}
658.mt-0 {  margin-top: 0 !important;}
659.mt-1 {  margin-top: 0.25rem !important;}
660.mt-2 {  margin-top: 0.5rem !important;}
661.mt-3 {  margin-top: 1rem !important;}
662.mt-4 {  margin-top: 1.5rem !important;}
663.mt-5 {  margin-top: 3rem !important;}
664.me-0 {  margin-right: 0 !important;}
665.me-1 {  margin-right: 0.25rem !important;}
666.me-2 {  margin-right: 0.5rem !important;}
667.me-3 {  margin-right: 1rem !important;}
668.me-4 {  margin-right: 1.5rem !important;}
669.me-5 {  margin-right: 3rem !important;}
670.mb-0 {  margin-bottom: 0 !important;}
671.mb-1 {  margin-bottom: 0.25rem !important;}
672.mb-2 {  margin-bottom: 0.5rem !important;}
673.mb-3 {  margin-bottom: 1rem !important;}
674.mb-4 {  margin-bottom: 1.5rem !important;}
675.mb-5 {  margin-bottom: 3rem !important;}
676.ms-0 {  margin-left: 0 !important;}
677.ms-1 {  margin-left: 0.25rem !important;}
678.ms-2 {  margin-left: 0.5rem !important;}
679.ms-3 {  margin-left: 1rem !important;}
680.ms-4 {  margin-left: 1.5rem !important;}
681.ms-5 {  margin-left: 3rem !important;}
682.ms-auto {  margin-left: auto !important;}
683.p-0 {  padding: 0 !important;}
684.p-1 {  padding: 0.25rem !important;}
685.p-2 {  padding: 0.5rem !important;}
686.p-3 {  padding: 1rem !important;}
687.p-4 {  padding: 1.5rem !important;}
688.p-5 {  padding: 3rem !important;}
689.pt-0 {  padding-top: 0 !important;}
690.pt-1 {  padding-top: 0.25rem !important;}
691.pt-2 {  padding-top: 0.5rem !important;}
692.pt-3 {  padding-top: 1rem !important;}
693.pt-4 {  padding-top: 1.5rem !important;}
694.pt-5 {  padding-top: 3rem !important;}
695.pe-0 {  padding-right: 0 !important;}
696.pe-1 {  padding-right: 0.25rem !important;}
697.pe-2 {  padding-right: 0.5rem !important;}
698.pe-3 {  padding-right: 1rem !important;}
699.pe-4 {  padding-right: 1.5rem !important;}
700.pe-5 {  padding-right: 3rem !important;}
701.pb-0 {  padding-bottom: 0 !important;}
702.pb-1 {  padding-bottom: 0.25rem !important;}
703.pb-2 {  padding-bottom: 0.5rem !important;}
704.pb-3 {  padding-bottom: 1rem !important;}
705.pb-4 {  padding-bottom: 1.5rem !important;}
706.pb-5 {  padding-bottom: 3rem !important;}
707.ps-0 {  padding-left: 0 !important;}
708.ps-1 {  padding-left: 0.25rem !important;}
709.ps-2 {  padding-left: 0.5rem !important;}
710.ps-3 {  padding-left: 1rem !important;}
711.ps-4 {  padding-left: 1.5rem !important;}
712.ps-5 {  padding-left: 3rem !important;}
713.position-static {position: static !important;}
714.position-relative {position: relative !important;}
715.position-absolute {position: absolute !important;}
716.position-fixed {position: fixed !important;}
717.position-sticky {position: -webkit-sticky !important;position: sticky !important;}
718.top-0 {top: 0 !important;}
719.top-50 {top: 50% !important;}
720.top-100 {top: 100% !important;}
721.bottom-0 {bottom: 0 !important;}
722.bottom-50 {bottom: 50% !important;}
723.bottom-100 {bottom: 100% !important;}
724.start-0 {left: 0 !important;}
725.start-50 {left: 50% !important;}
726.start-100 {left: 100% !important;}
727.end-0 {right: 0 !important;}
728@media only screen and (max-width: 767px) {
729.searchbar{top:0;left:0;padding:20px 0px 20px 0px!important;background-color:#fcfcfc;min-height:100px!important;}    
730.rpanel{justify-content:center!important;}
731.moffsetx{margin-left:0px!important;}
732.sq-hdr-bg{height:36px!important;font-size:1.2em;vertical-align:middle!important;vertical-align:middle!important;}  
733.sq-close{margin:2px 0px 0px 0px;color:#fff!important;padding:3px;
734    font-weight:600;cursor:pointer;
735    background-color:#e0e0e0;border-radius:20px;}
736
737}
738
739</style>
740<!-- end bs 5 compatible classes -->
741 
742 
742<script>
743  <!-- search tab -->  
744  window.addEventListener("load", function(){
745        let params = new URLSearchParams(window.location.search);
746        let defdir = params.get('d');
747        let qtxt = params.get('q');
748        if (defdir!=null && defdir.length>0){
749          let dir_el = document.getElementById("dir_"+defdir.toLowerCase());
750          if (dir_el!=null){
751            dir_el.checked = true;  
752          }
753        }
754        if (qtxt!=undefined && qtxt!=null){
755            document.getElementById("txtdir").value = qtxt;
756        }
757		let chkLst = chkFilters("load");
758        
759        try{
760            chkDisclaimer();
761        }catch(e){}
762        
763        initAll();
764
765        for(let i=0;i<chkLst.length;i++){
766          chkLst[i].addEventListener("click", function(e){ 
767            //alert(e);
768            applyFilters('Y');
769          });        
770        }
771        searchDir();
772    });
773
774    function clearSearchDir(){
775        document.getElementById("txtdir").value = "";
776        searchDir();
777        clearFilter();
778    }
779
780    function searchDir(){
781        search_txt = document.getElementById("txtdir").value;        
782        applyFilters("Y");
783    }
784
785    function chkSearchDir(){
786      if(event.keyCode==13){
787        searchDir();
788      }
789    }
790
791    function initAll(){
792        let opts = "";
793        prods.map(r=>{
794            r.mwbe= (r.mwbe!=undefined && r.mwbe!=null)?r.mwbe.replaceAll('/', ''):'';
795            r.loc = (r.loc!=undefined && r.loc!=null)?r.loc.trim():'';
796            });
797    }
798    
799function showFilters(){
800
801        try{
802        if (document.getElementById("filterSec").className!="" ){
803            document.getElementById("filterSec").className = "";
804            document.getElementById("filterSec").style.display = "block";
805            //document.getElementById("filterSec").style.width = "98%";
806            document.getElementById("filterSecPanel").style.display = "block";  /* fpanel class hides on small devices */
807            document.getElementById("filterSecPanel").style.width = "90vw";
808            document.getElementById("filter_results").style.width = "0vw";
809            document.getElementById("filter_results").style.opacity = 0;
810        }else{
811            //event.target.innerHTML="<i class='bi bi-filter'></i> FILTERS";
812            document.getElementById("filterSec").className = "visible-sm-block visible-md-block visible-lg-block fpanel";
813            document.getElementById("filterSec").style.display = "none";
814            document.getElementById("filterSecPanel").style.display = "none";  /* fpanel class hides on small devices */
815            //document.getElementById("filter_results").style.display = "block";
816            document.getElementById("filter_results").style.width = "98vw";
817            document.getElementById("filter_results").style.opacity = 1;
818        }
819        }catch(e){
820            alert(e);
821        }
822        
823    } 
824        
825    function showDetail(prodid) {
826        let queryUrl = '/ProductDesignSummary/?q=';
827        queryUrl = queryUrl + prodid.replaceAll(' ', '-')
828        window.location.href = queryUrl
829    }
830
831    function showServiceDetail(svcid){
832        let queryUrl = '/ServiceSummary/?q=';
833        queryUrl = queryUrl + svcid.replaceAll(' ', '-')
834        window.location.href = queryUrl
835    }
836    <!-- search ends -->  
837</script>
837
838 
839
840<!--
841  <div id="col-lg-12 block-nycdot-page-title" class="block block-core block-page-title-block">
842         <div class="content">
843            <h1 class="title">Directory</h1>
844         </div>
845   </div>
846-->
847
848<div style="width:90vw;">
849<div class="searchbar">    
850    <div class="input-group d-sm">
851      <span class="input-group-btn">
852      <button class="btn btn-default ms-2 visible-xs" id="btnFilters" onclick="showFilters()" >
853          <i class="bi bi-funnel bi-lg py-2 p-1"></i>
854          <span class="visible-md visible-lg"> FILTER</span>
855      </button>
856      </span>
857      <div class="input-group">
858        <input type="text" class="form-control notranslate" style="border-radius:0em!important;border-right:0px;" maxlength="60" id="txtdir" onkeydown="chkSearchDir()"  />
859        <span class="input-group-btn">
860        <button class="btn btn-default" style="border-left:0px;padding-bottom:6px!important; " onclick="clearSearchDir()" >X</button>
861        </span>
862      </div>
863      <span class="input-group-btn">
864        <button class="ms-2 btn btn-sm btn-danger" onclick="searchDir()" >&nbsp;<i class="bi bi-search me-2"></i>&nbsp;GO&nbsp;&nbsp;</button>
865      </span>
866      <!--      
867      <span class="input-group-btn">
868        <button class="ms-2 btn btn-sm btn-outline-default hidden-xs" onclick="clearSearchDir()" >&nbsp;<i class="bi bi-activity me-2"></i>&nbsp;CLEAR&nbsp;&nbsp;</button>
869      </span>
870      -->
871    </div>
872    
873    <div class="m-2 prcnt" id='prcntcon'>
874          <div id='prcnt'></div>
875          <div id='filterstr'></div>
876    </div>
877</div> 
878</div> 
879
880<div style="width:94vw;">
881<div style="display:flex;flex-flow:row;vertical-align:top;">
882
883<!--Filters -->
884<div style="position:relative;">
885<div id="filterSec" class="visible-sm-block visible-md-block visible-lg-block fpanel">
886    
887		 
888		 
889		 
890		 
891		 
892 
893
894<!-- Get colk   -->
895
896
897
898
899
900		 
901		 
902
903		 
904
905		 
906
907
908		 
909
910
911		 
912
913
914		 
915
916
917		 
918
919		 
920
921
922		 
923
924
925		 
926
927
928		 
929
930
931		 
932
933
934		 
935
936
937		 
938
939
940		 
941
942
943		 
944
945		 
946
947
948		 
949
950
951		 
952
953
954		 
955
956
957		 
958
959
960		 
961
962		 
963
964
965		 
966
967
968		 
969
970
971		 
972
973		 
974
975
976		 
977
978
979		 
980
981
982		 
983
984		 
985
986
987
988
989
990
991<!--
9926
993-->
994<!-- Get services -->
995
996
997<!-- Get product Design  -->
998
999
1000<!--
1001<h2>51</h2>
1002<h2>23</h2>
1003<h2></h2>
1004-->
1005
1006
1007<script>
1008<!-- /*	Author: Ranga 02/14/2024 */ -->
1009let prods = [];
1010let svcs = [];
1011let fltrRows = [];
1012let filtermsg="", search_txt="";
1013let def_img = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEwOCIgaGVpZ2h0PSI0NTAiIHZpZXdCb3g9IjAgMCAxMTA4IDQ1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgb3BhY2l0eT0iMC45NSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8xMzQ4XzY0MDMpIj4KPHJlY3Qgd2lkdGg9IjExMDgiIGhlaWdodD0iNDUwIiB0cmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAxMTA4IDApIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCB4PSItMSIgeT0iMSIgd2lkdGg9IjExMDYiIGhlaWdodD0iNDQ4IiB0cmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAxMTA2IDApIiBzdHJva2U9IiNEMkQwQ0UiIHN0cm9rZS13aWR0aD0iMiIvPgo8L2c+CjxwYXRoIGQ9Ik01NzcuOTU4IDE4Ny41QzU4NS40MzcgMTg3LjUgNTkxLjUgMTkzLjU2MyA1OTEuNSAyMDEuMDQyVjI0OC45NThDNTkxLjUgMjU2LjQzNyA1ODUuNDM3IDI2Mi41IDU3Ny45NTggMjYyLjVINTMwLjA0MkM1MjIuNTYzIDI2Mi41IDUxNi41IDI1Ni40MzcgNTE2LjUgMjQ4Ljk1OFYyMDEuMDQyQzUxNi41IDE5My41NjMgNTIyLjU2MyAxODcuNSA1MzAuMDQyIDE4Ny41SDU3Ny45NThaTTU4MC4zNzcgMjU1LjgzOUw1NTYuMTg2IDIzMi4xNDVDNTU1LjA4MiAyMzEuMDY0IDU1My4zNzUgMjMwLjk2NSA1NTIuMTYyIDIzMS44NUw1NTEuODEzIDIzMi4xNDVMNTI3LjYxOSAyNTUuODM4QzUyOC4zNzcgMjU2LjEwNSA1MjkuMTkyIDI1Ni4yNSA1MzAuMDQyIDI1Ni4yNUg1NzcuOTU4QzU3OC44MDYgMjU2LjI1IDU3OS42MiAyNTYuMTA1IDU4MC4zNzcgMjU1LjgzOUw1NTYuMTg2IDIzMi4xNDVMNTgwLjM3NyAyNTUuODM5Wk01NzcuOTU4IDE5My43NUg1MzAuMDQyQzUyNi4wMTUgMTkzLjc1IDUyMi43NSAxOTcuMDE1IDUyMi43NSAyMDEuMDQyVjI0OC45NThDNTIyLjc1IDI0OS44MjcgNTIyLjkwMiAyNTAuNjYgNTIzLjE4IDI1MS40MzJMNTQ3LjQ0MSAyMjcuNjc5QzU1MC45MTIgMjI0LjI4IDU1Ni4zNjUgMjI0LjExOSA1NjAuMDI0IDIyNy4xOTRMNTYwLjU1OSAyMjcuNjhMNTg0LjgxOCAyNTEuNDM2QzU4NS4wOTcgMjUwLjY2MiA1ODUuMjUgMjQ5LjgyOCA1ODUuMjUgMjQ4Ljk1OFYyMDEuMDQyQzU4NS4yNSAxOTcuMDE1IDU4MS45ODUgMTkzLjc1IDU3Ny45NTggMTkzLjc1Wk01NjcuNTUgMjAyLjA4M0M1NzIuNzMzIDIwMi4wODMgNTc2LjkzNCAyMDYuMjg1IDU3Ni45MzQgMjExLjQ2N0M1NzYuOTM0IDIxNi42NSA1NzIuNzMzIDIyMC44NTEgNTY3LjU1IDIyMC44NTFDNTYyLjM2OCAyMjAuODUxIDU1OC4xNjcgMjE2LjY1IDU1OC4xNjcgMjExLjQ2N0M1NTguMTY3IDIwNi4yODUgNTYyLjM2OCAyMDIuMDgzIDU2Ny41NSAyMDIuMDgzWk01NjcuNTUgMjA4LjMzM0M1NjUuODIgMjA4LjMzMyA1NjQuNDE3IDIwOS43MzYgNTY0LjQxNyAyMTEuNDY3QzU2NC40MTcgMjEzLjE5OCA1NjUuODIgMjE0LjYwMSA1NjcuNTUgMjE0LjYwMUM1NjkuMjgxIDIxNC42MDEgNTcwLjY4NCAyMTMuMTk4IDU3MC42ODQgMjExLjQ2N0M1NzAuNjg0IDIwOS43MzYgNTY5LjI4MSAyMDguMzMzIDU2Ny41NSAyMDguMzMzWiIgZmlsbD0iI0FDQUNBQyIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzEzNDhfNjQwMyIgeD0iLTQiIHk9Ii00IiB3aWR0aD0iMTExNiIgaGVpZ2h0PSI0NTgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2UiIHN0ZERldmlhdGlvbj0iMiIvPgo8ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMTM0OF82NDAzIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xMzQ4XzY0MDMiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjwvZGVmcz4KPC9zdmc+Cg==";
1014let svc_def_img = "data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIFRyYW5zZm9ybWVkIGJ5OiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyBmaWxsPSIjMDAwMDAwIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTQ0cHgiIGhlaWdodD0iMTQ0cHgiIHZpZXdCb3g9Ii0xOTYgLTE5NiA2MzcuMDAgNjM3LjAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNDUgMjU2IiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMC4wMDI0NSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDEsIDAsIDApcm90YXRlKDApIj4KDTxnIGlkPSJTVkdSZXBvX2JnQ2FycmllciIgc3Ryb2tlLXdpZHRoPSIwIi8+Cg08ZyBpZD0iU1ZHUmVwb190cmFjZXJDYXJyaWVyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KDTxnIGlkPSJTVkdSZXBvX2ljb25DYXJyaWVyIj4gPHBhdGggZD0iTTk0LjMzOCw0Ny4xMzdjMCwwLDAsMS42MDMsMCwyLjQ1MmMwLDE1LjYxMSwxMi42NTQsMjguMjY1LDI4LjI2NSwyOC4yNjVzMjguMjY1LTEyLjY1NCwyOC4yNjUtMjguMjY1IGMwLTAuODQ5LDAtMi40NTIsMC0yLjQ1MlM5NC4zMzgsNDcuMTM3LDk0LjMzOCw0Ny4xMzd6IE0xNjEuOTA2LDMzLjMyNnY3Ljg4MUg4My4wOTR2LTcuODgxaDUuNTE3IGMxLjA1OC0xMy4wNiw5LjQ2OS0yNC4wMzksMjEuMDg4LTI4Ljc5NHYxNi45NzJoNC45MjZWMi45NDJDMTE3LjE4NCwyLjMyOCwx
1014MTkuODU1LDIsMTIyLjYwMywyYzIuNjc4LDAsNS4yODIsMC4zMTUsNy43ODIsMC44OTggdjE4LjYwNmg0LjkyNlY0LjQ0OGMxMS43MjIsNC43MTEsMjAuMjIxLDE1Ljc0MywyMS4yODUsMjguODc4SDE2MS45MDZ6IE0yMzYuNjA2LDEzNC4wMzZjLTMuOTItMy43NS05LjA3My01LjY4OS0xNC41MDctNS40NDUgYy0xMC41NTIsMC40NjYtMTguODE3LDkuMzI4LTE4LjgxNywyMC4xNzd2MTEuNjQzaC05Ljg1MnYtMzkuNDA2YzAtMTkuNDQzLTE2LjMwOS0zNS4wMTYtMzUuNjc2LTM1LjAxNmgtNy42NTlsLTIwLjcsMzQuMDMxIGwtMi45NTUtMjUuOTM2bDIuOTU1LTguMTcxaC0xMy43OTJsMi45NTUsOC4xNzFsLTIuOTU1LDI1LjkzNkw5NC45MTUsODUuOTg4aC03LjY3Yy0xOS40NDMsMC0zNS42NzYsMTUuNjQ5LTM1LjY3NiwzNS4wMTZ2MzkuNDA2IGgtOS44NTJWMTQ4Ljc2YzAtMTAuODQ5LTguMjY1LTE5LjcxMi0xOC44MTYtMjAuMTc3Yy01LjQzLTAuMjM2LTEwLjU4NiwxLjY5NC0xNC41MDcsNS40NDZjLTMuOTIzLDMuNzUzLTYuMDgzLDguODEtNi4wODMsMTQuMjM4IHY4NS40NjloMC4wMDhjLTAuMTUsNS4zMDgsMS43NzYsMTAuMzI3LDUuNDQ1LDE0LjE2OWMzLjc1NSwzLjkzMSw4LjgxNSw2LjA5NiwxNC4yNSw2LjA5NmgyMDAuOTcxIGM1LjQzNSwwLDEwLjQ5Ni0yLjE2NSwxNC4yNS02LjA5N2MzLjY2OC0zLjg0MSw1LjU5NC04Ljg1OCw1LjQ0Ni0xNC4xNjRsMC4wMDctODUuNDY2IEMyNDIuNjg4LDE0Mi44NDUsMjQwLjUyOCwxMzcuNzksMjM2LjYwNiwxMzQuMDM2eiBNMTY0Ljg2MSwxMjcuOWMxLjYzMiwwLDIuOTU1LDEuMzIzLDIuOTU1LDIuOTU1djI5LjU1NWgtNS45MTF2LTI5LjU1NSBDMTYxLjkwNiwxMjkuMjI0LDE2My4yMjksMTI3LjksMTY0Ljg2MSwxMjcuOXogTTc3LjE4MywxMzAuODU2YzAtMS42MzIsMS4zMjMtMi45NTUsMi45NTUtMi45NTVjMS42MzIsMCwyLjk1NSwxLjMyMywyLjk1NSwyLjk1NSB2MjkuNTU1aC01LjkxMVYxMzAuODU2eiBNMTAuMTkyLDE0OC4yNjZjMC0zLjI1NywxLjI5Ni02LjI5MSwzLjY1MS04LjU0M2MyLjIyMS0yLjEyNiw1LjA1Mi0zLjQ0OSw4LjcxMS0zLjI2NyBjNi4yMiwwLjMwOSwxMS4yODIsNS43OTQsMTEuMjgyLDEyLjMwNHY2OS43N2MtMy42NDgtMi43NTEtOC4wOTktNC4xMjktMTIuNzQ4LTMuOTE2Yy00LjA1OCwwLjE4Ny03LjgyMSwxLjY0MS0x
1014MC44OTYsMy45NjkgVjE0OC4yNjZ6IE0yMzEuNTM2LDI0Mi40NmMtMi4yNTMsMi4zNTktNS4yODksMy42NTktOC41NTEsMy42NTlIMjIuMDE0Yy0zLjI2MSwwLTYuMjk4LTEuMjk5LTguNTUxLTMuNjU5IGMtMi4yNTEtMi4zNTctMy40MDktNS40NTctMy4yNTktOC43MjdjMC4yNzgtNi4wMjgsNS4yMTctMTAuOTY4LDExLjI0Ni0xMS4yNDZjMy4yNzYtMC4xNDYsNi4zNywxLjAwNiw4LjcyNywzLjI1OSBjMi4zNTksMi4yNTMsMy42NTksNS4yODksMy42NTksOC41NTFoNy44ODF2LTY2LjAwNWg5Ljg1MnYyNi41OTljMCw2LjgxLDUuOTk3LDExLjgyMiwxMi44MDcsMTEuODIyczEyLjgwNy01LjAxMiwxMi44MDctMTEuODIyIHYtMjYuNTk5aDkwLjYzNHYyNi41OTljMCw2LjgxLDUuOTk3LDEyLjgwNywxMi44MDcsMTIuODA3YzYuODEsMCwxMi44MDctNS45OTcsMTIuODA3LTEyLjgwN3YtMjYuNTk5aDkuODUydjY2LjAwNWg3Ljg4MSBjMC0zLjI2MSwxLjMtNi4yOTgsMy42NTktOC41NTFjMi4zNTctMi4yNTIsNS40NDItMy40MTIsOC43MjctMy4yNTljNi4wMjgsMC4yNzcsMTAuOTY4LDUuMjE3LDExLjI0NiwxMS4yNDYgQzIzNC45NDYsMjM3LjAwMywyMzMuNzg4LDI0MC4xMDMsMjMxLjUzNiwyNDIuNDZ6IE0yMzQuODA3LDIxOC41ODRjLTMuMDc1LTIuMzI4LTYuNDQ1LTMuOTkxLTExLjgzNC0zLjk5MSBjLTQuMzEsMC04LjQwNywxLjM3Mi0xMS44MDksMy45Mzd2LTY5Ljc2MmMwLTYuNTEsNS4wNjEtMTIuMDMsMTEuMjgyLTEyLjMwNGMzLjI2MS0wLjE0Myw2LjM1OCwxLjAxNSw4LjcxMSwzLjI2NiBjMi4zNTQsMi4yNTIsMy42NSw1LjI4NywzLjY1LDguNTQzVjIxOC41ODR6Ii8+IDwvZz4KDTwvc3ZnPg==";
1015
1016
1017    prods.push({
1018      "id":'S-001021T0M8',
1019      "dir":"Service",
1020      "pub":"",
1021      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=3cc353d6-cb03-ef11-a1fd-001dd806e985&Timestamp=638497422216632694",
1022      "nm":`Chair up`,
1023      "desc":`Sales of modular street structures, Metal bistro fencing and Outdoor restaurant furniture. Full Service solution for Street Structure parklets including design, installation, removal and storage of street structures. Elevate your dining experience with our quality products and hassle-free services.`,
1024      "cont":`212-353-0056, [email protected], Chairup.com`,
1025      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1026      "mwbe":"",
1027      "loc":  "Manhattan",
1028	  "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Site Planning, ",
1029	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1030      "lang": " English,  Spanish, "
1031    });
1032    prods.push({
1033      "id":'S-001013L9D0',
1034      "dir":"Service",
1035      "pub":"",
1036      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=9de3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422239914023",
1037      "nm":`DTLS Architecture`,
1038      "desc":`We provide design, interiors, lighting, detailing, modular construction, zoning &amp; filing on a wide range of projects and scales.`,
1039      "cont":`We can be reached at:[email protected]`,
1040      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1041      "mwbe":"",
1042      "loc":  "Manhattan",
1043	  "svctyp": "Fabrication, Site Planning, Architecture/Engineering/Landscape, ",
1044	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1045      "lang": " English, "
1046    });
1047    prods.push({
1048      "id":'S-001031Y0P8',
1049      "dir":"Service",
1050      "pub":"",
1051      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=f7c1368c-854f-ef11-a317-001dd806e985&Timestamp=638580591999594134",
1052      "nm":`Envisiond Construction Corp.`,
1053      "desc":`We specialize in Design and fabrication, we offer Design, Fabrication, and Installation.we work with Metals and glass. installations of metal structures, and architectural components. Our team designs and builds. We also offer consultation services and help with planning projects. As a one-stop shop, we handle everything from start to finish, making the whole process smooth and efficient.`,
1054      "cont":``,
1055      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1056      "mwbe":"",
1057      "loc":  "Queens",
1058	  "svctyp": "Fabrication, Installation, Removal, Leasing/Renting, Lighting, Site Planning, ",
1059	  "area": "Bronx, Brooklyn, Manhattan, Queens, ",
1060      "lang": " English,  Spanish, "
1061    });
1062    prods.push({
1063      "id":'S-001019K4W6',
1064      "dir":"Service",
1065      "pub":"",
1066      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=2e5b84d8-cb03-ef11-a1fd-001dd8053efe&Timestamp=638549265674232656",
1067      "nm":`FANT&#193;STICA`,
1068      "desc":`FANT&#193;STICA builds modular street furniture and micro mobility infrastru
1068cture for cities. Highlights include: Fast Casual, a street furniture system for roadway and sidewalk cafes, launched at Times Square’s Design Lab (TSqDL). Oonee, an award winning network of FREE secure bike parking and charging pods. And Street Seats, the city-wide standard design for the DOT’s Parklet Program.`,
1069      "cont":``,
1070      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1071      "mwbe":"City_M/WBE, ",
1072      "loc":  "Manhattan",
1073	  "svctyp": "Fabrication, Installation, Removal, Storage, Lighting, Site Planning, ",
1074	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1075      "lang": " English,  Spanish,  Other, "
1076    });
1077    prods.push({
1078      "id":'S-001005C5M9',
1079      "dir":"Service",
1080      "pub":"",
1081      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=9ee3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422179960465",
1082      "nm":`Five star awnings`,
1083      "desc":`We manufacture awnings for both roadway dining structures and sidewalk cafes , cafe panels (barriers) .  Additionally, we have a storage facility to store enclosures/set ups.`,
1084      "cont":`[email protected] for Laurie or Joe`,
1085      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1086      "mwbe":"",
1087      "loc":  "Queens",
1088	  "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ",
1089	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1090      "lang": " English,  Spanish, "
1091    });
1092    prods.push({
1093      "id":'S-001029Z4Z3',
1094      "dir":"Service",
1095      "pub":"",
1096      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=432ee4ff-0733-ef11-8409-001dd8051c8b&Timestamp=638549265554075190",
1097      "nm":`J.J.W.I. Inc`,
1098      "desc":`Demolition, interior renovation, mold remediation, lead abatement.Drywall, carpentry, flooring, cabinetry.`,
1099      "cont":``,
1100      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1101      "mwbe":"City_M/WBE, ",
1102      "loc":  "Queens",
1103	  "svctyp": "Installation, Removal, ",
1104	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1105      "lang": " English,  Spanish, "
1106    });
1107    prods.push({
1108      "id":'S-001024K9F5',
1109      "dir":"Service",
1110      "pub":"",
1111      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=f727bad8-8808-ef11-9f89-001dd8053efe&Timestamp=638502555551561833",
1112      "nm":`Martel Design &amp; Fabrication LLC.`,
1113      "desc":`Custom Design &amp; Fabrication of Metal construction  for residential and commercial projects.`,
1114      "cont":`Email: wmartel@martelfabPhone: 618-963-4780`,
1115      "stype": "Roadway Cafe, ",
1116      "mwbe":"",
1117      "loc":  "Brooklyn",
1118	  "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ",
1119	  "area": "Brooklyn, Manhattan, ",
1120      "lang": " English, "
1121    });
1122    prods.push({
1123      "id":'S-001028Q6B0',
1124      "dir":"Service",
1125      "pub":"",
1126      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=8c12ee06-892a-ef11-840a-001dd806e985&Timestamp=638539921960576598",
1127      "nm":`MODSTREET`,
1128      "desc":`We provide completely modular, steel products for bistro style sidewalk cafes or modular parklets for roadway cafes. Our products can assemble and disassemble in minutes and withstand a collision up to 20 mph. Features like removable decking, powder coated steal (making it is maintenance free), and many customization options available. This product will last 25-30 years and look the same.`,
1129      "cont":`Jared Greenspan, ChairUP, 212-353-0056, [email protected]`,
1130      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1131      "mwbe":"DBE, ",
1132      "loc":  "Outside NY State",
1133	  "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ",
1134	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1135      "lang": " English, "
1136    });
1137    prods.push({
1138      "id":'S-001001B4K2',
1139      "dir":"Service",
1140      "pub":"",
1141      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=8fe3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=6384974222274
114160999",
1142      "nm":`Morris Moving`,
1143      "desc":`We are happy to support  and fulfill your need to remove any and all outdoor structures, store at our climate controlled facility, and then move back when ready.`,
1144      "cont":`Jacob Morris 4th - gerenation President`,
1145      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1146      "mwbe":"",
1147      "loc":  "NY State",
1148	  "svctyp": "Removal, Storage, ",
1149	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1150      "lang": " English,  Spanish, "
1151    });
1152    prods.push({
1153      "id":'S-001007N6S4',
1154      "dir":"Service",
1155      "pub":"",
1156      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=90e3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422223351471",
1157      "nm":`Moving Right Along`,
1158      "desc":`Moving Right Along is a licensed and insured moving and storage firm. We can handle the safe transportation of both the furniture and caf&#233; structures. We would complete a detailed inventory of the items picked up, stored and returned when the cafes open back up for the season. Our facility is a 35,000 sq. foot facility that is climate controlled, under 24 hour surveillance and password protected.`,
1159      "cont":`Moving Right Along - 718.738.2468`,
1160      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1161      "mwbe":"City_M/WBE, State_M/WBE, ",
1162      "loc":  "Queens",
1163	  "svctyp": "Installation, Removal, Storage, ",
1164	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1165      "lang": " English,  Spanish, "
1166    });
1167    prods.push({
1168      "id":'S-001008Q3V6',
1169      "dir":"Service",
1170      "pub":"",
1171      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=9ce3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422231164044",
1172      "nm":`ootBox, Inc.`,
1173      "desc":`All-inclusive premium roadway cafes made from upcycled shipping containers.  Our services start at $1000/month and include delivery, pickup and off-season upkeep and maintenance every year. Zero set up. Zero logistics. And zero head-aches.`,
1174      "cont":`Allison [email protected]`,
1175      "stype": "Roadway Cafe, ",
1176      "mwbe":"",
1177      "loc":  "Outside NY State",
1178	  "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, Architecture/Engineering/Landscape, ",
1179	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1180      "lang": " English,  Other, "
1181    });
1182    prods.push({
1183      "id":'S-001018R8G2',
1184      "dir":"Service",
1185      "pub":"",
1186      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=2e62f52c-5a02-ef11-a1fe-001dd8053efe&Timestamp=638506817955796546",
1187      "nm":`Out / Open Works`,
1188      "desc":`Out / Open Works offers an effective one stop solution. Our partners have extensive expertise creating beautiful and flexible outdoor structures in the public and private spaces of NYC. Services include: free consultation, site survey, customized design system, filing assistance with regulatory agencies, fabrication, installation, lighting, maintenance, removal and off-season storage.`,
1189      "cont":`Out / Open WorksTel: (347) 463-1240Tel: (917) 697-7275 Email: [email protected] Web: outopenworks.com`,
1190      "stype": "Roadway Cafe, ",
1191      "mwbe":"City_M/WBE, State_M/WBE, ",
1192      "loc":  "Queens",
1193	  "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, ",
1194	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1195      "lang": " English,  Spanish,  Korean, "
1196    });
1197    prods.push({
1198      "id":'S-001026B3W0',
1199      "dir":"Service",
1200      "pub":"",
1201      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=1e26b8d8-580d-ef11-9f89-001dd806e985&Timestamp=638507874790955673",
1202      "nm":`Paul Signs`,
1203      "desc":`Design, manufacture, install and service all types of signs and awnings, roadway cafe, barricades,sidewalk cafe&#39;s and vestibules and structures.`,
1204      "cont":`Paul Signs, [email protected]`,
1205      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1206      "mwbe":"",
1207      "loc":  "Brooklyn",
1208	  "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ",
1209	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1210      "lang": " English,  Spanish,  Russian, "
1211    });
1212    prods.push({
1213      "id":'S-001014Z7Y4',
1214      "dir":"Service",
1215      "pub":"",
1216      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=552496c4-cbfc-ee11-a1fe-001dd8053efe&Timestamp=638507077717237027",
1217      "nm":`re-ply`,
1218      "desc":`Re-ply offers modular outdoor dining setups for NYC restaurants using recycled and recyclable materials and provides full-service assembly, maintenance and winter storage, with a convenient monthly leasing option.We recently launched re-ply 2.0 - a solution to NYC DOT’s new permanent outdoor dining program, kicking off in Spring 2024. Visit our website for more information.`,
1219      "cont":``,
1220      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1221      "mwbe":"",
1222      "loc":  "Manhattan",
1223	  "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Site Planning, ",
1224	  "area": "Bronx, Brooklyn, Manhattan, Queens, ",
1225      "lang": " English, "
1226    });
1227    prods.push({
1228      "id":'S-001025Z8V4',
1229      "dir":"Service",
1230      "pub":"",
1231      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=bb0c063b-b40b-ef11-9f89-001dd8053efe&Timestamp=638506022496233869",
1232      "nm":`ShowFab`,
1233      "desc":`As a vertically integrated company with over 90 dedicated team members, we combine unparalleled craftsmanship and state-of-the-art technology to deliver seamless service, exceptional quality, and unmatched value.Located in New Jersey, our 100,000 square-foot facility is home to a collection of advanced equipment, which allows us to have full control over every step of the manufacturing process.`,
1234      "cont":``,
1235      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1236      "mwbe":"",
1237      "loc":  "Outside NY State",
1238	  "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, ",
1239	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1240      "lang": " English,  Spanish,  Chinese, "
1241    });
1242    prods.push({
1243      "id":'S-001030K8M0',
1244      "dir":"Service",
1245      "pub":"",
1246      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=6b2281ff-0733-ef11-8409-001dd8097e0d&Timestamp=638549265788145194",
1247      "nm":`Sign Expo`,
1248      "desc":`Fabrication and installation of both sidewalk partitions and roadway cafes`,
1249      "cont":``,
1250      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1251      "mwbe":"",
1252      "loc":  "Manhattan",
1253	  "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ",
1254	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1255      "lang": " English,  Spanish,  Chinese, "
1256    });
1257    prods.push({
1258      "id":'S-001009D5V1',
1259      "dir":"Service",
1260      "pub":"",
1261      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=a6e3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422205742011",
1262      "nm":`Soho Sheds`,
1263      "desc":`We design, build, install, transport and store Roadway Dining structures, compliant with DOT regulations. We construct your units from recycled shipping containers keeping fabrication, transport and storage costs low for NYC restaurants and provide free site plans with purchase or lease.`,
1264      "cont":``,
1265      "stype": "Roadway Cafe, ",
1266      "mwbe":"",
1267      "loc":  "Manhattan",
1268	  "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Site Planning, Architecture/Engineering/Landscape, ",
1269	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1270      "lang": " English,  Spanish, "
1271    });
1272    prods.push({
1273      "id":'S-001022V4T8',
1274      "dir":"Service",
1275      "pub":"",
1276      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=f4467887-e103-ef11-a1fd-001dd806e985&Timestamp=638497422220429678",
1277      "nm":`strEATery`,
1278      "desc":`We provide a modular, reusable, roadway cafe that is safe, accessible, clean, and easy to assemble &amp; breakdown for storage.  Additionally, we offer a furniture leasing option for business owners.  For current restaurants with an open roadway cafe, we offer demolition and removal of existing structures.`,
1279      "cont":``,
1280      "stype": "Roadway Cafe, ",
1281      "mwbe":"",
1282      "loc":  "Manhattan",
1283	  "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, ",
1284	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1285      "lang": " English,  Italian, "
1286    });
1287    prods.push({
1288      "id":'S-001020M7L3',
1289      "dir":"Service",
1290      "pub":"",
1291      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=2f5b84d8-cb03-ef11-a1fd-001dd8053efe&Timestamp=638497422209601425",
1292      "nm":`STREETSEATS`,
1293      "desc":`STREETSEATS™ was created to provide restaurateurs and diners with a safe, clean, stylish, and cost-effective solution to New York City’s ever-evolving urban al fresco culture. We design, build, and manage outdoor dining systems for New York City restaurants. We offer affordable, standardized roadway cafe designs customized to your brand aesthetic, and offer fully custom options.`,
1294      "cont":`‪(845) 445-8956‬[email protected]`,
1295      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1296      "mwbe":"",
1297      "loc":  "NY State",
1298	  "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, ",
1299	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1300      "lang": " English,  Spanish, "
1301    });
1302    prods.push({
1303      "id":'S-001023Q8L7',
1304      "dir":"Service",
1305      "pub":"",
1306      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=f827bad8-8808-ef11-9f89-001dd8053efe&Timestamp=638549266036427795",
1307      "nm":`Sure Iron Works`,
1308      "desc":`Sure Iron Works provides creative and practical steel framed outdoor cafes with fixed roof systems. Our products go through extensive development and meet or exceed DOT requirements for barricade/protections and modular construction. Services include set-up mobilizations and removals, demobilization &amp; storage.`,
1309      "cont":``,
1310      "stype": "Roadway Cafe, ",
1311      "mwbe":"",
1312      "loc":  "Brooklyn",
1313	  "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Site Planning, ",
1314	  "area": "Brooklyn, Manhattan, Queens, ",
1315      "lang": " English, "
1316    });
1317    prods.push({
1318      "id":'S-001017D7J5',
1319      "dir":"Service",
1320      "pub":"",
1321      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=92e3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422243507871",
1322      "nm":`Town &amp; Gardens, LTD.`,
1323      "desc":`We are a landscape design-build company with a team of professionals including landscape designers, horticulturists, arborists, as well as irrigation and lighting specialists.Our approach allows us to see projects through each stage - from the initial conceptual package to the careful installation of garden elements, to ongoing care and maintenance in the years after the garden is installed.`,
1324      "cont":``,
1325      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1326      "mwbe":"",
1327      "loc":  "Queens",
1328	  "svctyp": "Fabrication, Installation, Removal, Lighting, Site Planning, ",
1329	  "area": "Bronx, Brooklyn, Manhattan, Queens, ",
1330      "lang": " English,  Spanish, "
1331    });
1332    prods.push({
1333      "id":'S-001032D2F6',
1334      "dir":"Service",
1335      "pub":"",
1336      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=0b8bd8d6-4166-ef11-bfe3-001dd83059b4&Timestamp=638605604988281509",
1337      "nm":`Wenger Corporation`,
1338      "desc":`StageTek by Wenger has been the industry standard for removable platform decking over the past decade. By introducing weather-resistant robust aluminum outdoor platforms, StageTek retains its renowned features, including exceptional strength, versatility, and ease of setup, while effectively tackling challenges presented by outdoor restaurant dining, with an industry-leading ten-year warranty.`,
1339      "cont":``,
1340      "stype": "Roadway Cafe, ",
1341      "mwbe":"",
1342      "loc":  "Outside NY State",
1343	  "svctyp": "Fabrication, Installation, Site Planning, ",
1344	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1345      "lang": " English, "
1346    });
1347    prods.push({
1348      "id":'S-001027L4R9',
1349      "dir":"Service",
1350      "pub":"",
1351      "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=2326b8d8-580d-ef11-9f89-001dd806e985&Timestamp=638507874701104046",
1352      "nm":`WXY Architecture + Urban Design`,
1353      "desc":`WXY provides design services in close collaboration/coordination with fabricators and installer
1353s.  We have deep knowledge of the permanent program regulations and best practices. Our work has been recognized for its dedication to engaging, improving, and honoring public space. We design in conversation with the environment and commit to solutions that forward a healthy and sustainable future.`,
1354      "cont":`General office contact: [email protected] 219 1953`,
1355      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1356      "mwbe":"City_M/WBE, State_M/WBE, ",
1357      "loc":  "Manhattan",
1358	  "svctyp": "Site Planning, Architecture/Engineering/Landscape, ",
1359	  "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ",
1360      "lang": " English,  Spanish,  French, "
1361    }); 
1362 
1363
1364    prods.push({
1365      "id":'PD-001000X8S5',
1366      "dir": "Design",
1367      "pub":"DOT",
1368      "nm":`Mid Block (Warique)`,
1369      "cat":"Setup",
1370      "sub":"",
1371      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=b70e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729395820052",
1372      "desc":`The design team selected a contain barrier at the base to provide for compact off-season storage. The rigid canopy is built with lightweight framed rigid polycarbonate boards, bolted to the structural frame. A ceiling fan was included to the design for added summer comfort and electrical system is hardwired back to the restaurant. On the street side, a wood lattice screening provides privacy and visually shields guests from vehicles, while a long bench maximizes seating.`,
1373      "stype": "Roadway Cafe, ",
1374      "mwbe":"",
1375      "loc":  "",
1376      "mat": "",
1377      "sus": ""
1378    });
1379    prods.push({
1380      "id":'PD-001001S9K0',
1381      "dir": "Design",
1382      "pub":"DOT",
1383      "nm":`Corner Setup (Sunday To Sunday)`,
1384      "cat":"Setup",
1385      "sub":"",
1386      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=6f0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729382851252",
1387      "desc":`The design showcases a “Contain” barrier where rigid water-filled containers are housed within a modular metal frame that interconnects with the other barrier units. The barrier also has rigid angled corners for additional protection and seamlessly connects with the flooring system and overhead covering. The floor employs a modular substructure with leveling feet and off-the-shelf 2’x2’ deck tiles that can be easily removed for cleaning purposes. The flooring also includes a hinged diamond-plated connector plate to allow for ADA-compliant access from the sidew
1387alk to the setup. The overhead covering is a tensile fabric system supported by 4” wood posts. Lastly, the prototype incorporates battery-powered string lighting and table lights and a custom built-in banquet seat that doubles as storage.`,
1388      "stype": "Roadway Cafe, ",
1389      "mwbe":"",
1390      "loc":  "",
1391      "mat": "",
1392      "sus": ""
1393    });
1394    prods.push({
1395      "id":'PD-001007D5L9',
1396      "dir": "Design",
1397      "pub":"DOT",
1398      "nm":`Floating Parking Lane (Bodrum)`,
1399      "cat":"Setup",
1400      "sub":"",
1401      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=700458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729410507618",
1402      "desc":`The design team selected a standard water barrier with custom cladding to provide a simple frame for the dining space and consistent clear-sealed Marine Grade Plywood for the inside barrier surface and floor. Off the shelf barriers are set on leveling saddles to fully integrate the barrier and floor system. For protection along the bike lane, a series of panels and ropes are used to channel patrons to a single access point. The vestibule canopy matches the sidewalk setup and clear screening panels and planting were integrated to help the dining experience.`,
1403      "stype": "Roadway Cafe, ",
1404      "mwbe":"",
1405      "loc":  "",
1406      "mat": "",
1407      "sus": ""
1408    });
1409    prods.push({
1410      "id":'PD-001014M5W7',
1411      "dir": "Design",
1412      "pub":"DOT",
1413      "nm":`Steep Street (Dawas)`,
1414      "cat":"Setup",
1415      "sub":"",
1416      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c50e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729427390464",
1417      "desc":`The design team tested a rigid metal frame construction, integrating the barrier and floor. The structure is fully clad in Recycled Plastic Lumber panels and boards. A series of planters line the edge with a lightweight, retractable water-repelling canopy for sun and rain. The colors relate to the restaurants&#39; interior color palette. On the high end of the slope, a removeable temporary ramp can be easily deployed and stored on the setup itself. Once disassembled for off season, the setup is designed to fit into the restaurant basement.`,
1418      "stype": "Roadway Cafe, ",
1419      "mwbe":"",
1420      "loc":  "",
1421      "mat": "",
1422      "sus": ""
1423    });
1424    prods.push({
1425      "id":'PD-001002N8H5',
1426      "dir": "Design",
1427      "pub":"DOT",
1428      "nm":`Aluminum Frame  Contain  Barrier`,
1429      "cat":"Barrier",
1430      "sub":"Water Filled Barrier",
1431      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=710458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729433788940",
1432      "desc":`- Prefabricated, Modular Aluminum Frame provides housing for rigid water containers (cavity dimension: 1&#39;8 L x 1&#39;W x 2&#39;7 H ) - Marine Grade Plywood cladding and sheating, easily removable - Barrier modules are bolted to each other to increase crash resistance - Rigid angled corner modules provide additional protection - Seamlessly connects with the flooring system - Provides anchoring to the canopy structure`,
1433      "stype": "Roadway Cafe, ",
1434      "mwbe":"",
1435      "loc":  "",
1436      "mat": "",
1437      "sus": ""
1438    });
1439    prods.push({
1440      "id":'PD-001003Z2H0',
1441      "dir": "Design",
1442      "pub":"DOT",
1443      "nm":`Metal Floor Structure with Lay-in Wood Tiles`,
1444      "cat":"Floor",
1445      "sub":"Framed Support",
1446      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=720458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729439734271",
1447      "desc":`- Pre-fabricated rectangular aluminum frame - Low Profile - (6) leveling feet allow to adjust height to match curb and accomodate street crown slope - Compatible with off the shelf 2&#39; wood decking tiles - Floor structure connected to barrier for increased stiffness - Custom tile allows for connection to canopy posts - Additional leveling feet can be attached on the side facing sidewalk curb to improve structural stability of the entire dining setup`,
1448      "stype": "Roadway Cafe, ",
1449      "mwbe":"",
1450      "loc":  "",
1451      "mat": "",
1452      "sus": ""
1453    });
1454    prods.push({
1455      "id":'PD-001005H3N0',
1456      "dir": "Design",
1457      "pub":"DOT",
1458      "nm":`Wood Post and Tensile Canopy System`,
1459      "cat":"Overhead Covering",
1460      "sub":"Fabric Canopy",
1461      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=b80e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729447695329",
1462      "desc":`- Lightweight overhead canopy - Marine fabric / Awning - Repells water and offers UV protection - 4  wood posts, fastened to barrier units or floor structure`,
1463      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1464      "mwbe":"",
1465      "loc":  "",
1466      "mat": "",
1467      "sus": ""
1468    });
1469    prods.push({
1470      "id":'PD-001006Z2K9',
1471      "dir": "Product",
1472      "pub":"DOT",
1473      "nm":`Foldable Chair - Fermob Bistro`,
1474      "cat":"Furnishing",
1475      "sub":"Chairs",
1476      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=bc0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729454257838",
1477      "desc":`FERMOB 010114 Bistro Metal Chair, Nutmeg - Reinterpretation of classic, iconic bistro garden, terrace and public space furniture - Suitable for interior and exterior - Foldable for easy storage when not in use - Steel frame with baked on powder coated finish - Anti-UV Powder Coating - Multiple colors available`,
1478      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1479      "mwbe":"",
1480      "loc":  "",
1481      "mat": "",
1482      "sus": ""
1483    });
1484    prods.push({
1485      "id":'PD-001009Z8T0',
1486      "dir": "Design",
1487      "pub":"DOT",
1488      "nm":`Custom Plywood Bench Storage`,
1489      "cat":"Furnishing",
1490      "sub":"Benches",
1491      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=780458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729457539012",
1492      "desc":`- Painted Marine Grade Plywood enclosure - Hinged seating surface for easy access`,
1493      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1494      "mwbe":"",
1495      "loc":  "",
1496      "mat": "",
1497      "sus": ""
1498    });
1499    prods.push({
1500      "id":'PD-001016G0J0',
1501      "dir": "Product",
1502      "pub":"DOT",
1503      "nm":`Foldable 24  Round Table - Fermob Bistro`,
1504      "cat":"Furnishing",
1505      "sub":"Tables",
1506      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=ca0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729450828052",
1507      "desc":`FERMOB 024514 Bistro 24  Round Table, Nutmeg - Reinterpretation of classic, iconic bistro garden, terrace and public space furniture - Suitable for interior and exterior - Foldable for easy storage when not in use - Steel frame with baked on powder coated finish - Anti-UV Powder Coating - Multiple colors available`,
1508      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1509      "mwbe":"",
1510      "loc":  "",
1511      "mat": "",
1512      "sus": ""
1513    });
1514    prods.push({
1515      "id":'PD-001029F5C4',
1516      "dir": "Product",
1517      "pub":"DOT",
1518      "nm":`Festoon Lighting - Habitat Cherry Bubbls`,
1519      "cat":"Electrical",
1520      "sub":"Battery Power",
1521      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d80e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729460671870",
1522      "desc":`Festoon Lighting - Can be easily hung from canopy structure - Mouth Blown Crystal Galss, Aluminum die-casting, powder coated - LED, 2700K, Dimmable - Includes discreet Power Pack (provides approx. 10 hrs at 100% at max dimming setting)`,
1523      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1524      "mwbe":"",
1525      "loc":  "",
1526      "mat": "",
1527      "sus": ""
1528    });
1529    prods.push({
1530      "id":'PD-001029F5C4',
1531      "dir": "Product",
1532      "pub":"DOT",
1533      "nm":`Festoon Lighting - Habitat Cherry Bubbls`,
1534      "cat":"Electrical",
1535      "sub":"Lighting",
1536      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d80e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729460671870",
1537      "desc":`Festoon Lighting - Can be easily hung from canopy structure - Mouth Blown Crystal Galss, Aluminum die-casting, powder coated - LED, 2700K, Dimmable - Includes discreet Power Pack (provides approx. 10 hrs at 100% at max dimming setting)`,
1538      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1539      "mwbe":"",
1540      "loc":  "",
1541      "mat": "",
1542      "sus": ""
1543    });
1544    prods.push({
1545      "id":'PD-001029F5C4',
1546      "dir": "Product",
1547      "pub":"DOT",
1548      "nm":`Festoon Lighting - Habitat Cherry Bubbls`,
1549      "cat":"Electrical",
1550      "sub":"Pendants",
1551      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d80e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729460671870",
1552      "desc":`Festoon Lighting - Can be easily hung from canopy structure - Mouth Blown Crystal Galss, Aluminum die-casting, powder coated - LED, 2700K, Dimmable - Includes discreet Power Pack (provides approx. 10 hrs at 100% at max dimming setting)`,
1553      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1554      "mwbe":"",
1555      "loc":  "",
1556      "mat": "",
1557      "sus": ""
1558    });
1559    prods.push({
1560      "id":'PD-001035R3K4',
1561      "dir": "Product",
1562      "pub":"DOT",
1563      "nm":`Table Lamp - LUMENS FollowMe`,
1564      "cat":"Electrical",
1565      "sub":"Battery Power",
1566      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8e0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729463796894",
1567      "desc":`LUMENS - FollowMe Portable Table Lamp - Petite, portable  rechargeable lamp - Built-in battery with USB port charging - 5 hours battery life at peak power - Dimmable, touch dimmer - Natural oak veneer handle, polycarbonate base, opal polycarbonate shade`,
1568      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1569      "mwbe":"",
1570      "loc":  "",
1571      "mat": "",
1572      "sus": ""
1573    });
1574    prods.push({
1575      "id":'PD-001035R3K4',
1576      "dir": "Product",
1577      "pub":"DOT",
1578      "nm":`Table Lamp - LUMENS FollowMe`,
1579      "cat":"Electrical",
1580      "sub":"Lighting",
1581      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8e0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729463796894",
1582      "desc":`LUMENS - FollowMe Portable Table Lamp - Petite, portable  rechargeable lamp - Built-in battery with USB port charging - 5 hours battery life at peak power - Dimmable, touch dimmer - Natural oak veneer handle, polycarbonate base, opal polycarbonate shade`,
1583      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1584      "mwbe":"",
1585      "loc":  "",
1586      "mat": "",
1587      "sus": ""
1588    });
1589    prods.push({
1590      "id":'PD-001035R3K4',
1591      "dir": "Product",
1592      "pub":"DOT",
1593      "nm":`Table Lamp - LUMENS FollowMe`,
1594      "cat":"Electrical",
1595      "sub":"Table Lights",
1596      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8e0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729463796894",
1597      "desc":`LUMENS - FollowMe Portable Table Lamp - Petite, portable  rechargeable lamp - Built-in battery with USB port charging - 5 hours battery life at peak power - Dimmable, touch dimmer - Natural oak veneer handle, polycarbonate base, opal polycarbonate shade`,
1598      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1599      "mwbe":"",
1600      "loc":  "",
1601      "mat": "",
1602      "sus": ""
1603    });
1604    prods.push({
1605      "id":'PD-001008S8J0',
1606      "dir": "Product",
1607      "pub":"DOT",
1608      "nm":`Foldable Chair - Alessi Piana`,
1609      "cat":"Furnishing",
1610      "sub":"Chairs",
1611      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c20e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729496140836",
1612      "desc":`-Foldable and stackable chair, available in multiple colors -Fiberglass material`,
1613      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1614      "mwbe":"",
1615      "loc":  "",
1616      "mat": "",
1617      "sus": ""
1618    });
1619    prods.push({
1620      "id":'PD-001012S9K8',
1621      "dir": "Product",
1622      "pub":"DOT",
1623      "nm":`Folding 24  Round Table - Compamia Sky`,
1624      "cat":"Furnishing",
1625      "sub":"Tables",
1626      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c30e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729490046988",
1627      "desc":`-Polypropylene resin -Foldable top -For indoor and outdoor use`,
1628      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1629      "mwbe":"",
1630      "loc":  "",
1631      "mat": "",
1632      "sus": "Recyclable, "
1633    });
1634    prods.push({
1635      "id":'PD-001013N8M3',
1636      "dir": "Product",
1637      "pub":"DOT",
1638      "nm":`Pendant Light - RBW Hoist LED`,
1639      "cat":"Electrical",
1640      "sub":"Hardwired",
1641      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c40e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729499257960",
1642      "desc":`-Opal blown glass, spun steel -Suitable for Wet Locations IP65 -Delivered Lumens 658 lm  -Power Consumption 9W  -Luminous Efficacy 74.9 lm/W -Standard 192  black cord with a plug`,
1643      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1644      "mwbe":"",
1645      "loc":  "",
1646      "mat": "",
1647      "sus": ""
1648    });
1649    prods.push({
1650      "id":'PD-001013N8M3',
1651      "dir": "Product",
1652      "pub":"DOT",
1653      "nm":`Pendant Light - RBW Hoist LED`,
1654      "cat":"Electrical",
1655      "sub":"Pendants",
1656      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c40e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729499257960",
1657      "desc":`-Opal blown glass, spun steel -Suitable for Wet Locations IP65 -Delivered Lumens 658 lm  -Power Consumption 9W  -Luminous Efficacy 74.9 lm/W -Standard 192  black cord with a plug`,
1658      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1659      "mwbe":"",
1660      "loc":  "",
1661      "mat": "",
1662      "sus": ""
1663    });
1664    prods.push({
1665      "id":'PD-001015K3H4',
1666      "dir": "Product",
1667      "pub":"DOT",
1668      "nm":`Rechargeable LED Table Lamp - Marset Sips`,
1669      "cat":"Electrical",
1670      "sub":"Battery Power",
1671      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=7d0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729503328336",
1672      "desc":`-3-step dimming with memory function -Battery life time: 5 hours in full power, 10 hours in half power, 20 hours in a quarter power -Charging time: 10 hours -USB cable included, power adapter not included -Use an adapter with the following specifications. Input: 5V DC 1.5 A -Material: Polycarbonate, Aluminium -Dimmable: Yes`,
1673      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1674      "mwbe":"",
1675      "loc":  "",
1676      "mat": "",
1677      "sus": ""
1678    });
1679    prods.push({
1680      "id":'PD-001015K3H4',
1681      "dir": "Product",
1682      "pub":"DOT",
1683      "nm":`Rechargeable LED Table Lamp - Marset Sips`,
1684      "cat":"Electrical",
1685      "sub":"Table Lights",
1686      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=7d0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729503328336",
1687      "desc":`-3-step dimming with memory function -Battery life time: 5 hours in full power, 10 hours in half power, 20 hours in a quarter power -Charging time: 10 hours -USB cable included, power adapter not included -Use an adapter with the following specifications. Input: 5V DC 1.5 A -Material: Polycarbonate, Aluminium -Dimmable: Yes`,
1688      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1689      "mwbe":"",
1690      "loc":  "",
1691      "mat": "",
1692      "sus": ""
1693    });
1694    prods.push({
1695      "id":'PD-001017C6Q4',
1696      "dir": "Design",
1697      "pub":"DOT",
1698      "nm":`Wood Screen`,
1699      "cat":"Screening",
1700      "sub":"Screening",
1701      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=cb0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729487078232",
1702      "desc":`- Custom painted wood lattice panel   - Provides privacy to diners - Attached vertical structure`,
1703      "stype": "Roadway Cafe, ",
1704      "mwbe":"",
1705      "loc":  "",
1706      "mat": "",
1707      "sus": ""
1708    });
1709    prods.push({
1710      "id":'PD-001019R8D8',
1711      "dir": "Design",
1712      "pub":"DOT",
1713      "nm":`Metal Floor Structure with Hinged Wood Panels`,
1714      "cat":"Floor",
1715      "sub":"Flooring Panels",
1716      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=7f0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729475820343",
1717      "desc":`- Pre-fabricated rectangular aluminum frame substructure - Hinged decking tiles panels for easy cleaning - Leveling feet allow to adjust height to match curb and accomodate street crown slope - Floor structure connected to barrier for increased stiffness`,
1718      "stype": "Roadway Cafe, ",
1719      "mwbe":"",
1720      "loc":  "",
1721      "mat": "",
1722      "sus": ""
1723    });
1724    prods.push({
1725      "id":'PD-001019R8D8',
1726      "dir": "Design",
1727      "pub":"DOT",
1728      "nm":`Metal Floor Structure with Hinged Wood Panels`,
1729      "cat":"Floor",
1730      "sub":"Framed Support",
1731      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=7f0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729475820343",
1732      "desc":`- Pre-fabricated rectangular aluminum frame substructure - Hinged decking tiles panels for easy cleaning - Leveling feet allow to adjust height to match curb and accomodate street crown slope - Floor structure connected to barrier for increased stiffness`,
1733      "stype": "Roadway Cafe, ",
1734      "mwbe":"",
1735      "loc":  "",
1736      "mat": "",
1737      "sus": ""
1738    });
1739    prods.push({
1740      "id":'PD-001023N5S7',
1741      "dir": "Design",
1742      "pub":"DOT",
1743      "nm":`Expandable Aluminum Frame Barrier`,
1744      "cat":"Barrier",
1745      "sub":"",
1746      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=840458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729470203150",
1747      "desc":`- Prefabricated, modular aluminum frame - provides rigid crash resistant for collapsible water containers - Each Barrier Module is made of two welded parts sliding into Each other for easier storage - Marine Grade Plywood cladding and sheating - Barrier modules are bolted to Each other to increase crash resistance - rigid angled corner modules provide additional protection - Seamlessly connects with the flooring system - provides anchoring to the canopy structure`,
1748      "stype": "Roadway Cafe, ",
1749      "mwbe":"",
1750      "loc":  "",
1751      "mat": "",
1752      "sus": ""
1753    });
1754    prods.push({
1755      "id":'PD-001026H7P0',
1756      "dir": "Product",
1757      "pub":"DOT",
1758      "nm":`Ceiling Fan - Hunter Cassius`,
1759      "cat":"Electrical",
1760      "sub":"Cooling",
1761      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d60e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729493007894",
1762      "desc":`Hunter Cassius Fan  -Damp-rated ceiling fans are a great option for covered patios, screened porches, and other areas that are not directly exposed to rain, snow, water, or moisture -No light kit or bulbs included -Pull chains included`,
1763      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1764      "mwbe":"",
1765      "loc":  "",
1766      "mat": "",
1767      "sus": ""
1768    });
1769    prods.push({
1770      "id":'PD-001028F9P9',
1771      "dir": "Design",
1772      "pub":"DOT",
1773      "nm":`Metal Post and Rigid Panel System`,
1774      "cat":"Overhead Covering",
1775      "sub":"Rigid Panel Systems",
1776      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=880458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729482382876",
1777      "desc":`- Aluminum framing - Supporting structure bolted to barrier units  - Lightweight aluminum framed rigid polycarbonate boards covering for easy assembly / disassembly and storage`,
1778      "stype": "Roadway Cafe, ",
1779      "mwbe":"",
1780      "loc":  "",
1781      "mat": "",
1782      "sus": ""
1783    });
1784    prods.push({
1785      "id":'PD-001004K8C9',
1786      "dir": "Design",
1787      "pub":"DOT",
1788      "nm":`Plywood Clad Water filled Barrier`,
1789      "cat":"Barrier",
1790      "sub":"Water Filled Barrier",
1791      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=bb0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729514265936",
1792      "desc":`-Off the shelf water barrier product - Marine grade plywood cladding - Includes large planter - Aluminum framed leveling saddles connects to floor units for added stability`,
1793      "stype": "Roadway Cafe, ",
1794      "mwbe":"",
1795      "loc":  "",
1796      "mat": "",
1797      "sus": ""
1798    });
1799    prods.push({
1800      "id":'PD-001010P3K2',
1801      "dir": "Design",
1802      "pub":"DOT",
1803      "nm":`Metal Floor Structure with Plywood Flooring Sheets`,
1804      "cat":"Floor",
1805      "sub":"Flooring Panels",
1806      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=770458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729521601787",
1807      "desc":`-Aluminum Frame with Marine Grade Plywood panels hinged for easy access and cleaning -Floor structure is bolted to the barrier&#39;s leveling saddles`,
1808      "stype": "Roadway Cafe, ",
1809      "mwbe":"",
1810      "loc":  "",
1811      "mat": "",
1812      "sus": ""
1813    });
1814    prods.push({
1815      "id":'PD-001010P3K2',
1816      "dir": "Design",
1817      "pub":"DOT",
1818      "nm":`Metal Floor Structure with Plywood Flooring Sheets`,
1819      "cat":"Floor",
1820      "sub":"Framed Support",
1821      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=770458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729521601787",
1822      "desc":`-Aluminum Frame with Marine Grade Plywood panels hinged for easy access and cleaning -Floor structure is bolted to the barrier&#39;s leveling saddles`,
1823      "stype": "Roadway Cafe, ",
1824      "mwbe":"",
1825      "loc":  "",
1826      "mat": "",
1827      "sus": ""
1828    });
1829    prods.push({
1830      "id":'PD-001018D6W9',
1831      "dir": "Design",
1832      "pub":"DOT",
1833      "nm":`Vestibule Fabric Panels System`,
1834      "cat":"Overhead Covering",
1835      "sub":"Awning System",
1836      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=ce0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729527070580",
1837      "desc":`-Aluminum posts are fastened and plumb to the floor structure -canopy and screenings are made of lightweight vestibule fabric panels`,
1838      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1839      "mwbe":"",
1840      "loc":  "",
1841      "mat": "",
1842      "sus": ""
1843    });
1844    prods.push({
1845      "id":'PD-001020M6H5',
1846      "dir": "Product",
1847      "pub":"DOT",
1848      "nm":`Water-filled Plastic Jersey Barrier`,
1849      "cat":"Barrier",
1850      "sub":"Water Filled Barrier",
1851      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=800458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729546445637",
1852      "desc":`- Available in multiple colors - These barriers can interlock with each other. - UV-Resistant Polyethylene`,
1853      "stype": "Roadway Cafe, ",
1854      "mwbe":"",
1855      "loc":  "",
1856      "mat": "",
1857      "sus": ""
1858    });
1859    prods.push({
1860      "id":'PD-001021C7V2',
1861      "dir": "Product",
1862      "pub":"DOT",
1863      "nm":`Generator - Jackery Solar`,
1864      "cat":"Electrical",
1865      "sub":"Solar Power",
1866      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=810458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729533476804",
1867      "desc":`Jackery Solar Generator 3000 Pro  -Large Capacity: 3024Wh that can power up to 99% of outdoor appliances -Ultra Fast Charging: Fully solar charged in 3-4 hours and wall charged in 2.4 hours -Easily Accessible: Smart App Control -Cold Friendly: Functional in temperatures up to -20&#176;C /-4&#176;F -Silent: Unique quiet canyon cooling system -All-around Safety: Fully upgraded BMS`,
1868      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1869      "mwbe":"",
1870      "loc":  "",
1871      "mat": "",
1872      "sus": ""
1873    });
1874    prods.push({
1875      "id":'PD-001021C7V2',
1876      "dir": "Product",
1877      "pub":"DOT",
1878      "nm":`Generator - Jackery Solar`,
1879      "cat":"Electrical",
1880      "sub":"Battery Power",
1881      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=810458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729533476804",
1882      "desc":`Jackery Solar Generator 3000 Pro  -Large Capacity: 3024Wh that can power up to 99% of outdoor appliances -Ultra Fast Charging: Fully solar charged in 3-4 hours and wall charged in 2.4 hours -Easily Accessible: Smart App Control -Cold Friendly: Functional in temperatures up to -20&#176;C /-4&#176;F -Silent: Unique quiet canyon cooling system -All-around Safety: Fully upgraded BMS`,
1883      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1884      "mwbe":"",
1885      "loc":  "",
1886      "mat": "",
1887      "sus": ""
1888    });
1889    prods.push({
1890      "id":'PD-001022X3K4',
1891      "dir": "Product",
1892      "pub":"DOT",
1893      "nm":`Solar Panel - Jackery Solar`,
1894      "cat":"Electrical",
1895      "sub":"Battery Power",
1896      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d00e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729530351803",
1897      "desc":`Jackery SolarSaga 200W Solar Panel -IP68 Waterproof Rating -Convenient Carrying -Built to Last`,
1898      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1899      "mwbe":"",
1900      "loc":  "",
1901      "mat": "",
1902      "sus": ""
1903    });
1904    prods.push({
1905      "id":'PD-001022X3K4',
1906      "dir": "Product",
1907      "pub":"DOT",
1908      "nm":`Solar Panel - Jackery Solar`,
1909      "cat":"Electrical",
1910      "sub":"Solar Power",
1911      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d00e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729530351803",
1912      "desc":`Jackery SolarSaga 200W Solar Panel -IP68 Waterproof Rating -Convenient Carrying -Built to Last`,
1913      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1914      "mwbe":"",
1915      "loc":  "",
1916      "mat": "",
1917      "sus": ""
1918    });
1919    prods.push({
1920      "id":'PD-001027G1W3',
1921      "dir": "Product",
1922      "pub":"DOT",
1923      "nm":`Outdoor Pendant - Bover Elipse`,
1924      "cat":"Electrical",
1925      "sub":"Pendants",
1926      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=860458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729536601842",
1927      "desc":`-Globe shade is UV protected and the wire has a waterproof neoprene coating -Material: Brass, Iron -Shade Material: Polyethylene -Dimmer Not Included -Dimmer Type: ELV or TRIAC or 0-10V -Installation Type: Hardwired -Location Rating: ETL Listed Wet`,
1928      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1929      "mwbe":"",
1930      "loc":  "",
1931      "mat": "",
1932      "sus": "Recyclable, "
1933    });
1934    prods.push({
1935      "id":'PD-001027G1W3',
1936      "dir": "Product",
1937      "pub":"DOT",
1938      "nm":`Outdoor Pendant - Bover Elipse`,
1939      "cat":"Electrical",
1940      "sub":"Hardwired",
1941      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=860458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729536601842",
1942      "desc":`-Globe shade is UV protected and the wire has a waterproof neoprene coating -Material: Brass, Iron -Shade Material: Polyethylene -Dimmer Not Included -Dimmer Type: ELV or TRIAC or 0-10V -Installation Type: Hardwired -Location Rating: ETL Listed Wet`,
1943      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1944      "mwbe":"",
1945      "loc":  "",
1946      "mat": "",
1947      "sus": "Recyclable, "
1948    });
1949    prods.push({
1950      "id":'PD-001032J8G0',
1951      "dir": "Product",
1952      "pub":"DOT",
1953      "nm":`LED Table Lamp - Pablo Candel`,
1954      "cat":"Electrical",
1955      "sub":"Table Lights",
1956      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=dc0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729540047374",
1957      "desc":`-Fully rechargeable portable LED light designed for both indoors and outdoors -Features a robust PMMA body in Clear, Bronze, and Smoke tint combined with a striking anodized aluminum light module that offers capacitive touch light control to provide up to 4 light levels to set the perfect ambiance -Battery life ranges from 10 to 150 hours depending on light intensity`,
1958      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1959      "mwbe":"",
1960      "loc":  "",
1961      "mat": "",
1962      "sus": "Recyclable, "
1963    });
1964    prods.push({
1965      "id":'PD-001032J8G0',
1966      "dir": "Product",
1967      "pub":"DOT",
1968      "nm":`LED Table Lamp - Pablo Candel`,
1969      "cat":"Electrical",
1970      "sub":"Battery Power",
1971      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=dc0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729540047374",
1972      "desc":`-Fully rechargeable portable LED light designed for both indoors and outdoors -Features a robust PMMA body in Clear, Bronze, and Smoke tint combined with a striking anodized aluminum light module that offers capacitive touch light control to provide up to 4 light levels to set the perfect ambiance -Battery life ranges from 10 to 150 hours depending on light intensity`,
1973      "stype": "Sidewalk Cafe, Roadway Cafe, ",
1974      "mwbe":"",
1975      "loc":  "",
1976      "mat": "",
1977      "sus": "Recyclable, "
1978    });
1979    prods.push({
1980      "id":'PD-001011G9F5',
1981      "dir": "Design",
1982      "pub":"DOT",
1983      "nm":`Integrated Barrier`,
1984      "cat":"Barrier",
1985      "sub":"Alternative Compliance",
1986      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=790458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729554266201",
1987      "desc":`- Vertical Steel stanchions bolted to Telestrut flooring system -RPL sheathing and cladding -Custom bench and planters supported by barrier stanchions.`,
1988      "stype": "Roadway Cafe, ",
1989      "mwbe":"",
1990      "loc":  "",
1991      "mat": "",
1992      "sus": ""
1993    });
1994    prods.push({
1995      "id":'PD-001024N3C7',
1996      "dir": "Product",
1997      "pub":"DOT",
1998      "nm":`Wall Mount Lighting Fixture - Tegan Exton Solo`,
1999      "cat":"Electrical",
2000      "sub":"Linear Lights",
2001      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d20e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729575516345",
2002      "desc":`-24” height with luminous end caps - the perfect companion to solo powerspan cable systems -185 lpf, 2700k led with 0-10v dimming -remote power supply: ip20, ip24, ip65 or ip68 direct burial`,
2003      "stype": "Sidewalk Cafe, Roadway Cafe, ",
2004      "mwbe":"",
2005      "loc":  "",
2006      "mat": "",
2007      "sus": ""
2008    });
2009    prods.push({
2010      "id":'PD-001024N3C7',
2011      "dir": "Product",
2012      "pub":"DOT",
2013      "nm":`Wall Mount Lighting Fixture - Tegan Exton Solo`,
2014      "cat":"Electrical",
2015      "sub":"Hardwired",
2016      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d20e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729575516345",
2017      "desc":`-24” height with luminous end caps - the perfect companion to solo powerspan cable systems -185 lpf, 2700k led with 0-10v dimming -remote power supply: ip20, ip24, ip65 or ip68 direct burial`,
2018      "stype": "Sidewalk Cafe, Roadway Cafe, ",
2019      "mwbe":"",
2020      "loc":  "",
2021      "mat": "",
2022      "sus": ""
2023    });
2024    prods.push({
2025      "id":'PD-001025S1N1',
2026      "dir": "Product",
2027      "pub":"DOT",
2028      "nm":`Outdoor Lamp - Interlux Glim`,
2029      "cat":"Electrical",
2030      "sub":"Table Lights",
2031      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d40e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729578485166",
2032      "desc":`-Battery-powered table luminaire -Modular Magnetic Base -Acrylic head`,
2033      "stype": "Sidewalk Cafe, Roadway Cafe, ",
2034      "mwbe":"",
2035      "loc":  "",
2036      "mat": "",
2037      "sus": ""
2038    });
2039    prods.push({
2040      "id":'PD-001025S1N1',
2041      "dir": "Product",
2042      "pub":"DOT",
2043      "nm":`Outdoor Lamp - Interlux Glim`,
2044      "cat":"Electrical",
2045      "sub":"Battery Power",
2046      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d40e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729578485166",
2047      "desc":`-Battery-powered table luminaire -Modular Magnetic Base -Acrylic head`,
2048      "stype": "Sidewalk Cafe, Roadway Cafe, ",
2049      "mwbe":"",
2050      "loc":  "",
2051      "mat": "",
2052      "sus": ""
2053    });
2054    prods.push({
2055      "id":'PD-001030Z8R6',
2056      "dir": "Design",
2057      "pub":"DOT",
2058      "nm":`Retractable Fabric Canopy`,
2059      "cat":"Overhead Covering",
2060      "sub":"Fabric Canopy",
2061      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d90e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729569414476",
2062      "desc":`- Off the shelves retractable fabric canopy system - Large array of fabric options - Aluminum Framing structure -Retractable and easy to remove`,
2063      "stype": "Sidewalk Cafe, Roadway Cafe, ",
2064      "mwbe":"",
2065      "loc":  "",
2066      "mat": "",
2067      "sus": ""
2068    });
2069    prods.push({
2070      "id":'PD-001031N8W3',
2071      "dir": "Product",
2072      "pub":"DOT",
2073      "nm":`Battery - Renology 12V 100Ah Smart Lithium Iron Phosphate`,
2074      "cat":"Electrical",
2075      "sub":"Battery Power",
2076      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8b0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729581297806",
2077      "desc":`Renology 12V 100Ah Smart Lithium Iron Phosphate  -Premium battery cells that last over 4000 cycles -The next-level Group 27 battery for a seamless upgrade -A reliable BMS system with dual-processors -Auto-balancing for improved charging efficiency -Works with the BT-2 Bluetooth module for real-time monitoring`,
2078      "stype": "Sidewalk Cafe, Roadway Cafe, ",
2079      "mwbe":"",
2080      "loc":  "",
2081      "mat": "",
2082      "sus": ""
2083    });
2084    prods.push({
2085      "id":'PD-001033H1H7',
2086      "dir": "Product",
2087      "pub":"DOT",
2088      "nm":`Telestrut Floor System with RPL Flooring Panels`,
2089      "cat":"Floor",
2090      "sub":"Flooring Panels",
2091      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8d0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729558953760",
2092      "desc":`- Off the shelf substructure system (standard 1-5/8  Unistrut fittings) - Modular structure, very amenable to leveling. - Advisable in steep slopes - RPL flooring, assembled 
2092in boards, easy to remove for cleaning. - Boards cam locked in place`,
2093      "stype": "Roadway Cafe, ",
2094      "mwbe":"",
2095      "loc":  "",
2096      "mat": "",
2097      "sus": ""
2098    });
2099    prods.push({
2100      "id":'PD-001033H1H7',
2101      "dir": "Product",
2102      "pub":"DOT",
2103      "nm":`Telestrut Floor System with RPL Flooring Panels`,
2104      "cat":"Floor",
2105      "sub":"Modular Framing",
2106      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8d0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729558953760",
2107      "desc":`- Off the shelf substructure system (standard 1-5/8  Unistrut fittings) - Modular structure, very amenable to leveling. - Advisable in steep slopes - RPL flooring, assembled in boards, easy to remove for cleaning. - Boards cam locked in place`,
2108      "stype": "Roadway Cafe, ",
2109      "mwbe":"",
2110      "loc":  "",
2111      "mat": "",
2112      "sus": ""
2113    });
2114    prods.push({
2115      "id":'PD-001034Y9T3',
2116      "dir": "Product",
2117      "pub":"DOT",
2118      "nm":`Table - Wren 28  Bistro`,
2119      "cat":"Furnishing",
2120      "sub":"Tables",
2121      "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8f0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729572539433",
2122      "desc":`-Metal base and top -Powder-coated finish -Indoor/outdoor use`,
2123      "stype": "Sidewalk Cafe, Roadway Cafe, ",
2124      "mwbe":"",
2125      "loc":  "",
2126      "mat": "",
2127      "sus": ""
2128    });
2129</script>
2129
2130
2131<style>
2132    .pscls{background-color:#fff!important;border:1px #dfdfdf solid!important;margin:5px 6px 6px 6px;padding:6px;width:100%;}
2133    .pscat{font-size:0.9em!important;font-style:italic;font-weight:bold;} 
2134    .pcls{background-color:#fff!important;border:1px solid #aaaaaa!important;
2135        border-radius:5px!important;max-height:250px;height:250px;max-width:320px!important;width:320px!important;box-shadow:1px 1px 1px #aaaaaa!important;
2136        margin:12px 8px 12px 8px!important;
2137        padding:5px!important;vertical-align: text-top;
2138    }
2139    .pcls:hover{background-color:#f0f0f0!important;cursor:pointer;}
2140    .prcnt{font-size:0.9em;font-style:italic;margin-left:10px;}
2141    .ptxt{padding:2px;font-size:0.9em;text-align:left;}
2142    .stxt{max-width:300px!important;}
2143    .pimgcls{height:240px;text-align:center;background-repeat:no-repeat center center fixed;background-size:cover;}
2144    .pimgcls img{height:108px;border-radius:5px 5px 0px 0px!important;}
2145    .pbc{padding-left:10px;font-size:0.8em!important;font-style:italic;text-align:left;}
2146    .ptit{height:60px!important;max-height:60px!important;font-weight:600!important;}  
2147    .svcinfo{font-size:0.8em!important;font-style:italic;text-align:left;}
2148    .svcinfo td:nth-child(odd){font-size:0.9em!important;font-style:italic;text-align:right;font-weight:bold;}
2149    .svcinfo td{padding-left:5px;}
2150    .do-lnk{text-decoration:underline!important;cursor:pointer!important;color:blue;font-size:1.3em;font-weight:700;}
2151    
2152    .sbar{border-bottom:1px solid #c0c0c0;background-color:#fff;}
2153    .dcard1{max-width:18rem!important;width:18rem!important;}
2154    .dcard1:hover{background-color:#f0f0f0!important;cursor:pointer;}
2155
2156    .dcard{width:20rem!important;}
2157    .dcard:hover{background-color:#f0f0f0!important;cursor:pointer;}
2158    /*.dcard img{height:16rem!important;}       */
2159    /* ribbon message RT 03/04/2024 */
2160    .itm{position: absolute;  right:-0px; top: -0px;z-index:1;overflow:hidden;  
2161        width:75px; height:70px;text-align:right;}
2162    .itm span {font-size:11px;font-weight:500;color:#FFF;text-transform:uppercase;
2163        text-align:center;line-height:20px;transform: 
2164        rotate(45deg);-webkit-transform: rotate(45deg);
2165        width:100px;display:block;background: #79A70A;box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1);  
2166        position:absolute;top:19px;right:-21px;}
2167    .itm span.s{background: linear-gradient(#9BC90D 0%, #79A70A 100%);}
2168    .itm span.p{background: linear-gradient(#002299 0%, #0000ff 100%);}
2169    .itm span.d{background: linear-gradient(#FFCC43 0%, #FF4040 100%);}
2170    .itm span.s::before {position:absolute; left: 0px; top: 100%;  z-index: -1;  border-left: 3px solid #79A70A;  border-right: 3px solid transparent;  border-bottom: 3px solid transparent;  border-top: 3px solid #79A70A;}
2171    .itm span.s::after {position:absolute; right: 0px; top: 100%;  z-index: -1;  border-left: 3px solid transparent;  border-right: 3px solid #79A70A;  border-bottom: 3px solid transparent;  border-top: 3px solid #79A70A;}
2172    .itm span.p::before {position:absolute; left: 0px; top: 100%;  z-index: -1;  border-left: 3px solid #79A70A;  border-right: 3px solid transparent;  border-bottom: 3px solid transparent;  border-top: 3px solid #0000ff;}
2173    .itm span.p::after {position:absolute; right: 0px; top: 100%;  z-index: -1;  border-left: 3px solid transparent;  border-right: 3px solid #79A70A;  border-bottom: 3px solid transparent;  border-top: 3px solid #0000ff;}
2174    .itm span.d::before {position:absolute; left: 0px; top: 100%;  z-index: -1;  border-left: 3px solid #79A70A;  border-right: 3px solid transparent;  border-bottom: 3px solid transparent;  border-top: 3px solid #FF4040;}
2175    .itm span.d::after {position:absolute; right: 0px; top: 100%;  z-index: -1;  border-left: 3px solid transparent;  border-right: 3px solid #79A70A;  border-bottom: 3px solid transparent;  border-top: 3px solid #FF4040;}
2176    body{overflow-y:auto!important;} 
2177    .fslide{transition: all 5s ease-in-out!important;}
2178    .sm-rib{margin:0.2em 0 0 0.2em;background-color: #FFD72A;color:#000;position:absolute;width:5.4em;height:1.2em;border-radius:1em;}
2179    .sm-rib > .txt{position:absolute;margin:0 0 0.5em 0.2em;font-size:.8em;font-weight:600;}      
2180    .fpanel{vertical-align:top;background-color:#fff!important;
2180width:200px!important;
2181     /* overflow-y:auto;height:99vh;  */
2182    }    
2183    .visible-lg-block{display:block!important;}        
2184    @media only screen and (max-width: 767px) {
2185    .fpanel{width:90vw!important;position:absolute!important;z-index:9999;
2186        top:0!important;left:0!important;display:none!important;
2187        overflow-y:auto!important;min-height:100vh;
2188    }
2189</style>
2190
2191<script>
2192  <!-- filter tab --> 
2193    function chkCat(el){
2194        const srcid = el.id;
2195        if (srcid.indexOf('_')==-1){return;}
2196        const scat = srcid.split('_')[1];
2197        const el2 = document.getElementById('chk_'+scat);
2198        const fltrInp = document.querySelectorAll("div#exp_" + scat + " input[type='checkbox']");
2199        if (fltrInp!=undefined && fltrInp!=null){
2200            fltrInp.forEach(e => {e.checked = el2.checked;});
2201        }
2202    } 
2203
2204    function chkSubCat(el){
2205        const srcid = el.parentElement.parentElement.parentElement.id;
2206        if (srcid.indexOf('_')==-1){return;}
2207        const scat = srcid.split('_')[1];
2208        const pel = document.getElementById('chk_'+scat);
2209        const fltrInp = document.querySelectorAll("div#exp_" + scat + " input[type='checkbox']");
2210        if (fltrInp!=undefined && fltrInp!=null && fltrInp.length>0){
2211            let chkcnt = 0;
2212            fltrInp.forEach(e => { if (e.checked) {chkcnt++;}});
2213            if (chkcnt==0){
2214                pel.indeterminate = false;
2215                pel.checked = false;
2216            }else{
2217                if (chkcnt==fltrInp.length){
2218                    pel.indeterminate = false;
2219                    pel.checked = true;
2220                }else{
2221                    pel.indeterminate = true;
2222                }
2223            }
2224        }
2225    }
2226
2227    function showSubCat(el){
2228        const srcid = el.id;
2229        if (srcid.indexOf('_')==-1){return;}
2230        const scat = el.id.split('_')[1];
2231        const ele = document.getElementById('exp_'+scat);
2232        const ele2 = document.getElementById('lbl_'+scat);
2233        const dispscat = ele.style.display;
2234         
2235        if (dispscat != "block"){
2236        ele.style.display = "block";
2237        ele2.innerHTML = "<i class='bi bi-chevron-up'></i>";
2238        }else{
2239        ele.style.display = "none";
2240        ele2.innerHTML = "<i class='bi bi-chevron-down'></i>";
2241        }
2242    }
2243
2244    function toggleSec(el){
2245        let imgNd = el.childNodes[0];
2246        if (el.nextElementSibling.style.display=='none'){
2247            el.nextElementSibling.style.display='block';        
2248            if (imgNd!=null){
2249                imgNd.className = "bi bi-caret-up-fill";
2250            }
2251        }else{
2252            el.nextElementSibling.style.display='none';
2253            if (imgNd!=null){
2254                imgNd.className = "bi bi-caret-down-fill";
2255            }
2256        }
2257    }
2258
2259    function clearFilter(){
2260        const chkInp = document.querySelectorAll("input.form-check-input:checked");
2261        for(let i=0;i<chkInp.length;i++){
2262            chkInp[i].checked = false;
2263        }
2264        document.cookie="fl=; path=/; Secure";
2265        showAll();
2266    } 
2267 
2268function chkFilters(flg){
2269		let _sel = "";
2270		let chkLst = [];
2271		let _flval = "", _dis="";
2272		if (flg!=undefined && flg=="load")
2273		{
2274			if (document.cookie!=undefined && document.cookie!=null){
2275				let ck = decodeURIComponent(document.cookie);
2276				const cks=ck.split(";");
2277				for (let i=0; i<cks.length; i++)
2278				{
2279					let cnm=cks[i].substr(0,cks[i].indexOf("="));
2280					let cv=cks[i].substr(cks[i].indexOf("=")+1);
2281					cnm=cnm.trim();
2282					if (cnm=="fl"){ 
2283						_flval = cv;
2284					}
2285					if (cnm=="view_discl"){ 
2286						_dis = cv;
2287					}
2288				}
2289			}
2290			if (_dis!="Y"){
2291				/* clear filter if coming from home Ranga 03/25/24 */
2292				_flval = "";
2293			}
2294			chkLst = document.querySelectorAll("input.form-check-input");
2295			/*firefox does not retain checkbox settings for some reason, fix by RT 03/25/24 */            
2296			for(let i=0;i<chkLst.length;i++){                
2297				if (chkLst[i].value!=null && chkLst[i].value.length>0){
2298                    let fv = chkLst[i].value+"|";
2299					if (_flval.indexOf(fv)>-1){
2300						chkLst[i].checked = true;                    
2301					}
2302				}
2303			}
2304		}else{
2305			chkLst = document.querySelectorAll("input.form-check-input:checked");
2306			for(let i=0;i<chkLst.length;i++){
2307				if (chkLst[i].value!=""){
2308					_sel += chkLst[i].value + "|";
2309				}
2310			}
2311			let d1=new Date();
2312			d1.setDate(d1.getDate() + 1);
2313			document.cookie="fl=" + escape(_sel) + "; path=/; expires="+d1.toUTCString() + "; Secure";
2314		}
2315		return chkLst;
2316	}
2317
2318
2319    function applyFilters(fltr){
2320     /* Author: Ranga 02/22/2024, created just before demo */
2321        //const dir_sel = document.getElementById("ddDirectory").value.toLowerCase();
2322        const filters = {};
2323        fltrRows = [];
2324        filtermsg = "";
2325        if (search_txt.trim().length==0){
2326            fltrRows = prods.filter((v,i,a)=>{return true;});
2327        }else{
2328            search_txt = search_txt.toLowerCase(); 
2329            fltrRows = prods.filter((v,i,a)=>{
2330                return ((v["nm"].toLowerCase().indexOf(search_txt)>-1) || 
2331                (v["desc"].toLowerCase().indexOf(search_txt)>-1) ||
2332                (v["dir"].toLowerCase().indexOf(search_txt)>-1)
2333            );
2334          });
2335        }
2336
2337        let issvc = false, isprd = false, isboth=false;
2338        isprd = (document.getElementById("dir_products").checked || document.getElementById("dir_designs").checked);
2339        issvc = document.getElementById("dir_services").checked;
2340        if (isprd && issvc){
2341            isboth = true;
2342        }else{
2343            if ((!isprd) && (!issvc)){
2344            issvc = true; isprd = true; isboth = true;
2345            }
2346        }
2347        
2348        document.getElementById("service_fltr").style.display = issvc?"block":"none";
2349        document.getElementById("prod_fltr").style.display = isprd?"block":"none";
2350        document.getElementById("mwbe_fltr").style.display = issvc?"block":"none";
2351
2352        if (fltr=="Y"){
2353            //const chkInp = document.querySelectorAll("input.form-check-input:checked");
2354			const chkInp = chkFilters();
2355            for(let i=0;i<chkInp.length;i++){
2356                if (chkInp[i].value!=""){
2357                    let key = chkInp[i].value.toLowerCase();
2358                    let k = key.split('_');
2359                    if (k[0]=='c'){
2360                        //categories, subcat
2361                        let _cat = k[1];
2362                        let _scat = k[2];
2363                        if (filters['cat']==undefined){filters['cat'] = [];}
2364                        if (filters['sub']==undefined){filters['sub'] = [];}
2365                        if (filters['cat'].indexOf(_cat)==-1){
2366                          filters['cat'].push(_cat);
2367                          filtermsg += getFilterIco('cat', _cat);
2368                        }
2369                        
2370                        filters['sub'].push(_scat);
2371                    }else{
2372                        if (filters[k[0]]==undefined){filters[k[0]] = [];}
2373                        filters[k[0]].push(k[1]);
2374                        filtermsg += getFilterIco(k[0], k[1]);
2375                    }
2376                }
2377            }
2378
2379            let filtrkeys = "dir,stype,mwbe,loc,sub,mat,sus,svctyp,area,lang";
2380            if (!isboth){
2381              if (issvc){
2382                filtrkeys = "dir,stype,mwbe,loc,svctyp,area,lang";
2383              }else{
2384                filtrkeys = "dir,stype,mwbe,loc,sub,mat,sus";
2385              }
2386            }
2387
2388            filtrkeys.split(",").forEach(k =>{
2389                if (filters[k]!=undefined){
2390                    fltrRows = fltrRows.filter((v,i,a)=>{
2391                        let bret = false;
2392                        for(let r=0;r<filters[k].length;r++){
2393                            if (k=='loc' && filters[k][r]=='nyc'){
2394                                bret = (!((v[k].toLowerCase().indexOf("ny state")>-1) || (v[k].toLowerCase().indexOf("outside ny")>-1)));
2395                                //break;
2396                            }
2397
2398                            if (k=='area' && filters[k][r]=='citywide'){ 
2399                                /*if area is Citywide, include all */
2400                                bret = true;
2401                                break;
2402                            }   
2403                            if (k=='stype' && v[k].toLowerCase().indexOf("both")>-1){
2404                                /*if setuptype is both, ignore filter sel*/
2405                                bret = true;
2406                                break;
2407                            }              
2408                            if (k=='mat'){
2409                                if (v['desc']!=undefined && v['desc'].toLowerCase().indexOf(filters[k][r])>-1){
2410                                    bret = true;
2411                                    break;
2412                                }
2413                                if (v['pn']!=undefined && v['pn'].toLowerCase().indexOf(filters[k][r])>-1){
2414                                    bret = true;
2415                                    break;
2416                                }
2417                            }
2418                            if (k=='svctyp'){
2419                                if (v['desc']!=undefined && v['desc'].toLowerCase().indexOf(filters[k][r])>-1){
2420                                    bret = true;
2421                                    break;
2422                                }
2423                            }
2424							
2425							if (k=='loc'){
2426								if (v[k]!=undefined && v[k].toLowerCase().indexOf(filters[k][r])==0){
2427									bret = true;
2428									break;
2429								}
2430							}else{ 
2431								if (v[k]!=undefined && v[k].toLowerCase().indexOf(filters[k][r])>-1){
2432									bret = true;
2433									break;
2434								}
2435							}
2436                        }
2437                        return bret;
2438                    });
2439                }
2440            });
2441        }
2442        showResults();
2443    }
2444
2445    function getFilterIco(c, k){
2446      return '<span class="badge rounded-pill bg-secondary m-1">' + k + '</span>';
2447    }
2448
2449    function showAll(){
2450        applyFilters('N');
2451    }
2452
2453    function showResults(){
2454        let chtml = "", all="", filterlist="";
2455        let filtr_cnt = 0;
2456        let resrows = {};
2457        let s_tmpl = document.getElementById("service_tmpl").innerHTML;        
2458        let p_tmpl = document.getElementById("prod_tmpl").innerHTML;
2459
2460        fltrRows.forEach(el=>{
2461            if (resrows[el.id]==undefined){
2462                filtr_cnt++;                    
2463                resrows[el.id] = el.id;
2464                filterlist += getRowCard(el, s_tmpl, p_tmpl);
2465            }
2466        });
2467        let row_cnt = "";
2468        if (fltrRows!=null)
2469        { 
2470            switch(filtr_cnt){
2471                case 0:
2472                    row_cnt = "No data found!";
2473                break;
2474                case 1:
2475                    row_cnt = "Found " + filtr_cnt + " result";
2476                break;
2477                default:
2478                    row_cnt = "Found " + filtr_cnt + " results";
2479                break;
2480            }
2481        }
2482        document.getElementById("prcnt").innerHTML = row_cnt;            
2483        document.getElementById("fprcnt").innerHTML = row_cnt;
2484        if (filtermsg.length>0){
2485          document.getElementById("filterstr").innerHTML = '<i class="bi bi-funnel-fill bi-lg py-2 p-1"></i> ' + filtermsg;
2486        }else{
2487          document.getElementById("filterstr").innerHTML = filtermsg;
2488        }
2489        
2490        
2491        //row_cnt = "<div class='prcnt'>" + row_cnt + "</div>";
2492        document.getElementById("filter_results").innerHTML = filterlist;            
2493    }
2494
2495    function getRowCard(el, s_tmpl, p_tmpl){
2496        let tmpl = '';
2497        if (el.dir.indexOf('Service')>-1){
2498            tmpl = s_tmpl.replace("[s_id]", el.id);
2499            tmpl = tmpl.replace("[desc]", el.desc.substring(0,150) +'...');     
2500            tmpl = tmpl.replaceAll("[name]", el.nm);     
2501            tmpl = tmpl.replace("[cont]", el.cont);     
2502            /*tmpl = tmpl.replace("[svctyp]", el.svctyp.replaceAll(',', ' '));  */
2503            tmpl = tmpl.replace("[svctyp]", el.svctyp.substring(0, el.svctyp.lastIndexOf(',')));  
2504            tmpl = tmpl.replace("[lang]", el.lang);  
2505            tmpl = tmpl.replace("[mwbe]", el.mwbe);  
2506            tmpl = tmpl.replace("[loc]", el.loc);  
2507            tmpl = tmpl.replace("[area]", el.area);  
2508            if ((el.img!=undefined && el.img!=null) && el.img.length>0){
2509                tmpl = tmpl.replace('src=""', 'src="'+el.img+'"');
2510            }else{ 
2511                tmpl = tmpl.replace('src=""', 'src="'+svc_def_img+'"');
2512            }
2513        }else{
2514            tmpl = p_tmpl.replaceAll("[p_id]", el.id);
2515
2516            if ((el.img!=undefined && el.img!=null) && el.img.length>0){
2517              tmpl = tmpl.replace('src=""', 'src="'+el.img+'"');
2518            }else{ 
2519                tmpl = tmpl.replace('src=""', 'src="'+def_img+'"');
2520            }
2521
2522            if (el.pub=="DOT"){
2523              tmpl = tmpl.replaceAll("[smc]", "sm-rib");      
2524              tmpl = tmpl.replaceAll("[sm]", "SETUP MENU");      
2525            }else{
2526              tmpl = tmpl.replaceAll("[smc]", "");      
2527              tmpl = tmpl.replaceAll("[sm]", "");      
2528            }
2529
2530            tmpl = tmpl.replaceAll("[name]", el.nm);      
2531            tmpl = tmpl.replace("[dir]", el.dir);     
2532            tmpl = tmpl.replace("[p]", el.dir.substring(0,1).toLowerCase());     
2533            tmpl = tmpl.replace("[s_t]", el.stype);     
2534            tmpl = tmpl.replace("[desc]", (el.desc+"").substring(0,150) +'...');  
2535            tmpl = tmpl.replace("[mwbe]", el.mwbe);  
2536            tmpl = tmpl.replace("[loc]", el.loc);  
2537        }
2538        return tmpl;
2539    }
2540
2541<!-- filter ends -->  
2542
2543</script>
2543
2544
2545<div id="filterSecPanel" class="fpanelx">
2546  <div style="display:flex;flex-flow:column;flex-wrap:nowrap;">
2547   <div class="sq sq_hdr mt-1"><span>DIRECTORY FILTER</span></div>
2548   <div class="card sq sq2" style="padding:0px;">
2549    <div class="text-center">
2550        <a href="#" class="do-lnk2" onclick="openCloseDisclaimer('OPEN')">Read Important information</a><br> 
2551         <!--to use the directory-->
2552    </div>            
2553    <div class="m-2 prcnt visible-xs-block">
2554     <div id="fprcnt"></div>
2555    </div>
2556     <div class="p-2">
2557              <span class="do-smtxt visible-xs">FILTERS</span><br>
2558              <div class="visible-xs-block" style="width:100%">
2559                   <table width="100%" cellpaddin='5'>
2560                   <tr>
2561                   <td width="50%"><button class="me-3 btn btn-sm btn-primary" style="width:90%;font-weight:normal;" onclick="clearFilter()" >CLEAR</button></td>
2562                   <td><button class="btn btn-sm btn-outline-primary" style="width:90%;font-weight:normal;" onclick="showFilters()">CLOSE</button></td>
2563                   </tr>
2564                   </table>
2565
2566                  <!-- <button class="m-1 btn btn-sm btn-secondary btn-do" onclick="applyFilters('Y')">APPLY</button> -->                                    
2567              </div>
2568              <div class="hidden-xs" style="width:100%">
2569                  <button class="me-3 btn btn-sm btn-outline-primary" style="width:90%;font-weight:normal;" onclick="clearFilter()" >CLEAR FILTERS</button>
2570              </div>
2571      </div>
2572      </div>
2573	
2574       <div class="card sq sq1 sq2">
2575             <div class="p-2">
2576                <div class="checkbox"><label class="form-check-label" for="dir_products"><input type="checkbox" class="form-check-input" value="dir_product" id="dir_products" autocomplete='off'>Products</label></div>
2577                <div class="checkbox"><label class="form-check-label" for="dir_designs"><input type="checkbox" class="form-check-input" value="dir_design" id="dir_designs" autocomplete='off'>Designs</label></div>
2578                <div class="checkbox"><label class="form-check-label" for="dir_services"><input type="checkbox" class="form-check-input" value="dir_service" id="dir_services" autocomplete='off'>Services</label></div>
2579            </div>
2580       </div>
2581     
2582    <!--Setup Type-->
2583     <div class="card sq sq2">                        
2584         <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Setup Type</div>
2585         <div class="form-group p-2" style="display:none;">
2586             <div class="checkbox"><label class="form-check-label" for="stype1" ><input type="checkbox" class="form-check-input" id="stype1" value="stype_Roadway">Roadway</label></div>
2587             <div class="checkbox"><label class="form-check-label" for="stype2" ><input type="checkbox" class="form-check-input" id="stype2" value="stype_Sidewalk" >Sidewalk</label></div>
2588         </div>
2589     </div>
2590
2591
2592    <div style="width:100%" id="mwbe_fltr">
2593     <!--MWBE Vendor-->
2594     <div class="card sq sq1 sq2">
2595     <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> MWBE Vendor</div>
2596     <div class="p-2" style="display:none;">
2597         <div class="checkbox"><label class="form-check-label" for="mwbe1"><input type="checkbox" id="mwbe1" class="form-check-input" value="mwbe_MWBE">MWBE</label></div>
2598         <div class="checkbox"><label class="form-check-label" for="mwbe2"><input type="checkbox" id="mwbe2" class="form-check-input" value="mwbe_DBE">DBE</label></div>
2599         <div class="checkbox"><label class="form-check-label" for="mwbe3"><input type="checkbox" id="mwbe3" class="form-check-input" value="mwbe_SDVOB">SDVOB</label></div>
2600     </div>
2601     </div>
2602
2603     <!--Company Location-->
2604     <div class="card sq">
2605     <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Company&nbsp;Location</div>
2606     <div class="p-2" style="display:none;">
2607         <div class="checkbox"><label class="form-check-label" for="loc1"><input type="checkbox" id="loc1" class="form-check-input" value="loc_NYC" >NYC</label></div>
2608         <div class="checkbox"><label class="form-check-label" for="loc2"><input type="checkbox" id="loc2" class="form-check-input" value="loc_NY State">NY State</label></div>
2609         <div class="checkbox"><label class="form-check-label" for="loc3"><input type="checkbox" id="loc3" class="form-check-input" value="loc_Outside">Outside NY</label></div>
2610     </div>
2611     </div>
2612    </div>
2613
2614     <div style="width:100%" id="prod_fltr">
2615     <!-- Category -->
2616     <div class="sq sq_hdr">PRODUCTS & DESIGNS</div>
2617     <div class="card sq sq1 sq2">
2618         <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-up-fill"></i> Category</div>
2619         <div class="form-group p-2">
2620			 
2621			
2622			<!-- Barrier -->
2623             <div class="form-check">
2624                 <div class="position-relative l1">
2625							 
2626                     <label class="form-check-label" for="chk_Barrier"><input id="chk_Barrier" type="checkbox" class="form-check-input me-2" value="c_Barrier" onclick="chkCat(this)">Barrier</label>
2627                     <div id="lbl_Barrier" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div>
2628                 </div>
2629             </div>
2630			 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Barrier">
2631			     <!--Barrier types -->
2632				
2633				
2634							 
2635					 <div class="checkbox"><label class="form-check-label" for="cat2"><input id="cat2" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Barrier_Alternative Compliance">Alternative Compliance</label></div>
2636				 
2637				
2638				
2639							 
2640					 <div class="checkbox"><label class="form-check-label" for="cat3"><input id="cat3" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Barrier_Water Filled Barrier">Water Filled Barrier</label></div>
2641				 
2642				
2643				
2644							 
2645					 <div class="checkbox"><label class="form-check-label" for="cat4"><input id="cat4" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Barrier_Sidewalk">Sidewalk</label></div>
2646				 
2647				
2648				
2649							 
2650					 <div class="checkbox"><label class="form-check-label" for="cat5"><input id="cat5" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Barrier_Contain">Contain</label></div>
2651				 
2652				
2653				
2654				
2655				
2656				
2657				
2658				
2659				
2660				
2661				
2662				
2663				
2664				
2665				
2666				
2667				
2668				
2669				
2670				
2671				
2672				
2673				
2674				
2675				
2676				
2677				
2678				
2679				
2680				
2681				
2682				
2683				
2684				
2685				
2686				
2687				
2688				
2689				
2690				
2691				
2692					
2693			 </div>
2694			 <!--Barrier types ends -->
2695			 
2696			
2697			<!-- Electrical -->
2698             <div class="form-check">
2699                 <div class="position-relative l1">
2700							 
2701                     <label class="form-check-label" for="chk_Electrical"><input id="chk_Electrical" type="checkbox" class="form-check-input me-2" value="c_Electrical" onclick="chkCat(this)">Electrical</label>
2702                     <div id="lbl_Electrical" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div>
2703                 </div>
2704             </div>
2705			 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Electrical">
2706			     <!--Electrical types -->
2707				
2708				
2709				
2710				
2711				
2712				
2713				
2714				
2715				
2716				
2717							 
2718					 <div class="checkbox"><label class="form-check-label" for="cat7"><input id="cat7" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Lighting">Lighting</label></div>
2719				 
2720				
2721				
2722							 
2723					 <div class="checkbox"><label class="form-check-label" for="cat8"><input id="cat8" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Table Lights">Table Lights</label></div>
2724				 
2725				
2726				
2727							 
2728					 <div class="checkbox"><label class="form-check-label" for="cat9"><input id="cat9" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Linear Lights">Linear Lights</label></div>
2729				 
2730				
2731				
2732							 
2733					 <div class="checkbox"><label class="form-check-label" for="cat10"><input id="cat10" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Battery Power">Battery Power</label></div>
2734				 
2735				
2736				
2737							 
2738					 <div class="checkbox"><label class="form-check-label" for="cat11"><input id="cat11" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Pendants">Pendants</label></div>
2739				 
2740				
2741				
2742							 
2743					 <div class="checkbox"><label class="form-check-label" for="cat12"><input id="cat12" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Cooling">Cooling</label></div>
2744				 
2745				
2746				
2747							 
2748					 <div class="checkbox"><label class="form-check-label" for="cat13"><input id="cat13" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Hardwired">Hardwired</label></div>
2749				 
2750				
2751				
2752							 
2753					 <div class="checkbox"><label class="form-check-label" for="cat14"><input id="cat14" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Solar Power">Solar Power</label></div>
2754				 
2755				
2756				
2757				
2758				
2759				
2760				
2761				
2762				
2763				
2764				
2765				
2766				
2767				
2768				
2769				
2770				
2771				
2772				
2773				
2774				
2775				
2776				
2777				
2778				
2779					
2780			 </div>
2781			 <!--Electrical types ends -->
2782			 
2783			
2784			<!-- Floor -->
2785             <div class="form-check">
2786                 <div class="position-relative l1">
2787							 
2788                     <label class="form-check-label" for="chk_Floor"><input id="chk_Floor" type="checkbox" class="form-check-input me-2" value="c_Floor" onclick="chkCat(this)">Floor</label>
2789                     <div id="lbl_Floor" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div>
2790                 </div>
2791             </div>
2792			 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Floor">
2793			     <!--Floor types -->
2794				
2795				
2796				
2797				
2798				
2799				
2800				
2801				
2802				
2803				
2804				
2805				
2806				
2807				
2808				
2809				
2810				
2811				
2812				
2813				
2814				
2815				
2816				
2817				
2818				
2819				
2820							 
2821					 <div class="checkbox"><label class="form-check-label" for="cat16"><input id="cat16" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Modular Framing">Modular Framing</label></div>
2822				 
2823				
2824				
2825							 
2826					 <div class="checkbox"><label class="form-check-label" for="cat17"><input id="cat17" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Custom Frame">Custom Frame</label></div>
2827				 
2828				
2829				
2830							 
2831					 <div class="checkbox"><label class="form-check-label" for="cat18"><input id="cat18" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Framed Support">Framed Support</label></div>
2832				 
2833				
2834				
2835							 
2836					 <div class="checkbox"><label class="form-check-label" for="cat19"><input id="cat19" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Flooring Panels">Flooring Panels</label></div>
2837				 
2838				
2839				
2840							 
2841					 <div class="checkbox"><label class="form-check-label" for="cat20"><input id="cat20" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Pedestals">Pedestals</label></div>
2842				 
2843				
2844				
2845				
2846				
2847				
2848				
2849				
2850				
2851				
2852				
2853				
2854				
2855				
2856				
2857					
2858			 </div>
2859			 <!--Floor types ends -->
2860			 
2861			
2862			<!-- Furnishing -->
2863             <div class="form-check">
2864                 <div class="position-relative l1">
2865							 
2866                     <label class="form-check-label" for="chk_Furnishing"><input id="chk_Furnishing" type="checkbox" class="form-check-input me-2" value="c_Furnishing" onclick="chkCat(this)">Furnishing</label>
2867                     <div id="lbl_Furnishing" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div>
2868                 </div>
2869             </div>
2870			 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Furnishing">
2871			     <!--Furnishing types -->
2872				
2873				
2874				
2875				
2876				
2877				
2878				
2879				
2880				
2881				
2882				
2883				
2884				
2885				
2886				
2887				
2888				
2889				
2890				
2891				
2892				
2893				
2894				
2895				
2896				
2897				
2898				
2899				
2900				
2901				
2902				
2903				
2904				
2905				
2906				
2907				
2908							 
2909					 <div class="checkbox"><label class="form-check-label" for="cat22"><input id="cat22" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Furnishing_Tables">Tables</label></div>
2910				 
2911				
2912				
2913							 
2914					 <div class="checkbox"><label class="form-check-label" for="cat23"><input id="cat23" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Furnishing_Chairs">Chairs</label></div>
2915				 
2916				
2917				
2918							 
2919					 <div class="checkbox"><label class="form-check-label" for="cat24"><input id="cat24" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Furnishing_Benches">Benches</label></div>
2920				 
2921				
2922				
2923				
2924				
2925				
2926				
2927				
2928				
2929					
2930			 </div>
2931			 <!--Furnishing types ends -->
2932			 
2933			
2934			<!-- Overhead Covering -->
2935             <div class="form-check">
2936                 <div class="position-relative l1">
2937							 
2938                     <label class="form-check-label" for="chk_Overhead-Covering"><input id="chk_Overhead-Covering" type="checkbox" class="form-check-input me-2" value="c_Overhead-Covering" onclick="chkCat(this)">Overhead Covering</label>
2939                     <div id="lbl_Overhead-Covering" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div>
2940                 </div>
2941             </div>
2942			 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Overhead-Covering">
2943			     <!--Overhead Covering types -->
2944				
2945				
2946				
2947				
2948				
2949				
2950				
2951				
2952				
2953				
2954				
2955				
2956				
2957				
2958				
2959				
2960				
2961				
2962				
2963				
2964				
2965				
2966				
2967				
2968				
2969				
2970				
2971				
2972				
2973				
2974				
2975				
2976				
2977				
2978				
2979				
2980				
2981				
2982				
2983				
2984				
2985				
2986							 
2987					 <div class="checkbox"><label class="form-check-label" for="cat26"><input id="cat26" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Overhead Covering_Rigid Panel Systems">Rigid Panel Systems</label></div>
2988				 
2989				
2990				
2991							 
2992					 <div class="checkbox"><label class="form-check-label" for="cat27"><input id="cat27" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Overhead Covering_Awning System">Awning System</label></div>
2993				 
2994				
2995				
2996							 
2997					 <div class="checkbox"><label class="form-check-label" for="cat28"><input id="cat28" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Overhead Covering_Fabric Canopy">Fabric Canopy</label></div>
2998				 
2999				
3000				
3001					
3002			 </div>
3003			 <!--Overhead Covering types ends -->
3004			 
3005			
3006			<!-- Screening -->
3007             <div class="form-check">
3008                 <div class="position-relative l1">
3009							 
3010                     <label class="form-check-label" for="chk_Screening"><input id="chk_Screening" type="checkbox" class="form-check-input me-2" value="c_Screening" onclick="chkCat(this)">Screening</label>
3011                     <div id="lbl_Screening" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div>
3012                 </div>
3013             </div>
3014			 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Screening">
3015			     <!--Screening types -->
3016				
3017				
3018				
3019				
3020				
3021				
3022				
3023				
3024				
3025				
3026				
3027				
3028				
3029				
3030				
3031				
3032				
3033				
3034				
3035				
3036				
3037				
3038				
3039				
3040				
3041				
3042				
3043				
3044				
3045				
3046				
3047				
3048				
3049				
3050				
3051				
3052				
3053				
3054				
3055				
3056				
3057				
3058				
3059				
3060				
3061				
3062				
3063				
3064							 
3065					 <div class="checkbox"><label class="form-check-label" for="cat30"><input id="cat30" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Screening_Screening">Screening</label></div>
3066				 
3067					
3068			 </div>
3069			 <!--Screening types ends -->
3070			
3071         </div>
3072     </div>
3073	 
3074	<!--Material-->
3075	<div class="card sq sq1 sq2">
3076	 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Material</div>
3077	 <div class="p-2" style="display:none;">
3078				
3079		
3080					 
3081			<div class="checkbox"><label class="form-check-label" for="mat1"><input id="mat1" type="checkbox" class="form-check-input" value="mat_Composite Material" >Composite Material</label></div>            
3082		
3083				
3084		
3085					 
3086			<div class="checkbox"><label class="form-check-label" for="mat2"><input id="mat2" type="checkbox" class="form-check-input" value="mat_Fabric" >Fabric</label></div>            
3087		
3088				
3089		
3090					 
3091			<div class="checkbox"><label class="form-check-label" for="mat3">
3091<input id="mat3" type="checkbox" class="form-check-input" value="mat_Metal" >Metal</label></div>            
3092		
3093				
3094		
3095					 
3096			<div class="checkbox"><label class="form-check-label" for="mat4"><input id="mat4" type="checkbox" class="form-check-input" value="mat_Plastic" >Plastic</label></div>            
3097		
3098				
3099		
3100					 
3101			<div class="checkbox"><label class="form-check-label" for="mat5"><input id="mat5" type="checkbox" class="form-check-input" value="mat_Wood" >Wood</label></div>            
3102		
3103				
3104		
3105				
3106		
3107				
3108		
3109				
3110		
3111				
3112		
3113				
3114		
3115				
3116		
3117				
3118		
3119				
3120		
3121				
3122		
3123				
3124		
3125				
3126		
3127				
3128		
3129				
3130		
3131				
3132		
3133				
3134		
3135				
3136		
3137				
3138		
3139				
3140		
3141				
3142		
3143				
3144		
3145				
3146		
3147				
3148		
3149				
3150		
3151				
3152		
3153				
3154		
3155				
3156		
3157				
3158		
3159		
3160		 <!--Material ends-->
3161	 </div>
3162	</div>
3163
3164     <!--Sustainability-->
3165	<div class="card sq">
3166	 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Sustainability</div>
3167	 <div class="p-2" style="display:none;">
3168		
3169		
3170		
3171		
3172		
3173		
3174		
3175		
3176		
3177		
3178		
3179		
3180					 
3181			<div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480000" value="sus_Recyclable" >Recyclable</label></div>
3182		
3183		
3184		
3185					 
3186			<div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480001" value="sus_FSC Certified" >FSC Certified</label></div>
3187		
3188		
3189		
3190					 
3191			<div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480002" value="sus_Green Seal" >Green Seal</label></div>
3192		
3193		
3194		
3195					 
3196			<div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480003" value="sus_Cradle to Cradle" >Cradle to Cradle</label></div>
3197		
3198		
3199		
3200					 
3201			<div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480004" value="sus_Certified B Corporation" >Certified B Corporation</label></div>
3202		
3203		
3204		
3205		
3206		
3207		
3208		
3209		
3210		
3211		
3212		
3213		
3214		
3215		
3216		
3217		
3218		
3219		
3220		
3221		
3222		
3223		
3224		
3225		
3226		
3227		
3228		
3229		
3230		
3231		
3232		
3233		
3234		
3235		
3236		
3237		
3238		
3239		
3240		
3241		
3242		
3243		
3244		
3245		
3246		
3247		
3248		
3249		
3250        </div>
3251     </div>
3252	 <!--Sustainability ends-->	 
3253	</div>   
3254
3255    <div style="width:100%" id="service_fltr">
3256    <div class="sq sq_hdr">SERVICES</div>
3257	<!--Service Type-->
3258	<div class="card sq sq1 sq2">
3259	 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-up-fill"></i> Service Type</div>
3260	 <div class="p-2">
3261		
3262		
3263		
3264		
3265		
3266		
3267		
3268		
3269		
3270		
3271		
3272		
3273		
3274		
3275		
3276		
3277		
3278		
3279		
3280		
3281		
3282		
3283		
3284		
3285		
3286		
3287		
3288		
3289		
3290		
3291		
3292		
3293		
3294		
3295		
3296		
3297		
3298		
3299		
3300		
3301		
3302		
3303		
3304		
3305		
3306		
3307		
3308		
3309		
3310		
3311       		 
3312					 	
3313				<div class="checkbox"><label class="form-check-label" for="srvtype1"><input id="srvtype1" type="checkbox" class="form-check-input" data-id="2" value="svctyp_Fabrication">Fabrication</label></div>
3314    		
3315		
3316		
3317		
3318       		 
3319					 	
3320				<div class="checkbox"><label class="form-check-label" for="srvtype2"><input id="srvtype2" type="checkbox" class="form-check-input" data-id="3" value="svctyp_Installation">Installation</label></div>
3321    		
3322		
3323		
3324		
3325       		 
3326					 	
3327				<div class="checkbox"><label class="form-check-label" for="srvtype3"><input id="srvtype3" type="checkbox" class="form-check-input" data-id="4" value="svctyp_Removal">Removal</label></div>
3328    		
3329		
3330		
3331		
3332       		 
3333					 	
3334				<div class="checkbox"><label class="form-check-label" for="srvtype4"><input id="srvtype4" type="checkbox" class="form-check-input" data-id="5" value="svctyp_Storage">Storage</label></div>
3335    		
3336		
3337		
3338		
3339       		 
3340					 	
3341				<div class="checkbox"><label class="form-check-label" for="srvtype5"><input id="srvtype5" type="checkbox" class="form-check-input" data-id="6" value="svctyp_Leasing/Renting">Leasing/Renting</label></div>
3342    		
3343		
3344		
3345		
3346       		
3347		
3348		
3349		
3350       		 
3351					 	
3352				<div class="checkbox"><label class="form-check-label" for="srvtype6"><input id="srvtype6" type="checkbox" class="form-check-input" data-id="8" value="svctyp_Lighting">Lighting</label></div>
3353    		
3354		
3355		
3356		
3357       		 
3358					 	
3359				<div class="checkbox"><label class="form-check-label" for="srvtype7"><input id="srvtype7" type="checkbox" class="form-check-input" data-id="9" value="svctyp_Site Planning">Site Planning</label></div>
3360    		
3361		
3362		
3363		
3364       		 
3365					 	
3366				<div class="checkbox"><label class="form-check-label" for="srvtype8"><input id="srvtype8" type="checkbox" class="form-check-input" data-id="10" value="svctyp_Architecture/Engineering/Landscape">Architecture/Engineering/Landscape</label></div>
3367    		
3368		
3369		
3370	 </div>
3371	</div>
3372	<!--ServiceType ends-->
3373	
3374     <!--Area Served-->
3375     <div class="card sq sq1 sq2">
3376         <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Area Served</div>
3377         <div class="p-2" style="display:none;">
3378             <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Brooklyn" >Brooklyn</label></div>
3379             <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Bronx" >Bronx</label></div>
3380             <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Manhattan" >Manhattan</label></div>
3381             <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Queens" >Queens</label></div>
3382             <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Staten" >Staten Island</label></div>
3383         </div>
3384     </div> 
3385
3386	<!--Language-->
3387	<div class="card sq">
3388     <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i>
3388 Language</div>
3389     <div class="p-2" style="display:none;">
3390		
3391		
3392		
3393		
3394		
3395		
3396		
3397		
3398		
3399		
3400		
3401		
3402		
3403		
3404		
3405		
3406		
3407		
3408		
3409		
3410		
3411		
3412				 
3413				<div class="checkbox"><label class="form-check-label" for="lang1"><input id="lang1" type="checkbox" class="form-check-input" data-id="773480000" value="lang_English">English</label></div>
3414		
3415		
3416		
3417				 
3418				<div class="checkbox"><label class="form-check-label" for="lang2"><input id="lang2" type="checkbox" class="form-check-input" data-id="773480001" value="lang_Spanish">Spanish</label></div>
3419		
3420		
3421		
3422				 
3423				<div class="checkbox"><label class="form-check-label" for="lang3"><input id="lang3" type="checkbox" class="form-check-input" data-id="773480002" value="lang_Chinese">Chinese</label></div>
3424		
3425		
3426		
3427				 
3428				<div class="checkbox"><label class="form-check-label" for="lang4"><input id="lang4" type="checkbox" class="form-check-input" data-id="773480003" value="lang_Russian">Russian</label></div>
3429		
3430		
3431		
3432				 
3433				<div class="checkbox"><label class="form-check-label" for="lang5"><input id="lang5" type="checkbox" class="form-check-input" data-id="773480004" value="lang_Yiddish">Yiddish</label></div>
3434		
3435		
3436		
3437				 
3438				<div class="checkbox"><label class="form-check-label" for="lang6"><input id="lang6" type="checkbox" class="form-check-input" data-id="773480005" value="lang_Bengali">Bengali</label></div>
3439		
3440		
3441		
3442				 
3443				<div class="checkbox"><label class="form-check-label" for="lang7"><input id="lang7" type="checkbox" class="form-check-input" data-id="773480006" value="lang_Korean">Korean</label></div>
3444		
3445		
3446		
3447				 
3448				<div class="checkbox"><label class="form-check-label" for="lang8"><input id="lang8" type="checkbox" class="form-check-input" data-id="773480007" value="lang_Haitian Creole">Haitian Creole</label></div>
3449		
3450		
3451		
3452				 
3453				<div class="checkbox"><label class="form-check-label" for="lang9"><input id="lang9" type="checkbox" class="form-check-input" data-id="773480008" value="lang_Italian">Italian</label></div>
3454		
3455		
3456		
3457				 
3458				<div class="checkbox"><label class="form-check-label" for="lang10"><input id="lang10" type="checkbox" class="form-check-input" data-id="773480009" value="lang_Arabic">Arabic</label></div>
3459		
3460		
3461		
3462				 
3463				<div class="checkbox"><label class="form-check-label" for="lang11"><input id="lang11" type="checkbox" class="form-check-input" data-id="773480010" value="lang_Polish">Polish</label></div>
3464		
3465		
3466		
3467				 
3468				<div class="checkbox"><label class="form-check-label" for="lang12"><input id="lang12" type="checkbox" class="form-check-input" data-id="773480011" value="lang_French">French</label></div>
3469		
3470		
3471		
3472				 
3473				<div class="checkbox"><label class="form-check-label" for="lang13"><input id="lang13" type="checkbox" class="form-check-input" data-id="773480012" value="lang_Urdu">Urdu</label></div>
3474		
3475		
3476		
3477				 
3478				<div class="checkbox"><label class="form-check-label" for="lang14"><input id="lang14" type="checkbox" class="form-check-input" data-id="773480013" value="lang_Other">Other</label></div>
3479		
3480		
3481		
3482		
3483		
3484		
3485		
3486		
3487		
3488		
3489		
3490		
3491		
3492		
3493		
3494		
3495		
3496		
3497		
3498		
3499	 </div>
3500	</div>
3501	<!--Language ends-->
3502   </div>
3503</div>  
3504</div>  
3505
3506
3507
3508</div>  
3509</div>  
3510<!--Filter ends -->
3511
3512  <!-- results Sec -->
3513<div style="position:relative;">
3514  <div id="resultSec" class="moffset">
3515  <!--Results -->
3516    <div class="rpanel" id="filter_results"></div>
3517  </div>
3518</div>
3519<!-- ends results Sec -->
3520
3521</div>   
3522</div>
3523
3524<div id="prod_tmpl" style="display:none;">
3525    <div onclick="showDetail('[p_id]')" class="card m-1 mb-2 dcard">
3526     <div class="[smc]"><span class="txt">[sm]</span></div>
3527     <div class="itm"><span class="[p]">[dir]</span></div>
3528     <img src="" class="card-img-top" alt="[name]">
3529     <div class="card-body">
3530       <h5 class="card-title">[name]</h5> 
3531       <span class="ptxt">[desc]</span>
3532     </div>
3533   </div>
3534</div>
3535   
3536<div id="service_tmpl" style="display:none;">
3537    <div onclick="showServiceDetail('[s_id]')" class="card m-1 mb
3537-2 dcard">
3538      <div class="itm"><span class="s">SERVICES</span></div>
3539      <img src="" class="card-img-top" alt="[name]">
3540      <div class="card-body">
3541        <h5 class="card-title">[name]</h5> 
3542        <div class='pscat'>[svctyp]</div>
3543        <div class="form-group ptxt">
3544            <i>[desc]</i>
3545        </div>
3546        <div class="svcinfo">[loc], [mwbe] [lang]</div>
3547      </div>
3548    </div>
3549</div>
3550   
3551  
3552  </div>
3553
3554  </div>
3555
3556</div>
3557
3558
3559<div class="text-center">
3560    <a href="#" class="do-lnk2" onclick="openCloseDisclaimer('OPEN')">Important information to use the directory</a><br>
3561</div>            
3562
3563
3564
3565<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
3566   
3567   
3568
3569      </div>
3570
3571</div> 
3572
3573</div></div>
3574</div>
3575</div>
3576
3577
3578	
3578<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-loader.bundle-f4a0e619b8.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-loader.bundle-f4a0e619b8.js" type="text/javascript"></script>
3578
3579
3580		
3581		
3582	
3583
3584	
3585		<div id="pp-native-controls-react-root"></div>
3586<script>window._nativeControlConfig = { "publicPath":"https://gov.content.powerapps.us/resource/powerappsportal/controls", "versions": {"pcf_loader":"0.0.51","pcf_controls":"3.24.8","mf_shared":"0.2.32","host":"0.15.1","data_grid":"1.12.3","controls_fluent_v9":"0.0.54"}, "pvaEmbedded": { "defaultWidgetMode": "normal", "useCustomTypingIndicator": false, "skipSingleBotWelcomeScreen": false } }</script>
vendor: 1 bytes, line 3586
3586
3587<script defer="defer" src="https://gov.content.powerapps.us/resource/powerappsportal/controls/host/main.3ee2491f78.chunk.js"></script>
3587
3588		
3589	
3590	
3591		<footer role="contentinfo" class="footer" style="left: 0; bottom: 0; width: 100%;">
3592  <div class="footer-bottom hidden-print">
3593    <div class="container">
3594      <div class="row">
3595       <!-- <div class="col-md-12 col-sm-12 col-xs-12 text-left">-->
3596          <div class="xrm-editable-html&#32;xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><!--
3597<p style="color: var(--portalThemeOnColor7);">
3598<span style="position: relative; color: var(--portalThemeColor7);">Copyright © </span><span style="position: relative; color: var(--portalThemeColor7);">2026</span>
3599<span style="position: relative; color: var(--portalThemeColor7);">. All rights reserved.</span>
3600</p>
3601-->
3602<!--
3603<style>
3604.container-md, .container-sm, .container-xl, .container-xxl {
3605    --bs-gutter-x: 1.5rem;
3606    --bs-gutter-y: 0;
3607    width: 100%;
3608    padding-right: calc(var(--bs-gutter-x)* .5);
3609    padding-left: calc(var(--bs-gutter-x)* .5);
3610    margin-right: auto;
3611    margin-left: auto;
3612}
3613</style>-->
3614<div class="container-md" style="color: var(--portalThemeColor8);">
3615                                <div class="site-footer__bottom">
3616                <section class="row region region-footer-fifth">
3617    <div id="block-footer" class="block block-block-content block-block-contentdceeb4f4-fca7-47f7-8c53-db3422892411">
3618  
3619    
3620      <div class="content">
3621      
3622            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item">
3623            <div class="col-md-4"><div class="footer-1">
3624            <div class="item"><a href="https://www.nyc.gov/">
3625            <img src="/nycwhite.png" alt="NYClogo">
3626            </a></div><div class="item"><a href="https://www.nyc.gov/html/dot/html/home/home.shtml"><img src="/dot-logo-white.png" alt="DOT logo"></a>
3627            </div>
3628            <div class="item">Questions? <a href="https://www.diningoutnyc.info/contact-us">Contact us</a></div></div></div>
3629            <div class="col-md-4 footer-2"><div class="foot-2-left"><img src="/311-logo.png" alt="311 logo"></div>
3630            <div class="foot-2-right"><a href="https://portal.311.nyc.gov/article/?kanumber=KA-03321">Report an outdoor dining complaint to NYC 311</a></div></div>
3631            <div class="col-md-4 footer-3"><p>© City of New York. 2024 All Rights Reserved,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
3632            NYC is a trademark and service mark of the City of New York.</p><br><p><a href="https://www1.nyc.gov/home/privacy-policy.page">Privacy Policy.</a> 
3633            <a href="https://www1.nyc.gov/home/terms-of-use.page">Terms of Use.</a> <a href="https://www.nyc.gov/site/mopd/resources/digital-accessibility.page">
3634            Accessibility</a></p></div><style>
3635
3636</style></div>
3637      
3638    </div>
3639  </div>
3640
3641  </section>
3642
3643            </div>
3644                  </div></div></div>
3645       <!-- </div>-->
3646        <div id="accessibilityLinkContainer" class="col-md-3 col-sm-3 col-xs-3 text-right">
3647          
3648        </div>
3649      </div>
3650    </div>
3651</footer>
3652<!--<footer role="contentinfo" class="footer">
3653
3654</footer>-->
3655<script type="text/javascript">
3656  window.onload = function() {
3657    const accessibilityLinkContainer = document.getElementById("accessibilityLinkContainer");
3658    switch(window.navigator.language) {
3659      case "fr":
3660        if (accessibilityLinkContainer != null) {
3661          const accessibilityText="Accessibilité : partiellement conforme";
3662          const frenchAccessibilityAnchor = document.createElement("a");
3663          frenchAccessibilityAnchor.id = "frenchAccesssibleLink";
3664          frenchAccessibilityAnchor.target = "_blank";
3665          frenchAccessibilityAnchor.href = "https://go.microsoft.com/fwlink/?linkid=2163806";
3666          frenchAccessibilityAnchor.title = accessibilityText;
3667          frenchAccessibilityAnchor.innerText = accessibilityText;
3668          accessibilityLinkContainer.appendChild(frenchAccessibilityAnchor);
3669        }
3670        break;
3671      case "it":
3672        if (accessibilityLinkContainer != null) {
3673          const accessibilityText="Accessibilità: parzialmente conforme";
3674          const italianAccessibilityAnchor = document.createElement("a");
3675          italianAccessibilityAnchor.id = "italianAccesssibleLink";
3676          italianAccessibilityAnchor.target = "_blank";
3677          italianAccessibilityAnchor.href = "https://go.microsoft.com/fwlink/?linkid=2208177";
3678          italianAccessibilityAnchor.title = accessibilityText;
3679          italianAccessibilityAnchor.innerText = accessibilityText;
3680          accessibilityLinkContainer.appendChild(italianAccessibilityAnchor);
3681        }
3682        break;
3683      default: 
3684        accessibilityLinkContainer.remove();
3685    }
3686  };
3687 </script>
3687
3688	
3689
3690	
3690<script type="text/javascript">
3691
3692		function trackCopilotCustomUsage(botSchema) {
3693			const request = {
3694				botSchemaName: botSchema
3695			}
3696			var json = JSON.stringify(request);
3697			shell.ajaxSafePost({
3698				type: "POST",
3699				contentType: "application/json",
3700				url: "/_services/copilot/TrackUsage",
3701				data: json
3702			}).done(function () {
3703			}).fail(function (jqXhr) {
3704			});
3705		}
3706
3707		function findAndLogCustomCopilotUsage() {
3708			const pageSource = document.documentElement.outerHTML;
3709			const customPvaBotWebchatRegex = /api\.(preprod\.|test\.)?powerplatform\.(com|us|cn|appsplatform\.us)\/powervirtualagents\/botsbyschema\/([^/]+)\/directline\/token/;
3710			const customPvaBotIframeRegex = /powerva\.microsoft\.com\/environments\/([0-9a-fA-F\-]+)\/bots\/([^/]+)\/webchat/;
3711			const omniChannelRegex = /livechatwidget\/scripts\/LiveChatBootstrapper\.js/;
3712
3713			const matchPvaBotWebchat = pageSource.match(customPvaBotWebchatRegex);
3714			if (matchPvaBotWebchat && matchPvaBotWebchat[3]) {
3715				trackCopilotCustomUsage(matchPvaBotWebchat[3]);
3716			}
3717
3718			const matchPvaBotIframe = pageSource.match(customPvaBotIframeRegex);
3719			if (matchPvaBotIframe && matchPvaBotIframe[2]) {
3720				trackCopilotCustomUsage(matchPvaBotIframe[2]);
3721			}
3722
3723			const matchOmniChannel = pageSource.match(omniChannelRegex);
3724			if (matchOmniChannel && matchOmniChannel[0]) {
3725				trackCopilotCustomUsage("omnichannelWidget");
3726			}
3727		}
3728
3729		window.addEventListener("load", function () {
3730			findAndLogCustomCopilotUsage();
3731		});
3732	</script>
3732
3733
3734		
3735			
3736			
3737			
3738			
3739		
3740	
3740<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/bootstrap.bundle-105a4995b8.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/bootstrap.bundle-105a4995b8.js" type="text/javascript"></script>
3740
3741
3742	
3742<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/postpreform.bundle-4687dda8df.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/postpreform.bundle-4687dda8df.js" type="text/javascript"></script>
3742
3743
3744	
3744<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/app.bundle-1e948af604.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/app.bundle-1e948af604.js" type="text/javascript"></script>
3744
3745
3746	
3746<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js" type="text/javascript"></script>
3746
3747
3748	
3749
3750	
3751	
3752	
3753	
3753<script>
3754        //this event will update the title of the page based on active breadcrumb
3755        $('.breadcrumb').ready(function () {
3756            if ($('.breadcrumb').is(':visible')) {
3757                document.querySelector('title').innerHTML = ($('.breadcrumb > li.active').text() + "");
3758            }
3759        });
3760
3761        function GoToNewEditor() {
3762            var editCmsUrlSegment = "EditInCms";
3763            var currentUrl = window.location.href;
3764            if (currentUrl.indexOf('?') > -1) {
3765                var urlSegments = currentUrl.split("?");
3766                window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname + '?' + urlSegments[1];
3767            }
3768            else {
3769                window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname;
3770            }
3771        }
3772    </script>
3772
3773	
3774		
3775		
3776	
3777		
3778				
3778<script>
3779					if ('serviceWorker' in navigator) {
3780						navigator.serviceWorker.getRegistrations().then(function (registrations) {
3781							for (let registration of registrations) {
3782								registration.unregister();
3783							}
3784						}).catch(function (err) {
3785							console.log('Service Worker unregister action failed: ', err);
3786						});
3787					}
3788				</script>
3788
3789			
3790	
3791		
3792	<!--Start Show Session Expire Warning Popup here -->
3793    
3794		
3795</body>
3796</html>
3797<!-- Generated at 10/8/2026 7:38:43 AM -->
3798<!-- Page OK -->

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.