
    const IDX_thisScript = document.currentScript;
    ! function() {
        IDX_insertWidgetHtml();
    }()

    function IDX_insertWidgetHtml() {
        const cities = [{"id":12880,"name":"Valley Falls","state":"KS"},{"id":12709,"name":"Baldwin City","state":"KS"},{"id":12810,"name":"Lawrence","state":"KS"},{"id":12747,"name":"Cowgill","state":"MO"},{"id":12734,"name":"Centerville","state":"KS"},{"id":23821,"name":"Washburn","state":"MO"},{"id":12853,"name":"Prescott","state":"KS"},{"id":23790,"name":"Neosho","state":"MO"},{"id":12429,"name":"Harrisonville","state":"MO"},{"id":12466,"name":"Overland Park","state":"KS"},{"id":12493,"name":"Wellington","state":"MO"},{"id":37677,"name":"Sarcoxie","state":"MO"},{"id":12716,"name":"Braymer","state":"KS"},{"id":12415,"name":"Edwardsville","state":"KS"},{"id":12765,"name":"Eudora","state":"KS"},{"id":28277,"name":"Concordia","state":"KS"},{"id":12881,"name":"Vassar","state":"KS"},{"id":12809,"name":"Laurie","state":"KS"},{"id":12865,"name":"Salisbury","state":"KS"},{"id":30440,"name":"Galt","state":"MO"},{"id":30397,"name":"Fulton","state":"MO"},{"id":12870,"name":"Sibley","state":"MO"},{"id":23808,"name":"Shell Knob","state":"MO"},{"id":12718,"name":"Breckenridge","state":"MO"},{"id":12889,"name":"Weatherby Lake","state":"KS"},{"id":28958,"name":"Diamond","state":"MO"},{"id":12744,"name":"Cosby","state":"MO"},{"id":12753,"name":"Deepwater","state":"MO"},{"id":12496,"name":"Williamsburg","state":"KS"},{"id":12471,"name":"Platte City","state":"MO"},{"id":12833,"name":"Nevada","state":"MO"},{"id":12420,"name":"Gallatin","state":"MO"},{"id":31540,"name":"Hiawatha","state":"KS"},{"id":35947,"name":"Parsons","state":"KS"},{"id":12759,"name":"Easton","state":"MO"},{"id":12831,"name":"Mound City","state":"MO"},{"id":12844,"name":"Overland Park","state":"MO"},{"id":12751,"name":"De Kalb","state":"MO"},{"id":12817,"name":"Lexington","state":"MO"},{"id":12857,"name":"Rantoul","state":"KS"},{"id":25352,"name":"Stella","state":"MO"},{"id":12770,"name":"Farley","state":"MO"},{"id":25332,"name":"Sedan","state":"KS"},{"id":28647,"name":"Dadeville","state":"MO"},{"id":25010,"name":"Coffeyville","state":"KS"},{"id":12426,"name":"Grandview","state":"MO"},{"id":12717,"name":"Braymer","state":"MO"},{"id":12776,"name":"Fulton","state":"KS"},{"id":12432,"name":"Independence","state":"MO"},{"id":12473,"name":"Pleasant Hill","state":"MO"},{"id":12841,"name":"Orrick","state":"MO"},{"id":12786,"name":"Horton","state":"KS"},{"id":37730,"name":"Scammon","state":"KS"},{"id":12469,"name":"Peculiar","state":"MO"},{"id":25647,"name":"Alma","state":"MO"},{"id":12850,"name":"Pleasanton","state":"KS"},{"id":12412,"name":"Drexel","state":"MO"},{"id":12824,"name":"Mclouth","state":"KS"},{"id":12780,"name":"Hardin","state":"MO"},{"id":12862,"name":"Ridgeway","state":"MO"},{"id":12832,"name":"Napoleon","state":"MO"},{"id":12805,"name":"Lancaster","state":"KS"},{"id":12728,"name":"Camden Point","state":"MO"},{"id":12830,"name":"Mound City","state":"KS"},{"id":55007,"name":"Rockport","state":"MO"},{"id":12878,"name":"Turney","state":"MO"},{"id":12758,"name":"Easton","state":"KS"},{"id":12481,"name":"Rayville","state":"MO"},{"id":12422,"name":"Gardner","state":"KS"},{"id":12854,"name":"Preston","state":"MO"},{"id":12869,"name":"Shawnee Mission","state":"KS"},{"id":12474,"name":"Pleasant Valley","state":"MO"},{"id":12494,"name":"Wellsville","state":"KS"},{"id":12826,"name":"Meriden","state":"KS"},{"id":12762,"name":"Elk Falls","state":"KS"},{"id":12773,"name":"Fillmore","state":"MO"},{"id":29884,"name":"Fairview","state":"MO"},{"id":12465,"name":"Ottawa","state":"KS"},{"id":12483,"name":"Roeland Park","state":"KS"},{"id":12492,"name":"Weatherby Lake","state":"MO"},{"id":37169,"name":"Rocky Comfort","state":"MO"},{"id":12411,"name":"Drexel","state":"KS"},{"id":12417,"name":"Fairway","state":"KS"},{"id":12875,"name":"Syracuse","state":"KS"},{"id":12791,"name":"Iola","state":"KS"},{"id":12486,"name":"Spring Hill","state":"KS"},{"id":29834,"name":"Exeter","state":"MO"},{"id":34791,"name":"Mount Vernon","state":"MO"},{"id":12446,"name":"Linn Valley","state":"KS"},{"id":12490,"name":"Tonganoxie","state":"KS"},{"id":12402,"name":"Bates City","state":"MO"},{"id":30766,"name":"Golden City","state":"MO"},{"id":12444,"name":"Lenexa","state":"KS"},{"id":12829,"name":"Mosby","state":"MO"},{"id":12838,"name":"Oakwood","state":"MO"},{"id":34501,"name":"Monett","state":"MO"},{"id":37073,"name":"Riverton","state":"KS"},{"id":12882,"name":"Village Of Oaks","state":"MO"},{"id":12896,"name":"Yates Center","state":"KS"},{"id":12877,"name":"Trenton","state":"MO"},{"id":12720,"name":"Brookfield","state":"MO"},{"id":12879,"name":"Urich","state":"MO"},{"id":12894,"name":"Winston","state":"MO"},{"id":26268,"name":"Baxter Springs","state":"KS"},{"id":39946,"name":"Webb City","state":"MO"},{"id":12477,"name":"Princeton","state":"KS"},{"id":12828,"name":"Mooresville","state":"MO"},{"id":44119,"name":"Loma Linda","state":"MO"},{"id":38619,"name":"Stotts City","state":"MO"},{"id":12849,"name":"Platte Woods","state":"MO"},{"id":12755,"name":"Dover","state":"MO"},{"id":12409,"name":"Cleveland","state":"MO"},{"id":12437,"name":"Kingsville","state":"MO"},{"id":12763,"name":"Emma","state":"MO"},{"id":12859,"name":"Redfield","state":"KS"},{"id":12819,"name":"Longton","state":"KS"},{"id":38623,"name":"Stover","state":"MO"},{"id":12710,"name":"Bethany","state":"MO"},{"id":37105,"name":"Robinson","state":"KS"},{"id":12745,"name":"Countryside","state":"KS"},{"id":27572,"name":"Cassville","state":"MO"},{"id":12430,"name":"Holden","state":"MO"},{"id":12774,"name":"Fleming","state":"MO"},{"id":30506,"name":"Gas","state":"KS"},{"id":12868,"name":"Severance","state":"KS"},{"id":12706,"name":"Amsterdam","state":"MO"},{"id":12836,"name":"Oak Grove","state":"KS"},{"id":12397,"name":"Adrian","state":"MO"},{"id":12470,"name":"Perry","state":"KS"},{"id":12806,"name":"Lane","state":"KS"},{"id":12855,"name":"Princeton","state":"MO"},{"id":25181,"name":"Manhattan","state":"KS"},{"id":12888,"name":"Weatherby","state":"MO"},{"id":27498,"name":"Carl Junction","state":"MO"},{"id":32139,"name":"Jasper","state":"MO"},{"id":12407,"name":"Butler","state":"MO"},{"id":38190,"name":"Smithton","state":"MO"},{"id":12856,"name":"Randolph","state":"MO"},{"id":12419,"name":"Freeman","state":"MO"},{"id":12757,"name":"East Lynne","state":"MO"},{"id":12767,"name":"Everest","state":"KS"},{"id":12835,"name":"Nortonville","state":"KS"},{"id":32118,"name":"Jameson","state":"MO"},{"id":28240,"name":"Columbus","state":"KS"},{"id":30953,"name":"Green Ridge","state":"MO"},{"id":12416,"name":"Excelsior Springs","state":"MO"},{"id":12740,"name":"Clinton","state":"MO"},{"id":12453,"name":"Mission","state":"KS"},{"id":35748,"name":"Osage City","state":"KS"},{"id":12748,"name":"Creighton","state":"MO"},{"id":29646,"name":"Elsmore","state":"KS"},{"id":12803,"name":"Lakeview Heights","state":"KS"},{"id":12705,"name":"Amoret","state":"MO"},{"id":37373,"name":"Sabetha","state":"KS"},{"id":12800,"name":"Lake Tapawingo","state":"MO"},{"id":12871,"name":"Stewartsville","state":"MO"},{"id":35755,"name":"Osceola","state":"MO"},{"id":12472,"name":"Plattsburg","state":"MO"},{"id":12756,"name":"East Lynn","state":"MO"},{"id":30376,"name":"Frontenac","state":"KS"},{"id":24618,"name":"Rosendale","state":"MO"},{"id":12727,"name":"Camden","state":"MO"},{"id":12418,"name":"Fontana","state":"KS"},{"id":12439,"name":"Lathrop","state":"MO"},{"id":12822,"name":"Mapleton","state":"KS"},{"id":12700,"name":"Agency","state":"MO"},{"id":12886,"name":"Waverly","state":"KS"},{"id":12820,"name":"Lowry City","state":"MO"},{"id":37708,"name":"Savonburg","state":"KS"},{"id":23603,"name":"Joplin","state":"MO"},{"id":12861,"name":"Richmond","state":"KS"},{"id":26038,"name":"Auburn","state":"KS"},{"id":12811,"name":"Leawood","state":"MO"},{"id":12863,"name":"Riverside","state":"MO"},{"id":23810,"name":"Southwest City","state":"MO"},{"id":12702,"name":"Alta Vista","state":"KS"},{"id":34964,"name":"Neck City","state":"MO"},{"id":12843,"name":"Overbrook","state":"KS"},{"id":12893,"name":"Winchester","state":"KS"},{"id":12784,"name":"Higginsville","state":"MO"},{"id":30631,"name":"Gilman City","state":"MO"},{"id":12804,"name":"Lamonte","state":"KS"},{"id":12712,"name":"Blue Mound","state":"KS"},{"id":12447,"name":"Loch Lloyd","state":"MO"},{"id":24616,"name":"Helena","state":"MO"},{"id":12478,"name":"Quenemo","state":"KS"},{"id":23791,"name":"Noel","state":"MO"},{"id":12749,"name":"Cummings","state":"KS"},{"id":25909,"name":"Arma","state":"KS"},{"id":12818,"name":"Linwood","state":"KS"},{"id":12457,"name":"Oakview","state":"MO"},{"id":12851,"name":"Polo","state":"MO"},{"id":12790,"name":"Independence","state":"KS"},{"id":12435,"name":"Kearney","state":"MO"},{"id":48155,"name":"Other","state":"KS"},{"id":23770,"name":"Jane","state":"MO"},{"id":12864,"name":"Rushville","state":"MO"},{"id":12398,"name":"Appleton City","state":"MO"},{"id":12399,"name":"Archie","state":"MO"},{"id":12847,"name":"Pattonsburg","state":"MO"},{"id":12452,"name":"Merriam","state":"KS"},{"id":29489,"name":"El Dorado Springs","state":"MO"},{"id":12738,"name":"Cleveland","state":"KS"},{"id":27430,"name":"Caney","state":"KS"},{"id":12797,"name":"Lake Lotawana","state":"MO"},{"id":12451,"name":"Mayview","state":"MO"},{"id":12874,"name":"Sweet Springs","state":"KS"},{"id":12485,"name":"Smithville","state":"MO"},{"id":12772,"name":"Ferrelview","state":"MO"},{"id":12742,"name":"Concordia","state":"MO"},{"id":33149,"name":"Lincoln","state":"MO"},{"id":12876,"name":"Topeka","state":"KS"},{"id":39402,"name":"Uniontown","state":"KS"},{"id":12723,"name":"Buffalo","state":"KS"},{"id":48160,"name":"Other","state":"MO"},{"id":12839,"name":"Oakwood Park","state":"MO"},{"id":12837,"name":"Oak Grove","state":"MO"},{"id":12701,"name":"Albany","state":"MO"},{"id":12798,"name":"Lake Ozark","state":"KS"},{"id":12707,"name":"Avondale","state":"MO"},{"id":12438,"name":"Lacygne","state":"KS"},{"id":12846,"name":"Parker","state":"KS"},{"id":12827,"name":"Mission Woods","state":"KS"},{"id":24615,"name":"Elwood","state":"KS"},{"id":33776,"name":"Marshall","state":"MO"},{"id":30422,"name":"Galena","state":"KS"},{"id":12488,"name":"Stilwell","state":"KS"},{"id":38805,"name":"Sweet Springs","state":"MO"},{"id":12760,"name":"Effingham","state":"KS"},{"id":12801,"name":"Lake Waukomis","state":"MO"},{"id":28454,"name":"Craig","state":"MO"},{"id":12739,"name":"Climax Springs","state":"KS"},{"id":12834,"name":"Norborne","state":"MO"},{"id":12852,"name":"Prathersville","state":"MO"},{"id":12788,"name":"Hume","state":"MO"},{"id":25543,"name":"Alba","state":"MO"},{"id":12714,"name":"Blue Summit","state":"MO"},{"id":12450,"name":"Maysville","state":"MO"},{"id":12860,"name":"Rich Hill","state":"MO"},{"id":12482,"name":"Richmond","state":"MO"},{"id":12719,"name":"Bronson","state":"KS"},{"id":12442,"name":"Leawood","state":"KS"},{"id":40237,"name":"Wheaton","state":"MO"},{"id":12842,"name":"Osborn","state":"MO"},{"id":12867,"name":"Scranton","state":"KS"},{"id":12895,"name":"Wood Heights","state":"MO"},{"id":12736,"name":"Clarksdale","state":"MO"},{"id":12872,"name":"Stockton","state":"KS"},{"id":12445,"name":"Liberty","state":"MO"},{"id":12812,"name":"Lebo","state":"KS"},{"id":12845,"name":"Ozawkie","state":"KS"},{"id":55006,"name":"Country Club","state":"MO"},{"id":12743,"name":"Corder","state":"MO"},{"id":12821,"name":"Lyndon","state":"KS"},{"id":12440,"name":"Lawson","state":"MO"},{"id":12726,"name":"Cainsville","state":"MO"},{"id":12724,"name":"Burlingame","state":"KS"},{"id":12423,"name":"Garnett","state":"KS"},{"id":12479,"name":"Raymore","state":"MO"},{"id":12764,"name":"Emporia","state":"KS"},{"id":12475,"name":"Pomona","state":"KS"},{"id":12406,"name":"Buckner","state":"MO"},{"id":32797,"name":"Lamar","state":"MO"},{"id":37827,"name":"Sedalia","state":"MO"},{"id":12808,"name":"Latour","state":"MO"},{"id":12404,"name":"Blue Springs","state":"MO"},{"id":12783,"name":"Henrietta","state":"MO"},{"id":12448,"name":"Lone Jack","state":"MO"},{"id":12460,"name":"Osage","state":"KS"},{"id":12741,"name":"Colony","state":"KS"},{"id":12425,"name":"Grain Valley","state":"MO"},{"id":12887,"name":"Waverly","state":"MO"},{"id":12735,"name":"Chilhowee","state":"MO"},{"id":38998,"name":"Thayer","state":"KS"},{"id":12848,"name":"Pittsburg","state":"KS"},{"id":12787,"name":"Houston Lake","state":"MO"},{"id":28071,"name":"Climax Springs","state":"MO"},{"id":12866,"name":"Savannah","state":"MO"},{"id":29463,"name":"Edwards","state":"MO"},{"id":12495,"name":"Westwood","state":"KS"},{"id":12858,"name":"Raymore","state":"KS"},{"id":12785,"name":"Hillsdale","state":"KS"},{"id":12427,"name":"Greenwood","state":"MO"},{"id":12428,"name":"Hamilton","state":"MO"},{"id":29263,"name":"Eagleville","state":"MO"},{"id":12794,"name":"Kingston","state":"MO"},{"id":24612,"name":"Amazonia","state":"MO"},{"id":36891,"name":"Reeds","state":"MO"},{"id":28177,"name":"Cole Camp","state":"MO"},{"id":12468,"name":"Parkville","state":"MO"},{"id":23776,"name":"Lanagan","state":"MO"},{"id":12789,"name":"Huron","state":"KS"},{"id":12704,"name":"Amity","state":"MO"},{"id":12491,"name":"Trimble","state":"MO"},{"id":12400,"name":"Atchison","state":"KS"},{"id":12816,"name":"Levasy","state":"MO"},{"id":24617,"name":"Jamesport","state":"MO"},{"id":12892,"name":"Westwood Hills","state":"KS"},{"id":12778,"name":"Gower","state":"MO"},{"id":12455,"name":"None\/county","state":"MO"},{"id":12454,"name":"Mission Hills","state":"KS"},{"id":25952,"name":"Asbury","state":"MO"},{"id":12796,"name":"La Monte","state":"KS"},{"id":27872,"name":"Chillicothe","state":"MO"},{"id":12752,"name":"Dearborn","state":"MO"},{"id":12403,"name":"Belton","state":"MO"},{"id":12458,"name":"Odessa","state":"MO"},{"id":38498,"name":"Stark City","state":"MO"},{"id":38464,"name":"Stanberry","state":"MO"},{"id":39830,"name":"Warsaw","state":"MO"},{"id":24621,"name":"Wathena","state":"KS"},{"id":40464,"name":"Windsor","state":"MO"},{"id":30968,"name":"Greenfield","state":"MO"},{"id":12424,"name":"Gladstone","state":"MO"},{"id":12795,"name":"Knob Noster","state":"KS"},{"id":39568,"name":"Verona","state":"MO"},{"id":24620,"name":"Union Star","state":"MO"},{"id":12476,"name":"Prairie Village","state":"KS"},{"id":12775,"name":"Fort Scott","state":"KS"},{"id":12799,"name":"Lake Quivira","state":"KS"},{"id":12487,"name":"St Joseph","state":"MO"},{"id":12891,"name":"Westphalia","state":"KS"},{"id":31861,"name":"Humboldt","state":"KS"},{"id":38904,"name":"Tarkio","state":"MO"},{"id":12722,"name":"Bucyrus","state":"KS"},{"id":23754,"name":"Goodman","state":"MO"},{"id":35735,"name":"Oronogo","state":"MO"},{"id":12779,"name":"Greeley","state":"KS"},{"id":27736,"name":"Chanute","state":"KS"},{"id":12405,"name":"Bonner Springs","state":"KS"},{"id":12436,"name":"Kincaid","state":"KS"},{"id":12730,"name":"Carbondale","state":"KS"},{"id":12782,"name":"Hartford","state":"KS"},{"id":12885,"name":"Warsaw","state":"KS"},{"id":12480,"name":"Raytown","state":"MO"},{"id":26756,"name":"Blythedale","state":"MO"},{"id":12771,"name":"Faucett","state":"MO"},{"id":12461,"name":"Osawatomie","state":"KS"},{"id":12489,"name":"Sugar Creek","state":"MO"},{"id":12802,"name":"Lake Winnebago","state":"MO"},{"id":56777,"name":"Laharpe","state":"KS"},{"id":12715,"name":"Boonville","state":"KS"},{"id":12737,"name":"Claycomo","state":"MO"},{"id":12761,"name":"El Dorado","state":"KS"},{"id":12840,"name":"Oregon","state":"MO"},{"id":29163,"name":"Duenweg","state":"MO"},{"id":12890,"name":"Weston","state":"MO"},{"id":12813,"name":"Lecompton","state":"KS"},{"id":33830,"name":"Maryville","state":"MO"},{"id":12467,"name":"Paola","state":"KS"},{"id":29258,"name":"Eagle Rock","state":"MO"},{"id":23716,"name":"Anderson","state":"MO"},{"id":12441,"name":"Leavenworth","state":"KS"},{"id":12823,"name":"Mcfall","state":"MO"},{"id":12414,"name":"Edgerton","state":"MO"},{"id":12750,"name":"Darlington","state":"MO"},{"id":12825,"name":"Melvern","state":"KS"},{"id":12731,"name":"Carrollton","state":"MO"},{"id":12884,"name":"Warrensburg","state":"MO"},{"id":12401,"name":"Basehor","state":"KS"},{"id":12433,"name":"Kansas City","state":"KS"},{"id":12777,"name":"Glenaire","state":"MO"},{"id":12729,"name":"Cameron","state":"KS"},{"id":23796,"name":"Pineville","state":"MO"},{"id":12708,"name":"Baldwin","state":"KS"},{"id":12462,"name":"Oskaloosa","state":"KS"},{"id":30640,"name":"Girard","state":"KS"},{"id":12721,"name":"Brunswick","state":"KS"},{"id":24619,"name":"Troy","state":"KS"},{"id":12873,"name":"Strasburg","state":"MO"},{"id":12792,"name":"Kidder","state":"MO"},{"id":27543,"name":"Carterville","state":"MO"},{"id":36188,"name":"Pierce City","state":"MO"},{"id":12711,"name":"Blairstown","state":"MO"},{"id":12732,"name":"Cedar Vale","state":"KS"},{"id":12421,"name":"Garden City","state":"MO"},{"id":12754,"name":"Desoto","state":"KS"},{"id":12703,"name":"Altamont","state":"MO"},{"id":40014,"name":"Wentworth","state":"MO"},{"id":12725,"name":"Burlington","state":"KS"},{"id":12449,"name":"Louisburg","state":"KS"},{"id":12883,"name":"Warrensburg","state":"KS"},{"id":37854,"name":"Seneca","state":"MO"},{"id":39972,"name":"Weir","state":"KS"},{"id":12413,"name":"Edgerton","state":"KS"},{"id":12456,"name":"North Kansas City","state":"MO"},{"id":12484,"name":"Shawnee","state":"KS"},{"id":27545,"name":"Carthage","state":"MO"},{"id":34659,"name":"Morrisville","state":"MO"},{"id":12434,"name":"Kansas City","state":"MO"},{"id":34609,"name":"Moran","state":"KS"},{"id":12807,"name":"Lansing","state":"KS"},{"id":34840,"name":"Mulberry","state":"KS"},{"id":30861,"name":"Granby","state":"MO"},{"id":26083,"name":"Avilla","state":"MO"},{"id":12733,"name":"Centerview","state":"MO"},{"id":12766,"name":"Eureka","state":"KS"},{"id":12408,"name":"Cameron","state":"MO"},{"id":12459,"name":"Olathe","state":"KS"},{"id":12431,"name":"Holt","state":"MO"},{"id":32572,"name":"Knob Noster","state":"MO"},{"id":12443,"name":"Lee\u0027s Summit","state":"MO"},{"id":28790,"name":"De Soto","state":"KS"},{"id":12793,"name":"King City","state":"MO"},{"id":12815,"name":"Leeton","state":"MO"},{"id":12781,"name":"Harris","state":"KS"}];
        const url = "https:\/\/app.locallysavvybizsolutions.com\/v2\/preview\/zH0GHLtLKwq033fpzGbV";
        console.log(cities, url)
        const settings = {"city":null,"sort":"priceDesc","fields":null,"styles":null,"new_tab":"false","criteria":{"max_price_to":2000000,"min_price_to":1000000,"max_price_from":1000000,"min_price_from":0,"price_interval":100000},"search_url":"https:\/\/app.locallysavvybizsolutions.com\/v2\/preview\/zH0GHLtLKwq033fpzGbV"};
        const {
            criteria
        } = settings;
        const generateCities = () => {
            let html = '';

            if (cities !== null) {
                // Sort alphabetically by name
                const sorted = [...cities].sort((a, b) =>
                    a.name.localeCompare(b.name)
                );

                sorted.forEach(city => {
                    html += `<li>${city.name}</li>`;
                });
            }

            return html;
        };
        const generatePrice = (from, to, interval = 50000) => {
            from = Number(from);
            to = Number(to);
            interval = Number(interval);

            if (!interval || interval <= 0) return '';

            let html = '';
            for (let i = from; i <= to; i += interval) {
                html += `<li>$${i.toLocaleString()}</li>`;
            }
            return html;
        };
        let html = ` 
        <style>.omnisearch-wrapper *,
.omnisearch-wrapper {
    box-sizing: border-box;
    font-family: inherit;
    padding: 0;
    margin: 0;
}

.omnisearch-wrapper {
    --font-size: 16px;
    --wrapper-bg-color: #f8f8f8;
    --wrapper-padding-y: 20px;
    --wrapper-padding-x: 20px;
    --wrapper-border-size: 1px;
    --wrapper-border-color: #f8f8f8;
    --wrapper-border-radius: 5px;
    --input-bg-color: #fff;
    --input-padding-y: 5px;
    --input-padding-x: 5px;
    --input-border-size: 1px;
    --input-border-color: #cccccc;
    --input-border-radius: 5px;
    --input-color: #000;
    --button-bg-color: rgb(30 64 175);
    --button-padding-y: 5px;
    --button-padding-x: 5px;
    --button-border-size: 1px;
    --button-border-color: rgb(30 64 175);
    --button-border-radius: 5px;
    --button-color: white;
}

.omnisearch-wrapper {
    width: 100%;
    padding: var(--wrapper-padding-y) var(--wrapper-padding-x);
    background-color: var(--wrapper-bg-color);
    border: var(--wrapper-border-size) solid var(--wrapper-border-color);
    border-radius: var(--wrapper-border-radius);
    display: flex;
    justify-content: space-around;
    align-items: center;
    gap: 10px;
    margin: 0 auto;
    box-sizing: border-box;
    max-width: 1300px;
}

@media (max-width: 950px) {
    .omnisearch-wrapper {
        flex-wrap: wrap;
    }

}

.omnisearch-wrapper input {
    width: 100%;
    border: none;
    color: var(--input-color);
    font-size: var(--font-size);
    outline: none;
}

.omnisearch-wrapper input:focus {
    outline: none;
}

.omnisearch-dropdown,
.omnisearch-input-container {
    position: relative;
    display: flex;
    align-items: center;
    background-color: var(--input-bg-color);
    border: var(--input-border-size) solid var(--input-border-color);
    border-radius: var(--input-border-radius);
    padding: var(--input-padding-y) var(--input-padding-x);
    gap: 5px;
    width: 100%;
}

.omnisearch-price {
    flex: 1 0 8rem;
}

.omnisearch-input-container {
    flex: 1 0 8rem;
}

.omnisearch-dropdown svg,
.omnisearch-input-container svg {
    width: var(--font-size);
    height: var(--font-size);
}

.omnisearch-dropdown-menu {
    position: absolute;
    padding: 10px 20px;
    margin-top: 10px;
    top: 100%;
    left: 0;
    background-color: var(--input-bg-color);
    border: var(--input-border-size) solid var(--input-border-color);
    border-radius: var(--input-border-radius);
    z-index: 5;
    display: none;
    min-width: 100%;
    max-height: 250px;
    overflow: hidden;
    overflow-y: scroll;
}

.omnisearch-dropdown-menu.active {
    display: block;
}

.omnisearch-dropdown-menu li {
    list-style: none;
    font-size: var(--font-size);
    color: var(--input-color);
    padding: 10px 5px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.omnisearch-dropdown-menu li:hover {
    background-color: #f0f0f0;
}

.omnisearch-button {
    all: unset;
    display: flex;
    justify-content: center;
    padding: var(--button-padding-y) var(--button-padding-x);
    background-color: var(--button-bg-color);
    color: var(--button-color);
    border: var(--button-border-size) solid var(--button-border-color);
    border-radius: var(--button-border-radius);
    font-size: var(--font-size);
    cursor: pointer;
    width: 100%;
    flex: 1 0 8rem;
}</style>
        <form class="omnisearch-wrapper" id="omni-search">
            <div class="omnisearch-dropdown" data-field="city">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.1 by @fontawesome  - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"/></svg>
                    <input type="text" name="city" placeholder="City" id="city" autocomplete="off">
                <menu class="omnisearch-dropdown-menu">
                ${generateCities()}
                </menu>
            </div>
            <div class="omnisearch-dropdown omnisearch-price" data-field="min_price">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.5.1 by @fontawesome  - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11V32c0-17.7 14.3-32 32-32z"/></svg>
                    <input type="text" name="min_price" placeholder="Min Price" id="min_price" inputmode="numeric">
                <menu class="omnisearch-dropdown-menu">
                   ${generatePrice(criteria.min_price_from, criteria.min_price_to, criteria.price_interval)}
                </menu>
            </div>
            <div class="omnisearch-dropdown omnisearch-price" data-field="max_price">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.5.1 by @fontawesome  - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11V32c0-17.7 14.3-32 32-32z"/></svg>
                    <input type="text" name="max_price" placeholder="Max Price" id="max_price" inputmode="numeric">
                <menu class="omnisearch-dropdown-menu">
                    ${generatePrice(criteria.max_price_from, criteria.max_price_to, criteria.price_interval)}

                </menu>
            </div>
            <label class="omnisearch-input-container" for="beds" data-field="beds">
                <input type="text" name=beds placeholder="Beds" id="beds" inputmode="numeric">
            </label>
            <label class="omnisearch-input-container" for="baths" data-field="baths">
                <input type="text" name="baths" placeholder="Baths" inputmode="numeric">
            </label>
            <button class="omnisearch-button" type="submit">Search</button>
        </form>`;
        // Get a reference to the current script element
        const IDX_currentScript = document.currentScript;
        // Insert the HTML after the current script element
        if (IDX_currentScript) {
            IDX_currentScript.insertAdjacentHTML('afterend', html);
        }
        initSearchWidget(settings, cities, url);

    }

    function initSearchWidget(settings, cities, url) {
        const omniSearch = document.getElementById('omni-search');
        const dropdowns = document.querySelectorAll('.omnisearch-dropdown');
        const inputs = document.querySelectorAll('.omnisearch-wrapper input');
        const fields = document.querySelectorAll('.omnisearch-wrapper [data-field]');
        const fieldsValues = {
            city: '',
            min_price: 0,
            max_price: 0,
            beds: 0,
            baths: 0
        };

        function setStyles() {
            if(!settings.styles) return;
            for (const [key, value] of Object.entries(settings.styles)) {
                omniSearch.style.setProperty(key, value);
            }
        }

        function formatCurrency(value) {
            return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
        }

        function addEventToMenuItems(menu, input) {
            menu.querySelectorAll('li').forEach(li => {
                li.addEventListener('click', (e) => {
                    e.stopPropagation();
                    menu.classList.remove('active');
                    input.value = li.textContent;
                    const inputType = input.getAttribute('inputmode');
                    if (inputType === 'numeric') {
                        input.value = input.value.replace(/[^0-9.]/g, "");
                        fieldsValues[input.getAttribute('name')] = input.value;
                        input.value = formatCurrency(input.value);
                        return;
                    }
                    fieldsValues[input.getAttribute('name')] = input.value;
                });
            });
        }

        function fieldsVisibles() {
            if(!settings.fields) return;
            fields.forEach(field => {
                if (field && settings.fields[field.getAttribute('data-field')]) {
                    field.style.display = 'none';
                }
            });
        }

        function getCityId(cityName) {
            if(!cityName) return '';
            
            const city = cities.find(city => city.name === cityName);
            return city.id;
        }

        dropdowns.forEach(dropdown => {
            const input = dropdown.querySelector('input');
            const menu = dropdown.querySelector('.omnisearch-dropdown-menu');

            dropdown.addEventListener('click', (e) => {
                menu.classList.add('active');
                input.focus();
            });
            if (input.getAttribute('name') === 'city') {
                input.addEventListener('input', () => {
                    const value = input.value;
                    const filteredCities = cities.filter(city => city.name.toLowerCase().includes(value
                        .toLowerCase()));
                    menu.innerHTML = '';
                    filteredCities.forEach(city => {
                        menu.innerHTML += `<li>${city.name}</li>`;
                    });
                    addEventToMenuItems(menu, input);
                });
            }
            addEventToMenuItems(menu, input);

            document.addEventListener('click', event => {
                if (!menu.contains(event.target) && !dropdown.contains(event.target)) {
                    menu.classList.remove('active');
                }
            });
        });

        inputs.forEach(input => {
            input.addEventListener('input', () => {
                const inputType = input.getAttribute('inputmode');
                const key = input.getAttribute('name');
                if (inputType === 'numeric') {
                    input.value = input.value.replace(/[^0-9.]/g, "");
                    fieldsValues[key] = input.value;
                    input.value = formatCurrency(input.value);
                    return;
                }
                fieldsValues[key] = input.value;
            });
        });

        omniSearch.addEventListener('submit', event => {
            event.preventDefault();
            const {
                city,
                min_price,
                max_price,
                beds,
                baths
            } = fieldsValues;
            const apiUrl = `${url}?minListPrice=${min_price}&maxListPrice=${max_price}&bedrooms=${beds}&bathCount=${baths}&propertyType=SFR,CND&status=active&sort=${settings.sort}&cityId=${settings.city?? getCityId(city)}`;

            
            
            // check if settings has new_tab first exists and is true
            if( settings.new_tab && settings.new_tab === true ){
                window.open(apiUrl, '_blank');
            }else{
                window.location.href = apiUrl;
            }
       
        });

        fieldsVisibles();
        setStyles();
    }

