updating theme for view files (members)
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 26 Feb 2019 21:43:59 +0000 (16:43 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 26 Feb 2019 21:43:59 +0000 (16:43 -0500)
Using plugin view files.

glm-member-db/views/front/members/detail.html [deleted file]
glm-member-db/views/front/members/detail.html.save [new file with mode: 0644]
glm-member-db/views/front/members/list.html [deleted file]
glm-member-db/views/front/members/list.html.save [new file with mode: 0755]
glm-member-db/views/front/members/listTypeGrid.html [deleted file]
glm-member-db/views/front/members/listTypeGrid.html.save [new file with mode: 0644]

diff --git a/glm-member-db/views/front/members/detail.html b/glm-member-db/views/front/members/detail.html
deleted file mode 100644 (file)
index 3b56d9d..0000000
+++ /dev/null
@@ -1,777 +0,0 @@
-{include file='front/members/header.html'}
-
-{apply_filters('glm-member-db-front-members-detail-pageTop', '', $member.id)}
-
-{if $haveMember}
-
-    {if $settings.detail_show_map}
-<!--        <div id="glm-locationMap-container" class="row">
-            <div id="glm-locationMap" class="glm-map small-12 columns">(map loads here)</div>
-        </div>-->
-    {/if}
-    {if $settings.detail_show_directions}
-<!--        <div id="glm-directionsMap-container" class="glm-hidden">
-            <div id="glm-directionsMap" class="glm-map">(directions load here)</div>
-            <div id="directions-panel"></div>
-        </div>
-
-        <div class="row">
-            <div id="glm-directions" class="small-12 columns glm-member-entry-container">
-                <div class="row">
-                    <div class="small-12 medium-4 columns">
-                        Directions type:
-                        <select id="directionsType" name="directionsType">
-                            <option value="DRIVING">Driving</option>
-                            <option value="WALKING">Walking</option>
-                            <option value="BICYCLING">Bicycling</option>
-                             <option value="TRANSIT">Transit Services</option> - Doesn't seem to work
-                        </select>
-                    </div>
-                    <div class="small-12 medium-8 columns">
-                        Enter address to show directions ...
-                        <input id="glm-startLocation" type="text" name="startLocation" class="glm-form-text-input" placeholder=""><br>
-                    </div>
-                </div>
-                <div class="row">
-                    <div style="text-align: center;">
-                        <input type="submit" id="glm-showDirectionsButton" class="button button-secondary glm-button glm-member-button" value="Show Directions">
-                        <input type="submit" id="glm-showLocationButton" class="button button-secondary glm-button glm-hidden glm-member-button" value="Show {$terms.term_member_cap} Location">
-                    </div>
-                </div>
-            </div>
-        </div>-->
-    {/if}
-<a id="topAnchor"></a>
-
-<!--    <h3>{$terms.term_member_cap} Detail</h3>-->
-    <div class="">
-        <script>//document.write('<a id="glm-member-detail-takeback-mini" class="button glm-member-button" href="' + document.referrer + '"><span>Back to listing</span></a>');</script>
-        <a id="glm-member-detail-takeback-mini" class="glm-member-db-takeback-mini button glm-member-button" href="javascript:history.go(-1)"><span>Back to listing</span></a>
-        <div id="glm-member-detail-container" class="columns glm-member-container">
-            <div id="glm-member-detail-top-box" class="">
-                {if $member.logo && $settings.detail_show_logo}
-<!--                    <div class="glm-member-detail-logo-wrapper">
-                        <img class="glm-member-list-image-left" src="{$glmPluginMediaUrl}/images/{$settings.detail_logo_size}/{$member.logo}">
-                    </div>-->
-                {/if}
-                {if $member.url && $settings.detail_show_url}
-                    <input type="hidden" id="glm-member-detail-click-logged" value="0">
-                {/if}
-
-                <div id="glm-member-detail-contact-info" class="">
-                    <h4 class="glm-member-title">  {$member.member}</h4>
-    <!-- Member name, address, and basic information -->
-
-                    {if $settings.detail_show_address}
-                        <div class="glm-member-detail-address-wrapper">
-                            {apply_filters('glm-member-db-front-members-detail-addressTop', '', $member.id)}
-                            {if $settings.detail_show_street}
-                                {if $member.addr1}<div>{$member.addr1}</div>{/if}
-                                {if $member.addr2}<div>{$member.addr2}</div>{/if}
-                            {/if}
-                            {if $settings.memb_info_location && $settings.detail_show_citystatezip}
-                                <div>
-                                    {if $member.city}
-                                        <span>{$member.city}{if $member.state.value}, {/if}</span>
-                                    {/if}
-                                    {if $member.state.value}
-                                        <span>{$member.state.value}</span>
-                                    {/if}
-                                    {if $member.zip}
-                                        {$member.zip}
-                                    {/if}
-                                </div>
-                            {/if}
-                            {if $member.country.name && $settings.detail_show_country}
-                                <div>{$member.country.name}</div>
-                            {/if}
-                            {apply_filters('glm-member-db-front-members-detail-addressBottom', '', $member.id)}
-                        </div>
-                    {/if}
-                    {apply_filters('glm-member-db-front-members-detail-otherDetailTop', '', $member.id)}
-                    {if $settings.memb_info_location && $member.region && $settings.detail_show_region}
-                        <div class="glm-member-detail-region-wrapper">
-                            {$terms.term_admin_menu_configure_regions}: {$member.region}
-                        </div>
-                    {/if}
-                    {if $settings.memb_info_location}
-                    <div class="glm-member-detail-phone-wrapper">
-                        {if $member.phone && $settings.detail_show_phone}
-                            <div class="glm-member-detail-contact-phone">
-                                <div class="glm-field-value">Phone: {apply_filters('glm_associate_phone_filter', $member.phone)}</div>
-                            </div>
-                        {/if}
-                        {if $member.toll_free && $settings.detail_show_tollfree}
-                            <div>
-                                <div class="glm-field-value">Toll Free: {apply_filters('glm_associate_phone_filter', $member.toll_free)}</div>
-                            </div>
-                        {/if}
-                    </div>
-                    {/if}
-                    {apply_filters('glm-member-db-front-members-detail-otherDetailBottom', '', $member.id)}
-                    <div id="glm-member-detail-links">
-                        {apply_filters('glm-member-db-front-members-detail-linksTop', '', $member.id)}
-                        {if $settings.detail_show_url}<a id="glm-member-detail-website-link" class="small-12" data-member-id="{$member.member_pointer}" data-member-slug="{$member.member_slug}" href="{$member.url}"{if $settings.detail_show_url_newtarget} target="_blank"{/if}>Visit Website</a>{/if}
-                        {if $member.email && $settings.detail_show_email}<a href="mailto:{$member.email}">Email</a>{/if}
-                        {if $member.reservation_url}<a target="_blank" href="{$member.reservation_url}">Reserve Now</a>{/if}
-                        {if $settings.detail_show_coupons && $coupons}<a href="#glm-member-detail-coupons">Coupons</a>{/if}
-                        {if $member.live_cam_type.value==1 && $member.live_cam_url != "" && $settings.detail_show_live_cam}
-                            <a target="_blank" href="{$member.live_cam_url}">
-                                {$terms.term_webcam_cap}
-                            </a>
-                        {/if}
-                        {apply_filters('glm-member-db-front-members-detail-linksBottom', '', $member.id)}
-                    </div>
-
-                    <div class="glm-member-db-socials">
-                        {apply_filters('glm-member-db-front-members-list-memberDetailBottom', '', $member.id)}
-                        {apply_filters('glm-member-db-front-members-social-list', '', $member.id)}
-                    </div>
-                </div>
-
-                {if $settings.detail_show_map}
-                <div id="glm-member-detail-map-wrapper" class="">
-                    <div id="glm-locationMap-container" style="height: 140px;">
-      {if $settings.selected_map_interface == 1}
-                    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
-                    <script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
-                    <link rel="stylesheet" href="{$jsUrl}/Leaflet.loading/src/Control.Loading.css" />
-                    <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
-                    <div id="LeafletMapContainer" style="height: 250px; width: 100%;">(map loads here)</div>
-      {/if}
-      {if $settings.selected_map_interface == 2}
-                    <script src="//maps.googleapis.com/maps/api/js?sensor=true&key={$settings.google_maps_api_key}"></script>
-                    <script type="text/javascript">var enableDraggable = true;</script>
-                    <div id="glm-locationMap" class="glm-map glmgrid-small-12 glmgrid-columns">(map loads here)</div>
-      {/if}
-                </div>
-                <div id="glm-member-detail-map-button" class="button map-button">view map</div>
-
-                    <div id="member-lat" rel="{$member.lat}"></div>
-                    <div id="member-lon" rel="{$member.lon}"></div>
-                    <form id="MemberDrivingDirectionsForm" name="MemberDrivingDirectionsForm" method="post" action="">
-                        <input type="hidden" id="MemberLocation" name="MemberLocation" value="{$member.member_name|escape}">
-                        <input type="hidden" id="MemberLat" name="MemberLat" value="{$member.lat}">
-                        <input type="hidden" id="MemberLon" name="MemberLon" value="{$member.lon}">
-                        <input type="submit" class="button map-button text-center" id="MemberDrivingDirectionSubmit" name="MemberDrivingDirectionSubmit" value="Directions">
-                        <input type="submit" class="button map-button text-center" id="MemberDrivingDirectionSubmitMobile" name="MemberDrivingDirectionSubmit" value="Driving Directions">
-                    </form>
-                </div>
-     {/if}
-            </div>
-
-
-<!-- Attributes: amenitities, credit cards, etc -->
-            <div id="glm-member-detail-descr-row" class="small-12 columns">
-                {apply_filters('glm-member-db-front-members-detail-attributesTop', '', $member.id)}
-<!--                {if $featuredImage}
-                <div class="glm-member-detail-featured-image-wrapper small-12 columns">
-                    <img src="{$glmPluginMediaUrl}/images/large/{$featuredImage}">
-                    {if $featuredImageCaption}
-                    <div class="glm-member-detail-featured-image-caption">
-                        {$featuredImageCaption}
-                    </div>
-                    {/if}
-                </div>
-                {/if}-->
-                <div id="glm-member-detail-intro-desc">
-                    {if $member.short_descr && $settings.detail_show_short_descr}{$member.short_descr|nl2br}{/if}
-                </div>
-                <div id="glm-member-detail-fullprofile-toggle">Expand All</div>
-                <div id="glm-member-detail-data-container">
-                    {apply_filters('glm-member-db-front-members-detail-packages', '', $member.id)}
-                    <div id="glm-member-detail-description-toggle" class="glm-member-detail-content-toggle">Description</div>
-                    <div id="glm-member-detail-description-container" class="glm-member-detail-content-data">
-                        <div id="glm-member-detail-description" >
-                            {if $member.descr && $settings.detail_show_descr}
-                                {apply_filters('glm-member-db-front-members-detail-descriptionTop', '', $member.id)}
-                                {$member.descr|nl2br}
-                                {apply_filters('glm-member-db-front-members-detail-descriptionBottom', '', $member.id)}
-                            {/if}
-                        </div>
-                        <div class="glm-member-detail-sub-data-links row">
-                            <a class="glm-member-detail-content-toggle">Collapse</a>
-                            <a class="glm-member-detail-link-to-top">Back to top</a>
-                        </div>
-                    </div>
-
-                    {apply_filters('glm-member-db-front-members-detail-events', '', $member.id)}
-
-                    {apply_filters('glm-member-db-front-members-detail-couponsBefore', '', $member.id)}
-                    {if $settings.detail_show_coupons && $coupons}
-                    <div id="glm-member-detail-coupons-toggle" class="glm-member-detail-content-toggle">Coupons</div>
-                    <div id="glm-member-detail-coupons-container" class="glm-member-detail-content-data small-12">
-                        <a name="glm-member-detail-coupons"></a>
-                        <div class="glm-member-detail-sub-data-links row">
-                            <a class="glm-member-detail-content-toggle">Collapse</a>
-                            <a class="glm-member-detail-link-to-top">Back to top</a>
-                        </div>
-                    </div>
-                    {/if}
-                    {apply_filters('glm-member-db-front-members-detail-couponsAfter', '', $member.id)}
-
-                    {apply_filters('glm-member-db-front-members-detail-amenitiesBefore', '', $member.id)}
-                    {if $member.amenities && $settings.detail_show_amenities}
-                    <div id="glm-member-detail-amenities-toggle" class="glm-member-detail-content-toggle">Amenities & Services</div>
-                    <div id="glm-member-detail-amenities-container" class="glm-member-detail-content-data small-12">
-                        <table class="glm-member-detail-table">
-                            {foreach $member.amenities as $a}
-                            <tr>
-                                <td>
-                                    {$a.name}
-                                </td>
-                            </tr>
-                            {/foreach}
-                        </table>
-                        <div class="glm-member-detail-sub-data-links row">
-                            <a class="glm-member-detail-content-toggle">Collapse</a>
-                            <a class="glm-member-detail-link-to-top">Back to top</a>
-                        </div>
-                    </div>
-                    {/if}
-                    {apply_filters('glm-member-db-front-members-detail-amenitiesAfter', '', $member.id)}
-<!-- Not using credit cards for now
-                    {apply_filters('glm-member-db-front-members-detail-creditcardsBefore', '', $member.id)}
-                    {if $member.cc_type && $settings.detail_show_creditcards}
-                    <div id="glm-member-detail-creditcards-toggle" class="glm-member-detail-content-toggle">Credit Cards</div>
-                    <div id="glm-member-detail-creditcards-container" class="glm-member-detail-content-data small-12">
-                        <table class="glm-member-detail-table">
-                            <tr><th>Credit Cards Accepted:</th></tr>
-                        {foreach $member.cc_type.names as $c}
-                            <tr><td>{$c}</td></tr>
-                {/foreach}
-                        </table>
-                        <div class="glm-member-detail-sub-data-links row">
-                            <a class="glm-member-detail-content-toggle">Collapse</a>
-                            <a class="glm-member-detail-link-to-top">Back to top</a>
-                        </div>
-                    </div>
-                    {/if}
-                    {apply_filters('glm-member-db-front-members-detail-creditcardsAfter', '', $member.id)}
--->
-                    {apply_filters('glm-member-db-front-members-detail-categoriesBefore', '', $member.id)}
-                    {if $member.categories && $settings.detail_show_categories}
-                    <div id="glm-member-detail-categories-toggle" class="glm-member-detail-content-toggle">Categories</div>
-                    <div id="glm-member-detail-categories-container" class="glm-member-detail-content-data small-12">
-                        <table class="glm-member-detail-table">
-<!--                            <tr><th>{$terms.term_member_cap} Categories</th></tr>-->
-                            {foreach $member.categories as $c}
-                            <tr>
-                                <td>
-                                    {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
-                                </td>
-                            </tr>
-                            {/foreach}
-                        </table>
-                        <div class="glm-member-detail-sub-data-links row">
-                            <a class="glm-member-detail-content-toggle">Collapse</a>
-                            <a class="glm-member-detail-link-to-top">Back to top</a>
-                        </div>
-                    </div>
-                    {/if}
-                    {apply_filters('glm-member-db-front-members-detail-categoriesAfter', '', $member.id)}
-                    {apply_filters('glm-member-db-front-members-detail-videoBefore', '', $member.id)}
-                    {if $member.video_url && $settings.detail_show_video}
-                    <div id="glm-member-detail-video-toggle" class="glm-member-detail-content-toggle">Video</div>
-                    <div id="glm-member-detail-video-container" class="glm-member-detail-content-data small-12">
-                        <table class="glm-member-detail-table">
-                            <div><h3 class="glm-member-detail-video-title">{$member.video_title}</h3></div>
-                            <div class="glm-member-detail-video-embed">{$member.video_embed}</div>
-                            <div class="glm-member-detail-video-descr"><p>{$member.video_descr}</p></div>
-                        </table>
-                        <div class="glm-member-detail-sub-data-links row">
-                            <a class="glm-member-detail-content-toggle">Collapse</a>
-                            <a class="glm-member-detail-link-to-top">Back to top</a>
-                        </div>
-                    </div>
-                    {/if}
-
-                    {apply_filters('glm-member-db-front-members-detail-videoAfter', '', $member.id)}
-
-                    {apply_filters('glm-member-db-front-members-detail-liveCamBefore', '', $member.id)}
-                    {if $member.live_cam_type.value!=1 && $member.live_cam_url && $settings.detail_show_live_cam}
-                    <div id="glm-member-detail-live-cam-toggle" class="glm-member-detail-content-toggle">{$terms.term_webcam_cap}</div>
-                    <div id="glm-member-detail-live-cam-container" class="glm-member-detail-content-data small-12">
-                        <table class="glm-member-detail-table">
-                            <div><h3 class="glm-member-detail-live-cam-title">{$member.live_cam_title}</h3></div>
-                        {if $member.live_cam_type.value == 2}
-                            <img width="auto" max-height="315" src="{$member.live_cam_url}">
-                        {/if}
-                            <div class="glm-member-detail-live-cam-descr"><p>{$member.live_cam_descr}</p></div>
-                        </table>
-                        <div class="glm-member-detail-sub-data-links row">
-                            <a class="glm-member-detail-content-toggle">Collapse</a>
-                            <a class="glm-member-detail-link-to-top">Back to top</a>
-                        </div>
-                    </div>
-                    {/if}
-
-                   {if $haveFiles}
-                    <div id='glm-member-detail-files-toggle' class='glm-member-detail-content-toggle'>Files</div>
-                    <div id='glm-member-detail-files-container' class='glm-member-detail-content-data small-12'>
-                        {foreach $files as $file}
-                            <a class="glm-file-detail" href="{$glmPluginMediaUrl}/files/{$file.file_name}" target="_blank">{if $file.caption}{$file.caption}{else}{$file.name}{/if}</a>
-                        {/foreach}
-                        <div class='glm-member-detail-sub-data-links row'>
-                            <a class='glm-member-detail-content-toggle'>Collapse</a>
-                            <a class='glm-member-detail-link-to-top'>Back to top</a>
-                        </div>
-                    </div>
-                    {/if}
-
-                    {apply_filters('glm-member-db-front-members-detail-liveCamAfter', '', $member.id)}
-
-                    {$customFields = apply_filters('get_glm_custom_fields','glm-member-db',$member.memberInfoId)}
-                    {if !empty($customFields[0].field_data)}
-                        <div id="glm-member-detail-hours-toggle" class="glm-member-detail-content-toggle">Hours</div>
-                        <div id="glm-member-detail-hours-container" class="glm-member-detail-content-data">
-                            <div id="glm-member-detail-hours" >
-
-                                {foreach $customFields as $field}
-                                    {if $field.field_data}
-                                        <div class="glm-member-detail-custom-field">
-                                            <div class="row">
-                                                <span class="glm-member-detail-custom-field-name small-12 medium-5 columns" >{$field.field_name}</span>
-                                                <span class="glm-member-detail-custom-field-data small-12 medium-7 columns">{$field.field_data}</span>
-                                            </div>
-
-                                        </div>
-                                    {/if}
-                                {/foreach}
-                            </div>
-
-                            <div class="glm-member-detail-sub-data-links row">
-                                <a class="glm-member-detail-content-toggle">Collapse</a>
-                                <a class="glm-member-detail-link-to-top">Back to top</a>
-                            </div>
-                        </div>
-                    {/if}
-
-                    {apply_filters('glm-member-db-front-members-detail-imageGalleryBefore', '', $member.id)}
-                    {if $settings.detail_show_imagegallery && $haveImageGallery}
-                    <div id="glm-member-detail-images-toggle" class="glm-member-detail-content-toggle">Photos</div>
-                    <div id="glm-member-detail-images-container" class="glm-member-detail-content-data small-12">
-                        {apply_filters('glm-member-db-front-members-detail-galleryTop', '', $member.id)}
-<!--                        <h2>Photo Gallery</h2>-->
-
-                            <ul class="small-block-grid-1 medium-block-grid-2 large-block-grid-3">
-                        {foreach $imageGallery as $i}
-                                <li>
-                                    <a class="glm-member-detail-images-thumb fancybox" data-fancybox="images" rel="gallery1" href="{$glmPluginMediaUrl}/images/large/{$i.file_name}" style="background-image: url('{$glmPluginMediaUrl}/images/small/{$i.file_name}')">
-                                        <img class="glm-member-filler-image" src="{$assetsUrl}/filler_s.gif" alt="{$i.caption}">
-                                    </a>
-                                </li>
-                        {/foreach}
-                            </ul>
-                        {apply_filters('glm-member-db-front-members-detail-galleryBottom', '', $member.id)}
-                        <div class="glm-member-detail-sub-data-links row">
-                            <a class="glm-member-detail-content-toggle">Collapse</a>
-                            <a class="glm-member-detail-link-to-top">Back to top</a>
-                        </div>
-                    </div>
-                    {/if}
-                    {apply_filters('glm-member-db-front-members-detail-imageGalleryAfter', '', $member.id)}
-
-                    {apply_filters('glm-member-db-front-members-detail-dataBottom','',$member.id)}
-                </div>
-            </div>
-            {apply_filters('glm-member-db-front-members-detail-attributesBottom', '', $member.id)}
-<!-- Image Gallery -->
-
-        </div>
-    </div>
-    {apply_filters('glm-member-db-front-members-detail-pageBottom', '', $member.id)}
-
-    <div id="findingYourLocationDialog" title="Your present location">
-        <p>
-            We would like to lookup your present location so we can provide accurate directions.
-        </p><p>
-            Your browser may ask for your permission to determine your location
-            (possibly at the top of this page).
-        </p><p>
-            If you agree, we will use your current location as the starting point for
-            directions. If you don't agree, you may enter a starting location when the map is displayed.
-        </p>
-    </div>
-
-    <script type="text/javascript">
-        {apply_filters('glm-member-db-front-members-detail-jqueryScriptTop', '', $member.id)}
-
-        jQuery(document).ready(function($) {
-
-            // Dialog box to show when submitting checkout page
-            $( "#findingYourLocationDialog" ).dialog({
-                autoOpen: false,
-                width: 600
-            });
-            $( "#lookingUpYourLocationDialog" ).dialog({
-                autoOpen: false,
-                width: 600
-            });
-
-            var trackToConsole = true;         // Send debug/progress messages to developers console (Firefox)
-            var trackPositionInterval = 60000;  // Time interval for getting user's current geolocation - 1 Min
-            var highAccuracyPoisition = true;   // Request high-accuracy user geolocation from user's device
-            var postionTimeout = 15000;         // Maximum amount of time we'll wait for geolocation result - 15 Sec
-
-            // Process form for sending user to Google Maps for driving directions
-            $("#MemberDrivingDirectionsForm").submit(function(){
-
-                var stopGeolocation = false;
-                var myCurrentLocation = false;
-
-                // If we already have a location
-                if (myCurrentLocation) {
-                    sendToGoogleMaps(myCurrentLocation);
-                } else {
-
-                    // We don't yet have a location, so try to get it
-                    if (navigator.geolocation) {
-
-                        $( "#findingYourLocationDialog" ).dialog("open");
-
-                        // Get the user's location
-                        navigator.geolocation.getCurrentPosition(function(position) {
-
-                            // Save their current location
-                            myCurrentLocation = {
-                                  lat: position.coords.latitude,
-                                  lon: position.coords.longitude
-                            };
-
-                            $( "#findingYourLocationDialog" ).dialog("close");
-                            sendToGoogleMaps(myCurrentLocation);
-
-                        // If we can't get the location, then go without it
-                        },
-                        function(err) {
-                            $( "#findingYourLocationDialog" ).dialog("close");
-                            sendToGoogleMaps(false);
-                        },
-                        {
-                            enableHighAccuracy: highAccuracyPoisition,
-                            timeout:            postionTimeout,
-                            maximumAge:         trackPositionInterval - 100     // Allows cached position resulting from other requests during interval
-                        });
-
-                    }
-
-                }
-
-                return false;
-
-            });
-
-            function sendToGoogleMaps(myLocation) {
-                var lat = plusifyMyValue(jQuery("#MemberLat").val());
-                var lon = plusifyMyValue(jQuery("#MemberLon").val());
-                var dest = '&destination=' + lat + '%2C+' + lon;
-
-                var origin = '';
-                if (myLocation) {
-                    var myLat = plusifyMyValue(myLocation.lat);
-                    var myLon = plusifyMyValue(myLocation.lon);
-                    origin = '&origin=' + myLat + '%2C+' + myLon;
-                }
-
-                var url = "https://www.google.com/maps/dir/?api=1" + origin + dest;
-                window.open(url, '_blank');
-            }
-
-            function plusifyMyValue(v) {
-                if (v > 0) {
-                    v = '+' + v;
-                }
-                return v;
-            }
-
-            // change the member detail photos grid structure depending
-            var images_container = $("#glm-member-detail-images-container");
-            // Check if Foundation exists first
-            if ( typeof window.Foundation != 'undefined' ) {
-                var foundation_version = window.Foundation.version;
-
-                if( foundation_version.charAt(0) === "6" ){
-                    images_container.children('ul').removeClass('small-block-grid-1 medium-block-grid-2 large-block-grid-3');
-                    images_container.children('ul').addClass('row small-up-1 medium-up-2 large-up-3');
-                    images_container.children('ul').find('li').addClass('column');
-                }
-            }
-
-            // Replace all non-number special characters in a phone number with the designated infix
-            {if $settings.phone_infix}
-                //var processedPhone = $('.glm-member-detail-contact-phone .glm-field-value').text().trim().replace(/[^a-zA-Z0-9 ]/g, '{$settings.phone_infix}');
-                //$('.glm-member-detail-contact-phone .glm-field-value').text(processedPhone);
-            {/if}
-
-            // Check a hidden field to see if this is a page refresh (doesn't detect forced reload)
-            var isRefresh = $("#glm-member-detail-click-logged").val();
-
-            // Also check the HTML 5 performance.navigation.type value (1 = reload, 2 = via history)
-            if(window.performance && (performance.navigation.type  == 1 || performance.navigation.type  == 2)) {
-                isRefresh = 1;
-            }
-
-            // If this is not a refresh or reload, send AJAX action to record click.
-            if (isRefresh == 0) {
-                $.ajax({
-                   url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberDetailClick&memberId={$member.member_pointer}&memberSlug={$member.member_slug}"
-                });
-                $("#glm-member-detail-click-logged").val(1);
-            }
-
-            // Processes click-through counts for website links
-            $('#glm-member-detail-website-link').on('click', function() {
-
-                // Get member ID
-                var memberId = $(this).attr('data-member-id');
-                var memberSlug = $(this).attr('data-member-slug');
-
-                // Send AJAX action to record click.
-                $.ajax({
-                   url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberClickThrough&memberId=" + memberId + "&memberSlug=" + memberSlug
-                });
-
-            });
-
-            // Automatically zoom and expand the relevant
-            $('html').addClass('glmassociatememberdetail glmassociatetop');
-            if ("{$expanded}" != "") {
-                var expandTarget = "glm-member-detail-{$expanded}";
-                if ($("#"+expandTarget+"-container").length) {
-                    $("#"+expandTarget+"-container").show("fast", "swing",  function() {});
-                    $("#"+expandTarget+"-toggle").addClass("selected");
-                    fullProfileCheck(expandTarget);
-                    $('html, body').animate({
-                        scrollTop: $("#"+expandTarget+"-toggle").offset().top-10
-                    }, 500);
-                }
-            }
-
-            $("a.glm-member-detail-images-thumb").fancybox({
-
-                 helpers: {
-                    overlay: { locked: false },
-                     title: { type: 'inside'},
-                },
-                afterLoad: function(){
-                    this.title = $(this.element).find('img').attr('alt');
-                }
-            });
-
-            $("a.glm-member-detail-images-thumb").click(function(e) {
-                e.preventDefault();
-            });
-
-            $('.glm-member-detail-link-to-top').click(function () {
-                $('body,html').animate({
-                    scrollTop: $("#glm-member-detail-takeback-mini").offset().top-10
-                }, 75);
-            });
-
-            // Open the appropriate section if a link is clicked
-            $('.link-open-detail-content-data').click(function(e) {
-                var target = $(this).attr("id").slice(0, -5);
-                // e.g.: #glm-member-detail-packages-link
-                $("#"+target+"-container").show("fast", "swing",  function() {});
-                $("#"+target+"-toggle").addClass("selected");
-                fullProfileCheck(target);
-                $('html, body').animate({
-                    scrollTop: $("#"+target+"-toggle").offset().top-{$settings.detail_top_offset_autoscroll}
-                }, 500);
-            });
-
-            // Open the following sections by default
-            if ($(window).width() >= 1024) {
-
-                if( $("#glm-member-detail-packages-container").length > 0 && $("#glm-member-detail-packages-toggle").length > 0){
-                    $("#glm-member-detail-packages-container").slideToggle("fast", "swing",  function() {});
-                    $("#glm-member-detail-packages-toggle").toggleClass("selected");
-                }
-
-                if( $("#glm-member-detail-images-container").length > 0 && $("#glm-member-detail-description-toggle").length > 0){
-                    $("#glm-member-detail-images-container").slideToggle("fast", "swing",  function() {});
-                    $("#glm-member-detail-images-toggle").toggleClass("selected");
-                }
-
-            }
-
-            // Open or close the appropriate section if a toggle is clicked
-            $(".glm-member-detail-content-toggle").not("#glm-member-detail-fullprofile-toggle").click(function() {
-                if($(this).parents('.glm-member-detail-sub-data-links').length) {
-                    var target = $(this).parent().parent().attr("id").slice(0, -10);
-                } else {
-                    var target = $(this).attr("id").slice(0, -7);
-                }
-                $("#"+target+"-container").slideToggle("fast", "swing",  function() {});
-                $("#"+target+"-toggle").toggleClass("selected");
-                fullProfileCheck(target);
-            });
-
-            // Change the toggle button based on whether all the content sections are expanded
-            function fullProfileCheck(target) {
-                if ($("#glm-member-detail-data-container > .glm-member-detail-content-toggle.selected").length == $("#glm-member-detail-data-container > .glm-member-detail-content-toggle").length) {
-                    $("#glm-member-detail-fullprofile-toggle").addClass("selected");
-                } else {
-                    $("#glm-member-detail-fullprofile-toggle").removeClass("selected");
-                }
-            }
-
-            // Open or close every data container if the fullprofile toggle is clicked
-            $("#glm-member-detail-fullprofile-toggle").click(function() {
-                if ($(this).hasClass("selected")) {
-                    $(".glm-member-detail-content-data").slideUp(175, "swing",  function() {});
-                    $(".glm-member-detail-content-toggle").removeClass("selected");
-                    $(this).toggleClass("selected");
-                } else {
-                    $(".glm-member-detail-content-data").not($(this)).slideDown(350, "swing",  function() {});
-                    $(".glm-member-detail-content-toggle").addClass("selected");
-                    $(this).toggleClass("selected");
-                }
-            });
-
-            // Expand the takeback button on hover. Progressively add ellipses when clicked and loading
-            $("#glm-member-detail-takeback-mini").click(function() {
-                $("#glm-member-detail-takeback-mini span").html("Loading");
-                $("#glm-member-detail-takeback-mini").css('min-width','170px');
-                var count = 0;
-                setInterval(function(){
-                    count++;
-                    var dots = new Array(count % 5).join(' .');
-                    $('#glm-member-detail-takeback-mini span').html("Loading ." + dots);
-                  }, 500);
-            });
-
-
-    {if $settings.detail_show_map}
-
-            // Expand/contract map container and change the toggle button
-            $("#glm-member-detail-map-button").click(function() {
-                var mapC = "#glm-locationMap-container";
-                var map = "#glm-locationMap";
-                var mapNewH = 0;
-                var mapOverflow = 'hidden';
-                var mapBtnTxt = 'view map';
-                if ($(mapC).height() == 0) {
-                    mapNewH = 140;
-                    mapV = 'visible';
-                    mapBtnTxt = 'hide map'
-                }
-                $(mapC).animate({
-                    overflow: mapOverflow,
-                    height: mapNewH
-                }, 140, "swing", function() {
-
-                });
-                $(this).html(mapBtnTxt);
-            });
-
-      {if $settings.selected_map_interface == 1}
-
-            /*
-             *  Leaflet Map
-             *  API reference: https://leafletjs.com/reference-1.3.2.html
-             */
-
-            // Get member location if available, otherwise use this site's default locatgion
-            var myLocation = false;
-        {if $member.lat != 0 && $member.lon != 0}
-            var memberLat = {$member.lat};
-            var memberLon = {$member.lon};
-        {else}
-            var memberLat = {$settings.maps_default_lat}};
-            var memberLon = {$settings.maps_default_lon}};
-        {/if}
-
-            function initMap() {
-
-                var leafletMap = L.map('LeafletMapContainer').setView([memberLat, memberLon], {$settings.maps_default_zoom});
-                var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
-                var leafletMinZoom = 5;
-                var leafletMaxZoom = 18;
-                var geocoder;
-
-
-                // Tile server
-                L.tileLayer(leafletTileServer, {
-                    attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery Â© <a href="https://www.gaslightmedia.com/">Gaslight Media</a>',
-                    minZoom: leafletMinZoom,
-                    maxZoom: leafletMaxZoom,
-                    id: 'nothot'
-                }).addTo(leafletMap);
-
-                var loadingControl = L.Control.loading({
-                    separate: true,
-                    delayIndicator: 500
-                });
-                leafletMap.addControl(loadingControl);
-
-                // Marker
-                var leafletMarker = L.marker([memberLat, memberLon]).addTo(leafletMap);
-
-            }
-
-      {/if}
-
-      {if $settings.selected_map_interface == 2}
-
-            /*
-             * Google Maps
-             *  API reference: https://developers.google.com/maps/documentation/javascript/reference
-             */
-
-            var myLocation = false;
-         {if $member.lat != 0 && $member.lon != 0}
-            var memberlocation = new google.maps.LatLng({$member.lat}, {$member.lon});
-         {else}
-            var memberlocation = new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon});
-         {/if}
-
-            function initMap() {
-
-                // Set default - Need to make this configurable
-                var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
-                       zoom: {$settings.maps_default_zoom},
-                       center: memberlocation,
-                    disableDefaultUI: false,
-                    mapTypeId: google.maps.MapTypeId.MAP,
-                });
-
-                // Create a marker for this member
-         {if $member.lat != 0 && $member.lon != 0}
-                var marker = new google.maps.Marker({
-                    map: map,
-                    position: new google.maps.LatLng({$member.lat}, {$member.lon}),
-                    draggable: false,
-                    animation: google.maps.Animation.DROP,
-                    title: '{$member.member|escape}'
-                });
-         {/if}
-
-            }
-
-            // Load map
-            google.maps.event.addDomListener(window, 'load', initMap);
-
-      {/if}
-
-    {/if} {*detail_show_map*}
-
-            $(window).load(function(){
-                initMap();
-            });
-
-        }); // jquery
-
-        {apply_filters('glm-member-db-front-members-detail-jqueryScriptBottom', '', $member.id)}
-
-
-
-    </script>
-
-{else}
-        <p>For some reason the specified {$terms.term_member} was not found. Please try again.</p>
-{/if}
-
-
-{include file='front/footer.html'}
diff --git a/glm-member-db/views/front/members/detail.html.save b/glm-member-db/views/front/members/detail.html.save
new file mode 100644 (file)
index 0000000..3b56d9d
--- /dev/null
@@ -0,0 +1,777 @@
+{include file='front/members/header.html'}
+
+{apply_filters('glm-member-db-front-members-detail-pageTop', '', $member.id)}
+
+{if $haveMember}
+
+    {if $settings.detail_show_map}
+<!--        <div id="glm-locationMap-container" class="row">
+            <div id="glm-locationMap" class="glm-map small-12 columns">(map loads here)</div>
+        </div>-->
+    {/if}
+    {if $settings.detail_show_directions}
+<!--        <div id="glm-directionsMap-container" class="glm-hidden">
+            <div id="glm-directionsMap" class="glm-map">(directions load here)</div>
+            <div id="directions-panel"></div>
+        </div>
+
+        <div class="row">
+            <div id="glm-directions" class="small-12 columns glm-member-entry-container">
+                <div class="row">
+                    <div class="small-12 medium-4 columns">
+                        Directions type:
+                        <select id="directionsType" name="directionsType">
+                            <option value="DRIVING">Driving</option>
+                            <option value="WALKING">Walking</option>
+                            <option value="BICYCLING">Bicycling</option>
+                             <option value="TRANSIT">Transit Services</option> - Doesn't seem to work
+                        </select>
+                    </div>
+                    <div class="small-12 medium-8 columns">
+                        Enter address to show directions ...
+                        <input id="glm-startLocation" type="text" name="startLocation" class="glm-form-text-input" placeholder=""><br>
+                    </div>
+                </div>
+                <div class="row">
+                    <div style="text-align: center;">
+                        <input type="submit" id="glm-showDirectionsButton" class="button button-secondary glm-button glm-member-button" value="Show Directions">
+                        <input type="submit" id="glm-showLocationButton" class="button button-secondary glm-button glm-hidden glm-member-button" value="Show {$terms.term_member_cap} Location">
+                    </div>
+                </div>
+            </div>
+        </div>-->
+    {/if}
+<a id="topAnchor"></a>
+
+<!--    <h3>{$terms.term_member_cap} Detail</h3>-->
+    <div class="">
+        <script>//document.write('<a id="glm-member-detail-takeback-mini" class="button glm-member-button" href="' + document.referrer + '"><span>Back to listing</span></a>');</script>
+        <a id="glm-member-detail-takeback-mini" class="glm-member-db-takeback-mini button glm-member-button" href="javascript:history.go(-1)"><span>Back to listing</span></a>
+        <div id="glm-member-detail-container" class="columns glm-member-container">
+            <div id="glm-member-detail-top-box" class="">
+                {if $member.logo && $settings.detail_show_logo}
+<!--                    <div class="glm-member-detail-logo-wrapper">
+                        <img class="glm-member-list-image-left" src="{$glmPluginMediaUrl}/images/{$settings.detail_logo_size}/{$member.logo}">
+                    </div>-->
+                {/if}
+                {if $member.url && $settings.detail_show_url}
+                    <input type="hidden" id="glm-member-detail-click-logged" value="0">
+                {/if}
+
+                <div id="glm-member-detail-contact-info" class="">
+                    <h4 class="glm-member-title">  {$member.member}</h4>
+    <!-- Member name, address, and basic information -->
+
+                    {if $settings.detail_show_address}
+                        <div class="glm-member-detail-address-wrapper">
+                            {apply_filters('glm-member-db-front-members-detail-addressTop', '', $member.id)}
+                            {if $settings.detail_show_street}
+                                {if $member.addr1}<div>{$member.addr1}</div>{/if}
+                                {if $member.addr2}<div>{$member.addr2}</div>{/if}
+                            {/if}
+                            {if $settings.memb_info_location && $settings.detail_show_citystatezip}
+                                <div>
+                                    {if $member.city}
+                                        <span>{$member.city}{if $member.state.value}, {/if}</span>
+                                    {/if}
+                                    {if $member.state.value}
+                                        <span>{$member.state.value}</span>
+                                    {/if}
+                                    {if $member.zip}
+                                        {$member.zip}
+                                    {/if}
+                                </div>
+                            {/if}
+                            {if $member.country.name && $settings.detail_show_country}
+                                <div>{$member.country.name}</div>
+                            {/if}
+                            {apply_filters('glm-member-db-front-members-detail-addressBottom', '', $member.id)}
+                        </div>
+                    {/if}
+                    {apply_filters('glm-member-db-front-members-detail-otherDetailTop', '', $member.id)}
+                    {if $settings.memb_info_location && $member.region && $settings.detail_show_region}
+                        <div class="glm-member-detail-region-wrapper">
+                            {$terms.term_admin_menu_configure_regions}: {$member.region}
+                        </div>
+                    {/if}
+                    {if $settings.memb_info_location}
+                    <div class="glm-member-detail-phone-wrapper">
+                        {if $member.phone && $settings.detail_show_phone}
+                            <div class="glm-member-detail-contact-phone">
+                                <div class="glm-field-value">Phone: {apply_filters('glm_associate_phone_filter', $member.phone)}</div>
+                            </div>
+                        {/if}
+                        {if $member.toll_free && $settings.detail_show_tollfree}
+                            <div>
+                                <div class="glm-field-value">Toll Free: {apply_filters('glm_associate_phone_filter', $member.toll_free)}</div>
+                            </div>
+                        {/if}
+                    </div>
+                    {/if}
+                    {apply_filters('glm-member-db-front-members-detail-otherDetailBottom', '', $member.id)}
+                    <div id="glm-member-detail-links">
+                        {apply_filters('glm-member-db-front-members-detail-linksTop', '', $member.id)}
+                        {if $settings.detail_show_url}<a id="glm-member-detail-website-link" class="small-12" data-member-id="{$member.member_pointer}" data-member-slug="{$member.member_slug}" href="{$member.url}"{if $settings.detail_show_url_newtarget} target="_blank"{/if}>Visit Website</a>{/if}
+                        {if $member.email && $settings.detail_show_email}<a href="mailto:{$member.email}">Email</a>{/if}
+                        {if $member.reservation_url}<a target="_blank" href="{$member.reservation_url}">Reserve Now</a>{/if}
+                        {if $settings.detail_show_coupons && $coupons}<a href="#glm-member-detail-coupons">Coupons</a>{/if}
+                        {if $member.live_cam_type.value==1 && $member.live_cam_url != "" && $settings.detail_show_live_cam}
+                            <a target="_blank" href="{$member.live_cam_url}">
+                                {$terms.term_webcam_cap}
+                            </a>
+                        {/if}
+                        {apply_filters('glm-member-db-front-members-detail-linksBottom', '', $member.id)}
+                    </div>
+
+                    <div class="glm-member-db-socials">
+                        {apply_filters('glm-member-db-front-members-list-memberDetailBottom', '', $member.id)}
+                        {apply_filters('glm-member-db-front-members-social-list', '', $member.id)}
+                    </div>
+                </div>
+
+                {if $settings.detail_show_map}
+                <div id="glm-member-detail-map-wrapper" class="">
+                    <div id="glm-locationMap-container" style="height: 140px;">
+      {if $settings.selected_map_interface == 1}
+                    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
+                    <script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
+                    <link rel="stylesheet" href="{$jsUrl}/Leaflet.loading/src/Control.Loading.css" />
+                    <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
+                    <div id="LeafletMapContainer" style="height: 250px; width: 100%;">(map loads here)</div>
+      {/if}
+      {if $settings.selected_map_interface == 2}
+                    <script src="//maps.googleapis.com/maps/api/js?sensor=true&key={$settings.google_maps_api_key}"></script>
+                    <script type="text/javascript">var enableDraggable = true;</script>
+                    <div id="glm-locationMap" class="glm-map glmgrid-small-12 glmgrid-columns">(map loads here)</div>
+      {/if}
+                </div>
+                <div id="glm-member-detail-map-button" class="button map-button">view map</div>
+
+                    <div id="member-lat" rel="{$member.lat}"></div>
+                    <div id="member-lon" rel="{$member.lon}"></div>
+                    <form id="MemberDrivingDirectionsForm" name="MemberDrivingDirectionsForm" method="post" action="">
+                        <input type="hidden" id="MemberLocation" name="MemberLocation" value="{$member.member_name|escape}">
+                        <input type="hidden" id="MemberLat" name="MemberLat" value="{$member.lat}">
+                        <input type="hidden" id="MemberLon" name="MemberLon" value="{$member.lon}">
+                        <input type="submit" class="button map-button text-center" id="MemberDrivingDirectionSubmit" name="MemberDrivingDirectionSubmit" value="Directions">
+                        <input type="submit" class="button map-button text-center" id="MemberDrivingDirectionSubmitMobile" name="MemberDrivingDirectionSubmit" value="Driving Directions">
+                    </form>
+                </div>
+     {/if}
+            </div>
+
+
+<!-- Attributes: amenitities, credit cards, etc -->
+            <div id="glm-member-detail-descr-row" class="small-12 columns">
+                {apply_filters('glm-member-db-front-members-detail-attributesTop', '', $member.id)}
+<!--                {if $featuredImage}
+                <div class="glm-member-detail-featured-image-wrapper small-12 columns">
+                    <img src="{$glmPluginMediaUrl}/images/large/{$featuredImage}">
+                    {if $featuredImageCaption}
+                    <div class="glm-member-detail-featured-image-caption">
+                        {$featuredImageCaption}
+                    </div>
+                    {/if}
+                </div>
+                {/if}-->
+                <div id="glm-member-detail-intro-desc">
+                    {if $member.short_descr && $settings.detail_show_short_descr}{$member.short_descr|nl2br}{/if}
+                </div>
+                <div id="glm-member-detail-fullprofile-toggle">Expand All</div>
+                <div id="glm-member-detail-data-container">
+                    {apply_filters('glm-member-db-front-members-detail-packages', '', $member.id)}
+                    <div id="glm-member-detail-description-toggle" class="glm-member-detail-content-toggle">Description</div>
+                    <div id="glm-member-detail-description-container" class="glm-member-detail-content-data">
+                        <div id="glm-member-detail-description" >
+                            {if $member.descr && $settings.detail_show_descr}
+                                {apply_filters('glm-member-db-front-members-detail-descriptionTop', '', $member.id)}
+                                {$member.descr|nl2br}
+                                {apply_filters('glm-member-db-front-members-detail-descriptionBottom', '', $member.id)}
+                            {/if}
+                        </div>
+                        <div class="glm-member-detail-sub-data-links row">
+                            <a class="glm-member-detail-content-toggle">Collapse</a>
+                            <a class="glm-member-detail-link-to-top">Back to top</a>
+                        </div>
+                    </div>
+
+                    {apply_filters('glm-member-db-front-members-detail-events', '', $member.id)}
+
+                    {apply_filters('glm-member-db-front-members-detail-couponsBefore', '', $member.id)}
+                    {if $settings.detail_show_coupons && $coupons}
+                    <div id="glm-member-detail-coupons-toggle" class="glm-member-detail-content-toggle">Coupons</div>
+                    <div id="glm-member-detail-coupons-container" class="glm-member-detail-content-data small-12">
+                        <a name="glm-member-detail-coupons"></a>
+                        <div class="glm-member-detail-sub-data-links row">
+                            <a class="glm-member-detail-content-toggle">Collapse</a>
+                            <a class="glm-member-detail-link-to-top">Back to top</a>
+                        </div>
+                    </div>
+                    {/if}
+                    {apply_filters('glm-member-db-front-members-detail-couponsAfter', '', $member.id)}
+
+                    {apply_filters('glm-member-db-front-members-detail-amenitiesBefore', '', $member.id)}
+                    {if $member.amenities && $settings.detail_show_amenities}
+                    <div id="glm-member-detail-amenities-toggle" class="glm-member-detail-content-toggle">Amenities & Services</div>
+                    <div id="glm-member-detail-amenities-container" class="glm-member-detail-content-data small-12">
+                        <table class="glm-member-detail-table">
+                            {foreach $member.amenities as $a}
+                            <tr>
+                                <td>
+                                    {$a.name}
+                                </td>
+                            </tr>
+                            {/foreach}
+                        </table>
+                        <div class="glm-member-detail-sub-data-links row">
+                            <a class="glm-member-detail-content-toggle">Collapse</a>
+                            <a class="glm-member-detail-link-to-top">Back to top</a>
+                        </div>
+                    </div>
+                    {/if}
+                    {apply_filters('glm-member-db-front-members-detail-amenitiesAfter', '', $member.id)}
+<!-- Not using credit cards for now
+                    {apply_filters('glm-member-db-front-members-detail-creditcardsBefore', '', $member.id)}
+                    {if $member.cc_type && $settings.detail_show_creditcards}
+                    <div id="glm-member-detail-creditcards-toggle" class="glm-member-detail-content-toggle">Credit Cards</div>
+                    <div id="glm-member-detail-creditcards-container" class="glm-member-detail-content-data small-12">
+                        <table class="glm-member-detail-table">
+                            <tr><th>Credit Cards Accepted:</th></tr>
+                        {foreach $member.cc_type.names as $c}
+                            <tr><td>{$c}</td></tr>
+                {/foreach}
+                        </table>
+                        <div class="glm-member-detail-sub-data-links row">
+                            <a class="glm-member-detail-content-toggle">Collapse</a>
+                            <a class="glm-member-detail-link-to-top">Back to top</a>
+                        </div>
+                    </div>
+                    {/if}
+                    {apply_filters('glm-member-db-front-members-detail-creditcardsAfter', '', $member.id)}
+-->
+                    {apply_filters('glm-member-db-front-members-detail-categoriesBefore', '', $member.id)}
+                    {if $member.categories && $settings.detail_show_categories}
+                    <div id="glm-member-detail-categories-toggle" class="glm-member-detail-content-toggle">Categories</div>
+                    <div id="glm-member-detail-categories-container" class="glm-member-detail-content-data small-12">
+                        <table class="glm-member-detail-table">
+<!--                            <tr><th>{$terms.term_member_cap} Categories</th></tr>-->
+                            {foreach $member.categories as $c}
+                            <tr>
+                                <td>
+                                    {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
+                                </td>
+                            </tr>
+                            {/foreach}
+                        </table>
+                        <div class="glm-member-detail-sub-data-links row">
+                            <a class="glm-member-detail-content-toggle">Collapse</a>
+                            <a class="glm-member-detail-link-to-top">Back to top</a>
+                        </div>
+                    </div>
+                    {/if}
+                    {apply_filters('glm-member-db-front-members-detail-categoriesAfter', '', $member.id)}
+                    {apply_filters('glm-member-db-front-members-detail-videoBefore', '', $member.id)}
+                    {if $member.video_url && $settings.detail_show_video}
+                    <div id="glm-member-detail-video-toggle" class="glm-member-detail-content-toggle">Video</div>
+                    <div id="glm-member-detail-video-container" class="glm-member-detail-content-data small-12">
+                        <table class="glm-member-detail-table">
+                            <div><h3 class="glm-member-detail-video-title">{$member.video_title}</h3></div>
+                            <div class="glm-member-detail-video-embed">{$member.video_embed}</div>
+                            <div class="glm-member-detail-video-descr"><p>{$member.video_descr}</p></div>
+                        </table>
+                        <div class="glm-member-detail-sub-data-links row">
+                            <a class="glm-member-detail-content-toggle">Collapse</a>
+                            <a class="glm-member-detail-link-to-top">Back to top</a>
+                        </div>
+                    </div>
+                    {/if}
+
+                    {apply_filters('glm-member-db-front-members-detail-videoAfter', '', $member.id)}
+
+                    {apply_filters('glm-member-db-front-members-detail-liveCamBefore', '', $member.id)}
+                    {if $member.live_cam_type.value!=1 && $member.live_cam_url && $settings.detail_show_live_cam}
+                    <div id="glm-member-detail-live-cam-toggle" class="glm-member-detail-content-toggle">{$terms.term_webcam_cap}</div>
+                    <div id="glm-member-detail-live-cam-container" class="glm-member-detail-content-data small-12">
+                        <table class="glm-member-detail-table">
+                            <div><h3 class="glm-member-detail-live-cam-title">{$member.live_cam_title}</h3></div>
+                        {if $member.live_cam_type.value == 2}
+                            <img width="auto" max-height="315" src="{$member.live_cam_url}">
+                        {/if}
+                            <div class="glm-member-detail-live-cam-descr"><p>{$member.live_cam_descr}</p></div>
+                        </table>
+                        <div class="glm-member-detail-sub-data-links row">
+                            <a class="glm-member-detail-content-toggle">Collapse</a>
+                            <a class="glm-member-detail-link-to-top">Back to top</a>
+                        </div>
+                    </div>
+                    {/if}
+
+                   {if $haveFiles}
+                    <div id='glm-member-detail-files-toggle' class='glm-member-detail-content-toggle'>Files</div>
+                    <div id='glm-member-detail-files-container' class='glm-member-detail-content-data small-12'>
+                        {foreach $files as $file}
+                            <a class="glm-file-detail" href="{$glmPluginMediaUrl}/files/{$file.file_name}" target="_blank">{if $file.caption}{$file.caption}{else}{$file.name}{/if}</a>
+                        {/foreach}
+                        <div class='glm-member-detail-sub-data-links row'>
+                            <a class='glm-member-detail-content-toggle'>Collapse</a>
+                            <a class='glm-member-detail-link-to-top'>Back to top</a>
+                        </div>
+                    </div>
+                    {/if}
+
+                    {apply_filters('glm-member-db-front-members-detail-liveCamAfter', '', $member.id)}
+
+                    {$customFields = apply_filters('get_glm_custom_fields','glm-member-db',$member.memberInfoId)}
+                    {if !empty($customFields[0].field_data)}
+                        <div id="glm-member-detail-hours-toggle" class="glm-member-detail-content-toggle">Hours</div>
+                        <div id="glm-member-detail-hours-container" class="glm-member-detail-content-data">
+                            <div id="glm-member-detail-hours" >
+
+                                {foreach $customFields as $field}
+                                    {if $field.field_data}
+                                        <div class="glm-member-detail-custom-field">
+                                            <div class="row">
+                                                <span class="glm-member-detail-custom-field-name small-12 medium-5 columns" >{$field.field_name}</span>
+                                                <span class="glm-member-detail-custom-field-data small-12 medium-7 columns">{$field.field_data}</span>
+                                            </div>
+
+                                        </div>
+                                    {/if}
+                                {/foreach}
+                            </div>
+
+                            <div class="glm-member-detail-sub-data-links row">
+                                <a class="glm-member-detail-content-toggle">Collapse</a>
+                                <a class="glm-member-detail-link-to-top">Back to top</a>
+                            </div>
+                        </div>
+                    {/if}
+
+                    {apply_filters('glm-member-db-front-members-detail-imageGalleryBefore', '', $member.id)}
+                    {if $settings.detail_show_imagegallery && $haveImageGallery}
+                    <div id="glm-member-detail-images-toggle" class="glm-member-detail-content-toggle">Photos</div>
+                    <div id="glm-member-detail-images-container" class="glm-member-detail-content-data small-12">
+                        {apply_filters('glm-member-db-front-members-detail-galleryTop', '', $member.id)}
+<!--                        <h2>Photo Gallery</h2>-->
+
+                            <ul class="small-block-grid-1 medium-block-grid-2 large-block-grid-3">
+                        {foreach $imageGallery as $i}
+                                <li>
+                                    <a class="glm-member-detail-images-thumb fancybox" data-fancybox="images" rel="gallery1" href="{$glmPluginMediaUrl}/images/large/{$i.file_name}" style="background-image: url('{$glmPluginMediaUrl}/images/small/{$i.file_name}')">
+                                        <img class="glm-member-filler-image" src="{$assetsUrl}/filler_s.gif" alt="{$i.caption}">
+                                    </a>
+                                </li>
+                        {/foreach}
+                            </ul>
+                        {apply_filters('glm-member-db-front-members-detail-galleryBottom', '', $member.id)}
+                        <div class="glm-member-detail-sub-data-links row">
+                            <a class="glm-member-detail-content-toggle">Collapse</a>
+                            <a class="glm-member-detail-link-to-top">Back to top</a>
+                        </div>
+                    </div>
+                    {/if}
+                    {apply_filters('glm-member-db-front-members-detail-imageGalleryAfter', '', $member.id)}
+
+                    {apply_filters('glm-member-db-front-members-detail-dataBottom','',$member.id)}
+                </div>
+            </div>
+            {apply_filters('glm-member-db-front-members-detail-attributesBottom', '', $member.id)}
+<!-- Image Gallery -->
+
+        </div>
+    </div>
+    {apply_filters('glm-member-db-front-members-detail-pageBottom', '', $member.id)}
+
+    <div id="findingYourLocationDialog" title="Your present location">
+        <p>
+            We would like to lookup your present location so we can provide accurate directions.
+        </p><p>
+            Your browser may ask for your permission to determine your location
+            (possibly at the top of this page).
+        </p><p>
+            If you agree, we will use your current location as the starting point for
+            directions. If you don't agree, you may enter a starting location when the map is displayed.
+        </p>
+    </div>
+
+    <script type="text/javascript">
+        {apply_filters('glm-member-db-front-members-detail-jqueryScriptTop', '', $member.id)}
+
+        jQuery(document).ready(function($) {
+
+            // Dialog box to show when submitting checkout page
+            $( "#findingYourLocationDialog" ).dialog({
+                autoOpen: false,
+                width: 600
+            });
+            $( "#lookingUpYourLocationDialog" ).dialog({
+                autoOpen: false,
+                width: 600
+            });
+
+            var trackToConsole = true;         // Send debug/progress messages to developers console (Firefox)
+            var trackPositionInterval = 60000;  // Time interval for getting user's current geolocation - 1 Min
+            var highAccuracyPoisition = true;   // Request high-accuracy user geolocation from user's device
+            var postionTimeout = 15000;         // Maximum amount of time we'll wait for geolocation result - 15 Sec
+
+            // Process form for sending user to Google Maps for driving directions
+            $("#MemberDrivingDirectionsForm").submit(function(){
+
+                var stopGeolocation = false;
+                var myCurrentLocation = false;
+
+                // If we already have a location
+                if (myCurrentLocation) {
+                    sendToGoogleMaps(myCurrentLocation);
+                } else {
+
+                    // We don't yet have a location, so try to get it
+                    if (navigator.geolocation) {
+
+                        $( "#findingYourLocationDialog" ).dialog("open");
+
+                        // Get the user's location
+                        navigator.geolocation.getCurrentPosition(function(position) {
+
+                            // Save their current location
+                            myCurrentLocation = {
+                                  lat: position.coords.latitude,
+                                  lon: position.coords.longitude
+                            };
+
+                            $( "#findingYourLocationDialog" ).dialog("close");
+                            sendToGoogleMaps(myCurrentLocation);
+
+                        // If we can't get the location, then go without it
+                        },
+                        function(err) {
+                            $( "#findingYourLocationDialog" ).dialog("close");
+                            sendToGoogleMaps(false);
+                        },
+                        {
+                            enableHighAccuracy: highAccuracyPoisition,
+                            timeout:            postionTimeout,
+                            maximumAge:         trackPositionInterval - 100     // Allows cached position resulting from other requests during interval
+                        });
+
+                    }
+
+                }
+
+                return false;
+
+            });
+
+            function sendToGoogleMaps(myLocation) {
+                var lat = plusifyMyValue(jQuery("#MemberLat").val());
+                var lon = plusifyMyValue(jQuery("#MemberLon").val());
+                var dest = '&destination=' + lat + '%2C+' + lon;
+
+                var origin = '';
+                if (myLocation) {
+                    var myLat = plusifyMyValue(myLocation.lat);
+                    var myLon = plusifyMyValue(myLocation.lon);
+                    origin = '&origin=' + myLat + '%2C+' + myLon;
+                }
+
+                var url = "https://www.google.com/maps/dir/?api=1" + origin + dest;
+                window.open(url, '_blank');
+            }
+
+            function plusifyMyValue(v) {
+                if (v > 0) {
+                    v = '+' + v;
+                }
+                return v;
+            }
+
+            // change the member detail photos grid structure depending
+            var images_container = $("#glm-member-detail-images-container");
+            // Check if Foundation exists first
+            if ( typeof window.Foundation != 'undefined' ) {
+                var foundation_version = window.Foundation.version;
+
+                if( foundation_version.charAt(0) === "6" ){
+                    images_container.children('ul').removeClass('small-block-grid-1 medium-block-grid-2 large-block-grid-3');
+                    images_container.children('ul').addClass('row small-up-1 medium-up-2 large-up-3');
+                    images_container.children('ul').find('li').addClass('column');
+                }
+            }
+
+            // Replace all non-number special characters in a phone number with the designated infix
+            {if $settings.phone_infix}
+                //var processedPhone = $('.glm-member-detail-contact-phone .glm-field-value').text().trim().replace(/[^a-zA-Z0-9 ]/g, '{$settings.phone_infix}');
+                //$('.glm-member-detail-contact-phone .glm-field-value').text(processedPhone);
+            {/if}
+
+            // Check a hidden field to see if this is a page refresh (doesn't detect forced reload)
+            var isRefresh = $("#glm-member-detail-click-logged").val();
+
+            // Also check the HTML 5 performance.navigation.type value (1 = reload, 2 = via history)
+            if(window.performance && (performance.navigation.type  == 1 || performance.navigation.type  == 2)) {
+                isRefresh = 1;
+            }
+
+            // If this is not a refresh or reload, send AJAX action to record click.
+            if (isRefresh == 0) {
+                $.ajax({
+                   url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberDetailClick&memberId={$member.member_pointer}&memberSlug={$member.member_slug}"
+                });
+                $("#glm-member-detail-click-logged").val(1);
+            }
+
+            // Processes click-through counts for website links
+            $('#glm-member-detail-website-link').on('click', function() {
+
+                // Get member ID
+                var memberId = $(this).attr('data-member-id');
+                var memberSlug = $(this).attr('data-member-slug');
+
+                // Send AJAX action to record click.
+                $.ajax({
+                   url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberClickThrough&memberId=" + memberId + "&memberSlug=" + memberSlug
+                });
+
+            });
+
+            // Automatically zoom and expand the relevant
+            $('html').addClass('glmassociatememberdetail glmassociatetop');
+            if ("{$expanded}" != "") {
+                var expandTarget = "glm-member-detail-{$expanded}";
+                if ($("#"+expandTarget+"-container").length) {
+                    $("#"+expandTarget+"-container").show("fast", "swing",  function() {});
+                    $("#"+expandTarget+"-toggle").addClass("selected");
+                    fullProfileCheck(expandTarget);
+                    $('html, body').animate({
+                        scrollTop: $("#"+expandTarget+"-toggle").offset().top-10
+                    }, 500);
+                }
+            }
+
+            $("a.glm-member-detail-images-thumb").fancybox({
+
+                 helpers: {
+                    overlay: { locked: false },
+                     title: { type: 'inside'},
+                },
+                afterLoad: function(){
+                    this.title = $(this.element).find('img').attr('alt');
+                }
+            });
+
+            $("a.glm-member-detail-images-thumb").click(function(e) {
+                e.preventDefault();
+            });
+
+            $('.glm-member-detail-link-to-top').click(function () {
+                $('body,html').animate({
+                    scrollTop: $("#glm-member-detail-takeback-mini").offset().top-10
+                }, 75);
+            });
+
+            // Open the appropriate section if a link is clicked
+            $('.link-open-detail-content-data').click(function(e) {
+                var target = $(this).attr("id").slice(0, -5);
+                // e.g.: #glm-member-detail-packages-link
+                $("#"+target+"-container").show("fast", "swing",  function() {});
+                $("#"+target+"-toggle").addClass("selected");
+                fullProfileCheck(target);
+                $('html, body').animate({
+                    scrollTop: $("#"+target+"-toggle").offset().top-{$settings.detail_top_offset_autoscroll}
+                }, 500);
+            });
+
+            // Open the following sections by default
+            if ($(window).width() >= 1024) {
+
+                if( $("#glm-member-detail-packages-container").length > 0 && $("#glm-member-detail-packages-toggle").length > 0){
+                    $("#glm-member-detail-packages-container").slideToggle("fast", "swing",  function() {});
+                    $("#glm-member-detail-packages-toggle").toggleClass("selected");
+                }
+
+                if( $("#glm-member-detail-images-container").length > 0 && $("#glm-member-detail-description-toggle").length > 0){
+                    $("#glm-member-detail-images-container").slideToggle("fast", "swing",  function() {});
+                    $("#glm-member-detail-images-toggle").toggleClass("selected");
+                }
+
+            }
+
+            // Open or close the appropriate section if a toggle is clicked
+            $(".glm-member-detail-content-toggle").not("#glm-member-detail-fullprofile-toggle").click(function() {
+                if($(this).parents('.glm-member-detail-sub-data-links').length) {
+                    var target = $(this).parent().parent().attr("id").slice(0, -10);
+                } else {
+                    var target = $(this).attr("id").slice(0, -7);
+                }
+                $("#"+target+"-container").slideToggle("fast", "swing",  function() {});
+                $("#"+target+"-toggle").toggleClass("selected");
+                fullProfileCheck(target);
+            });
+
+            // Change the toggle button based on whether all the content sections are expanded
+            function fullProfileCheck(target) {
+                if ($("#glm-member-detail-data-container > .glm-member-detail-content-toggle.selected").length == $("#glm-member-detail-data-container > .glm-member-detail-content-toggle").length) {
+                    $("#glm-member-detail-fullprofile-toggle").addClass("selected");
+                } else {
+                    $("#glm-member-detail-fullprofile-toggle").removeClass("selected");
+                }
+            }
+
+            // Open or close every data container if the fullprofile toggle is clicked
+            $("#glm-member-detail-fullprofile-toggle").click(function() {
+                if ($(this).hasClass("selected")) {
+                    $(".glm-member-detail-content-data").slideUp(175, "swing",  function() {});
+                    $(".glm-member-detail-content-toggle").removeClass("selected");
+                    $(this).toggleClass("selected");
+                } else {
+                    $(".glm-member-detail-content-data").not($(this)).slideDown(350, "swing",  function() {});
+                    $(".glm-member-detail-content-toggle").addClass("selected");
+                    $(this).toggleClass("selected");
+                }
+            });
+
+            // Expand the takeback button on hover. Progressively add ellipses when clicked and loading
+            $("#glm-member-detail-takeback-mini").click(function() {
+                $("#glm-member-detail-takeback-mini span").html("Loading");
+                $("#glm-member-detail-takeback-mini").css('min-width','170px');
+                var count = 0;
+                setInterval(function(){
+                    count++;
+                    var dots = new Array(count % 5).join(' .');
+                    $('#glm-member-detail-takeback-mini span').html("Loading ." + dots);
+                  }, 500);
+            });
+
+
+    {if $settings.detail_show_map}
+
+            // Expand/contract map container and change the toggle button
+            $("#glm-member-detail-map-button").click(function() {
+                var mapC = "#glm-locationMap-container";
+                var map = "#glm-locationMap";
+                var mapNewH = 0;
+                var mapOverflow = 'hidden';
+                var mapBtnTxt = 'view map';
+                if ($(mapC).height() == 0) {
+                    mapNewH = 140;
+                    mapV = 'visible';
+                    mapBtnTxt = 'hide map'
+                }
+                $(mapC).animate({
+                    overflow: mapOverflow,
+                    height: mapNewH
+                }, 140, "swing", function() {
+
+                });
+                $(this).html(mapBtnTxt);
+            });
+
+      {if $settings.selected_map_interface == 1}
+
+            /*
+             *  Leaflet Map
+             *  API reference: https://leafletjs.com/reference-1.3.2.html
+             */
+
+            // Get member location if available, otherwise use this site's default locatgion
+            var myLocation = false;
+        {if $member.lat != 0 && $member.lon != 0}
+            var memberLat = {$member.lat};
+            var memberLon = {$member.lon};
+        {else}
+            var memberLat = {$settings.maps_default_lat}};
+            var memberLon = {$settings.maps_default_lon}};
+        {/if}
+
+            function initMap() {
+
+                var leafletMap = L.map('LeafletMapContainer').setView([memberLat, memberLon], {$settings.maps_default_zoom});
+                var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
+                var leafletMinZoom = 5;
+                var leafletMaxZoom = 18;
+                var geocoder;
+
+
+                // Tile server
+                L.tileLayer(leafletTileServer, {
+                    attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery Â© <a href="https://www.gaslightmedia.com/">Gaslight Media</a>',
+                    minZoom: leafletMinZoom,
+                    maxZoom: leafletMaxZoom,
+                    id: 'nothot'
+                }).addTo(leafletMap);
+
+                var loadingControl = L.Control.loading({
+                    separate: true,
+                    delayIndicator: 500
+                });
+                leafletMap.addControl(loadingControl);
+
+                // Marker
+                var leafletMarker = L.marker([memberLat, memberLon]).addTo(leafletMap);
+
+            }
+
+      {/if}
+
+      {if $settings.selected_map_interface == 2}
+
+            /*
+             * Google Maps
+             *  API reference: https://developers.google.com/maps/documentation/javascript/reference
+             */
+
+            var myLocation = false;
+         {if $member.lat != 0 && $member.lon != 0}
+            var memberlocation = new google.maps.LatLng({$member.lat}, {$member.lon});
+         {else}
+            var memberlocation = new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon});
+         {/if}
+
+            function initMap() {
+
+                // Set default - Need to make this configurable
+                var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
+                       zoom: {$settings.maps_default_zoom},
+                       center: memberlocation,
+                    disableDefaultUI: false,
+                    mapTypeId: google.maps.MapTypeId.MAP,
+                });
+
+                // Create a marker for this member
+         {if $member.lat != 0 && $member.lon != 0}
+                var marker = new google.maps.Marker({
+                    map: map,
+                    position: new google.maps.LatLng({$member.lat}, {$member.lon}),
+                    draggable: false,
+                    animation: google.maps.Animation.DROP,
+                    title: '{$member.member|escape}'
+                });
+         {/if}
+
+            }
+
+            // Load map
+            google.maps.event.addDomListener(window, 'load', initMap);
+
+      {/if}
+
+    {/if} {*detail_show_map*}
+
+            $(window).load(function(){
+                initMap();
+            });
+
+        }); // jquery
+
+        {apply_filters('glm-member-db-front-members-detail-jqueryScriptBottom', '', $member.id)}
+
+
+
+    </script>
+
+{else}
+        <p>For some reason the specified {$terms.term_member} was not found. Please try again.</p>
+{/if}
+
+
+{include file='front/footer.html'}
diff --git a/glm-member-db/views/front/members/list.html b/glm-member-db/views/front/members/list.html
deleted file mode 100755 (executable)
index 5d4ae41..0000000
+++ /dev/null
@@ -1,742 +0,0 @@
-{if $haveMessages}
-
-    <div style="color: red !important;">
-        <h2>WARNING:</h2>
-        <ul>
-            {foreach $messages as $m}
-                <li>{$m}</li>
-            {/foreach}
-        </ul>
-    </div>
-
-{else}
-
-
-    {if $showSettings.list_show_outer_container}
-
-        {include file='front/members/header.html'}
-
-
-        <div class="glm-member-db-list glm-member-db-{$view}-view
-            {if $showSettings.list_map_show_opened || $view == 'map'}map-opened {else}map-closed {/if}
-            {if $showSettings.list_show_search_filters_opened}filters-opened{else}filters-closed{/if}
-        ">
-    {/if}
-            {apply_filters('glm-member-db-front-members-list-pageTop', '')}
-
-    {if $showSettings.list_map_show_container}
-            <div class="glm-member-list-inner-wrapper">
-    {/if}
-
-    {if $showSettings.list_show_map}
-
-        {if $settings.selected_map_interface == 1}
-            {* Leaflet Map *}
-            <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
-            <script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
-            <link rel="stylesheet" href="{$jsUrl}/LeafletMarkerCluster/dist/MarkerCluster.Default.css" />
-            <script src="{$jsUrl}/LeafletMarkerCluster/dist/leaflet.markercluster-src.js"></script>
-            <link rel="stylesheet" href="{$jsUrl}/Leaflet.loading/src/Control.Loading.css" />
-            <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
-            <link rel="stylesheet" href="//unpkg.com/leaflet-gesture-handling/dist/leaflet-gesture-handling.min.css" type="text/css">
-            <script src="//unpkg.com/leaflet-gesture-handling"></script>
-        {/if}
-        {if $settings.selected_map_interface == 2}
-            {* Google Map *}
-            <script src="//maps.googleapis.com/maps/api/js?&key={$settings.google_maps_api_key}"></script>
-        {/if}
-
-        {if $showSettings.list_map_show_button}
-            <div id="glm-member-list-map-toggle" class="button glm-button">View Map</div>
-        {/if}
-
-    {/if} {* list_show_map *}
-
-    {if $showSettings.list_show_search}
-
-        <div id="glm-member-list-filters-wrapper">
-            {if $showSettings.list_search_show_button}
-                <div id="glm-member-list-filters-button" class="button glm-button glm-member-list-filters-toggle">
-                    FILTERS
-                </div>
-            {/if}
-            <div id="glm-member-list-filters-box">
-                {if $showSettings.list_search_show_button}
-                    <div id="glm-member-list-filters-close" class="button glm-button glm-member-list-filters-toggle">Close</div>
-                {/if}
-                <form action="{$thisUrl}?glm_action=list#glm-member-list-filters-button" method="post" enctype="multipart/form-data">
-                    {if isset($wpSearch)}<input type="hidden" name="s" value="{$wpSearch|escape:quotes}">{/if}
-                    <div class="glma-small-12 glma-columns glm-member-search glm-member-entry-container glm-member-container">
-                        {apply_filters('glm-member-db-front-members-list-searchFormTop', '')}
-                        <div>
-                            <h3>Refine Search</h3>
-                        </div>
-                        {if $showSettings.list_show_search_category}
-                            <div>
-                                By Category:
-                                <select name="categorySearch" id="categorySelect">
-                                    {if !$singleCategory}
-                                        <option value="">(all)</option>
-                                    {/if}
-                                    {foreach from=$categories item=v}
-                                        <option value="{$v.id}"{if $v.default} selected="selected"{/if}>
-                                            {if $v.parent}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
-                                        </option>
-                                    {/foreach}
-                                </select>
-                            </div>
-                        {/if} {* list_show_search_category *}
-
-                        {if $showSettings.list_show_search_amenities}
-                            {if $amenities|@count gt 0}
-                                <div>
-                                    By Amenities:
-                                    <select name="amenitySearch[]" id="amenitySelect" title="Click to Select Amenities" multiple="multiple">
-                                        {foreach from=$amenities item=v}
-                                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
-                                                {$v.name}
-                                            </option>
-                                        {/foreach}
-                                    </select>
-                                </div>
-                            {/if}
-                        {/if} {* list_show_search_amenities *}
-
-                        {if $showSettings.list_show_search_region}
-                            {if $regions|@count gt 0}
-                                <div>
-                                    By Regions:
-                                    <select name="regionUserSearch[]">
-                                        {if $regions|@count gt 1}
-                                            <option value"">(all)</option>
-                                        {/if}
-                                        {foreach from=$regions item=v}
-                                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
-                                                {$v.name}
-                                            </option>
-                                        {/foreach}
-                                    </select>
-                                </div>
-                            {/if}
-                        {/if} {* list_show_search_region *}
-
-                        {if $showSettings.list_show_search_city}
-                            {if $cities|@count gt 0}
-                                <div>
-                                    By Cities:
-                                    <select name="cityUserSearch[]">
-                                        {if $cities|@count gt 1}
-                                            <option value"">(all)</option>
-                                        {/if}
-                                        {foreach from=$cities item=v}
-                                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
-                                                {$v.name}
-                                            </option>
-                                        {/foreach}
-                                    </select>
-                                </div>
-                            {/if}
-                        {/if} {* list_show_search_city *}
-
-                        {if $showSettings.list_show_search_text}
-
-                            <div>
-                                By Name: <input type="text" name="textSearch" value="{$textSearch}" class="glm-form-text-input">
-                            </div>
-                        {/if}
-                        <div><input class="button glm-member-button centered" type="submit" value="Search"></div>
-                        {apply_filters('glm-member-db-front-members-list-searchFormBottom', '')}
-                    </div>
-                </form>
-            </div> {* glm-member-list-filters-box *}
-        </div> {* glm-member-list-filters-wrapper *}
-
-    {/if} {* list_show_search *}
-
-    {if $showSettings.list_show_map}
-        {apply_filters('glm-member-db-front-members-list-mapTop', '')}
-        <div id="glm-locationMap-container">
-            {if $settings.selected_map_interface == 1}
-                {* Leaflet Map *}
-                <div id="LeafletMapContainer" style="height: 400px; width: 100%; border: 1px black solid; z-index: +0; margin: 0 auto;"></div>
-            {/if}
-            {if $settings.selected_map_interface == 2}
-                {* Google Map *}
-                <div id="glm-locationMap" class="glm-map">(map loads here)</div>
-            {/if}
-        </div>
-        {apply_filters('glm-member-db-front-members-list-mapBottom', '')}
-
-        {* Member information displayed in map bubbles *}
-
-        {foreach $mapItems as $m}
-            <div id="map_info_{$m.id}" class="glm-hidden">
-                {apply_filters('glm-member-db-front-members-list-mapBubbleTop', '', $m.member)}
-                {if $m.logo && $showSettings.list_map_show_logo}
-                    <div class="glm-member-list-image">
-                        <img src="{$glmPluginMediaUrl}/images/{$settings.list_map_logo_size}/{$m.logo}">
-                    </div>
-                {/if}
-                <div class="glm-map-member-name">
-                    {if $showSettings.list_map_show_detaillink && !$m.has_no_profile}
-                            <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/{if $settings.enable_multiple_profiles}{$m.id}/{/if}">{$m.member_name}</a>
-                    {else}
-                            {$m.member_name}
-                    {/if}
-                </div>
-                {if $showSettings.list_map_show_address}
-                    <p class="glm-map-member-address">
-                        {if $showSettings.list_map_show_street}
-                            {if $m.addr1}{$m.addr1}<br>{/if}
-                            {if $m.addr2}{$m.addr2}<br>{/if}
-                        {/if}
-                        {if $settings.memb_info_location && $showSettings.list_map_show_citystatezip}
-                            {if $m.city}{$m.city}{if $m.state}, {/if}{/if}{if $m.state}{$m.state}{/if}{if $m.zip} {$m.zip}{/if}
-                        {/if}
-                        {if $m.country && $showSettings.list_map_show_country}
-                            {$m.country}
-                        {/if}
-                    </p>
-                {/if} {* list_map_show_address *}
-
-                <div class="glm-member-list-info">
-                    <p class="glm-member-list-map-info">
-                        {if $m.phone && $showSettings.list_map_show_phone}<b>Phone:</b> <a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.phone)}">{apply_filters('glm_associate_phone_filter', $m.phone)}</a><br>{/if}
-                        {if $m.toll_free && $showSettings.list_map_show_tollfree}<a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.toll_free)}">{apply_filters('glm_associate_phone_filter', $m.toll_free)}</a><br>{/if}
-                        {if $m.email && $showSettings.list_map_show_email}<b>E-Mail Address:</b> <a href="mailto:{$m.email}">{$m.email}</a><br>{/if}
-                        {if $m.region && $showSettings.list_map_show_region}<b>Region:</b> {$m.region}<br>{/if}
-                        {if $m.url && $showSettings.list_map_show_url}<a href="{$m.url}"{if $showSettings.list_map_show_url_newtarget} target="_blank"{/if}>Website</a><br>{/if}
-                    </p>
-                    {if isset($m.descr) && $showSettings.list_map_show_descr}{$m.descr|nl2br}<br>{/if}
-                    {if $m.short_descr && $showSettings.list_map_show_short_descr}{$m.short_descr|truncate:200}<br>{/if}
-                    {if $showSettings.list_map_show_detaillink && !$m.has_no_profile}
-                        <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/{if $settings.enable_multiple_profiles}{$m.id}/{/if}">More Info</a>
-                    {/if}
-                    {if isset($m.categories) && $showSettings.list_map_show_categories}
-                        <div class="glm-member-list-items">
-                            <b>{$terms.term_member_cap} Categories</b>
-                            <ul>
-                                {if isset($m.categories)}
-                                    {foreach $m.categories as $c}
-                                        <li>
-                                            {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
-                                        </li>
-                                    {/foreach}
-                                {/if}
-                            </ul>
-                        </div>
-                    {/if} {* categories *}
-
-
-                    {* Not using credit cards for now  {literal}
-                        {if $m.cc_type && $showSettings.list_map_show_creditcards}
-                            <div class="glm-member-list-items">
-                                <b>Credit Cards Accepted:</b>
-                                <ul>
-                            {if isset($m.cc_type)}
-                                {foreach $m.cc_type.names as $c}
-                                    <li>{$c}</li>
-                                {/foreach}
-                            {/if}
-                                </ul>
-                            </div>
-                        {/if}
-                    {/literal} *}
-
-
-                    {if $showSettings.list_map_show_amenities}
-                        <div class="glm-member-list-items">
-                            <b>Amenities:</b>
-                            <ul>
-                        {if isset($m.amenities)}
-                            {foreach $m.amenities as $a}
-                                <li>{$a.name}</li>
-                            {/foreach}
-                        {/if}
-                            </ul>
-                        </div>
-                    {/if}
-                </div>
-                {apply_filters('glm-member-db-front-members-list-mapBubbleBottom', '', $m.member)}
-            </div> <!-- End of information displayed in map bubbles -->
-
-        {/foreach} {* mapItems *}
-
-    {/if} {* list_show_map *}
-
-    {apply_filters('glm-member-db-front-members-list-listHeaderTop', '')}
-
-    {if $haveFeaturedMembers}
-
-        <h3 id="glm-featured-members-title">Featured</h3>
-
-        <ul id="glm-featured-members-grid" class="featured-grid glma-small-block-grid-1 glma-medium-block-grid-2 glma-large-block-grid-3">
-        {foreach $featuredMembers as $fm}
-            <li class="featured-grid-item-wrapper">
-                <a class="featured-grid-item" href="{$siteBaseUrl}{$settings.canonical_member_page}/{$fm.member_slug}/">
-            {if $fm.logo && $showSettings.list_show_logo}
-                    <div class="glm-member-list-has-image">
-                        <img class="glm-member-list-image" src="{$glmPluginMediaUrl}/images/grid/{$fm.logo}">
-                    </div>
-            {elseif $showSettings.list_show_logo_filler}
-                    <div class="glm-member-list-has-image">
-                        <img class="glm-member-list-image-filler" src="{$assetsUrl}/filler_s.gif">
-                    </div>
-            {else}
-                    <div class="glm-member-list-missing-image"></div>
-            {/if}
-                    <div class="featured-grid-item-info">
-                        <h4 class="featured-member-title">{$fm.member_name}</h4>
-
-                        {if $fm.short_descr && $settings.list_show_short_descr}
-                            <div class="featured-member-description">
-                                {$fm.short_descr|nl2br}
-                            </div>
-                        {/if}
-                    </div>
-                </a>
-            </li>
-        {/foreach} {* featuredMembers *}
-        </ul>
-
-    {/if} {* haveFeaturedMembers *}
-
-    {$isSearchPage = is_page('search')}
-
-    {if $showSettings.list_show_list && !$blankStart}
-        {if $showSettings.list_show_sidebar_area}
-            <div id="listing-wrapper" class="row">
-                <div class="glm-member-list-listing-container small-12 large-8 columns">
-        {/if}
-            {if $showSettings.list_show_header_text}
-                {if $settings.list_header_text}
-                    <h3 class="glm-member-db-list-header-title">{$settings.list_header_text}</h3>
-                {elseif $isSearchPage}
-                    <h1 class="glm-member-db-list-header-title member-search-page-title">List of {$terms.term_member_plur_cap}</h1>
-                {else}
-                    <h3 class="glm-member-db-list-header-title">List of {$terms.term_member_plur_cap}</h3>
-                {/if}
-            {/if}
-            {if $haveMembers}
-                {if $showSettings.list_show_entities_found}
-                <div id="glm-member-list-terms">{$terms.term_member_plur_cap} found: {$membersFound}<br></div>
-                {/if}
-
-                {apply_filters('glm-member-db-front-members-list-listHeaderBottom', '')}
-
-                {* Alpha List *}
-
-                {if $showSettings.list_show_search_alpha && !$isSearchPage}
-                    <div class="glm-alpha-links">
-                        <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}#glm-member-list-filters-button" class="glm-alpha-link{if !$alphaSelected} glm-alpha-link-selected{/if}">All</a>
-                        {foreach $alphaList as $a}
-                            <a href="{$thisUrl}?glm_action=list&alpha={$a.alpha}&textSearch={$textSearch}{if isset($wpSearch) && $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}#glm-member-list-filters-button" class="glm-alpha-link{if $a.default} glm-alpha-link-selected{/if}">{$a.alpha}</a>
-                        {/foreach}
-                    </div>
-                {/if}
-
-                {* Page selection top *}
-
-                {if $paging}
-                    {if ( $prevStart || $nextStart ) && !$settings.list_ajax_pagination}
-                        <br>
-                        <div class="paging-container">
-                            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>< Previous page</a>
-                            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page ></a>
-                        </div>
-                        <br>
-                    {/if}
-                    <br>
-                    {if $showSettings.list_show_entities_shown}
-                        <div class="glm-members-found">
-                            showing <span class="aStart">{$start}</span> through <span class="aLastDisplayed">{$lastDisplayed}</span> of <span class="aTotal">{$filteredMembersFound}</span>
-                        </div>
-                    {/if}
-                {/if}
-
-                {* Members List *}
-
-                {if $settings.list_ajax_pagination}
-                    <div id="glm-ajax-list">
-                        loading...
-                    </div>
-                {else}
-                    {if $view == list || $view == map}
-                        {include file='front/members/listTypeList.html'}
-                    {/if}
-                    {if $view == grid}
-                        {include file='front/members/listTypeGrid.html'}
-                    {/if}
-                    {if $view == uptravel}
-                        {include file='front/members/listTypeUptravel.html'}
-                    {/if}
-                {/if}
-
-                {* Page selection bottom *}
-
-                <div class="paging-container">
-                    {if $paging}
-                        {if ( $prevStart || $nextStart ) && !$settings.list_ajax_pagination}
-                            <br>
-                            <div class="paging-container">
-                                <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>< Previous page</a>
-                                <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page ></a>
-                            </div>
-                            <br>
-                        {/if}
-                        {if $nextStart && $settings.list_ajax_pagination}
-                            <a href="#" class="glm-show-more test" data-next="{$nextStart}">[ Load More ]</a>
-                        {/if}
-                        <br>
-                        {if $showSettings.list_show_entities_shown}
-                            <div class="glm-members-found">
-                                showing <span class="aStart">{$start}</span> through <span class="aLastDisplayed">{$lastDisplayed}</span> of <span class="aTotal">{$filteredMembersFound}</span>
-                            </div>
-                        {/if}
-                    {/if}
-                </div>
-                {apply_filters('glm-member-db-front-members-list-pageBottom', '')}
-
-            {else}
-                <div>(no {$terms.term_member_plur} listed)</div>
-            {/if}
-        {if $showSettings.list_show_sidebar_area}
-            </div>
-            <div class="small-12 large-4 columns">
-                {get_sidebar()}
-            </div>
-        </div>
-        {/if}
-
-    {/if} {* list_show_list *}
-
-    {if $showSettings.list_map_show_container}
-        </div> {* glm-member-list-inner-wrapper *}
-    {/if}
-    {if $showSettings.list_show_outer_container}
-        </div> {* glm-member-db-list *}
-    {/if}
-
-    <script>
-
-        jQuery(document).ready(function($) {
-
-            {if $settings.list_ajax_pagination}
-                // Setup the ajax pagination call.
-                var nextStart    = {if $nextStart}{$nextStart}{else}0{/if};
-                var numberShown  = 0;
-                var totalMembers = {$filteredMembersFound};
-
-                // Call the member list grid content and load in the page.
-                jQuery.ajax({
-                    url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=membersList&limit={$settings.list_pagination_count}{$ajaxRequest}&alpha={$alphaSelected}',
-                    cache: false,
-                    async: true,
-                    dataType: 'html',
-                    success: function( html ){
-                        $('#glm-ajax-list').html( html );
-                        numberShown += {$settings.list_pagination_count};
-                    },
-                });
-
-                // Show More link
-                $(document).on('click', 'a.glm-show-more', function(e){
-                    e.preventDefault();
-                    var showMoreButton = $(this);
-                    jQuery.ajax({
-                        url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=membersList&limit={$settings.list_pagination_count}{$ajaxRequest}&pageSelect=Next&nextStart=' + nextStart + '&ajaxNext=1&alpha={$alphaSelected}',
-                        cache: false,
-                        async: true,
-                        dataType: 'html',
-                        success: function( html ){
-                            $('#glm-ajax-list').append( html );
-                            nextStart += {$settings.list_pagination_count};
-                            if ( nextStart > totalMembers ) {
-                                nextStart = totalMembers;
-                                $('.aLastDisplayed').html(nextStart);
-                            } else {
-                                $('.aLastDisplayed').html(nextStart - 1);
-                            }
-                            numberShown += {$settings.list_pagination_count};
-                            if ( numberShown >= totalMembers ) {
-                                showMoreButton.remove();
-                            }
-                        },
-                    });
-                });
-            {/if} {* list_ajax_pagination *}
-
-            jQuery('select[multiple]').asmSelect();
-
-            // Show search filters box
-            {if $showSettings.list_show_search && $showSettings.list_search_show_button}
-
-                // Float filter box
-                var fixmeTop = $('#glm-member-list-filters-button').offset().top;
-                $(window).scroll(function() {
-
-                    var currentScroll = $(window).scrollTop();
-                    if (currentScroll >= fixmeTop-{$settings.list_floating_search_distance_top} && {$settings.list_floating_search}) {
-                        $('#glm-member-list-filters-wrapper').css({
-                            position: 'fixed',
-                            top: '{$settings.list_floating_search_distance_top}px',
-                            transform: 'translateX(0%)'
-                        });
-                    } else {
-                        $('#glm-member-list-filters-wrapper').css({
-                            position: 'relative',
-                            top: '0',
-                            transform: 'translateX(0%)'
-                        });
-                    }
-
-                });
-                $(".glm-member-list-filters-toggle").click( function() {
-                    $(".glm-member-db-{$view}-view").toggleClass("filters-opened");
-                    $(".glm-member-db-{$view}-view").toggleClass("filters-closed");
-    /* NEED TO FIX THIS FOR LEAFLET
-                    $("#glm-locationMap-container").one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",
-                        function() {
-                            var center = map.getCenter();
-                            google.maps.event.trigger(map, "resize");
-                            map.setCenter(center);
-                        });
-    */
-                    });
-            {/if} // settings.list_show_search
-
-            {if $showSettings.list_show_map}
-
-                /*
-                 * Map operations
-                 */
-
-                var startLat = $('#glmLat').val();
-                var startLon = $('#glmLng').val();
-                var defZoom = Number({$settings.maps_default_zoom});
-
-                {if $settings.selected_map_interface == 1}
-
-                    {*
-                     *  Leaflet Map
-                     *  API reference: https://leafletjs.com/reference-1.3.2.html
-                     *}
-
-                    function initMap() {
-
-                        var leafletMap = L.map('LeafletMapContainer', {
-                            gestureHandling: true
-                        });
-                        leafletMap.setView([{$settings.maps_default_lat}, {$settings.maps_default_lon}], defZoom);
-                        var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
-                        var leafletMinZoom = 3;
-                        var leafletMaxZoom = 19;
-                        var clusterRadiusMax = 40;
-                        var geocoder;
-
-                        // Loading features
-                        var loadingControl = L.Control.loading({
-                            separate: true,
-                            delayIndicator: 500
-                        });
-                        leafletMap.addControl(loadingControl);
-
-                        // Init Map
-                        L.tileLayer(leafletTileServer, {
-                           attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery Â© <a href="https://www.gaslightmedia.com/">Gaslight Media</a>',
-                           minZoom: leafletMinZoom,
-                           maxZoom: leafletMaxZoom,
-                           id: 'nothot'
-                        }).addTo(leafletMap);
-
-
-                        {if $mapItems}
-
-                            {if $settings.use_cluster_markers}
-                                var markerGroup = L.markerClusterGroup({
-                                    maxClusterRadius: clusterRadiusMax
-                                });
-                            {else}
-                                var markerGroup = L.featureGroup({
-                                    maxClusterRadius: clusterRadiusMax
-                                });
-                            {/if}
-
-                            var mapContainerWidth = Number(leafletMap._container.clientWidth);
-                            var maxPopupWidth = .65 * mapContainerWidth;
-                            if (maxPopupWidth > 600) {
-                                maxPopupWidth = 600;
-                            }
-                            var mapContainerHeight = Number(leafletMap._container.clientHeight);
-                            var maxPopupHeight = .7 * mapContainerHeight;
-
-                            {foreach $mapItems as $m}
-                                {if $m.lat != 0 && $m.lon != 0}
-                                    // Create marker for this member and and to Feature Group
-                                    var leafletMarker = L.marker([{$m.lat}, {$m.lon}], { title:  '{$m.member_name|escape:quotes}' })
-                                        .bindPopup($('#map_info_' + {$m.id}).html(), {
-                                            maxWidth: maxPopupWidth,
-                                            maxHeight: maxPopupHeight
-                                    }).addTo(markerGroup);
-                                {/if}
-                            {/foreach}
-
-                            leafletMap.addLayer(markerGroup);
-
-                            // Get outer bounds of all markers in the Feature Group
-                            leafletMap.fitBounds(markerGroup.getBounds());
-
-                        {/if} {* mapItems *}
-
-                        // When a marker is clicked, display the pop-up near the center of the map.
-
-                        leafletMap.on('popupopen', function(e) {
-                            var px = leafletMap.project(e.popup._latlng);
-                            px.x -= 20;                                         // Bump a bit to the right to avoid resize buttons
-                            px.y -= e.popup._container.clientHeight/2;          // Position more toward the center
-                            leafletMap.panTo(leafletMap.unproject(px),{ animate: true });
-                        });
-
-                    }
-
-                {/if} {* Map interface 1 *}
-
-                {if $settings.selected_map_interface == 2}
-
-                    {*
-                     * Google Maps
-                     *  API reference: https://developers.google.com/maps/documentation/javascript/reference
-                     *}
-
-                    function initMap() {
-
-                        // Create a Google Map object
-                        var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
-                                center: new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon}),
-                                zoom: {$settings.maps_default_zoom},
-                            disableDefaultUI: false,
-                            mapTypeId: google.maps.MapTypeId.MAP,
-                        });
-
-                        var center = map.getCenter();
-                        google.maps.event.trigger(map, "resize");
-                        map.setCenter(center);
-
-                        var currentScroll = $(window).scrollTop(); // get current position
-                        var mapTop = $("#glm-locationMap-container").offset().top-10;
-                        {if $showSettings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
-                        if (currentScroll >= mapTop) {
-                            $('body,html').animate({
-                            scrollTop: $("#glm-locationMap-container").offset().top-100
-                            }, 50);
-                        } else {
-                            $('body,html').animate({
-                                scrollTop: $("#glm-locationMap-container").offset().top-100
-                            }, 400);
-                        }
-
-                        var geocoder = new google.maps.Geocoder();
-                        var bounds = new google.maps.LatLngBounds();
-                        var infowindow = new google.maps.InfoWindow();
-
-                        {if $mapItems}
-                            var markers = [];
-                            {foreach $mapItems as $m}
-                                {if $m.lat != 0 && $m.lon != 0}
-
-                                    // Create a marker for this member
-                                    var marker = new google.maps.Marker({
-                                        map: map,
-                                        position: new google.maps.LatLng({$m.lat}, {$m.lon}),
-                                        draggable: false,
-                                        animation: google.maps.Animation.DROP,
-                                        title: '{$m.member_name|escape:quotes}',
-                                        descr: $('#map_info_' + {$m.id}).html(),
-                                        memberID: {$m.member}
-                                    });
-
-                                    // Add a click listener for this marker
-                                    marker.addListener('click', function() {
-                                            infowindow.setOptions({
-                                                    content: this.descr
-                                            });
-                                        infowindow.open(map,this);
-                                    });
-
-                                    markers.push(marker);
-
-                                    // Extend the map bounds to include this marker
-                                    bounds.extend(marker.position);
-
-                                {/if}
-                            {/foreach}
-
-                            {if $settings.use_cluster_markers}
-                                var markerCluster = new MarkerClusterer(map, markers,
-                                {
-                                    imagePath: '{$baseUrl}/js/googleMapsMarkerClusterer/images/m',
-                                    gridSize: 30,
-                                    maxZoom: 14,
-                                    minimunClusterSize: 3
-                                });
-                            {/if}
-
-                            // Fit map to bounds of all markers
-                            map.fitBounds(bounds);
-
-                            // Check for first map idle (completely loaded) - Check max zoom
-                            var mapLoadedListener = google.maps.event.addListener(map, 'idle', function() {
-                                if (map.getZoom() > 14) {
-                                    this.setZoom(14);
-                                }
-                                google.maps.event.removeListener(mapLoadedListener);
-                            });
-
-                        {/if} {* mapItems *}
-
-                    } {* initMap *}
-
-                {/if} {* Map interface 2 *}
-
-                // Handle Map View/Hide
-                var mapInitialized = false;
-                $("#glm-member-list-map-toggle").click( function() {
-                    $(".glm-member-db-{$view}-view").toggleClass("map-opened");
-                    $(".glm-member-db-{$view}-view").toggleClass("map-closed");
-                    if (!mapInitialized) {
-                        initMap();
-                        mapInitialized = true;
-                    }
-                });
-                {if $showSettings.list_show_map}
-                    {if $showSettings.list_map_show_opened || $view == 'map'}
-                        // Start with map opened
-                        initMap();
-                        mapInitialized = true;
-                    {/if}
-                {/if}
-
-                // Processes click-through counts for website links
-                $('.glm-member-list-website-link').on('click', function() {
-
-                    // Get member ID
-                    var memberId = $(this).attr('data-member-id');
-                    var memberSlug = $(this).attr('data-member-slug');
-
-                    // Send AJAX action to record click.
-                    $.ajax({
-                       url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberClickThrough&memberId=" + memberId + "&memberSlug=" + memberSlug
-                    });
-
-                });
-
-            {/if}   // settings.list_show_map
-
-        });
-    </script>
-
-    {if $showSettings.list_show_outer_container}
-        {include file='front/footer.html'}
-    {/if}
-
-{/if} {* have messages *}
diff --git a/glm-member-db/views/front/members/list.html.save b/glm-member-db/views/front/members/list.html.save
new file mode 100755 (executable)
index 0000000..5d4ae41
--- /dev/null
@@ -0,0 +1,742 @@
+{if $haveMessages}
+
+    <div style="color: red !important;">
+        <h2>WARNING:</h2>
+        <ul>
+            {foreach $messages as $m}
+                <li>{$m}</li>
+            {/foreach}
+        </ul>
+    </div>
+
+{else}
+
+
+    {if $showSettings.list_show_outer_container}
+
+        {include file='front/members/header.html'}
+
+
+        <div class="glm-member-db-list glm-member-db-{$view}-view
+            {if $showSettings.list_map_show_opened || $view == 'map'}map-opened {else}map-closed {/if}
+            {if $showSettings.list_show_search_filters_opened}filters-opened{else}filters-closed{/if}
+        ">
+    {/if}
+            {apply_filters('glm-member-db-front-members-list-pageTop', '')}
+
+    {if $showSettings.list_map_show_container}
+            <div class="glm-member-list-inner-wrapper">
+    {/if}
+
+    {if $showSettings.list_show_map}
+
+        {if $settings.selected_map_interface == 1}
+            {* Leaflet Map *}
+            <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
+            <script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
+            <link rel="stylesheet" href="{$jsUrl}/LeafletMarkerCluster/dist/MarkerCluster.Default.css" />
+            <script src="{$jsUrl}/LeafletMarkerCluster/dist/leaflet.markercluster-src.js"></script>
+            <link rel="stylesheet" href="{$jsUrl}/Leaflet.loading/src/Control.Loading.css" />
+            <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
+            <link rel="stylesheet" href="//unpkg.com/leaflet-gesture-handling/dist/leaflet-gesture-handling.min.css" type="text/css">
+            <script src="//unpkg.com/leaflet-gesture-handling"></script>
+        {/if}
+        {if $settings.selected_map_interface == 2}
+            {* Google Map *}
+            <script src="//maps.googleapis.com/maps/api/js?&key={$settings.google_maps_api_key}"></script>
+        {/if}
+
+        {if $showSettings.list_map_show_button}
+            <div id="glm-member-list-map-toggle" class="button glm-button">View Map</div>
+        {/if}
+
+    {/if} {* list_show_map *}
+
+    {if $showSettings.list_show_search}
+
+        <div id="glm-member-list-filters-wrapper">
+            {if $showSettings.list_search_show_button}
+                <div id="glm-member-list-filters-button" class="button glm-button glm-member-list-filters-toggle">
+                    FILTERS
+                </div>
+            {/if}
+            <div id="glm-member-list-filters-box">
+                {if $showSettings.list_search_show_button}
+                    <div id="glm-member-list-filters-close" class="button glm-button glm-member-list-filters-toggle">Close</div>
+                {/if}
+                <form action="{$thisUrl}?glm_action=list#glm-member-list-filters-button" method="post" enctype="multipart/form-data">
+                    {if isset($wpSearch)}<input type="hidden" name="s" value="{$wpSearch|escape:quotes}">{/if}
+                    <div class="glma-small-12 glma-columns glm-member-search glm-member-entry-container glm-member-container">
+                        {apply_filters('glm-member-db-front-members-list-searchFormTop', '')}
+                        <div>
+                            <h3>Refine Search</h3>
+                        </div>
+                        {if $showSettings.list_show_search_category}
+                            <div>
+                                By Category:
+                                <select name="categorySearch" id="categorySelect">
+                                    {if !$singleCategory}
+                                        <option value="">(all)</option>
+                                    {/if}
+                                    {foreach from=$categories item=v}
+                                        <option value="{$v.id}"{if $v.default} selected="selected"{/if}>
+                                            {if $v.parent}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
+                                        </option>
+                                    {/foreach}
+                                </select>
+                            </div>
+                        {/if} {* list_show_search_category *}
+
+                        {if $showSettings.list_show_search_amenities}
+                            {if $amenities|@count gt 0}
+                                <div>
+                                    By Amenities:
+                                    <select name="amenitySearch[]" id="amenitySelect" title="Click to Select Amenities" multiple="multiple">
+                                        {foreach from=$amenities item=v}
+                                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
+                                                {$v.name}
+                                            </option>
+                                        {/foreach}
+                                    </select>
+                                </div>
+                            {/if}
+                        {/if} {* list_show_search_amenities *}
+
+                        {if $showSettings.list_show_search_region}
+                            {if $regions|@count gt 0}
+                                <div>
+                                    By Regions:
+                                    <select name="regionUserSearch[]">
+                                        {if $regions|@count gt 1}
+                                            <option value"">(all)</option>
+                                        {/if}
+                                        {foreach from=$regions item=v}
+                                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
+                                                {$v.name}
+                                            </option>
+                                        {/foreach}
+                                    </select>
+                                </div>
+                            {/if}
+                        {/if} {* list_show_search_region *}
+
+                        {if $showSettings.list_show_search_city}
+                            {if $cities|@count gt 0}
+                                <div>
+                                    By Cities:
+                                    <select name="cityUserSearch[]">
+                                        {if $cities|@count gt 1}
+                                            <option value"">(all)</option>
+                                        {/if}
+                                        {foreach from=$cities item=v}
+                                            <option value="{$v.id}" {if $v.default} selected="selected"{/if}>
+                                                {$v.name}
+                                            </option>
+                                        {/foreach}
+                                    </select>
+                                </div>
+                            {/if}
+                        {/if} {* list_show_search_city *}
+
+                        {if $showSettings.list_show_search_text}
+
+                            <div>
+                                By Name: <input type="text" name="textSearch" value="{$textSearch}" class="glm-form-text-input">
+                            </div>
+                        {/if}
+                        <div><input class="button glm-member-button centered" type="submit" value="Search"></div>
+                        {apply_filters('glm-member-db-front-members-list-searchFormBottom', '')}
+                    </div>
+                </form>
+            </div> {* glm-member-list-filters-box *}
+        </div> {* glm-member-list-filters-wrapper *}
+
+    {/if} {* list_show_search *}
+
+    {if $showSettings.list_show_map}
+        {apply_filters('glm-member-db-front-members-list-mapTop', '')}
+        <div id="glm-locationMap-container">
+            {if $settings.selected_map_interface == 1}
+                {* Leaflet Map *}
+                <div id="LeafletMapContainer" style="height: 400px; width: 100%; border: 1px black solid; z-index: +0; margin: 0 auto;"></div>
+            {/if}
+            {if $settings.selected_map_interface == 2}
+                {* Google Map *}
+                <div id="glm-locationMap" class="glm-map">(map loads here)</div>
+            {/if}
+        </div>
+        {apply_filters('glm-member-db-front-members-list-mapBottom', '')}
+
+        {* Member information displayed in map bubbles *}
+
+        {foreach $mapItems as $m}
+            <div id="map_info_{$m.id}" class="glm-hidden">
+                {apply_filters('glm-member-db-front-members-list-mapBubbleTop', '', $m.member)}
+                {if $m.logo && $showSettings.list_map_show_logo}
+                    <div class="glm-member-list-image">
+                        <img src="{$glmPluginMediaUrl}/images/{$settings.list_map_logo_size}/{$m.logo}">
+                    </div>
+                {/if}
+                <div class="glm-map-member-name">
+                    {if $showSettings.list_map_show_detaillink && !$m.has_no_profile}
+                            <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/{if $settings.enable_multiple_profiles}{$m.id}/{/if}">{$m.member_name}</a>
+                    {else}
+                            {$m.member_name}
+                    {/if}
+                </div>
+                {if $showSettings.list_map_show_address}
+                    <p class="glm-map-member-address">
+                        {if $showSettings.list_map_show_street}
+                            {if $m.addr1}{$m.addr1}<br>{/if}
+                            {if $m.addr2}{$m.addr2}<br>{/if}
+                        {/if}
+                        {if $settings.memb_info_location && $showSettings.list_map_show_citystatezip}
+                            {if $m.city}{$m.city}{if $m.state}, {/if}{/if}{if $m.state}{$m.state}{/if}{if $m.zip} {$m.zip}{/if}
+                        {/if}
+                        {if $m.country && $showSettings.list_map_show_country}
+                            {$m.country}
+                        {/if}
+                    </p>
+                {/if} {* list_map_show_address *}
+
+                <div class="glm-member-list-info">
+                    <p class="glm-member-list-map-info">
+                        {if $m.phone && $showSettings.list_map_show_phone}<b>Phone:</b> <a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.phone)}">{apply_filters('glm_associate_phone_filter', $m.phone)}</a><br>{/if}
+                        {if $m.toll_free && $showSettings.list_map_show_tollfree}<a href="tel:{apply_filters('glm_associate_phone_filter_tel', $m.toll_free)}">{apply_filters('glm_associate_phone_filter', $m.toll_free)}</a><br>{/if}
+                        {if $m.email && $showSettings.list_map_show_email}<b>E-Mail Address:</b> <a href="mailto:{$m.email}">{$m.email}</a><br>{/if}
+                        {if $m.region && $showSettings.list_map_show_region}<b>Region:</b> {$m.region}<br>{/if}
+                        {if $m.url && $showSettings.list_map_show_url}<a href="{$m.url}"{if $showSettings.list_map_show_url_newtarget} target="_blank"{/if}>Website</a><br>{/if}
+                    </p>
+                    {if isset($m.descr) && $showSettings.list_map_show_descr}{$m.descr|nl2br}<br>{/if}
+                    {if $m.short_descr && $showSettings.list_map_show_short_descr}{$m.short_descr|truncate:200}<br>{/if}
+                    {if $showSettings.list_map_show_detaillink && !$m.has_no_profile}
+                        <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/{if $settings.enable_multiple_profiles}{$m.id}/{/if}">More Info</a>
+                    {/if}
+                    {if isset($m.categories) && $showSettings.list_map_show_categories}
+                        <div class="glm-member-list-items">
+                            <b>{$terms.term_member_cap} Categories</b>
+                            <ul>
+                                {if isset($m.categories)}
+                                    {foreach $m.categories as $c}
+                                        <li>
+                                            {if $c.parent_name}{$c.parent_name}: {/if}{$c.name}
+                                        </li>
+                                    {/foreach}
+                                {/if}
+                            </ul>
+                        </div>
+                    {/if} {* categories *}
+
+
+                    {* Not using credit cards for now  {literal}
+                        {if $m.cc_type && $showSettings.list_map_show_creditcards}
+                            <div class="glm-member-list-items">
+                                <b>Credit Cards Accepted:</b>
+                                <ul>
+                            {if isset($m.cc_type)}
+                                {foreach $m.cc_type.names as $c}
+                                    <li>{$c}</li>
+                                {/foreach}
+                            {/if}
+                                </ul>
+                            </div>
+                        {/if}
+                    {/literal} *}
+
+
+                    {if $showSettings.list_map_show_amenities}
+                        <div class="glm-member-list-items">
+                            <b>Amenities:</b>
+                            <ul>
+                        {if isset($m.amenities)}
+                            {foreach $m.amenities as $a}
+                                <li>{$a.name}</li>
+                            {/foreach}
+                        {/if}
+                            </ul>
+                        </div>
+                    {/if}
+                </div>
+                {apply_filters('glm-member-db-front-members-list-mapBubbleBottom', '', $m.member)}
+            </div> <!-- End of information displayed in map bubbles -->
+
+        {/foreach} {* mapItems *}
+
+    {/if} {* list_show_map *}
+
+    {apply_filters('glm-member-db-front-members-list-listHeaderTop', '')}
+
+    {if $haveFeaturedMembers}
+
+        <h3 id="glm-featured-members-title">Featured</h3>
+
+        <ul id="glm-featured-members-grid" class="featured-grid glma-small-block-grid-1 glma-medium-block-grid-2 glma-large-block-grid-3">
+        {foreach $featuredMembers as $fm}
+            <li class="featured-grid-item-wrapper">
+                <a class="featured-grid-item" href="{$siteBaseUrl}{$settings.canonical_member_page}/{$fm.member_slug}/">
+            {if $fm.logo && $showSettings.list_show_logo}
+                    <div class="glm-member-list-has-image">
+                        <img class="glm-member-list-image" src="{$glmPluginMediaUrl}/images/grid/{$fm.logo}">
+                    </div>
+            {elseif $showSettings.list_show_logo_filler}
+                    <div class="glm-member-list-has-image">
+                        <img class="glm-member-list-image-filler" src="{$assetsUrl}/filler_s.gif">
+                    </div>
+            {else}
+                    <div class="glm-member-list-missing-image"></div>
+            {/if}
+                    <div class="featured-grid-item-info">
+                        <h4 class="featured-member-title">{$fm.member_name}</h4>
+
+                        {if $fm.short_descr && $settings.list_show_short_descr}
+                            <div class="featured-member-description">
+                                {$fm.short_descr|nl2br}
+                            </div>
+                        {/if}
+                    </div>
+                </a>
+            </li>
+        {/foreach} {* featuredMembers *}
+        </ul>
+
+    {/if} {* haveFeaturedMembers *}
+
+    {$isSearchPage = is_page('search')}
+
+    {if $showSettings.list_show_list && !$blankStart}
+        {if $showSettings.list_show_sidebar_area}
+            <div id="listing-wrapper" class="row">
+                <div class="glm-member-list-listing-container small-12 large-8 columns">
+        {/if}
+            {if $showSettings.list_show_header_text}
+                {if $settings.list_header_text}
+                    <h3 class="glm-member-db-list-header-title">{$settings.list_header_text}</h3>
+                {elseif $isSearchPage}
+                    <h1 class="glm-member-db-list-header-title member-search-page-title">List of {$terms.term_member_plur_cap}</h1>
+                {else}
+                    <h3 class="glm-member-db-list-header-title">List of {$terms.term_member_plur_cap}</h3>
+                {/if}
+            {/if}
+            {if $haveMembers}
+                {if $showSettings.list_show_entities_found}
+                <div id="glm-member-list-terms">{$terms.term_member_plur_cap} found: {$membersFound}<br></div>
+                {/if}
+
+                {apply_filters('glm-member-db-front-members-list-listHeaderBottom', '')}
+
+                {* Alpha List *}
+
+                {if $showSettings.list_show_search_alpha && !$isSearchPage}
+                    <div class="glm-alpha-links">
+                        <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}#glm-member-list-filters-button" class="glm-alpha-link{if !$alphaSelected} glm-alpha-link-selected{/if}">All</a>
+                        {foreach $alphaList as $a}
+                            <a href="{$thisUrl}?glm_action=list&alpha={$a.alpha}&textSearch={$textSearch}{if isset($wpSearch) && $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}#glm-member-list-filters-button" class="glm-alpha-link{if $a.default} glm-alpha-link-selected{/if}">{$a.alpha}</a>
+                        {/foreach}
+                    </div>
+                {/if}
+
+                {* Page selection top *}
+
+                {if $paging}
+                    {if ( $prevStart || $nextStart ) && !$settings.list_ajax_pagination}
+                        <br>
+                        <div class="paging-container">
+                            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>< Previous page</a>
+                            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page ></a>
+                        </div>
+                        <br>
+                    {/if}
+                    <br>
+                    {if $showSettings.list_show_entities_shown}
+                        <div class="glm-members-found">
+                            showing <span class="aStart">{$start}</span> through <span class="aLastDisplayed">{$lastDisplayed}</span> of <span class="aTotal">{$filteredMembersFound}</span>
+                        </div>
+                    {/if}
+                {/if}
+
+                {* Members List *}
+
+                {if $settings.list_ajax_pagination}
+                    <div id="glm-ajax-list">
+                        loading...
+                    </div>
+                {else}
+                    {if $view == list || $view == map}
+                        {include file='front/members/listTypeList.html'}
+                    {/if}
+                    {if $view == grid}
+                        {include file='front/members/listTypeGrid.html'}
+                    {/if}
+                    {if $view == uptravel}
+                        {include file='front/members/listTypeUptravel.html'}
+                    {/if}
+                {/if}
+
+                {* Page selection bottom *}
+
+                <div class="paging-container">
+                    {if $paging}
+                        {if ( $prevStart || $nextStart ) && !$settings.list_ajax_pagination}
+                            <br>
+                            <div class="paging-container">
+                                <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>< Previous page</a>
+                                <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}{if $wpSearch}&s={$wpSearch|escape:'html'}{/if}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&citySearch={$citySearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}#glm-member-list-filters-button" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page ></a>
+                            </div>
+                            <br>
+                        {/if}
+                        {if $nextStart && $settings.list_ajax_pagination}
+                            <a href="#" class="glm-show-more test" data-next="{$nextStart}">[ Load More ]</a>
+                        {/if}
+                        <br>
+                        {if $showSettings.list_show_entities_shown}
+                            <div class="glm-members-found">
+                                showing <span class="aStart">{$start}</span> through <span class="aLastDisplayed">{$lastDisplayed}</span> of <span class="aTotal">{$filteredMembersFound}</span>
+                            </div>
+                        {/if}
+                    {/if}
+                </div>
+                {apply_filters('glm-member-db-front-members-list-pageBottom', '')}
+
+            {else}
+                <div>(no {$terms.term_member_plur} listed)</div>
+            {/if}
+        {if $showSettings.list_show_sidebar_area}
+            </div>
+            <div class="small-12 large-4 columns">
+                {get_sidebar()}
+            </div>
+        </div>
+        {/if}
+
+    {/if} {* list_show_list *}
+
+    {if $showSettings.list_map_show_container}
+        </div> {* glm-member-list-inner-wrapper *}
+    {/if}
+    {if $showSettings.list_show_outer_container}
+        </div> {* glm-member-db-list *}
+    {/if}
+
+    <script>
+
+        jQuery(document).ready(function($) {
+
+            {if $settings.list_ajax_pagination}
+                // Setup the ajax pagination call.
+                var nextStart    = {if $nextStart}{$nextStart}{else}0{/if};
+                var numberShown  = 0;
+                var totalMembers = {$filteredMembersFound};
+
+                // Call the member list grid content and load in the page.
+                jQuery.ajax({
+                    url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=membersList&limit={$settings.list_pagination_count}{$ajaxRequest}&alpha={$alphaSelected}',
+                    cache: false,
+                    async: true,
+                    dataType: 'html',
+                    success: function( html ){
+                        $('#glm-ajax-list').html( html );
+                        numberShown += {$settings.list_pagination_count};
+                    },
+                });
+
+                // Show More link
+                $(document).on('click', 'a.glm-show-more', function(e){
+                    e.preventDefault();
+                    var showMoreButton = $(this);
+                    jQuery.ajax({
+                        url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=membersList&limit={$settings.list_pagination_count}{$ajaxRequest}&pageSelect=Next&nextStart=' + nextStart + '&ajaxNext=1&alpha={$alphaSelected}',
+                        cache: false,
+                        async: true,
+                        dataType: 'html',
+                        success: function( html ){
+                            $('#glm-ajax-list').append( html );
+                            nextStart += {$settings.list_pagination_count};
+                            if ( nextStart > totalMembers ) {
+                                nextStart = totalMembers;
+                                $('.aLastDisplayed').html(nextStart);
+                            } else {
+                                $('.aLastDisplayed').html(nextStart - 1);
+                            }
+                            numberShown += {$settings.list_pagination_count};
+                            if ( numberShown >= totalMembers ) {
+                                showMoreButton.remove();
+                            }
+                        },
+                    });
+                });
+            {/if} {* list_ajax_pagination *}
+
+            jQuery('select[multiple]').asmSelect();
+
+            // Show search filters box
+            {if $showSettings.list_show_search && $showSettings.list_search_show_button}
+
+                // Float filter box
+                var fixmeTop = $('#glm-member-list-filters-button').offset().top;
+                $(window).scroll(function() {
+
+                    var currentScroll = $(window).scrollTop();
+                    if (currentScroll >= fixmeTop-{$settings.list_floating_search_distance_top} && {$settings.list_floating_search}) {
+                        $('#glm-member-list-filters-wrapper').css({
+                            position: 'fixed',
+                            top: '{$settings.list_floating_search_distance_top}px',
+                            transform: 'translateX(0%)'
+                        });
+                    } else {
+                        $('#glm-member-list-filters-wrapper').css({
+                            position: 'relative',
+                            top: '0',
+                            transform: 'translateX(0%)'
+                        });
+                    }
+
+                });
+                $(".glm-member-list-filters-toggle").click( function() {
+                    $(".glm-member-db-{$view}-view").toggleClass("filters-opened");
+                    $(".glm-member-db-{$view}-view").toggleClass("filters-closed");
+    /* NEED TO FIX THIS FOR LEAFLET
+                    $("#glm-locationMap-container").one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",
+                        function() {
+                            var center = map.getCenter();
+                            google.maps.event.trigger(map, "resize");
+                            map.setCenter(center);
+                        });
+    */
+                    });
+            {/if} // settings.list_show_search
+
+            {if $showSettings.list_show_map}
+
+                /*
+                 * Map operations
+                 */
+
+                var startLat = $('#glmLat').val();
+                var startLon = $('#glmLng').val();
+                var defZoom = Number({$settings.maps_default_zoom});
+
+                {if $settings.selected_map_interface == 1}
+
+                    {*
+                     *  Leaflet Map
+                     *  API reference: https://leafletjs.com/reference-1.3.2.html
+                     *}
+
+                    function initMap() {
+
+                        var leafletMap = L.map('LeafletMapContainer', {
+                            gestureHandling: true
+                        });
+                        leafletMap.setView([{$settings.maps_default_lat}, {$settings.maps_default_lon}], defZoom);
+                        var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
+                        var leafletMinZoom = 3;
+                        var leafletMaxZoom = 19;
+                        var clusterRadiusMax = 40;
+                        var geocoder;
+
+                        // Loading features
+                        var loadingControl = L.Control.loading({
+                            separate: true,
+                            delayIndicator: 500
+                        });
+                        leafletMap.addControl(loadingControl);
+
+                        // Init Map
+                        L.tileLayer(leafletTileServer, {
+                           attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery Â© <a href="https://www.gaslightmedia.com/">Gaslight Media</a>',
+                           minZoom: leafletMinZoom,
+                           maxZoom: leafletMaxZoom,
+                           id: 'nothot'
+                        }).addTo(leafletMap);
+
+
+                        {if $mapItems}
+
+                            {if $settings.use_cluster_markers}
+                                var markerGroup = L.markerClusterGroup({
+                                    maxClusterRadius: clusterRadiusMax
+                                });
+                            {else}
+                                var markerGroup = L.featureGroup({
+                                    maxClusterRadius: clusterRadiusMax
+                                });
+                            {/if}
+
+                            var mapContainerWidth = Number(leafletMap._container.clientWidth);
+                            var maxPopupWidth = .65 * mapContainerWidth;
+                            if (maxPopupWidth > 600) {
+                                maxPopupWidth = 600;
+                            }
+                            var mapContainerHeight = Number(leafletMap._container.clientHeight);
+                            var maxPopupHeight = .7 * mapContainerHeight;
+
+                            {foreach $mapItems as $m}
+                                {if $m.lat != 0 && $m.lon != 0}
+                                    // Create marker for this member and and to Feature Group
+                                    var leafletMarker = L.marker([{$m.lat}, {$m.lon}], { title:  '{$m.member_name|escape:quotes}' })
+                                        .bindPopup($('#map_info_' + {$m.id}).html(), {
+                                            maxWidth: maxPopupWidth,
+                                            maxHeight: maxPopupHeight
+                                    }).addTo(markerGroup);
+                                {/if}
+                            {/foreach}
+
+                            leafletMap.addLayer(markerGroup);
+
+                            // Get outer bounds of all markers in the Feature Group
+                            leafletMap.fitBounds(markerGroup.getBounds());
+
+                        {/if} {* mapItems *}
+
+                        // When a marker is clicked, display the pop-up near the center of the map.
+
+                        leafletMap.on('popupopen', function(e) {
+                            var px = leafletMap.project(e.popup._latlng);
+                            px.x -= 20;                                         // Bump a bit to the right to avoid resize buttons
+                            px.y -= e.popup._container.clientHeight/2;          // Position more toward the center
+                            leafletMap.panTo(leafletMap.unproject(px),{ animate: true });
+                        });
+
+                    }
+
+                {/if} {* Map interface 1 *}
+
+                {if $settings.selected_map_interface == 2}
+
+                    {*
+                     * Google Maps
+                     *  API reference: https://developers.google.com/maps/documentation/javascript/reference
+                     *}
+
+                    function initMap() {
+
+                        // Create a Google Map object
+                        var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
+                                center: new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon}),
+                                zoom: {$settings.maps_default_zoom},
+                            disableDefaultUI: false,
+                            mapTypeId: google.maps.MapTypeId.MAP,
+                        });
+
+                        var center = map.getCenter();
+                        google.maps.event.trigger(map, "resize");
+                        map.setCenter(center);
+
+                        var currentScroll = $(window).scrollTop(); // get current position
+                        var mapTop = $("#glm-locationMap-container").offset().top-10;
+                        {if $showSettings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
+                        if (currentScroll >= mapTop) {
+                            $('body,html').animate({
+                            scrollTop: $("#glm-locationMap-container").offset().top-100
+                            }, 50);
+                        } else {
+                            $('body,html').animate({
+                                scrollTop: $("#glm-locationMap-container").offset().top-100
+                            }, 400);
+                        }
+
+                        var geocoder = new google.maps.Geocoder();
+                        var bounds = new google.maps.LatLngBounds();
+                        var infowindow = new google.maps.InfoWindow();
+
+                        {if $mapItems}
+                            var markers = [];
+                            {foreach $mapItems as $m}
+                                {if $m.lat != 0 && $m.lon != 0}
+
+                                    // Create a marker for this member
+                                    var marker = new google.maps.Marker({
+                                        map: map,
+                                        position: new google.maps.LatLng({$m.lat}, {$m.lon}),
+                                        draggable: false,
+                                        animation: google.maps.Animation.DROP,
+                                        title: '{$m.member_name|escape:quotes}',
+                                        descr: $('#map_info_' + {$m.id}).html(),
+                                        memberID: {$m.member}
+                                    });
+
+                                    // Add a click listener for this marker
+                                    marker.addListener('click', function() {
+                                            infowindow.setOptions({
+                                                    content: this.descr
+                                            });
+                                        infowindow.open(map,this);
+                                    });
+
+                                    markers.push(marker);
+
+                                    // Extend the map bounds to include this marker
+                                    bounds.extend(marker.position);
+
+                                {/if}
+                            {/foreach}
+
+                            {if $settings.use_cluster_markers}
+                                var markerCluster = new MarkerClusterer(map, markers,
+                                {
+                                    imagePath: '{$baseUrl}/js/googleMapsMarkerClusterer/images/m',
+                                    gridSize: 30,
+                                    maxZoom: 14,
+                                    minimunClusterSize: 3
+                                });
+                            {/if}
+
+                            // Fit map to bounds of all markers
+                            map.fitBounds(bounds);
+
+                            // Check for first map idle (completely loaded) - Check max zoom
+                            var mapLoadedListener = google.maps.event.addListener(map, 'idle', function() {
+                                if (map.getZoom() > 14) {
+                                    this.setZoom(14);
+                                }
+                                google.maps.event.removeListener(mapLoadedListener);
+                            });
+
+                        {/if} {* mapItems *}
+
+                    } {* initMap *}
+
+                {/if} {* Map interface 2 *}
+
+                // Handle Map View/Hide
+                var mapInitialized = false;
+                $("#glm-member-list-map-toggle").click( function() {
+                    $(".glm-member-db-{$view}-view").toggleClass("map-opened");
+                    $(".glm-member-db-{$view}-view").toggleClass("map-closed");
+                    if (!mapInitialized) {
+                        initMap();
+                        mapInitialized = true;
+                    }
+                });
+                {if $showSettings.list_show_map}
+                    {if $showSettings.list_map_show_opened || $view == 'map'}
+                        // Start with map opened
+                        initMap();
+                        mapInitialized = true;
+                    {/if}
+                {/if}
+
+                // Processes click-through counts for website links
+                $('.glm-member-list-website-link').on('click', function() {
+
+                    // Get member ID
+                    var memberId = $(this).attr('data-member-id');
+                    var memberSlug = $(this).attr('data-member-slug');
+
+                    // Send AJAX action to record click.
+                    $.ajax({
+                       url: "{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=memberClickThrough&memberId=" + memberId + "&memberSlug=" + memberSlug
+                    });
+
+                });
+
+            {/if}   // settings.list_show_map
+
+        });
+    </script>
+
+    {if $showSettings.list_show_outer_container}
+        {include file='front/footer.html'}
+    {/if}
+
+{/if} {* have messages *}
diff --git a/glm-member-db/views/front/members/listTypeGrid.html b/glm-member-db/views/front/members/listTypeGrid.html
deleted file mode 100644 (file)
index 545bb9a..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-{* List Type Grid *}
-<ul class="row">
-    {foreach $members as $member}
-        <li class="glm-member-list-record columns small-12 medium-6 large-4">
-            <a class="anchorWrapper"{if $showSettings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{else} style="cursor: default;"{/if}>
-                {apply_filters('glm-member-db-front-members-list-memberAbove', '', $member.member_pointer)}
-                <div class="glm-member-db-border-wrap">
-                    {apply_filters('glm-member-db-front-members-list-memberTop', '', $member.member_pointer)}
-
-                    <div class="glm-member-list-image-wrapper"{if $settings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{/if}>
-
-                        {if $member.featured}
-                            <div class="glm-member-list-featured-tag">
-                                featured
-                            </div>
-                        {/if}
-
-                        {if $member.logo && $showSettings.list_show_logo}
-                            <div class="glm-member-list-has-image">
-                                {apply_filters('glm-member-db-front-members-list-memberImageTop', '', $member.member_pointer)}
-                                <img class="glm-member-list-image" src="{$glmPluginMediaUrl}/images/grid/{$member.logo}">
-                            </div>
-                        {elseif $showSettings.list_show_logo_filler}
-                            <div class="glm-member-list-has-image">
-                                {apply_filters('glm-member-db-front-members-list-memberImageTop', '', $member.member_pointer)}
-                                <img class="glm-member-list-image-filler" src="{$assetsUrl}/filler_s.gif">
-                            </div>
-                        {else}
-                            <div class="glm-member-list-missing-image"></div>
-                        {/if}
-                    </div>
-                    <div class="glm-member-list-info-wrapper">
-                        <h4 class="glm-member-title"> {$member.member} </h4>
-                        <div class="glm-member-list-description small-12 columns">
-                            <div>
-                            {apply_filters('glm-member-db-front-members-list-memberDescriptionTop', '', $member.member_pointer)}
-                            {if $member.short_descr && $showSettings.list_show_short_descr}
-                                {$member.short_descr|nl2br}
-                            {/if}
-                            {apply_filters('glm-member-db-front-members-list-memberDescriptionBottom', '', $member.member_pointer)}
-                            </div>
-                        </div>
-                        {if $member.city}
-                            <div class="glm-member-list-address-container">
-                                <span class="member-city">{$member.city}{if $member.state.value}{/if}</span><br>
-                            </div>
-                        {/if}
-                        {if $showSettings.memb_info_location && $member.region && $showSettings.list_show_region}
-                            <div class="glm-member-list-region-container">
-                                Region: {$member.region}
-                            </div>
-                        {/if}
-                        {if ($showSettings.memb_info_contact && $member.phone && $showSettings.list_show_phone) || ($showSettings.memb_info_contact && $member.toll_free && $showSettings.list_show_tollfree)}
-                            <div class="glm-member-list-phone-container">
-                                {if $member.phone && $showSettings.list_show_phone}<span class="glm-member-db-phone">{apply_filters('glm_associate_phone_filter', $member.phone)} </span>{/if}
-                            </div>
-                        {/if}
-                    </div>
-                </div> {* End of glm-member-db-border *}
-            </a>
-            <div class="glm-member-list-sub-links">
-                <ul>
-                    {if $member.url && $showSettings.list_show_url}<li><a href="{$member.url}"{if $showSettings.list_show_url_newtarget} target="_blank"{/if}>Website</a></li>{/if}
-                    {* {if $member.phone && $showSettings.list_map_show_phone}<a href="tel:+{$member.phone}">Phone</a>{/if} *}
-                    {$packageLink = apply_filters('glm-member-db-front-members-list-linksBottom', '', $member.member_pointer)}
-                    {if $packageLink}<li>{$packageLink}</li>{/if}
-                    {if $member.reservation_url}<li><a target="_blank" href="{$member.reservation_url}">Reserve Now</a></li>{/if}
-
-                    {if $showSettings.list_show_live_cam}
-                        {if $member.live_cam_type.name == "Web Page" && $member.live_cam_url && $showSettings.list_show_live_cam}
-                            <li><a target="_blank" href="{$member.live_cam_url}">{$terms.term_webcam_cap}</a></li>
-                        {else if $member.live_cam_type.name == "Camera Image"}
-                            <li><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}?expanded=live-cam">{$terms.term_webcam_cap}</a></li>
-                        {/if}
-                    {/if}
-
-                    {apply_filters('glm-member-db-front-members-list-memberBelow', '', $member.member_pointer)}
-                </ul>
-            </div>
-        </li> {* end of li.glm-member-list-record *}
-    {/foreach} {*$members*}
-</ul>
diff --git a/glm-member-db/views/front/members/listTypeGrid.html.save b/glm-member-db/views/front/members/listTypeGrid.html.save
new file mode 100644 (file)
index 0000000..14188aa
--- /dev/null
@@ -0,0 +1,82 @@
+{* List Type Grid *}
+<ul class="row">
+    {foreach $members as $member}
+        <li class="glm-member-list-record columns small-12 medium-6 large-4">
+            <a class="anchorWrapper"{if $showSettings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{else} style="cursor: default;"{/if}>
+                {apply_filters('glm-member-db-front-members-list-memberAbove', '', $member.member_pointer)}
+                <div class="glm-member-db-border-wrap">
+                    {apply_filters('glm-member-db-front-members-list-memberTop', '', $member.member_pointer)}
+
+                    <div class="glm-member-list-image-wrapper"{if $settings.list_show_detail_link && !$member.has_no_profile.value} href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/"{/if}>
+
+                        {if $member.featured}
+                            <div class="glm-member-list-featured-tag">
+                                featured
+                            </div>
+                        {/if}
+
+                        {if $member.logo && $showSettings.list_show_logo}
+                            <div class="glm-member-list-has-image">
+                                {apply_filters('glm-member-db-front-members-list-memberImageTop', '', $member.member_pointer)}
+                                <img class="glm-member-list-image" src="{$glmPluginMediaUrl}/images/grid/{$member.logo}">
+                            </div>
+                        {elseif $showSettings.list_show_logo_filler}
+                            <div class="glm-member-list-has-image">
+                                {apply_filters('glm-member-db-front-members-list-memberImageTop', '', $member.member_pointer)}
+                                <img class="glm-member-list-image-filler" src="{$assetsUrl}/filler_s.gif">
+                            </div>
+                        {else}
+                            <div class="glm-member-list-missing-image"></div>
+                        {/if}
+                    </div>
+                    <div class="glm-member-list-info-wrapper">
+                        <h4 class="glm-member-title"> {$member.member} </h4>
+                        <div class="glm-member-list-description small-12 columns">
+                            <div>
+                            {apply_filters('glm-member-db-front-members-list-memberDescriptionTop', '', $member.member_pointer)}
+                            {if $member.short_descr && $showSettings.list_show_short_descr}
+                                {$member.short_descr|nl2br}
+                            {/if}
+                            {apply_filters('glm-member-db-front-members-list-memberDescriptionBottom', '', $member.member_pointer)}
+                            </div>
+                        </div>
+                        {if $member.city}
+                            <div class="glm-member-list-address-container">
+                                <span class="member-city">{$member.city}{if $member.state.value}{/if}</span><br>
+                            </div>
+                        {/if}
+                        {if $settings.memb_info_location && $member.region && $showSettings.list_show_region}
+                            <div class="glm-member-list-region-container">
+                                Region: {$member.region}
+                            </div>
+                        {/if}
+                        {if ($settings.memb_info_contact && $member.phone && $showSettings.list_show_phone) || ($settings.memb_info_contact && $member.toll_free && $showSettings.list_show_tollfree)}
+                            <div class="glm-member-list-phone-container">
+                                {if $member.phone && $showSettings.list_show_phone}<span class="glm-member-db-phone">{apply_filters('glm_associate_phone_filter', $member.phone)} </span>{/if}
+                            </div>
+                        {/if}
+                    </div>
+                </div> {* End of glm-member-db-border *}
+            </a>
+            <div class="glm-member-list-sub-links">
+                <ul>
+                    {if $member.url && $showSettings.list_show_url}<li><a href="{$member.url}"{if $showSettings.list_show_url_newtarget} target="_blank"{/if}>Website</a></li>{/if}
+                    {* {if $member.phone && $showSettings.list_map_show_phone}<a href="tel:+{$member.phone}">Phone</a>{/if} *}
+                    {$packageLink = apply_filters('glm-member-db-front-members-list-linksBottom', '', $member.member_pointer)}
+                    {if $packageLink}<li>{$packageLink}</li>{/if}
+                    {if $member.reservation_url}<li><a target="_blank" href="{$member.reservation_url}">Reserve Now</a></li>{/if}
+
+                    {if $showSettings.list_show_live_cam}
+                        {if $member.live_cam_type.name == "Web Page" && $member.live_cam_url && $showSettings.list_show_live_cam}
+                            <li><a target="_blank" href="{$member.live_cam_url}">{$terms.term_webcam_cap}</a></li>
+                        {else if $member.live_cam_type.name == "Camera Image"}
+                            <li><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$member.member_slug}/{if $settings.enable_multiple_profiles}{$member.id}/{/if}?expanded=live-cam">{$terms.term_webcam_cap}</a></li>
+                        {/if}
+                    {/if}
+
+                    {apply_filters('glm-member-db-front-members-list-memberBelow', '', $member.member_pointer)}
+                </ul>
+            </div>
+        </li> {* end of li.glm-member-list-record *}
+    {/foreach} {*$members*}
+</ul>