{"id":2717,"date":"2024-04-23T14:47:40","date_gmt":"2024-04-23T14:47:40","guid":{"rendered":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/?post_type=avada_portfolio&#038;p=2717"},"modified":"2024-06-26T20:39:00","modified_gmt":"2024-06-26T20:39:00","slug":"gloucester-county","status":"publish","type":"avada_portfolio","link":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/portfolio-items\/gloucester-county\/","title":{"rendered":"Gloucester County, VA"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--link_hover_color: #434549;--link_color: #141617;--awb-border-sizes-top:0px;--awb-border-sizes-bottom:0px;--awb-border-sizes-left:0px;--awb-border-sizes-right:0px;--awb-border-color:#fcf4ec;--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:19px;--awb-padding-right:30px;--awb-padding-bottom:0px;--awb-padding-left:30px;--awb-padding-top-small:60px;--awb-padding-bottom-small:60px;--awb-margin-top:-50px;--awb-margin-bottom:0px;--awb-background-color:#fcf4ec;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:calc( 1170px + 100px );margin-left: calc(-100px \/ 2 );margin-right: calc(-100px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-animated\" style=\"--awb-padding-right:58px;--awb-padding-left:55px;--awb-padding-right-small:2px;--awb-padding-left-small:0px;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:0px;--awb-margin-bottom-large:16px;--awb-spacing-left-large:0px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:0px;--awb-spacing-left-medium:0px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:50px;--awb-margin-bottom-small:44px;--awb-spacing-left-small:50px;\" data-animationType=\"fadeInUp\" data-animationDuration=\"1.3\" data-animationOffset=\"top-into-view\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div ><a class=\"fusion-button button-3d button-large button-custom fusion-button-default button-1 fusion-button-default-span \" style=\"--button_bevel_color:var(--awb-color5);--button_bevel_color_hover:var(--awb-custom_color_12);--button_accent_color:var(--awb-color2);--button_border_color:var(--awb-color2);--button_accent_hover_color:var(--awb-color1);--button_border_hover_color:var(--awb-color1);--button_gradient_top_color:var(--awb-custom_color_4);--button_gradient_bottom_color:var(--awb-custom_color_4);--button_gradient_top_color_hover:var(--awb-custom_color_6);--button_gradient_bottom_color_hover:var(--awb-custom_color_6);\" target=\"_self\" data-hover=\"text_slide_up\" href=\"#yelp\"><span class=\"fusion-button-icon-divider button-icon-divider-left\"><i class=\"fa-yelp fab awb-button__icon awb-button__icon--default\" aria-hidden=\"true\"><\/i><\/span><div class=\"awb-button-text-transition \"><span class=\"fusion-button-text awb-button__text awb-button__text--default fusion-button-text-left\">Local Yelp Search<\/span><span class=\"fusion-button-text awb-button__text awb-button__text--default fusion-button-text-left\">Local Yelp Search<\/span><\/div><\/a><\/div><div class=\"fusion-title title fusion-title-1 fusion-title-center fusion-title-text fusion-title-size-one\" style=\"--awb-text-color:#141617;--awb-margin-top:2px;--awb-margin-bottom:-50px;--awb-margin-top-small:10px;--awb-margin-right-small:0px;--awb-margin-bottom-small:-20px;--awb-margin-left-small:0px;--awb-sep-color:#fcf4ec;--awb-font-size:65px;\"><div class=\"title-sep-container title-sep-container-left\"><div class=\"title-sep sep- sep-solid\" style=\"border-color:#fcf4ec;\"><\/div><\/div><span class=\"awb-title-spacer\"><\/span><h1 class=\"fusion-title-heading title-heading-center\" style=\"font-family:&quot;Unna&quot;;font-style:normal;font-weight:400;margin:0;text-transform:var(--awb-typography1-text-transform);font-size:1em;line-height:1.2;\"><h2 class=\"fusion-title-heading title-heading-left fusion-live-editable fusion-responsive-typography-calculated medium-editor-element\" role=\"textbox\" contenteditable=\"true\" spellcheck=\"true\" data-inline-parent-cid=\"10\" data-inline-override-color=\"text_color\" data-inline-override-font-size=\"font_size\" data-inline-override-line-height=\"line_height\" data-inline-override-letter-spacing=\"letter_spacing\" data-inline-override-tag=\"size\" data-toolbar=\"full\" data-param=\"element_content\" data-fontsize=\"26\" data-lineheight=\"28.8667px\" data-medium-editor-element=\"true\" aria-multiline=\"true\" data-medium-editor-editor-index=\"1\" data-placeholder=\"Your Content Goes Here\" data-medium-focused=\"true\"><strong>Gloucester County, VA<br \/><\/strong><\/h2><\/h1><span class=\"awb-title-spacer\"><\/span><div class=\"title-sep-container title-sep-container-right\"><div class=\"title-sep sep- sep-solid\" style=\"border-color:#fcf4ec;\"><\/div><\/div><\/div><div class=\"fusion-text fusion-text-1 fusion-text-no-margin\" style=\"--awb-content-alignment:center;--awb-font-size:15px;--awb-line-height:24px;--awb-letter-spacing:0px;--awb-text-transform:var(--awb-typography4-text-transform);--awb-text-color:#141617;--awb-margin-right:0px;--awb-margin-bottom:0px;--awb-margin-left:0px;--awb-text-font-family:&quot;Montserrat&quot;;--awb-text-font-style:normal;--awb-text-font-weight:400;\"><p align=\"left\">Along the scenic Chesapeake Bay, a blend of natural beauty and rich history characterizes a coastal community steeped in tradition. The landscape is adorned with lush forests, winding waterways, and picturesque farmlands, creating a serene environment that reflects the area&#8217;s agricultural heritage. The bay and its tributaries provide a haven for water activities, from fishing and crabbing to kayaking and sailing, offering residents and visitors alike a chance to engage with the stunning surroundings. The changing seasons bring vibrant foliage in the fall, crisp air and occasional snowfall in the winter, blossoming flowers in the spring, and warm, sun-drenched days in the summer, making the locale a year-round destination for nature enthusiasts.<\/p>\n<p align=\"left\">A deep sense of history pervades the area, with roots tracing back to colonial times. Historical landmarks and preserved sites tell the stories of early American settlers, Revolutionary War heroes, and Civil War battles, offering a glimpse into the past. The community values its heritage, evident in well-maintained museums, historic homes, and annual festivals that celebrate local culture and traditions. The blend of historical architecture with modern amenities provides a unique charm, attracting those who appreciate both the old and the new. Educational opportunities abound, with schools that emphasize the importance of understanding and preserving the area&#8217;s rich history, preparing future generations to honor and continue the legacy.<\/p>\n<p align=\"left\">The local economy thrives on a mix of agriculture, seafood, and tourism, supported by small businesses that contribute to the vibrant community spirit. Farmers markets, seafood festivals, and local artisans showcase the best of what the region has to offer, fostering a strong sense of community pride and collaboration. The friendly, tight-knit community welcomes newcomers with open arms, creating a sense of belonging and connection. This blend of natural splendor, historical significance, and community spirit makes the area not just a place to live, but a place to truly call home.<\/p>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-animated\" style=\"--awb-padding-right:37px;--awb-padding-left:8px;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:calc( 0.051 * calc( 100% - 100px ) );--awb-margin-bottom-large:80px;--awb-spacing-left-large:50px;--awb-width-medium:33.333333333333%;--awb-order-medium:0;--awb-spacing-right-medium:calc( 0.153 * calc( 100% - 100px ) );--awb-spacing-left-medium:50px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:50px;--awb-margin-bottom-small:40px;--awb-spacing-left-small:50px;\" data-animationType=\"fadeInUp\" data-animationDuration=\"1.3\" data-animationOffset=\"top-into-view\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-2\"><p><strong><b>Gloucester Courthouse<br \/><\/b><\/strong><a href=\"https:\/\/gloucesterva.gov\/\"><strong><b>Gloucester County Municipal Offices<\/b><\/strong><\/a><strong><b>&nbsp;<\/b><\/strong><\/p>\n<p>The Gloucester Courthouse in Virginia is a significant historical site that exudes colonial charm and architectural elegance. This courthouse is a fine example of 18th-century American architecture, featuring a classic red brick exterior, tall white columns, and a prominent cupola that rises above its central hall. Its surroundings are lush with mature trees and manicured lawns, providing a picturesque setting that speaks to its historical and civic importance. Inside, the courthouse boasts beautifully preserved woodwork, high ceilings, and large windows that allow natural light to illuminate the space, creating an atmosphere that is both grand and inviting. As a central hub of legal and civic activity for Gloucester County, the courthouse has witnessed countless proceedings and events over the centuries, each adding to its rich tapestry of local history. Its location within the Gloucester Courthouse Historic District further underscores its status as a landmark, drawing visitors who are eager to explore its storied past and appreciate its enduring legacy.<\/p>\n<\/div><\/div><\/div><\/div><\/div><div id=\"yelp\" class=\"fusion-container-anchor\"><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:26px;--awb-flex-wrap:wrap;--awb-flex-wrap-small:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1216.8px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-title title fusion-title-2 fusion-title-center fusion-title-text fusion-title-size-one\" style=\"--awb-text-color:var(--awb-custom_color_4);--awb-margin-bottom:-10px;--awb-margin-top-small:0px;--awb-margin-right-small:0px;--awb-margin-bottom-small:20px;--awb-margin-left-small:0px;\"><div class=\"title-sep-container title-sep-container-left\"><div class=\"title-sep sep- sep-solid\" style=\"border-color:var(--awb-color3);\"><\/div><\/div><span class=\"awb-title-spacer\"><\/span><h1 class=\"fusion-title-heading title-heading-center\" style=\"margin:0;\"><h1 style=\"text-align: center;\">Local Activities &amp; Information<\/h1><\/h1><span class=\"awb-title-spacer\"><\/span><div class=\"title-sep-container title-sep-container-right\"><div class=\"title-sep sep- sep-solid\" style=\"border-color:var(--awb-color3);\"><\/div><\/div><\/div><div class=\"fusion-text fusion-text-3\"><p style=\"text-align: center;\"><span style=\"color: var(--awb-custom_color_5);\">Use the search box below to find listings on anything from Restaurants and Coffee Shops, to Grocery Stores, Schools and much more.<br \/>\nThe <\/span><b style=\"color: var(--awb-custom_color_5);\">More<\/b><span style=\"color: var(--awb-custom_color_5);\"> menu will give you some options as well. <\/span><\/p>\n<\/div><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Yelp Store Locator<\/title>\n<style>\nbody {\n    font-family: Arial, sans-serif;\n    margin: 0;\n    padding: 0;\n    background: #f8f8f8; \/* Slight grey background *\/\n}\n\n\/* Flex container for the whole page content *\/\n.form-wrapper {\n    display: flex;\n    justify-content: space-around; \/* Evenly distribute space around items *\/\n    flex-wrap: wrap; \/* Allow items to wrap if not enough space *\/\n    margin: 20px;\n}\n\n\/* Search form and results container *\/\n.form-wrapper .form-container {\n    flex-basis: 47%;\n    margin-bottom: 20px;\n}\n\n\/* Search bar at the top *\/\n.search-top {\n    margin-top: 20px;\n}\n.search-bar {\n    max-width: 1024px;\n    padding:0 20px;\n    padding: 10px;\n    border-radius: 4px;\n    margin: 0 auto 20px;\n}\n.search-bar #searchForm {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    box-shadow: rgba(0,0,0,0.15) 0px 2px 18px 0px;\n}\n.search-field {\n    flex: 1;\n}\n.search-field.desc {\n    position: relative;\n}\n.search-field.desc::after {\n    content: '';\n    position: absolute;\n    top: 10px;\n    bottom: 10px;\n    right: 0;\n    width: 2px;\n    background-color: rgba(0, 0, 0, 0.2);\n}\n#searchForm .search-field input {\n    border: 0;\n  \n}\n.search-field.category-dropdown select {\n    width: auto;\n    background: transparent;\n    margin-top:15px;\n}\n.search-field input[type=\"text\"],\n.search-field select {\n    width: 100%; \/* Full width of parent *\/\n    padding: 15px 10px;\n    border: 1px solid #ddd;\n    font-size: 14px;\n    box-sizing: border-box;\n}\n\n\/* Search button styling *\/\n.search-button button {\n    padding: 17px 20px;\n    background-color: #ff0000; \/* Yelp red *\/\n    color: #fff;\n    border: none;\n    border-radius: 4px;\n    cursor: pointer;\n    text-transform: uppercase;\n    font-weight: bold;\n}\n\n\/* Style the pagination buttons *\/\n.pagination{\n    border-top: 1px solid #e3d8d8;\n    padding: 15px 0;\n    margin-top: 20px;\n    border-bottom: 1px solid #e3d8d8;\n}\n\n\n.pagination button {\n    background: none;\n    padding: 5px 10px;\n    border-radius: 4px;\n    margin-right: 5px;\n    border: none;\n    cursor: pointer;\n    font-size: 16px;\n}\n\n.pagination button.active,\n.pagination button:hover {\n    font-weight: bold;\n}\n\n\/* Map container styling *\/\n#map {\n    flex: 1;\n    height: 700px; \/* Adjusted height for consistency *\/\n    border-radius: 4px; \/* Rounded corners *\/\n    overflow: hidden; \/* Clip the content *\/\n    margin-left: 20px; \/* Space from the form container *\/\n}\n\n\/* Search results card styles *\/\n.card {\n    display: flex;\n    background: #fff;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n    border-radius: 4px;\n    overflow: hidden;\n    align-items: center;\n    padding: 0 15px;\n    border-bottom: 1px solid #eee;\n}\n\n.card img {\n    width: 200px; \/* Slightly smaller images *\/\n    height: 200px;\n    object-fit: cover;\n}\n\n.card-content {\n    padding: 15px;\n    flex-grow: 1;\n}\n\n\/* Loader style adjustments *\/\n#loader {\n    display: none; \/* Hide by default, show when loading *\/\n    position: fixed; \/* Or absolute, depending on use-case *\/\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    text-align: center;\n}\n\n#loader img {\n    width: 50px; \/* Adjust as needed *\/\n    height: 50px; \/* Adjust as needed *\/\n    \/* Animation for spinning *\/\n    animation: spin 1s linear infinite;\n}\n\n\/* Loader animation *\/\n@keyframes spin {\n    0% { transform: translate(-50%, -50%) rotate(0deg); }\n    100% { transform: translate(-50%, -50%) rotate(360deg); }\n}\n\n@media (max-width: 768px) {\n    .form-wrapper {\n        flex-direction: column; \/* Stack on smaller screens *\/\n    }\n\n    .form-container,\n    #map {\n        width: 100%;\n        max-width: none;\n        margin-left: 0; \/* Remove margin for full width *\/\n    }\n\n    #map {\n        order: -1; \/* Map comes before search results on small screens *\/\n    }\n}\n\n\/* Add responsive design for very small screens *\/\n@media (max-width: 480px) {\n    .search-bar {\n        flex-direction: column; \/* Stack form fields vertically *\/\n    }\n\n    .search-field,\n    .search-button button {\n        width: 100%; \/* Full width for small screens *\/\n        margin: 5px 0; \/* Add space between stacked items *\/\n    }\n}\n\n\/* Style the dropdown button *\/\n.dropbtn {\n    background-color: transparent;\n    color: black;\n    padding: 16px;\n    font-size: 16px;\n    border: none;\n    cursor: pointer;\n}\n\n\/* The container <div> - needed to position the dropdown content *\/\n.dropdown {\n    position: relative;\n    display: inline-block;\n    margin: 10px 0;\n}\n\n\/* Dropdown Content (Hidden by Default) *\/\n.dropdown-content {\n    display: none;\n    position: absolute;\n    background-color: #f9f9f9;\n    min-width: 240px;\n    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n    z-index: 1;\n    gap: 20px;\n    padding: 0 10px;\n}\n\n\/* Links inside the dropdown *\/\n.dropdown-content span {\n    color: black;\n    padding: 16px 0;\n    text-decoration: none;\n    display: flex;\n    align-items: center;\n    cursor: pointer;\n}\n\n.dropdown-content .flex-links{\n        padding: 12px 0\n}\n\n\/* Icon styling *\/\n.icon {\n    margin-right: 10px;\n    \/* You can use SVGs or Font Icons like FontAwesome, or background-image with sprites *\/\n}\n\n\/* Change color of dropdown links on hover *\/\n.dropdown-content span:hover {background-color: #ddd;}\n\n\/* Show the dropdown menu on hover *\/\n.dropdown:hover .dropdown-content {\n    \/* display: block; *\/\n    display: flex;\n}\n\n\/* Show the dropdown menu on focus *\/\n.dropdown:focus-within .dropdown-content {\n    display: block;\n}\n\n\/* Other styles for icons can be added here, using the specific class names *\/\n.dry-cleaning-icon {\n    \/* Add background-image or other styling for the dry cleaning icon *\/\n}\n\n.pagination, #loader {\n    display: none; \/* Hidden by default *\/\n}\n\n.autocomplete-results {\n    display: none;\n    position: absolute;\n    background: white;\n    border: 1px solid #ddd;\n    border-top: none;\n    z-index: 2;\n    width: 100%;\n    box-sizing: border-box;\n}\n\n.autocomplete-suggestion {\n    padding: 10px;\n    border-bottom: 1px solid #ddd;\n    cursor: pointer;\n}\n\n.autocomplete-suggestion:last-child {\n    border-bottom: none;\n}\n\n.autocomplete-suggestion:hover {\n    background-color: #f8f8f8;\n}\n\n\n\/* Similarly add specific icon styles for other menu items *\/\n<\/style>\n<\/head>\n<body>\n<div class=\"search-top\">\n    <div class=\"search-bar\">\n        <form id=\"searchForm\" action=\"\/yelp-store-locator\" method=\"get\">\n            <div class=\"search-field desc\">\n                <input type=\"text\" id=\"searchDescription\" name=\"searchDescription\" placeholder=\"Search description\">\n                <div id=\"autocomplete-results\" class=\"autocomplete-results\"><\/div>\n            <\/div>\n            \n            <div class=\"search-field location\">\n                <input type=\"text\" id=\"locationQuery\" name=\"location\" placeholder=\"Enter search location\" value=\"Gloucester County, VA\" required>\n            <\/div>\n            <div class=\"search-button\">\n                <button type=\"submit\">Search<\/button>\n            <\/div>\n        <\/form>\n\n        <div class=\"dropdown\">\n            <span class=\"dropbtn\">More \u25bc<\/span>\n            <div class=\"dropdown-content\">\n                <div class=\"flex-links\">\n                    <span>\n                        <i class=\"icon dry-cleaning-icon\"><\/i> Restaurants\n                    <\/span>\n                    <span>\n                        <i class=\"icon hair-salons-icon\"><\/i> Coffee Shops\n                    <\/span>\n                    <span>\n                        <i class=\"icon phone-repair-icon\"><\/i> Grocery Stores\n                    <\/span>\n                    <span>\n                        <i class=\"icon phone-repair-icon\"><\/i> Nightlife\n                    <\/span>\n                <\/div>\n                <div class=\"flex-links\">\n                    <span>\n                        <i class=\"icon phone-repair-icon\"><\/i> Medical\n                    <\/span>\n                    <span>\n                        <i class=\"icon phone-repair-icon\"><\/i> Activities\n                    <\/span>\n                    <span>\n                        <i class=\"icon phone-repair-icon\"><\/i> Schools\n                    <\/span>\n                    <span>\n                        <i class=\"icon phone-repair-icon\"><\/i> Hair Salon\n                    <\/span>\n                <\/div>\n                <!-- Add other menu items here -->\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<div class=\"form-wrapper\">\n    <div class=\"form-container\">\n        <div id=\"searchResults\"><\/div>\n        <div class=\"pagination\"><\/div>\n    <\/div>\n    <!-- Map Container -->\n    <div id=\"map\"><\/div>\n<\/div>\n\n<!-- Loader HTML -->\n<!-- <div id=\"loader\">Loading...<\/div> -->\n<div id=\"loader\">\n    <img class=\"lazyload\" decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" data-orig-src=\"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-content\/plugins\/yelp-store-locator\/assets\/images\/loader.png\" alt=\"Loading...\" \/>\n<\/div>\n\n\n<script src=\"https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js\"><\/script>\n<script>\n    $(document).ready(function () {\n        var yelpAutocompleteUrl = \"https:\/\/api.yelp.com\/v3\/autocomplete\";\n\n        $('#searchDescription').on('input', function() {\n            var searchText = $(this).val();\n        \n            \/\/ Make sure the search text is not empty\n            if (searchText.length > 0) {\n                $.ajax({\n                    url: '\/wp-content\/plugins\/yelp-store-locator\/proxy\/yelp-autocomplete-proxy.php',\n                    method: 'GET',\n                    data: {\n                        text: searchText \/\/ text entered by the user\n                    },\n                    success: function(data) {\n                        \/\/ Clear previous suggestions\n                        $('#autocomplete-results').empty();\n                        \n                        \/\/ Process the response and append suggestions\n                        if(data.terms && data.terms.length > 0) {\n                            data.terms.forEach(function(term) {\n                                $('#autocomplete-results').append('<div class=\"autocomplete-suggestion\">' + term.text + '<\/div>');\n                            });\n                            $('#autocomplete-results').show();\n                        }\n                    },\n                    error: function(jqXHR, textStatus, errorThrown) {\n                        console.error(\"Error with Autocomplete API:\", textStatus, errorThrown);\n                    }\n                });\n            } else {\n                \/\/ If the search text is empty, clear and hide suggestions\n                $('#autocomplete-results').empty().hide();\n            }\n        });\n\n        \/\/ Listener for clicking on an autocomplete suggestion\n        $('#autocomplete-results').on('click', '.autocomplete-suggestion', function() {\n            \/\/ Set the input to the clicked suggestion and hide suggestions\n            $('#searchDescription').val($(this).text());\n            $('#autocomplete-results').empty().hide();\n        });\n    \n        \/\/ Initially hide pagination and loader\n        $('.pagination').hide();\n        $('#loader').hide();\n\n        var map; \/\/ Declare map variable globally\n        var markers = []; \/\/ Array to store markers\n        var currentPage = 1;\n        var resultsPerPage = 5;\n        var totalResults = 0;\n\n        \/\/ Event handler for category selection\n        $('.dropdown-content span').on('click', function() {\n            \/\/ Get the text of the clicked category\n            var categoryText = $(this).text().trim();\n\n            \/\/ Set the value of the searchDescription input\n            $('#searchDescription').val(categoryText);\n\n            \/\/ Close the dropdown if needed\n            $('.dropdown-content').hide();\n\n            \/\/ Optionally, you could submit the form automatically after selection\n            \/\/ $('#searchForm').submit();\n        });\n\n        \/\/ Toggle dropdown content on click\n        $('.dropbtn').on('click', function() {\n            \/\/ Use slideToggle for a simple animation\n            $('.dropdown-content').slideToggle();\n        });\n\n        \/\/ Close the dropdown if clicked outside\n        $(document).on('click', function(e) {\n            if (!$(e.target).closest('.dropdown').length) {\n                $('.dropdown-content').hide();\n            }\n        });\n\n        \/\/ Populate search description initially\n        $('#searchDescription').val($('#category').find('option:selected').text());\n\n        \/\/ Update search description when category changes\n        $('#category').change(function() {\n            $('#searchDescription').val($(this).find('option:selected').text());\n        });\n\n        \/\/ Check if the location is provided and trigger search\n        if ($('#locationQuery').val() !== '') {\n            setTimeout(function() {\n                $('#searchForm').submit();\n            }, 500);\n        }\n\n        $('#searchForm').submit(function (event) {\n            event.preventDefault();\n            $('#loader').show(); \/\/ Show loader here when the search starts\n            $('.pagination').hide(); \/\/ Hide pagination during loading\n\n            var locationQuery = $('#locationQuery').val();\n            \/\/ Use the value from the search description input\n            var searchDescription = $('#searchDescription').val();\n            var apiUrl = 'https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-content\/plugins\/yelp-store-locator\/proxy\/proxy.php?location=' + encodeURIComponent(locationQuery) + '&term=' + encodeURIComponent(searchDescription);\n\n            \/\/ Hide search results and map\n            $('#searchResults').hide();\n            $('#map').hide();\n            \/\/ Show loader before making the API request\n            $('#loader').show();\n\n            fetch(apiUrl)\n            .then(response => {\n                if (!response.ok) {\n                    throw new Error('Network response was not ok');\n                }\n                return response.json(); \/\/ Parse JSON response\n            })\n            .then(data => {\n                if (data && data.businesses && data.businesses.length > 0) {\n                    $('.pagination').show();\n                } else {\n                    $('.pagination').hide();\n                }\n                $('#loader').hide(); \/\/ Hide loader after data is processed\n                \/\/ ...Display results...\n                totalResults = data.businesses.length;\n\n                \/\/ Clear previous search results\n                $('#searchResults').empty();\n\n                \/\/ Initialize map\n                map = new google.maps.Map(document.getElementById('map'), {\n                    center: { lat: 0, lng: 0 }, \/\/ Default center\n                    zoom: 12 \/\/ Default zoom level\n                });\n\n                \/\/ Clear previous markers\n                markers.forEach(marker => marker.setMap(null));\n                markers = [];\n\n                \/\/ Create a LatLngBounds object to encompass all markers\n                var bounds = new google.maps.LatLngBounds();\n\n                \/\/ Calculate pagination values\n                var startIndex = (currentPage - 1) * resultsPerPage;\n                var endIndex = startIndex + resultsPerPage;\n                endIndex = endIndex > totalResults ? totalResults : endIndex;\n\n                \/\/ Iterate over each business in the response data for the current page\n                for (var i = startIndex; i < endIndex; i++) {\n                    var business = data.businesses[i];\n\n                    \/\/ Create card element to display business information\n                    var cardHtml = '<div class=\"card\">';\n                    cardHtml += '<img class=\"lazyload\" decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" data-orig-src=\"' + business.image_url + '\" alt=\"' + business.name + '\">';\n                    cardHtml += '<div class=\"card-content\">';\n                    cardHtml += '<h3><a href=\"' + business.url + '\">' + business.name + '<\/a><\/h3>';\n                    cardHtml += '<p><strong>Rating:<\/strong> ' + business.rating + '<\/p>';\n                    cardHtml += '<p><strong>Review Count:<\/strong> ' + business.review_count + '<\/p>';\n                    if (business.categories.length > 0) {\n                        cardHtml += '<p><strong>Category:<\/strong> ' + business.categories[0].title + '<\/p>';\n                    }\n                    cardHtml += '<p><strong>Address:<\/strong> ' + business.location.address1 + ', ' + business.location.city + ', ' + business.location.state + ' ' + business.location.zip_code + '<\/p>';\n                    cardHtml += '<p><strong>Phone:<\/strong> ' + business.display_phone + '<\/p>';\n                    cardHtml += '<\/div><\/div>';\n\n                    \/\/ Append the card HTML to the searchResults div\n                    $('#searchResults').append(cardHtml);\n\n                    \/\/ Display coordinates if available\n                    if (business.coordinates) {\n                        \/\/ Add marker to the map for each business\n                        var marker = new google.maps.Marker({\n                            position: { lat: business.coordinates.latitude, lng: business.coordinates.longitude },\n                            map: map,\n                            title: business.name\n                        });\n\n                        markers.push(marker);\n\n                        \/\/ Extend the bounds to include the marker's position\n                        bounds.extend(marker.getPosition());\n                    }\n                }\n\n                \/\/ Adjust map bounds to fit all markers\n                map.fitBounds(bounds);\n\n                \/\/ Hide loader after request is completed\n                $('#loader').hide();\n                \/\/ Show search results and map\n                $('#searchResults').show();\n                $('#map').show();\n\n                \/\/ Generate pagination controls\n                generatePaginationControls();\n            })\n            .catch(error => {\n                console.error('There was a problem with the fetch operation:', error);\n\n                $('#loader').hide(); \/\/ Ensure to hide loader on error as well\n                $('.pagination').hide(); \/\/ Hide pagination if there's an error\n                \/\/ Show search results and map\n                $('#searchResults').show();\n                $('#map').show();\n            });\n        });\n\n        \/\/ Function to generate pagination controls\n        function generatePaginationControls() {\n            var totalPages = Math.ceil(totalResults \/ resultsPerPage);\n            $('.pagination').empty();\n\n            for (var i = 1; i <= totalPages; i++) {\n                var button = $('<button>').text(i);\n                if (i === currentPage) {\n                    button.addClass('active');\n                }\n                button.click(function() {\n                    currentPage = parseInt($(this).text());\n                    $('#searchForm').submit();\n                });\n                $('.pagination').append(button);\n            }\n        }\n    });\n<\/script>\n\n<!-- Include Google Maps JavaScript API with your API key -->\n<script async defer src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDdc1Kke8as6XyfJRAv1veZfIqxp-ioDMo&callback=initMap\"><\/script>\n\n<\/body>\n<\/html>\n<\/div><\/div><\/div><\/div><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":2963,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"portfolio_category":[35],"portfolio_skills":[],"portfolio_tags":[],"class_list":["post-2717","avada_portfolio","type-avada_portfolio","status-publish","format-standard","has-post-thumbnail","hentry","portfolio_category-city-of-phoenix"],"_links":{"self":[{"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/avada_portfolio\/2717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/avada_portfolio"}],"about":[{"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/types\/avada_portfolio"}],"author":[{"embeddable":true,"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/comments?post=2717"}],"version-history":[{"count":8,"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/avada_portfolio\/2717\/revisions"}],"predecessor-version":[{"id":2965,"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/avada_portfolio\/2717\/revisions\/2965"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/media\/2963"}],"wp:attachment":[{"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/media?parent=2717"}],"wp:term":[{"taxonomy":"portfolio_category","embeddable":true,"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/portfolio_category?post=2717"},{"taxonomy":"portfolio_skills","embeddable":true,"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/portfolio_skills?post=2717"},{"taxonomy":"portfolio_tags","embeddable":true,"href":"https:\/\/sunraycityguide.com\/HamptonRoadsVABHGNative\/wp-json\/wp\/v2\/portfolio_tags?post=2717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}