Lead #3537

Company
Pure Physiotherapy Colchester
Website
https://purephysiotherapy.co.uk
Best Contact
Email
()

Override

Captured Pages

View text

                    
View text

                    
View text

                    
View text

                    
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment Pure Physiotherapy About Us Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Patients are at the heart of everything we do and providing consistent high-quality care to every patient we see is something we are proud to deliver. Find a Clinic What We Do We combine innovation and clinical expertise to offer comprehensive assessment, diagnosis, and treatment for all musculoskeletal conditions, from neck, back and knee pain to sports injuries, osteoarthritis and more debilitating physical and mental conditions. Our commitment is to provide you with the highest quality care to help you achieve your health and wellness goals. We want all our patients to get the very best out of life. We believe that by empowering them with the right advice, education and appropriate treatments, we can reduce pain and maximise the function and ability everyone has.We are proud to be the leading national provider of First Contact Physiotherapy services to the NHS. Partnering with over 1,500 GP practices across the country, we deliver specialist musculoskeletal services to NHS patients. The recognition from the NHS helps to underline our commitment to providing consistently high-quality musculoskeletal management to every patient we see. Our Services We Stand For Patients First P atients First Providing high quality patient care is at the core of everything we do and every decision we make. Unified approach U nified approach We aim to be unified, not only with our patients but also with our partners, working together to help build better healthcare. Research led R esearch led As a learning organisation we use data and research to inform our practice and services. Expert care E xpert care We seek out the best staff and invest heavily in training to ensure our staff offer the best possible service. Our Mission Our mission is to improve the quality of healthcare and musculoskeletal management across the UK, and to positively contribute to national policy and the development of clinical services.Using our strength as an integrator, we strive to create sustainable and efficient services, tailored to meet the needs of local communities.We are passionate about people, both as an employer and a healthcare provider. By supporting and training our staff to the highest level and embracing innovation, we empower people to understand their health and help them achieve the best quality of life. 50+ locations and counting across the UK Find a Clinic Delivering Expert Care All our physiotherapists are registered with the HCPC (Health & Care Professions Council) and the CSP (Chartered Society of Physiotherapists). In 2020, the CSP celebrated 100 years since being awarded its Royal Charter. Being a chartered physiotherapist demonstrates a high level of academic achievement, training, and dedication to the profession.As chartered physiotherapists, we work to four pillars of practice which are the fundamental aspects of our profession. These are: Exercise, movement, and rehabilitation Manual therapy and therapeutic handling Therapeutic and diagnostic technologies Allied approaches Research-Led Physiotherapy Education is at the core of our culture. By supporting our team’s clinical development and expertise through constant training and development we ensure the highest standards of clinical practice.We also provide training to the NHS, universities, general public and other physiotherapists nationwide. Many of our physiotherapists are actively involved in national and international musculoskeletal research.This commitment ensures our patients receive the best possible treatment based on the latest research. You can learn more about our commitment to CPD and our latest lecture here: CPD About Us Pure Physiotherapy is part of the Pure Unity Health Group, a leading UK healthcare organisation consisting of Pure Physiotherapy, Pure Unity Health, Medical & Legal Admin Services (MLAS) and Rehab Direct, delivering services in the medical, legal and healthcare sectors.Pure Unity Health is part of ExamWorks UK and the ExamWorks global network which includes the United Kingdom, Australia, Canada and the United States of America, delivering over three million independent medical examination related service referrals annually. Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":361,"title":"About%20Us%20-%20Pure%20Physiotherapy%20%7C%20Expert%20Physiotherapists","excerpt":"","featuredImage":false}}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) (()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment Contact Us We're here to help Need assistance? Our team is here to answer any queries you may have and help you find the right appointment for you. 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pmWe value your experience with us and are always looking to improve our care. If you have any concerns, queries, feedback, please don’t hesitate to get in touch. You can email us directly at [email protected] – we’d love to hear from you. Contact Form Region Region North West East Anglia Yorkshire South Southwest Midlands Clinic you're visiting Full Name Phone Number Email* Message Send Regional Phone Numbers North West 0161 441 4458 East Anglia 01603 791 190 Yorkshire 0114 213 4050 South 023 8200 0385 South West 0800 989 0031 Midlands 0800 989 0031 Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":350,"title":"Contact%20Us%20-%20Get%20in%20Touch%20%7C%20Pure%20Physiotherapy","excerpt":"","featuredImage":false}}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) (()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment November 3, 2025 How Your Neck Could Be Causing Your Headaches and What to Do About It Expert insights from our Sheffield headache specialist at Pure Physiotherapy Broomhall Clinic. Headaches are one of the most common and frustrating health complaints, affecting people of all ages and lifestyles. But what if the real source of your pain isn’t in your head at all but in your neck? At our Pure Physiotherapy Broomhall Clinic in Sheffield, we see this all the time. Headaches that are rooted in muscle tension, joint stiffness, and nerve irritation in the neck. Let’s explore how this happens, how to recognise it, and what you can do about it. What are the most common types of headaches people experience? And how can the neck be involved? The most frequent types of headaches include tension headaches, migraines, and cervicogenic headaches (those that originate from the neck). While migraines often have neurological or hormonal triggers, tension and cervicogenic headaches are strongly linked to the neck’s posture, muscle balance, and joint mobility. When the upper neck joints become stiff or the muscles around your shoulders and neck tighten, often from long hours at a desk, poor posture, or stress or trauma, they can refer pain upward to the back of the head, temples, and even behind the eyes. You may also have accompanying symptoms of light headiness, dizziness, facial or jaw pain. Why do so many people struggle with headaches that actually come from the neck? In today’s world, we spend more time than ever looking down at screens, working at desks, or sitting in static positions. Over time, this creates strain in the neck muscles and joints. What’s worse is that people often don’t realise the connection between their posture and their headaches, so they treat the symptoms with painkillers or rest rather than the cause. At Pure Physiotherapy, our specialist regularly helps patients who have been suffering with headaches for years find that releasing and retraining the neck dramatically reduces their pain. What signs suggest that your neck might be the real cause of your headaches? There are several telltale clues that your headaches may be neck-related. These signs include: Pain that starts at the base of your skull or behind one eye. Headaches that worsen after long periods of sitting or computer use. Neck stiffness or reduced movement. Tenderness in the upper neck or shoulder muscles. Relief from stretching or massage to the neck area. If these sound familiar, it’s possible that your neck is playing a major role in your headaches. What happens in the neck to trigger headaches? The top three joints in your neck (known as the upper cervical spine) are closely connected to the nerves that supply the head and face. When these joints or surrounding muscles become irritated or tense, they can refer pain signals upward, creating what feels like a headache. Additionally, tight neck muscles can restrict blood flow and nerve function, adding to that familiar throbbing or pressure-like sensation. Can physiotherapy really help with headache relief caused by neck tension? Absolutely. Physiotherapy is one of the most effective, evidence-based ways to treat headaches caused by neck problems. At Pure Physiotherapy, our clinicians will: Assess your neck and posture to identify the underlying cause. We are looking at range of movement of the joints, strength and position sense of the muscles and will assess oculomotor function (the connection between the eye and neck reflexes). Use hands-on techniques to release stiff joints and tight muscles. Provide individualised exercises to restore movement and strength. Offer ergonomic and lifestyle advice to prevent headaches returning. Many of our patients notice significant improvements after just a few sessions. Not just fewer headaches, but also better posture and less neck pain overall. Why book in for an appointment at Pure? At our Sheffield Broomhall Clinic, Rob Leckie provides specialist treatment for headaches and neck pain.We take a personalised approach, combining expert assessment, advanced manual therapy, and tailored exercise programmes designed around you. If headaches are holding you back, stop masking the pain and start addressing the cause.Our specialist helps you find lasting relief so you can get back to doing what you love, headache-free. RELIEF STARTS HERE Book an appointment today at our Pure Physiotherapy Broomhall Clinic in Sheffield and let’s get to the root of your headaches. BOOK NOW Share this article Facebook X LinkedIn PrevPrevious6 Reasons Why Using Private Medical Insurance For Physiotherapy is Easier Than You Think NextManaging Stress for a Healthier Mind and BodyNext Blog You might also be interested in .e-loop-item-10384 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10384 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1619/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/11/AdobeStock_413746748-scaled.jpeg");}.elementor-214 .elementor-element.elementor-element-eb8aa8c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:space-between;--overlay-opacity:1;--border-radius:0px 0100px 0px 100px;--padding-top:25px;--padding-bottom:25px;--padding-left:25px;--padding-right:25px;}.elementor-214 .elementor-element.elementor-element-eb8aa8c::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-background-video-container::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .e-con-inner > .elementor-background-video-container::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-background-slideshow::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .e-con-inner > .elementor-background-slideshow::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #25204D00 50%, var( --e-global-color-primary ) 100%);}.elementor-214 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center center;background-size:cover;}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );}.elementor-214 .elementor-element.elementor-element-b44da86{width:auto;max-width:auto;}.elementor-214 .elementor-element.elementor-element-b44da86 > .elementor-widget-container{background-color:var( --e-global-color-accent );padding:10px 20px 5px 20px;border-radius:50px 50px 50px 50px;}.elementor-214 .elementor-element.elementor-element-b44da86.elementor-element{--align-self:flex-start;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-icon{width:14px;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-icon i{font-size:14px;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-text, .elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-text a{color:#FFFFFF;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-item{font-family:"rustica", Sans-serif;font-size:14px;font-weight:600;text-transform:uppercase;}.elementor-widget-theme-post-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );line-height:var( --e-global-typography-primary-line-height );color:var( --e-global-color-primary );}.elementor-214 .elementor-element.elementor-element-37f905e{width:var( --container-widget-width, 75% );max-width:75%;--container-widget-width:75%;--container-widget-flex-grow:0;text-align:right;}.elementor-214 .elementor-element.elementor-element-37f905e.elementor-element{--align-self:flex-end;}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-family:var( --e-global-typography-f1e905f-font-family ), Sans-serif;font-size:var( --e-global-typography-f1e905f-font-size );font-weight:var( --e-global-typography-f1e905f-font-weight );text-transform:var( --e-global-typography-f1e905f-text-transform );line-height:var( --e-global-typography-f1e905f-line-height );color:#FFFFFF;}@media(max-width:1680px){.elementor-214 .elementor-element.elementor-element-eb8aa8c{--border-radius:0px 50px 0px 050px;}.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-item{font-size:14px;}.elementor-widget-theme-post-title .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-size:var( --e-global-typography-f1e905f-font-size );line-height:var( --e-global-typography-f1e905f-line-height );}}@media(max-width:1024px){.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-title .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-size:var( --e-global-typography-f1e905f-font-size );line-height:var( --e-global-typography-f1e905f-line-height );}}@media(max-width:767px){.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-item{font-size:14px;}.elementor-widget-theme-post-title .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-size:var( --e-global-typography-f1e905f-font-size );line-height:var( --e-global-typography-f1e905f-line-height );}}/* Start custom CSS for theme-post-title, class: .elementor-element-37f905e */.elementor-214 .elementor-element.elementor-element-37f905e a:hover { color: #84a7d3; } .elementor-214 .elementor-element.elementor-element-37f905e a { transition: 0.3s; }/* End custom CSS */ /* Start custom CSS for container, class: .elementor-element-eb8aa8c */.elementor-214 .elementor-element.elementor-element-eb8aa8c { aspect-ratio: 1 / 1; } /*.elementor-214:hover .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer { background-size: 110%; } .elementor-214 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer { transition: 0.3s; }*//* End custom CSS */ November 20, 2025 When to See a Physiotherapist for Headaches (Instead of Your GP) .e-loop-item-10089 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10089 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/PMI.png");} November 18, 2025 Did You Know You Can Use Your Private Medical Insurance for Physiotherapy? .e-loop-item-10254 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10254 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/World-Diabetes-day-2025-1.png");} November 14, 2025 World Diabetes Day 2025 – Raising Awareness and Supporting Diabetes in the Workplace .e-loop-item-10114 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10114 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/healthy-mind-and-body-1.png");} November 5, 2025 Managing Stress for a Healthier Mind and Body .e-loop-item-10067 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10067 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/private-medical-insurance.png");} October 28, 2025 6 Reasons Why Using Private Medical Insurance For Physiotherapy is Easier Than You Think .e-loop-item-10159 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10159 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/shockwave-therapy-for-runners.png");} October 22, 2025 Shockwave Therapy for Runners: Reducing Pain and Supporting Recovery Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":10225,"title":"How%20Your%20Neck%20Could%20Be%20Causing%20Your%20Headaches%20and%20What%20to%20Do%20About%20It%20-%20Pure%20Physiotherapy","excerpt":"","featuredImage":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:800\/h:533\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2025\/10\/Headache-clinic-neck-treatment-scaled.jpg"}}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) (()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment Contact Us We're here to help Need assistance? Our team is here to answer any queries you may have and help you find the right appointment for you. 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pmWe value your experience with us and are always looking to improve our care. If you have any concerns, queries, feedback, please don’t hesitate to get in touch. You can email us directly at [email protected] – we’d love to hear from you. Contact Form Region Region North West East Anglia Yorkshire South Southwest Midlands Clinic you're visiting Full Name Phone Number Email* Message Send Regional Phone Numbers North West 0161 441 4458 East Anglia 01603 791 190 Yorkshire 0114 213 4050 South 023 8200 0385 South West 0800 989 0031 Midlands 0800 989 0031 Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":350,"title":"Contact%20Us%20-%20Get%20in%20Touch%20%7C%20Pure%20Physiotherapy","excerpt":"","featuredImage":false}}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) (()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment Pure Physiotherapy Private Medical Insurance At Pure Physiotherapy we are proud to be recognised and accredited by all major UK health insurers including cash-back plans and we’ll guide you through the process to ensure your treatment and claim is trouble-free. Just share your insurance details, and we’ll take care of the admin behind the scenes, so you can focus on your recovery. Contact Us What insurers do you work with? If you have a policy with any of the providers below, and physiotherapy is included, all we need is your authorisation number and a few details up front and we will sort the rest out behind the scenes with your provider. Depending on your policy, there may be an excess to pay. How and when this is collected varies with each provider, but we will be in touch with you to collect this. Aviva AXA Health Vitality Health WPA Bupa Are these the only insurers that you deal with? No, there are various international insurers and health cash-back schemes we also work with such as Simply Health and Westfield Health. These and any other companies will also allow you to pay for your treatment directly with us and get reimbursed through your scheme with them. We will provide you with a receipt/paid invoice that you send to your provider. If you have any questions, contact our customer support team and we can help you with this. Do I need to speak to my insurer first? Yes. You’ll need to request authorisation for treatment and get an authorisation code before booking or arranging your first appointment. Some insurers require a GP referral first, so it’s best to check with them directly before confirming your appointment. You’ll need to provide us with the following: Your insurance policy numberAn authorisation codeNumber of treatments allocated or the value of authorisation e.g £250 of treatment Give them a quick ring to get this information before calling us to book an appointment. Will all of my treatment sessions and additional therapies be covered? Not necessarily. Insurance policies and the levels of cover vary between companies and between policy holders, so it’s important that you check with your insurer what you are covered for. Additional specialist therapies such as Shockwave, may be separated from your physiotherapy cover. Which appointments are covered by private medical insurance? The following appointment types are usually covered by private medical insurance, but it is always advised to check with your insurer first.Physiotherapy Initial Assessment MSK PhysiotherapistPhysiotherapy Initial Assessment Senior MSK Physiotherapist Physiotherapy Follow Up MSK Physiotherapist Physiotherapy Follow Up Senior MSK Physiotherapist Shockwave Therapy Women’s Health Physiotherapy How do I book with private medical insurance? Currently all first appointment bookings through private medical insurance need to be made over the phone with our customer service team. This is so we can ensure we have all the details needed to process the claim without any disruption to your treatments and answer any questions you may have about your care with us. After your first appointment, your Physiotherapist can book you directly for future appointments. It is your responsibility to ensure that the claim meets all the necessary criteria outlined in your policy documentation. Will I be charged upfront? Depending on the type of insurance you have, you may be asked to pay upfront and claim back the costs through your insurance. However, for most of the large providers, we will bill directly. Making life just that little bit easier. Do I have to pay an excess? Insurance policies usually include an excess, but this can vary depending on who provides your cover. Due to confidentiality, we’re unable to inquire on your behalf of these excesses. Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":9151,"title":"Private%20Medical%20Insurance%20-%20Pure%20Physiotherapy","excerpt":"","featuredImage":false}}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) (()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment Pure Physiotherapy Partner With Pure Pure Physiotherapy is actively looking to build business partnerships with physiotherapy providers who share our commitment to quality care delivered by quality clinicians. Contact Us Join the Pure Family Pure Physiotherapy was founded in 2006 by Phin Robinson who is now Managing Director and still working in a clinic weekly. The business has since grown from being a single clinic to its current size with over 450 physiotherapists working with over 90,000 patients a month in its private clinics and FCP work in Primary Care and is now part of the Pure Unity Health group.We aim to continue our growth by partnering with physiotherapy clinics that share our commitment to high-quality patient care. We value collaboration to build better healthcare, a dedication to continuous professional development (CPD), and the use of data and research to enhance our services. We also prioritise recruiting top talent and investing in their training to ensure the best possible care. Why Partner With Us We want to work with businesses with similar beliefs of quality care delivered by quality clinicians. We understand the importance of local community care, legacy and most importantly local delivery. We can help support smaller or larger businesses by taking off the burden of day-to-day running. In essence this allows some business owners to return to practise or even focus more on a better work life balance depending on what your goals might be. We adapt our plans to the business and seek to work with business owners to understand the intricacies of the patients, staff and other key factors of your business. Contact Us Talk to Us We are keen to talk to physiotherapy business of all sizes whether you are a one-man band, single clinic, or large multi-clinic business. If you share our passion for quality, community based, learning driven physiotherapy and are interested in how you could become part of the Pure family and be on this shared journey, we would like to talk to you to learn more about you and what you do. Contact Us Developing a quality focussed physiotherapy organisation Please do get in touch First Name Surname Phone Number Email Message Send Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":7350,"title":"Partnerships%20-%20Pure%20Physiotherapy","excerpt":"","featuredImage":false}}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) var rocket_beacon_data = {"ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"aa34f5a5ff","url":"https:\/\/purephysiotherapy.co.uk\/about-pure\/partnerships","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true,"preconnect_external_domain":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800,"preconnect_external_domain_elements":["link","script","iframe"],"preconnect_external_domain_exclusions":["static.cloudflareinsights.com","rel=\"profile\"","rel=\"preconnect\"","rel=\"dns-prefetch\"","rel=\"icon\""]}(()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment Pure Physiotherapy FAQ Frequently Asked Questions Here is a list of commonly asked questions regarding Pure Physiotherapy’s services. If you have questions, don’t hesitate to ask us directly. Contact Us FAQ Topics Preparing for a Session How much does a session cost? We try our best to make sure our expert physio service is as affordable as possible. The cost of a session will depend on the clinic you’re being seen at and what service or treatment you may be having. For full details, please visit your local clinics page where you can see the relevant costs and available service. How long are the appointments? Typically, pure physiotherapy’s treatment sessions are around 30 minutes in length. This allows us to understand how pain and symptoms may have changed between sessions and then adapt your personalised treatment accordingly. Occasionally sessions may be slightly longer or shorter depending on the needs of the individual patient. With some of our more sports specific rehabilitation, extra sessions can be booked. If you feel you require longer sessions, you can simply book a double session allowing an hours’ worth of rehabilitation and treatment time as required. How long will I have to wait for an appointment? We work hard to try and allow patients to book a physiotherapy assessment or treatment with us as quickly as possible. We recognise there are significant waiting lists within the NHS currently and we are trying our best to get patients in within a matter of hours or days. Our aim is that everyone has access to quality physiotherapy as quickly as possible. Do you have parking? Most of our clinics have free on street parking around the clinic centre. There are a few clinics which may require a short walk into the clinic itself from the car park area. You can find details of both parking and the best ways to reach our clinics, either by car or public transport, on the individual clinic pages. If you have any further questions about where to park or public transport, please feel free to contact our reception team who would be happy to help. You will also receive an e-mail with directions and information which should help with your first attendance at the clinic. Why have I been referred? We get referrals from a wide variety of places which can include solicitors, private insurance such as Bupa or AXA orthopaedic consultants as well as sports teams, workplaces and many others who all value the expertise we provide. Typically, we receive referrals because a course of assessment and rehabilitation has been recommended. We manage each and every referral with due care, respect and dedication. Do I need a referral from my GP? You do not need a referral from your GP or other health professional to attend pure physiotherapy clinics. We are regulated by the health care and professions council (https://www.hcpc-uk.org/ ) which means we are independently able to assess treat and diagnose problems within our professional scope. The title of physiotherapist is protected by law and anyone calling themselves physiotherapist must have gone through an accredited degree programme. As a result, we are able to see patients who can ring or contact the clinic directly and correspond appropriately with other health professionals if needed with the consent of the patient. Can you provide physiotherapy under my health insurance policy? We see many patients via their private health insurance policy and Pure Physiotherapy is accredited by all major private health insurers. Each health insurance company has its own requirements in terms of access to physiotherapy and it is worth discussing your specific requirements with your own healthcare insurance provider. Do you do home visits? We do offer home visits within reasonable distances from our clinics. We charge the time to travel to and from the home visit within our normal hourly structure and the best thing to do if a home visit is required is to talk to our reception teams who be happy to talk through the available options. Do you do evening and weekend appointments? All of our physiotherapy clinics offer evening appointments and some offer weekend appointments too. If you are struggling to attend during the day please call our reception team who will be able to help. Do you provide sick notes for employers? We can provide reports and recommendations to employers and often get asked by employers and occupational health organisations to supply reports for this reason. We’re also able to liaise with your GP at your request and with your consent which we also find very helpful in certain cases management as and when needed. Are your physiotherapists regulated by the Health and Care Professionals Council? All of our physiotherapists are regulated and registered with the health care professions council. We do not accept any physiotherapist who does not have this current regulatory approval. The Session Can I bring a friend/family member? If you feel more comfortable bringing a friend or family member to your physiotherapy consultation this is not a problem. We are there to help you and you are the focus of our support. Therefore, if you feel having someone with you during your sessions would be helpful that is absolutely no problem. What should I wear? Given the fact that physiotherapy can involve hands-on treatments, as well as advice, exercise and rehabilitation, it will be sensible to attend with loose fitting clothing to allow the joints to move fully. Depending on your injury or condition you may consider shorts and appropriate underwear which may help if we’re assessing certain joints requiring the removal of outer clothing. If you do feel you wouldn’t like to remove any outer clothing please do talk to the physiotherapist. This is absolutely fine, as we can usually work around clothing to ensure you feel comfortable and we are still able to be clinically effective in our assessments and treatments. You should never feel uncomfortable during your consultations and please do continue to communicate with the physiotherapist if you feel any degree of worry or discomfort in terms of clothing. Do I have to remove clothing? You may have to remove some outer clothing although will never be asked to remove underwear. The outer clothing removal is dependent on the area of the body that is undergoing treatment. In many cases we’re able to work around clothes such as leggings, shorts, T-shirts or vests. However, there may be situations where removal of outer clothing is required and this can be discussed with your physiotherapist. At no point should you be feeling uncomfortable during your physiotherapy sessions and please do maintain a two-way dialogue with your physiotherapist. We would stress that your underwear will never be removed in a physiotherapy session and often appropriate underwear such as sports type underwear is the easiest to work with in terms of joint movement as well as maintaining dignity. Do I need to bring a GP letter or MRI scan with me? If you have correspondence from your GP, hospital consultant or recent scans or X-rays, please feel free to bring them with you. Your physiotherapist may choose to assess you without being unduly influenced by other opinions in the first instance. This is not unusual as it gives a fresh pair of eyes on the current clinical perspective. However, we would encourage you to bring these documents with you if you do have them as it can add a richness to the assessment and ultimately lead to improved treatments and outcomes in some cases. What should I expect on my first visit? During your initial assessment your physiotherapist will typically ask a range of questions which in turn may lead to further questions in a process called clinical reasoning. This clinical reasoning process is designed to allow us to identify the most likely cause of your problem. Without asking these clinical questions we will be unable to confidently diagnose the root problem. Following this questioning we will typically move onto physical assessment to confirm or test the clinical diagnosis which has been considered. This may involve the removal of some outer garments and the movement of different body parts to assess how joints muscles, tendons and nerves are moving in relation to each other. The whole assessment process typically takes around 30 minutes although in complex cases this can be slightly longer. Following this, a working diagnosis can be arrived at allowing appropriate advice, education and rehabilitation to commence. We would stress that the assessment and further treatments are a two-way process between the physiotherapist and the patient. Please do feel fully empowered to describe any sensations of pain or otherwise and keep talking to the physiotherapist during your assessment and treatment process. The more information we can receive on how things are feeling and how things changed depending on the position or activity the more we are able to help develop a rehabilitation plan which is most effective for you. Post Session I have not been sent my exercises? In the vast majority of instances, undergoing certain exercise is the fundamental route to resolving musculoskeletal problems. Even if the exercises seem quite simple, continuing them in a consistent manner as advised by the physiotherapist is likely to yield significant long term positive changes. Sometimes the physiotherapist will draw or print exercises for you or use digital apps. Irrespective of how you learn the exercise, regular and consistent adherence to the rehab programme is likely to yield the best benefits. If you were expecting to receive some exercises via post or digitally and you haven’t received these please do get in touch with the reception team. Should I be worried about pain during exercises? Exercises designed to improve function and rehabilitate from injury or pain typically will be somewhat uncomfortable themselves. In order to improve damaged or weakened structures it is quite normal to stress the body’s soft tissues allowing and supporting change and improvement. This physical stressing process can cause discomfort, although the pain should not progress towards extreme levels. Your physiotherapist will advise on what is quite normal to expect post treatment and during exercise. If your pain levels are significantly beyond what is being advised it is sensible to stop or reduce the intensity and discuss this with your physiotherapist at the next consultation. If you have particular concerns, please contact the administration team and they can pass on to the physiotherapist and we can come back to you as soon as possible. As a rule of thumb if the pain is progressively increasing and the physiotherapist has said that this is not typical it is sensible to not persist with exercise effect pain is continuing to increase. I’ve been doing my exercises for 1 week, why am I not better? Research studies have shown that in order to achieve long term tissue recovery, exercises typically take 6 to 8 weeks to make a significant difference. There are some instances where pain will feel better very rapidly, and tissues may improve within a matter of days or even hours. However, it is quite normal for exercise and rehabilitation programmes to take several weeks before the benefits are felt. Your physiotherapist should be able to advise on rough timescales as to when you will feel the physical, performance and pain related benefits. It is very important to follow the exercise programme as closely as possible and work in partnership with the physiotherapist on any concerns or adaptations needed to the exercise and rehab programme as things progress. Blog You might also be interested in .e-loop-item-10384 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10384 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1619/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/11/AdobeStock_413746748-scaled.jpeg");}.elementor-214 .elementor-element.elementor-element-eb8aa8c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:space-between;--overlay-opacity:1;--border-radius:0px 0100px 0px 100px;--padding-top:25px;--padding-bottom:25px;--padding-left:25px;--padding-right:25px;}.elementor-214 .elementor-element.elementor-element-eb8aa8c::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-background-video-container::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .e-con-inner > .elementor-background-video-container::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-background-slideshow::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .e-con-inner > .elementor-background-slideshow::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #25204D00 50%, var( --e-global-color-primary ) 100%);}.elementor-214 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center center;background-size:cover;}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );}.elementor-214 .elementor-element.elementor-element-b44da86{width:auto;max-width:auto;}.elementor-214 .elementor-element.elementor-element-b44da86 > .elementor-widget-container{background-color:var( --e-global-color-accent );padding:10px 20px 5px 20px;border-radius:50px 50px 50px 50px;}.elementor-214 .elementor-element.elementor-element-b44da86.elementor-element{--align-self:flex-start;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-icon{width:14px;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-icon i{font-size:14px;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-text, .elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-text a{color:#FFFFFF;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-item{font-family:"rustica", Sans-serif;font-size:14px;font-weight:600;text-transform:uppercase;}.elementor-widget-theme-post-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );line-height:var( --e-global-typography-primary-line-height );color:var( --e-global-color-primary );}.elementor-214 .elementor-element.elementor-element-37f905e{width:var( --container-widget-width, 75% );max-width:75%;--container-widget-width:75%;--container-widget-flex-grow:0;text-align:right;}.elementor-214 .elementor-element.elementor-element-37f905e.elementor-element{--align-self:flex-end;}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-family:var( --e-global-typography-f1e905f-font-family ), Sans-serif;font-size:var( --e-global-typography-f1e905f-font-size );font-weight:var( --e-global-typography-f1e905f-font-weight );text-transform:var( --e-global-typography-f1e905f-text-transform );line-height:var( --e-global-typography-f1e905f-line-height );color:#FFFFFF;}@media(max-width:1680px){.elementor-214 .elementor-element.elementor-element-eb8aa8c{--border-radius:0px 50px 0px 050px;}.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-item{font-size:14px;}.elementor-widget-theme-post-title .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-size:var( --e-global-typography-f1e905f-font-size );line-height:var( --e-global-typography-f1e905f-line-height );}}@media(max-width:1024px){.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-title .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-size:var( --e-global-typography-f1e905f-font-size );line-height:var( --e-global-typography-f1e905f-line-height );}}@media(max-width:767px){.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-item{font-size:14px;}.elementor-widget-theme-post-title .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-size:var( --e-global-typography-f1e905f-font-size );line-height:var( --e-global-typography-f1e905f-line-height );}}/* Start custom CSS for theme-post-title, class: .elementor-element-37f905e */.elementor-214 .elementor-element.elementor-element-37f905e a:hover { color: #84a7d3; } .elementor-214 .elementor-element.elementor-element-37f905e a { transition: 0.3s; }/* End custom CSS */ /* Start custom CSS for container, class: .elementor-element-eb8aa8c */.elementor-214 .elementor-element.elementor-element-eb8aa8c { aspect-ratio: 1 / 1; } /*.elementor-214:hover .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer { background-size: 110%; } .elementor-214 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer { transition: 0.3s; }*//* End custom CSS */ November 20, 2025 When to See a Physiotherapist for Headaches (Instead of Your GP) .e-loop-item-10089 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10089 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/PMI.png");} November 18, 2025 Did You Know You Can Use Your Private Medical Insurance for Physiotherapy? .e-loop-item-10254 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10254 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/World-Diabetes-day-2025-1.png");} November 14, 2025 World Diabetes Day 2025 – Raising Awareness and Supporting Diabetes in the Workplace .e-loop-item-10114 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10114 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/healthy-mind-and-body-1.png");} November 5, 2025 Managing Stress for a Healthier Mind and Body .e-loop-item-10225 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10225 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1619/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/Headache-clinic-neck-treatment-scaled.jpg");} November 3, 2025 How Your Neck Could Be Causing Your Headaches and What to Do About It .e-loop-item-10067 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10067 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/private-medical-insurance.png");} October 28, 2025 6 Reasons Why Using Private Medical Insurance For Physiotherapy is Easier Than You Think Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":468,"title":"FAQ%20-%20Patient%20Help%20%7C%20Pure%20Physiotherapy","excerpt":"","featuredImage":false}}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) (()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment Join the Team Careers Pure is where passion meets expertise. As one of the UK’s leading providers of physiotherapy services and healthcare in the UK and a trusted partner of the NHS, this is an exciting time to join and be part of something extraordinary. Browse Jobs Explore a Career at Pure The Pure team is at the heart of the company’s growing success and our focus on quality and consistency set us apart from others in our field. We are a clinically driven, research led company dedicated to the clinical service we deliver. We are always looking for caring, motivated individuals to join the team in all our clinics across the country. In return, we offer flexibility, career progression, continual professional development and regular social events. Vacancies At Pure Physiotherapy, it’s all about our incredible team—their development, their success, and the positive impact they make on each other and our patients. We’re passionate about fostering a supportive and dynamic environment where your career can thrive. Browse Jobs If you don’t find the perfect fit today, but you’re excited about the possibility of joining our team, don’t hesitate to reach out to us at [email protected] Inspiring Workplaces Award Winners 2025 The Inspiring Workplaces Awards celebrate organisations that have created a positive and inspiring work culture, where employees feel like they belong.Being named as a Top Inspiring Workplace is a significant achievement and highlights our commitment to creating a work culture where everyone has the chance to thrive. Our Values Our fundamental belief of who we want to be as a company forms the backbone of our values and breathes life into our unique culture. Passion & Pride We care deeply about what we do and how we do it. We are passionate about delivering the best possible service and take pride in both how we work and how we treat each other. Respect & Compassion We value our colleagues and our customers; Empathy, compassion, and a genuine appreciation for diversity are woven into the fabric of our organisation. Our company culture thrives on positive connections where individuals feel valued, acknowledged, and empowered to reach their full potential. Create & Participate We think outside the box, questioning norms to find the right solutions for colleagues and customers. Our great results come from building strong partnerships: we support each other and work closely with clients, partners and the communities in which we work. Represent & Exceed We exemplify excellence across our professions, delivering exceptional services and care that raise industry standards. Through unified commitment, we consistently surpass expectations and redefine possibilities. Develop & Reflect We are a learning organisation. We are committed to supporting our people through professional growth, self-evaluation, and embracing innovation. Constantly seeking improvement, we remain flexible and resilient, using our expertise to overcome challenges positively. Benefits We have a range of additional flexible benefits to working as part of the team at Pure. Our benefits scheme is flexible, meaning you can select the perks and benefits that suit your lifestyle as well as your individual and family needs. Our benefits include Flexible working hours Continual skills development opportunities Funding towards external CPD and university courses. Continual skills development opportunities Regular training sessions and quarterly national CPD events. Regular social events Private health cash plan 24/7 advice line 25 days annual holiday plus bank holidays + 1 day per year of Service Salary Sacrifice Company pension Cycle to work scheme Electric Vehicle Scheme Time off for new parents Refer a friend bonus scheme Optional overtime CPD and Clinical Support Grow & Develop Your Career Pure is where you can thrive and have a real impact on patient care. We are dedicated to the continuous professional development of our team. As a clinically led organisation, we offer a robust training program featuring internal sessions from in-house experts and external CPD discussions, all free for our staff. Additionally, we support your growth by funding up to 50% of the cost for external professional development courses and providing job-specific training. We ensure accessibility through daily support sessions nationwide, regional chats, and supportive line managers. Our team includes physiotherapists pursuing Master’s degrees and Doctorates in musculoskeletal management research. Our management team is clinically led, with our Managing Director serving as an FCP Ambassador with Health Education England (HEE). We are passionate about supporting clinicians and allowing them to reach their full potential in delivering expert care. You will benefit from: Comprehensive and supportive induction to our brilliant team. A clinically-led management team, working with HEE (Health Education England) and NHS England at a national level. Funding towards external CPD and university courses. Regular appraisals and personal development plans. Regular training sessions and quarterly national CPD events. Daily clinical drop-in sessions led by senior MSK specialists to discuss clinical queries. 450+ physios easily accessible through our Teams chat functions for advice, discussions or questions. Weekly MSK Bulletins keeping you up to date with new clinical research. Weekly CPD sessions ensuring you have structured support in learning. Full clinical development days every quarter with external experts providing taught sessions and breakout clinical chats. Annual PDP put in place with funding and time structured around your needs. Opportunities to get involved in clinical research and inform national dialogue around national practice. Monthly evening lectures provided by national and international experts in their field free of charge. Browse Jobs Employment Opportunities in Australia Pure Physiotherapy is delighted to partner with MedHealth, an Australian leader in healthcare to provide unrivalled opportunities for our physiotherapists to work on the other side of the world. For those travelling to Australia, this partnership provides employment with a company that shares the same values as Pure Physiotherapy in a country that offers so much in terms of lifestyle, opportunity and sunshine! On return, Pure Physiotherapy commits to explore and place you in an appropriate role.Employees can work in a wide range of roles with MedHealth, including occupational rehabilitation consultancy to support individuals back into work and physiotherapy treatment services under Australia’s National Disability Employment Scheme. Agreement between UK and Australian governments mean it has never been easier to work in Australia, following the roll out of the Youth Mobility Scheme in UK, Working Holiday Maker Programme in Australia, and Temporary Skills Shortage Visas.If you’re thinking of taking the leap and expanding your horizons, get in touch via completing the Expression of Interest form. Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":555,"title":"Join%20the%20Team%20-%20We%20Are%20Hiring%20%7C%20Pure%20Physiotherapy","excerpt":"","featuredImage":false}}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) (()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment Pure Physiotherapy About Us Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Patients are at the heart of everything we do and providing consistent high-quality care to every patient we see is something we are proud to deliver. Find a Clinic What We Do We combine innovation and clinical expertise to offer comprehensive assessment, diagnosis, and treatment for all musculoskeletal conditions, from neck, back and knee pain to sports injuries, osteoarthritis and more debilitating physical and mental conditions. Our commitment is to provide you with the highest quality care to help you achieve your health and wellness goals. We want all our patients to get the very best out of life. We believe that by empowering them with the right advice, education and appropriate treatments, we can reduce pain and maximise the function and ability everyone has.We are proud to be the leading national provider of First Contact Physiotherapy services to the NHS. Partnering with over 1,500 GP practices across the country, we deliver specialist musculoskeletal services to NHS patients. The recognition from the NHS helps to underline our commitment to providing consistently high-quality musculoskeletal management to every patient we see. Our Services We Stand For Patients First P atients First Providing high quality patient care is at the core of everything we do and every decision we make. Unified approach U nified approach We aim to be unified, not only with our patients but also with our partners, working together to help build better healthcare. Research led R esearch led As a learning organisation we use data and research to inform our practice and services. Expert care E xpert care We seek out the best staff and invest heavily in training to ensure our staff offer the best possible service. Our Mission Our mission is to improve the quality of healthcare and musculoskeletal management across the UK, and to positively contribute to national policy and the development of clinical services.Using our strength as an integrator, we strive to create sustainable and efficient services, tailored to meet the needs of local communities.We are passionate about people, both as an employer and a healthcare provider. By supporting and training our staff to the highest level and embracing innovation, we empower people to understand their health and help them achieve the best quality of life. 50+ locations and counting across the UK Find a Clinic Delivering Expert Care All our physiotherapists are registered with the HCPC (Health & Care Professions Council) and the CSP (Chartered Society of Physiotherapists). In 2020, the CSP celebrated 100 years since being awarded its Royal Charter. Being a chartered physiotherapist demonstrates a high level of academic achievement, training, and dedication to the profession.As chartered physiotherapists, we work to four pillars of practice which are the fundamental aspects of our profession. These are: Exercise, movement, and rehabilitation Manual therapy and therapeutic handling Therapeutic and diagnostic technologies Allied approaches Research-Led Physiotherapy Education is at the core of our culture. By supporting our team’s clinical development and expertise through constant training and development we ensure the highest standards of clinical practice.We also provide training to the NHS, universities, general public and other physiotherapists nationwide. Many of our physiotherapists are actively involved in national and international musculoskeletal research.This commitment ensures our patients receive the best possible treatment based on the latest research. You can learn more about our commitment to CPD and our latest lecture here: CPD About Us Pure Physiotherapy is part of the Pure Unity Health Group, a leading UK healthcare organisation consisting of Pure Physiotherapy, Pure Unity Health, Medical & Legal Admin Services (MLAS) and Rehab Direct, delivering services in the medical, legal and healthcare sectors.Pure Unity Health is part of ExamWorks UK and the ExamWorks global network which includes the United Kingdom, Australia, Canada and the United States of America, delivering over three million independent medical examination related service referrals annually. Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":361,"title":"About%20Us%20-%20Pure%20Physiotherapy%20%7C%20Expert%20Physiotherapists","excerpt":"","featuredImage":false}}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) (()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();
Emails:
View text
Skip to content Facebook X-twitter Linkedin Instagram Youtube 0800 989 0031 [email protected] Search Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Home Clinics Services Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Pure Physio Sports Sports Injury Assessment Sports Massage Sports Screening Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women’s Health Occupational Health By Body Part Lower Back & Sciatica Pain Upper Back Pain Neck Pain Shoulder Pain Elbow Pain Wrist Pain Hand/Finger Pain Thumb Pain Hip Pain Knee Pain Ankle Pain Foot Pain About Us Careers Blog FAQ Partnerships Private Medical Insurance Self Help Tool NHS Services Contact Book Appointment Book Appointment Pure Physiotherapy Patients First Expert Care Since 2006, our highly trained and qualified physiotherapists have helped individuals and athletes get back to doing what they love. If you are experiencing neck, back, shoulder, knee or joint pain, or have suffered an injury through sports or accident that has impacted your function or quality of life, our physiotherapists can help you. Find a Clinic Over 850 5-Star Google Reviews .elementor-274 .elementor-element.elementor-element-5a4e77d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:space-between;--border-radius:0px 50px 0px 50px;--padding-top:40px;--padding-bottom:40px;--padding-left:40px;--padding-right:40px;}.elementor-274 .elementor-element.elementor-element-5a4e77d:not(.elementor-motion-effects-element-type-background), .elementor-274 .elementor-element.elementor-element-5a4e77d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-accent );}.elementor-274 .elementor-element.elementor-element-a3bfe4f{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );}.elementor-274 .elementor-element.elementor-element-a9f293a > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-274 .elementor-element.elementor-element-a9f293a{text-align:left;}.elementor-274 .elementor-element.elementor-element-a9f293a img{width:45px;}.elementor-widget-theme-post-content{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );}.elementor-274 .elementor-element.elementor-element-5fdae42 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-274 .elementor-element.elementor-element-5fdae42{color:#FFFFFF;font-family:var( --e-global-typography-b70c406-font-family ), Sans-serif;font-size:var( --e-global-typography-b70c406-font-size );text-transform:var( --e-global-typography-b70c406-text-transform );}.elementor-widget-divider{--divider-color:var( --e-global-color-secondary );}.elementor-widget-divider .elementor-divider__text{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );text-transform:var( --e-global-typography-secondary-text-transform );line-height:var( --e-global-typography-secondary-line-height );}.elementor-widget-divider.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon{color:var( --e-global-color-secondary );border-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-secondary );}.elementor-274 .elementor-element.elementor-element-0076a58{--divider-border-style:solid;--divider-color:#FFFFFF;--divider-border-width:1px;--divider-element-spacing:20px;}.elementor-274 .elementor-element.elementor-element-0076a58 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-274 .elementor-element.elementor-element-0076a58 .elementor-divider-separator{width:70%;margin:0 auto;margin-left:0;}.elementor-274 .elementor-element.elementor-element-0076a58 .elementor-divider{text-align:left;padding-block-start:0px;padding-block-end:0px;}.elementor-274 .elementor-element.elementor-element-0076a58 .elementor-divider__text{color:#FFFFFF;font-family:"rustica", Sans-serif;font-size:16px;font-weight:700;text-transform:none;}@media(max-width:1680px){.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-content{font-size:var( --e-global-typography-text-font-size );}.elementor-274 .elementor-element.elementor-element-5fdae42{font-size:var( --e-global-typography-b70c406-font-size );}.elementor-widget-divider .elementor-divider__text{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}}@media(max-width:1024px){.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-content{font-size:var( --e-global-typography-text-font-size );}.elementor-274 .elementor-element.elementor-element-5fdae42{font-size:var( --e-global-typography-b70c406-font-size );}.elementor-widget-divider .elementor-divider__text{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}}@media(max-width:767px){.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );}.elementor-274 .elementor-element.elementor-element-a9f293a img{width:50px;}.elementor-widget-theme-post-content{font-size:var( --e-global-typography-text-font-size );}.elementor-274 .elementor-element.elementor-element-5fdae42{font-size:var( --e-global-typography-b70c406-font-size );}.elementor-widget-divider .elementor-divider__text{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}}/* Start custom CSS for divider, class: .elementor-element-0076a58 */@media screen and (max-width:1024px) {.elementor-274 .elementor-element.elementor-element-0076a58 .elementor-divider-separator:before { display: none; } .elementor-274 .elementor-element.elementor-element-0076a58 .elementor-divider__text { margin-left: 0; } }/* End custom CSS */ /* Start custom CSS for container, class: .elementor-element-5a4e77d */@media screen and (min-width: 1366px){ .elementor-274 .elementor-element.elementor-element-5a4e77d { aspect-ratio: 1 / 1; } }/* End custom CSS */ My sessions with Meadhbh Flynn were really respectful, friendly and supportive. I felt listened to and each time I saw improvements in my condition as well as being able to review if exercises were or were not working we would change them to fit what was best for me in my treatment. Patient in Norwich Brilliant friendly place, Durgesh has really helped me get back on track with my rehab after knee replacement surgery. Friendly and practical advice with excellent follow up notes to ensure exercises are clear once you get home. Thanks so much, 100% recommend! Patient in Nottingham Having physiotherapy with Artin has helped me so much, the exercises he showed me has helped my recovery quickly. He is amazing! Patient in Rotherham Treatment provided by rudresh at Colchester clinic for an arthritic knee was excellent. The exercises correctly addressed the pain, mobility, and strength issues which over a few weeks went from barely able to walk to completely normal function. Today completed a 3-mile walk without any pain. Rudresh was a good motivator who helped me reach my fitness goals ahead of my schedule. Patient in Colchester I saw Prerna at the Sale Clinic for osteoarthritis in my hand. She is an excellent physio and extremely knowledgeable. She gave me very good exercises and explained everything very clearly. After each visit I received emails with pictures of the exercises. She is also very friendly and supportive. Highly recommended! Patient in Sale Shweta was amazing during my sessions at Pure Physiotherapy. She always provided me with a clear plan for my rehabilitation and would change this in every session depending on what I needed to work on to support specific muscles. Shweta was always very friendly and helpful and always answered my questions. I would recommend Pure Physiotherapy to anyone who is rehabilitating from an injury like I am or muscle pain. Patient in Nottingham Excellent treatment, I saw Juliet who was very professional and made me feel at ease. Exercises were fully explained, which I carried out, which enabled me to regain my mobility after two sessions. Thank you. Patient in Doncaster Amina has been fantastic, it was my first experience at a physio and i felt very comfortable from the start. Thank you for all your help and knowledge. Patient in Wakefield Really great experience with Pure Physio. Two sessions, ten days apart to work on a sore neck. Primarily a gym injury, but lots of great advice and exercises relevant to daily life and work. Much improved mobility. Many thanks. Patient in Bedford I went to Pure Physio after a car accident left my back very sore and movement was restricted. …after 10 sessions my back is back to normal. Saira was very good at administering treatment. Would highly recommend sessions with Pure Physio. Patient in Oldham Recently had an appointment with Josh. Would not hesitate to recommend. Prompt appointment. Very pleasant reception team. Exercise regime that day and immediate benefits. Very professional care and treatment. Thank you. Patient in St Austell The staff were very friendly and helpful. The physio that treated me always checked if I was okay during the session and she always was checking on if I was doing my exercises at home. Highly recommended. Patient in Stockport I would like to say that Josh is not only a really nice guy, but he is exceptionally good at his job! I’ve had physio numerous times throughout my life and Josh really stands out among them – great job! Patient in St Austell Josh really knows his stuff. He get’s to the bottom of things even though I find it hard to articulate the issues with my hamstring and knee. Plus he’s friendly and easy to talk to. Recommended. Patient in Newquay Saira has been brilliant, she’s helped my daughter’s recovery a HUGE amount after breaking her leg. She made her feel comfortable at every session and pushed her to make sure she got the recovery she needed. Big thank you 😊 Patient in Oldham Shweta is very knowledgeable and professional. In just two sessions she has helped me manage my pain remarkably – I would highly recommend. Patient in Nottingham A big thank you for helping me regain the movement and strength in my arm after 8 months of pain and very limited movement. Faraz was patient, encouraging and knowledgeable. I will definitely recommend him. Patient in Nottingham A lovely, clean and intimate building, with a calm atmosphere- the staff are so welcoming and professional. I personally worked with Rushika for 5 required sessions, and throughout that time I felt heard, and very supported. Thank you 😊 Patient in St Austell I have been visiting Debbie for quite a few years and she has helped me keep my back in order and has recently sorted out my sciatica. I can’t recommend her highly enough. Patient in Bolton I had treatment here for 3 months and Prerna made me feel at such ease. She’s very professional. amazing at her job and really helped with all the pain I was in. I would highly recommend Prerna. Lovely lady. Patient in Sale Navi was great helping me with a sport injury in my Achilles, after a few sessions and using the exercises I am now back to marathon training and running 5 times a week pain free! Patient in Hillsborough I can’t praise Faraz enough. I had a painful arm for several weeks. Faraz quickly found the source of the pain, treated it and gave me exercises to help relieve the pain and loosen my stiff neck. thank you, Faraz! Patient in Nottingham Fantastic experience. Went in barely being able to lift anything due to an elbow issue and after 3 acupuncture sessions it’s like there was never a problem in the first place. Gareth Stephenson was great, thank you! Patient in Barnsley Grace has been extremely professional and helpful with my injuries. I could not fault her, so nice to see someone so amazing at their job and genuinely care for her clients wellbeing. She is friendly and approachable, Grace really helped me in a stressful time. Patient in Great Yarmouth Why Pure? Since 2006, Pure Physiotherapy has provided award winning assessment, diagnosis and treatment of musculoskeletal conditions. We help individuals and athletes restore function, maximise movement and reduce pain. High quality patient care is at the core of all we do. We work with our patients to treat them, looking for the underlying cause as well as the symptoms. Our experienced physios work with you to treat the whole body through manual therapy, advice and creating personalised treatment plans right for you.We believe in a research led, evidence-based approach to healthcare. Combined with our passion for training and clinical excellence, our highly qualified physiotherapists always make decisions based on current research best practice.We help you get back to being you. About Us Treating the UK since 2006 Over 850 5-star Google reviews Call or book onlinefor fast appointment 50+ locations and counting across the UK Find a Clinic Our services Physio services and treatments designed around you Physiotherapy Treatments Physiotherapy Manual Therapy Muscle and Trigger Point Therapy Exercise Prescription Sports & Deep Tissue Massage Acupuncture Knee Pain Clinic Low back pain and sciatica clinic Tendonitis and tendon injury clinic Whiplash clinic Repetitive strain and work health clinic Sports Physio Services Sports Injury Assessment Sports Screening Sports Massage Adolescent Sports Screening Running Gait Analysis Shockwave Therapy Golf Screening Pure Ski MOT Pure Women's Health Pure Women’s Health Occupational Health Occupational Health Self Help Tool If you’re suffering from pain or restriction to your normal life, click on our simple symptom checker for possible conditions within seconds. Easily click on the areas of the body that are causing your discomfort to identify some possible causes and management options. Get Started Your journey to well-being starts here Book Online Pure Physiotherapy in Numbers Services 0 + Clinics 0 + Years of Experience 0 + 5-star reviews 0 + Blog Read our thoughts & insights .e-loop-item-10384 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10384 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1619/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/11/AdobeStock_413746748-scaled.jpeg");}.elementor-214 .elementor-element.elementor-element-eb8aa8c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:space-between;--overlay-opacity:1;--border-radius:0px 0100px 0px 100px;--padding-top:25px;--padding-bottom:25px;--padding-left:25px;--padding-right:25px;}.elementor-214 .elementor-element.elementor-element-eb8aa8c::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-background-video-container::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .e-con-inner > .elementor-background-video-container::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-background-slideshow::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .e-con-inner > .elementor-background-slideshow::before, .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #25204D00 50%, var( --e-global-color-primary ) 100%);}.elementor-214 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center center;background-size:cover;}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );}.elementor-214 .elementor-element.elementor-element-b44da86{width:auto;max-width:auto;}.elementor-214 .elementor-element.elementor-element-b44da86 > .elementor-widget-container{background-color:var( --e-global-color-accent );padding:10px 20px 5px 20px;border-radius:50px 50px 50px 50px;}.elementor-214 .elementor-element.elementor-element-b44da86.elementor-element{--align-self:flex-start;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-icon{width:14px;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-icon i{font-size:14px;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-text, .elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-text a{color:#FFFFFF;}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-item{font-family:"rustica", Sans-serif;font-size:14px;font-weight:600;text-transform:uppercase;}.elementor-widget-theme-post-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );line-height:var( --e-global-typography-primary-line-height );color:var( --e-global-color-primary );}.elementor-214 .elementor-element.elementor-element-37f905e{width:var( --container-widget-width, 75% );max-width:75%;--container-widget-width:75%;--container-widget-flex-grow:0;text-align:right;}.elementor-214 .elementor-element.elementor-element-37f905e.elementor-element{--align-self:flex-end;}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-family:var( --e-global-typography-f1e905f-font-family ), Sans-serif;font-size:var( --e-global-typography-f1e905f-font-size );font-weight:var( --e-global-typography-f1e905f-font-weight );text-transform:var( --e-global-typography-f1e905f-text-transform );line-height:var( --e-global-typography-f1e905f-line-height );color:#FFFFFF;}@media(max-width:1680px){.elementor-214 .elementor-element.elementor-element-eb8aa8c{--border-radius:0px 50px 0px 050px;}.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-item{font-size:14px;}.elementor-widget-theme-post-title .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-size:var( --e-global-typography-f1e905f-font-size );line-height:var( --e-global-typography-f1e905f-line-height );}}@media(max-width:1024px){.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-title .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-size:var( --e-global-typography-f1e905f-font-size );line-height:var( --e-global-typography-f1e905f-line-height );}}@media(max-width:767px){.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-214 .elementor-element.elementor-element-b44da86 .elementor-icon-list-item{font-size:14px;}.elementor-widget-theme-post-title .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-214 .elementor-element.elementor-element-37f905e .elementor-heading-title{font-size:var( --e-global-typography-f1e905f-font-size );line-height:var( --e-global-typography-f1e905f-line-height );}}/* Start custom CSS for theme-post-title, class: .elementor-element-37f905e */.elementor-214 .elementor-element.elementor-element-37f905e a:hover { color: #84a7d3; } .elementor-214 .elementor-element.elementor-element-37f905e a { transition: 0.3s; }/* End custom CSS */ /* Start custom CSS for container, class: .elementor-element-eb8aa8c */.elementor-214 .elementor-element.elementor-element-eb8aa8c { aspect-ratio: 1 / 1; } /*.elementor-214:hover .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer { background-size: 110%; } .elementor-214 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .elementor-214 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer { transition: 0.3s; }*//* End custom CSS */ November 20, 2025 When to See a Physiotherapist for Headaches (Instead of Your GP) .e-loop-item-10089 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10089 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/PMI.png");} November 18, 2025 Did You Know You Can Use Your Private Medical Insurance for Physiotherapy? .e-loop-item-10254 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10254 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/World-Diabetes-day-2025-1.png");} November 14, 2025 World Diabetes Day 2025 – Raising Awareness and Supporting Diabetes in the Workplace .e-loop-item-10114 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10114 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/healthy-mind-and-body-1.png");} November 5, 2025 Managing Stress for a Healthier Mind and Body .e-loop-item-10225 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10225 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1619/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/Headache-clinic-neck-treatment-scaled.jpg");} November 3, 2025 How Your Neck Could Be Causing Your Headaches and What to Do About It .e-loop-item-10067 .elementor-element.elementor-element-eb8aa8c:not(.elementor-motion-effects-element-type-background), .e-loop-item-10067 .elementor-element.elementor-element-eb8aa8c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://mlf4ooqm0yfc.i.optimole.com/cb:IuZP.42347/w:1920/h:1080/q:75/f:best/https://purephysiotherapy.co.uk/wp-content/uploads/2025/10/private-medical-insurance.png");} October 28, 2025 6 Reasons Why Using Private Medical Insurance For Physiotherapy is Easier Than You Think Contact Us We're here to help Need assistance? Our team is here to answer any queries you may have and help you find the right appointment. 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm Contact From Region Region North West East Anglia Yorkshire South Southwest Midlands Clinic you're visiting Full Name Phone Number Email Message Send Sign up to our newsletter Our bi-monthly healthy living guide contains expert insights, seasonal tips, exercises and practical advice so you can safely maximise your health and wellbeing as part of our commitment to supporting our patients. Helping you stay active and pain-free and feeling your best! First name Last name Email Sign up Pure Physiotherapy was founded in 2006 and since then has grown to be a leading provider of physiotherapy services supporting more than 90,000 patients each month. Our 50+ clinics, specialist sports centres and their dedicated physiotherapists assist the general public, sports enthusiasts and elite athletes with their rehabilitation and on- going healthcare. Book Online Quick links Home Clinics Services About Us Self Help Tool Pure Unity Health FAQ Contact Blog Careers Privacy Policy Terms & Conditions Women's Health Service Consent & Information Modern Slavery Act Statement Cookie Settings Book Online Contact information 0800 989 0031 [email protected] Opening hours:Monday – Thursday 8am – 8pmFriday 8am – 6pmSaturday 8am – 12pm © 2025 Pure Physio. All rights reserved.Designed & built by aminocreates Our social media Facebook X-twitter Linkedin Instagram Youtube {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} window.addEventListener('DOMContentLoaded', function() { var default_location = 'London'; var latlng; var address; var dist = 0; var Sgeocoder = (typeof google!=='undefined' && typeof google.maps!=='undefined') ? new google.maps.Geocoder() : {}; function geodir_setup_submit_search($form) { jQuery('.geodir_submit_search').off('click');// unbind any other click events jQuery('.geodir_submit_search').on("click",function(e) { e.preventDefault(); var s = ' '; var $form = jQuery(this).closest('form'); if (jQuery("#sdistance input[type='radio']:checked").length != 0) dist = jQuery("#sdistance input[type='radio']:checked").val(); if (jQuery('.search_text', $form).val() == '' || jQuery('.search_text', $form).val() == 'Search for') jQuery('.search_text', $form).val(s); // Disable location based search for disabled location post type. if (jQuery('.search_by_post', $form).val() != '' && typeof gd_cpt_no_location == 'function') { if (gd_cpt_no_location(jQuery('.search_by_post', $form).val())) { jQuery('.snear', $form).remove(); jQuery('.sgeo_lat', $form).remove(); jQuery('.sgeo_lon', $form).remove(); jQuery('select[name="sort_by"]', $form).remove(); jQuery($form).trigger("submit"); return; } } if ( dist > 0 || (jQuery('select[name="sort_by"]').val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest') || (jQuery(".snear", $form).val() != '' && jQuery(".snear", $form).val() != 'Search for a location' && !jQuery('.geodir-location-search-type', $form).val() ) ) { var vNear = jQuery(".snear", $form).val(); /* OSM can't handle post code with no space so we test for it and add one if needed */ if(window.gdMaps === 'osm'){ var $near_val = vNear; var $is_post_code = $near_val.match("^([A-Za-z][A-Ha-hJ-Yj-y]?[0-9][A-Za-z0-9]??[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})$"); if($is_post_code){ $near_val = $near_val.replace(/.{3}$/,' $&'); jQuery(".snear", $form).val($near_val); } } geodir_setsearch($form); } else { jQuery(".snear", $form).val(''); jQuery($form).trigger("submit"); } }); // Clear near search GPS for core if (!jQuery('input.geodir-location-search-type').length && jQuery('[name="snear"]').length){ jQuery('[name="snear"]').off('keyup'); jQuery('[name="snear"]').on('keyup', function($){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); }); } } jQuery(document).ready(function() { geodir_setup_submit_search(); //setup advanced search form on form ajax load jQuery("body").on("geodir_setup_search_form", function($form){ geodir_setup_submit_search($form); }); }); function geodir_setsearch($form) { if ((dist > 0 || (jQuery('select[name="sort_by"]', $form).val() == 'nearest' || jQuery('select[name="sort_by"]', $form).val() == 'farthest')) && (jQuery(".snear", $form).val() == '' || jQuery(".snear", $form).val() == 'Search for a location')) jQuery(".snear", $form).val(default_location); geocodeAddress($form); } function updateSearchPosition(latLng, $form) { if (window.gdMaps === 'google') { jQuery('.sgeo_lat').val(latLng.lat()); jQuery('.sgeo_lon').val(latLng.lng()); } else if (window.gdMaps === 'osm') { jQuery('.sgeo_lat').val(latLng.lat); jQuery('.sgeo_lon').val(latLng.lon); } jQuery($form).trigger("submit"); // submit form after inserting the lat long positions } function geocodeAddress($form) { // Call the geocode function Sgeocoder = window.gdMaps == 'google' ? new google.maps.Geocoder() : null; if (jQuery('.snear', $form).val() == '' || ( jQuery('.sgeo_lat').val() != '' && jQuery('.sgeo_lon').val() != '' ) || (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:"))) { if (jQuery('.snear', $form).val() && jQuery('.snear', $form).val().match("^In:")) { jQuery(".snear", $form).val(''); } jQuery($form).trigger("submit"); } else { var address = jQuery(".snear", $form).val(); if (address && address.trim() == 'Search for a location') { initialise2(); } else if(address && address.trim() == 'Near: My Location') { jQuery($form).trigger("submit"); } else { var search_address = address; if (window.gdMaps === 'google') { var geocodeQueryParams = {'address': search_address}; if (geodirIsZipCode(address)) { if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['postalCode'] == 'undefined') { geocodeQueryParams['componentRestrictions']['postalCode'] = address; } } else { geocodeQueryParams['componentRestrictions'] = {'postalCode': address}; } } if (typeof geocodeQueryParams['componentRestrictions'] != 'undefined') { if (typeof geocodeQueryParams['componentRestrictions']['country'] == 'undefined') { geocodeQueryParams['componentRestrictions']['country'] = 'GB'; } } else { geocodeQueryParams['componentRestrictions'] = {'country': 'GB'}; } Sgeocoder.geocode(geocodeQueryParams, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { updateSearchPosition(results[0].geometry.location, $form); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { var osmCountryCodes = false; osmCountryCodes = 'gb'; geocodePositionOSM(false, search_address, osmCountryCodes, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { updateSearchPosition(geo, $form); } else { alert("Search was not successful for the requested address."); } }); } else { jQuery($form).trigger("submit"); } } } } function geodirIsZipCode(string) { if (/^\d+$/.test(string)) { if (string.length > 3 && string.length < 7) { return true; } } return false; } function initialise2() { if (!window.gdMaps) { return; } if (window.gdMaps === 'google') { var latlng = new google.maps.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: google.maps.MapTypeId.TERRAIN, disableDefaultUI: true } } else if (window.gdMaps === 'osm') { var latlng = new L.LatLng(56.494343, -4.205446); var myOptions = { zoom: 4, mapTypeId: 'TERRAIN', disableDefaultUI: true } } try { prepareGeolocation(); } catch (e) {} doGeolocation(); } function doGeolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(positionSuccess, positionError); } else { positionError(-1); } } function positionError(err) { var msg; switch (err.code) { case err.UNKNOWN_ERROR: msg = "Unable to find your location"; break; case err.PERMISSION_DENINED: msg = "Permission denied in finding your location"; break; case err.POSITION_UNAVAILABLE: msg = "Your location is currently unknown"; break; case err.BREAK: msg = "Attempt to find location took too long"; break; default: msg = "Location detection not supported in browser"; } jQuery('#info').html(msg); } function positionSuccess(position) { var coords = position.coords || position.coordinate || position; jQuery('.sgeo_lat').val(coords.latitude); jQuery('.sgeo_lon').val(coords.longitude); jQuery('.geodir-listing-search').trigger("submit"); } /** * On unload page do some cleaning so back button cache does not store these values. */ jQuery(window).on("beforeunload", function(e) { if(jQuery('.sgeo_lat').length ){ jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); }); window.addEventListener('DOMContentLoaded', function() { var gdasac_selected = '', gdasac_li_type = '', gdasac_categories = [], gdasac_tags = [], gdasac_listings = [], gdasac_do_not_close = false, gdasac_doing_search = 0, gdasac_is_search = false, gdasac_keyup_timeout = null, gdasac_suggestions_with = '', gdasac_with_tags = false; jQuery(function($) { /*Init*/ gdas_ac_init('.gd_search_text'); if ($('.gd_search_text').length){$('.gd_search_text').each(function(){if(!$(this).parent().find(".gdas-search-suggestions").length){jQuery(this).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul><ul class='gdasac-category list-unstyled p-0 m-0'></ul></div>");}});} /*On CPT change*/ jQuery("body").on("geodir_setup_search_form",function(){gdas_ac_init('.gd_search_text');}); }); function gdas_ac_init($field){jQuery($field).on("focusin",function(){gdasac_selected=this;gdas_ac_focus_in(this)}).on("focusout",function(){gdasac_selected="";gdas_ac_focus_out(this)});jQuery(window).on("resize",function(){gdas_ac_resize_suggestions()})} function gdas_ac_focus_in($input){ var $suggestions = jQuery($input).parent().find(".gdas-search-suggestions"), gdas_fire = false; if($suggestions.length){gdas_fire = true}else{jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdas-search-suggestions gd-ios-scrollbars'><ul class='gdasac-listing list-unstyled p-0 m-0'></ul></div>");gdas_fire = true;} /* Fire search */ if(gdas_fire&&!$suggestions.hasClass("gdasac-focused")){$suggestions.addClass("gdasac-focused");gdas_ac_init_suggestions($input);if(gdasac_suggestions_with!="posts"){gdas_ac_categories($input)}} /* Resize */ gdas_ac_resize_suggestions(); /* Set if is search near */ if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')){gdasac_is_search = true;}else{gdasac_is_search = false;} } function gdas_ac_focus_out($input){setTimeout(function() {if (!gdasac_do_not_close) {}},200);} /* Get the current post_type categories as suggestions. */ function gdas_ac_categories(el){ $input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}if(typeof post_type_slug=="undefined"){post_type_slug=jQuery(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val();if(typeof search=="undefined"){search=""}request_url=geodir_params.api_url+""+post_type_slug+"/categories/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}} jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_categories = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'category'; jQuery.each(gdasac_categories, function (index, value) {html = html + gdas_ac_create_li('category', value);}); var gdasCe = gdasac_selected ? gdasac_selected : el; jQuery(gdasCe).parent().find("ul.gdasac-category").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasCe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); } function gdas_ac_tags(el){$input=jQuery(gdasac_selected);var post_type=jQuery($input).parent().parent().find("input[name='stype']").val();var post_type_slug=jQuery($input).closest(".geodir-search").find("input[name='stype']").data("slug");if(!post_type_slug){post_type_slug=jQuery($input).closest(".geodir-search").find(".search_by_post").find(":selected").data("slug")}var search=jQuery($input).val(),gdasPe=gdasac_selected?gdasac_selected:el;if(search&&search.length>=geodir_search_params.autocomplete_min_chars){request_url=geodir_params.api_url+""+post_type_slug+"/tags/?orderby=count&order=desc&search="+search+"&per_page="+geodir_search_params.autocompleter_max_results;if(geodir_search_params.autocompleter_filter_location&&el&&jQuery(el).closest("form.geodir-listing-search").length){$form=jQuery(el).closest("form.geodir-listing-search");lname=jQuery(".geodir-location-search-type",$form).prop("name");lval=jQuery(".geodir-location-search-type",$form).val();if(lval&&(lname=="country"||lname=="region"||lname=="city"||lname=="neighbourhood")){request_url+="&"+lname+"="+lval}}jQuery.ajax({type:"GET",url:request_url,dataType:"json",success:function(data){gdasac_tags=data;gdasac_doing_search--;html="";gdasac_li_type="tag";jQuery.each(gdasac_tags,function(index,value){html=html+gdas_ac_create_li("tag",value)});jQuery(gdasPe).parent().find("ul.gdasac-tag").empty().append(html);if(html&&gdasac_selected&&!jQuery(el).closest("form.geodir-listing-search").find(".gdas-search-suggestions").is(":visible")){try{jQuery(gdasPe).dropdown("show")}catch(err){console.log(err.message)}}},error:function(xhr,textStatus,errorThrown){console.log(errorThrown)}})}else{jQuery(gdasPe).parent().find("ul.gdasac-tag").empty()}} /* Get the current post_type categories as suggestions. */ function gdas_ac_listings(el){ $input = jQuery(gdasac_selected); var post_type = jQuery($input).parent().parent().find("input[name='stype']").val(); var post_type_slug = jQuery($input).closest('.geodir-search').find("input[name='stype']").data("slug"); if(!post_type_slug) { post_type_slug = jQuery($input).closest('.geodir-search').find(".search_by_post").find(':selected').data("slug"); } var search = jQuery($input).val(), gdasLe = gdasac_selected ? gdasac_selected : el; if(search && search.length >= geodir_search_params.autocomplete_min_chars){ request_url = geodir_params.api_url + "" + post_type_slug+"/?search="+search+"&per_page="+geodir_search_params.autocompleter_max_results; if (geodir_search_params.autocompleter_filter_location && el && jQuery(el).closest('form.geodir-listing-search').length) { $form = jQuery(el).closest('form.geodir-listing-search'); lname = jQuery('.geodir-location-search-type', $form).prop('name'); lval = jQuery('.geodir-location-search-type', $form).val(); if (lval && (lname == 'country' || lname == 'region' || lname == 'city' || lname == 'neighbourhood')) { request_url += '&' + lname + '=' + lval; } } jQuery.ajax({ type: "GET", url: request_url, dataType: 'json', success: function (data) { gdasac_listings = data;gdasac_doing_search--; html = ''; gdasac_li_type = 'listing'; jQuery.each(gdasac_listings, function (index, value) { html = html + gdas_ac_create_li('listing', value); }); jQuery(gdasLe).parent().find("ul.gdasac-listing").empty().append(html); if(html && gdasac_selected && !jQuery(el).closest('form.geodir-listing-search').find('.gdas-search-suggestions').is(':visible')){try{jQuery(gdasLe).dropdown('show');}catch(err){console.log(err.message);}} }, error: function (xhr, textStatus, errorThrown) {console.log(errorThrown);} }); }else{jQuery(gdasLe).parent().find("ul.gdasac-listing").empty();} } /* Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdas_ac_resize_suggestions(){setTimeout(function(){if(jQuery(".gd-suggestions-dropdown:visible").length){var offset=jQuery(".gd-suggestions-dropdown:visible").offset().top;var windowHeight=jQuery(window).height();var maxHeight=windowHeight-(offset-jQuery(window).scrollTop());if(jQuery(".gd-suggestions-dropdown:visible").prev().hasClass("gd_search_text")){jQuery(".gd-suggestions-dropdown:visible").css("max-height",windowHeight-40)}else{jQuery(".gd-suggestions-dropdown:visible").css("max-height",maxHeight)}}},50)} function gdas_ac_init_suggestions($input){setTimeout(function(){gdas_ac_resize_suggestions()},250);jQuery($input).on("keyup",function(e){gdasac_doing_search=3;/*city, region, country*/if(gdasac_keyup_timeout!=null)clearTimeout(gdasac_keyup_timeout);gdasac_keyup_timeout=setTimeout(function(){gdas_ac_maybe_fire_suggestions($input)},500)})} function gdas_ac_maybe_fire_suggestions(el){gdasac_keyup_timeout=null;if(gdasac_suggestions_with!="terms"){gdas_ac_listings(el)}if(gdasac_suggestions_with!="posts"){gdas_ac_categories(el)}if(gdasac_with_tags){gdas_ac_tags(el)}} function gdas_ac_create_li($type,$data){ var output = '', history = '', $delete = ''; var $common_class = 'list-group-item-action c-pointer p-0 m-0 d-flex justify-content-start align-items-center text-muted'; var $common_class_icon = ' d-flex align-items-center justify-content-center p-0 m-0 me-2'; var $common_class_title = 'dropdown-header h6 p-2 m-0 bg-light'; var $icon_size = 'height:38px;width:38px;'; if(gdasac_li_type != ''){if($type=='category'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Categories</li>';}else if($type=='tag'){output += '<li class="gdas-section-title '+$common_class_title+'" onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);">Tags</li>';}else if($type=='listing'){output += '<li class="gdas-section-title '+$common_class_title+'">Listings</li>';}else{output += '<li class="gdas-section-title '+$common_class_title+'">'+$type.charAt(0).toUpperCase() + $type.slice(1)+'</li>';}} gdasac_li_type = ''; if($data.history){ history = '<i class="far fa-clock" title="Search history"></i> '; $delete = '<i onclick="var event=arguments[0]||window.event;geodir_cancelBubble(event);gdas_ac_del_location_history(\''+$data.slug+'\');jQuery(this).parent().remove();" class="fas fa-times" title="Remove from history"></i> '; }else if($type == 'category' && $data.fa_icon){ var icon_color = $data.fa_icon_color ? '#fff' : ''; history = '<span class="gdasac-icon '+$common_class_icon+'" style="background-color:'+$data.fa_icon_color+';color:'+icon_color+';'+$icon_size+'"><i class="'+$data.fa_icon+' fa-fw"></i></span> '; }else if($type == 'category'){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-folder-open"></i></span> '; }else if($type == 'tag'){ history = '<span class="gdasac-icon '+$common_class_icon+' fs-base" style="'+$icon_size+'"><i class="fas fa-tag"></i></span>'; }else if($type == 'listing' && $data.featured_image.thumbnail){ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><img src="'+$data.featured_image.thumbnail+'" class="w-100"></span> '; }else{ history = '<span class="gdasac-icon '+$common_class_icon+'" style="'+$icon_size+'"><i class="fas fa-map-marker-alt"></i></span> '; } if($type=='category' || $type=='tag'){ if($data.area){$data.city = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\''+geodirSearchEscapeQuote($data.name)+'\');">'+history+'<b>'+ $data.name + '</b>'+$delete+'</li>'; }else if($type=='listing'){ if($data.area){$data.region = $data.area;} output += '<li class="'+$common_class+'" data-type="'+$type+'" onclick="gdasac_click_action(\''+$type+'\',\''+$data.link+'\','+$data.id+',\'\');">'+history+'<b>'+ $data.title.rendered + '</b>'+$delete+'</li>'; } return output; } function geodirSearchEscapeQuote(str){if(str){str=str.replace(/"/g, "&quot;");str=str.replace(/'/g, "\\'");str=str.replace(/&#039;/g, "\\'");}return str;} function gdasac_click_action($type,$url,$id, $name){ if($type=='category'){ window.location = $url; }else if($type=='tag'){window.location = $url; }else if($type=='listing'){window.location = $url} } }); window.addEventListener('DOMContentLoaded', function() { map_id_arr = []; gdUmarker = ''; my_location = ''; lat = ''; lon = ''; gdUmarker = ''; userMarkerActive = false; gdLocationOptions = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; jQuery("body").on("map_show", function(event, map_id) { map_id_arr.push(map_id); if (lat && lon) { setTimeout(function(map_id) { geodir_search_setUserMarker(lat, lon, map_id); }, 1, map_id); } }); }); Search Search Change Location Find awesome listings near you! Change Location window.addEventListener('DOMContentLoaded', function() { var gdlmls_selected = ''; var gdlmls_nearest = []; var gdlmls_country = []; var gdlmls_region = []; var gdlmls_city = []; var gdlmls_neighbourhood = []; var gdlmls_google_sessionToken = '';// google session token var gdlmls_google_service = '';// google service var gdlmls_do_not_close = false; var gdlmls_doing_search = 0; var gdlmls_doing_nearest = false; var gdlmls_is_search = false; var gdlmls_keyup_timeout = null; jQuery(function() { // init gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); // on CPT change jQuery("body").on("geodir_setup_search_form", function(){ gdlm_ls_init('.geodir-location-search'); gdlm_ls_init('.snear'); gdlm_is_search_input_location(); }); }); function gdlm_is_search_input_location(){ /* Check for on change */ jQuery(".snear").on("change", function(){ setTimeout(function(){ if (typeof geodir_search_params !== 'undefined' && geodir_search_params.autocompleter_filter_location) { jQuery('.gd-search-field-search .gd-suggestions-dropdown').remove(); } var $type = jQuery('.geodir-location-search-type').attr('name'); if($type ){ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country').addClass('in-location in-'+$type); }else{ jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); } }, 100); }).on("keyup", function () { if (!(jQuery(this).val().trim() == geodir_params.txt_near_my_location && jQuery(this).closest('form').find('.geodir-location-search-type').val()=='me')) { jQuery('.gd-search-field-near').removeClass('in-location in-neighbourhood in-city in-region in-country'); jQuery('.geodir-location-search-type').val('').attr('name',''); jQuery('.sgeo_lat').val(''); jQuery('.sgeo_lon').val(''); } }); } function gdlm_ls_init($field){ jQuery($field).on("focusin", function(){ gdlmls_selected = this; gdlm_ls_focus_in(this); }).on("focusout", function(){ gdlmls_selected = ''; gdlm_ls_focus_out(this); }); // window resize tasks jQuery(window).on("resize", function(){ gdls_ls_resize_suggestions(); }); } function gdlm_ls_focus_in($input){ if(jQuery($input).parent().find(".gdlm-location-suggestions").length){ gdlm_ls_current_location_suggestion($input); }else{ jQuery($input).after("<div class='dropdown-menu dropdown-caret-0 w-100 scrollbars-ios overflow-auto p-0 m-0 gd-suggestions-dropdown gdlm-location-suggestions gd-ios-scrollbars'>" + "<ul class='gdlmls-near list-unstyled p-0 m-0 '></ul>" + "<ul class='gdlmls-neighbourhood list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-city list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-region list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-country list-unstyled p-0 m-0'></ul>" + "<ul class='gdlmls-more list-unstyled p-0 m-0'></ul>" + "</div>"); gdlm_ls_init_suggestions($input); gdlm_ls_current_location_suggestion($input); } // resize gdls_ls_resize_suggestions(); // set if is search near if(jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear') || jQuery($input).hasClass('snear')){ gdlmls_is_search = true; }else{ gdlmls_is_search = false; } } function gdlm_ls_focus_out($input) { setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (!gdlmls_do_not_close) { } }, 200); } /** * Set the max height for the suggestion div so to never scroll past the bottom of the page. */ function gdls_ls_resize_suggestions() { setTimeout(function() { if (jQuery('.gdlm-location-suggestions:visible').length) { var offset = jQuery('.gdlm-location-suggestions:visible').offset().top; var windowHeight = jQuery(window).height(); var maxHeight = windowHeight - (offset - jQuery(window).scrollTop()); if (jQuery('.gdlm-location-suggestions:visible').prev().hasClass('snear')) { jQuery('.gdlm-location-suggestions:visible').css('max-height', windowHeight - 40); } else { jQuery('.gdlm-location-suggestions:visible').css('max-height', maxHeight); } } }, 50); } function gdlm_ls_init_suggestions($input) { setTimeout(function() { gdls_ls_resize_suggestions(); }, 250); jQuery($input).off("keypress").on("keypress",function(e) { if(e.keyCode && e.keyCode == 13 && !gdlmls_is_search && !jQuery($input).parent().find(".gdlm-location-suggestions").hasClass('show')) { jQuery($input).attr('aria-expanded','true').addClass('show');jQuery($input).parent().find(".gdlm-location-suggestions").addClass('show'); } }); jQuery($input).on("keyup", function($input) { gdlmls_doing_search = 2; // city, neighbourhood, region, country if (gdlmls_keyup_timeout != null) clearTimeout(gdlmls_keyup_timeout); gdlmls_keyup_timeout = setTimeout(gdlm_ls_maybe_fire_suggestions, 500); }); } function gdlm_ls_maybe_fire_suggestions(){ /* Reset timer */ gdlmls_keyup_timeout = null; /* Do suggestions */ gdlm_ls_current_location_suggestion(); _value = gdlmls_selected ? jQuery(gdlmls_selected).val().trim() : ''; _chars = parseInt( geodir_location_params.autocompleter_min_chars ); if ((!_value || _chars < 1 || _chars > 0 && _value && parseInt(_value.length) >= _chars) && !(_value == geodir_params.txt_near_my_location && jQuery(gdlmls_selected).closest("form").find(".geodir-location-search-type").val() == "me")) { gdlm_ls_city_suggestion(); gdlm_ls_region_suggestion(); } } function gdlm_ls_maybe_suggest_more() { if ( gdlmls_doing_search == 0 && gdlmls_country.length == 0 && gdlmls_region.length == 0 && gdlmls_city.length == 0 && gdlmls_neighbourhood.length == 0 ) { $input = jQuery(gdlmls_selected).val(); if ($input) { if ((typeof google !== 'undefined' && typeof google.maps !== 'undefined')) { gdlm_ls_google_suggestions($input); } } else { jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty(); } } } function gdlm_ls_city_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?search=" + $search, success: function(data) { gdlmls_city = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_city, function(index, value) { html = html + gdlm_ls_create_li('city', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_city = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-city").empty(); } } function gdlm_ls_region_suggestion() { var $search = jQuery(gdlmls_selected).val(); if ($search) { jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/regions/?search=" + $search, success: function(data) { gdlmls_region = data; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); html = ''; jQuery.each(gdlmls_region, function(index, value) { html = html + gdlm_ls_create_li('region', value); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } else { gdlmls_region = []; gdlmls_doing_search--; gdlm_ls_maybe_suggest_more(); jQuery(gdlmls_selected).parent().find("ul.gdlmls-region").empty(); } } function gdlm_ls_current_location_suggestion() { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty(); // Near me jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").empty().append(gdlm_ls_create_li('near', { type: "near", slug: "me", title: geodir_params.txt_form_my_location })); if (jQuery(gdlmls_selected).val() == '') { var $search_history = JSON.parse(gdlm_ls_get_location_history()); if ($search_history) { jQuery.each($search_history, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li(value.type, value)); }); } if ( ! geodir_location_params.disable_nearest_cities ) { // Add near cities from ip gdlm_ls_nearest_cities(); } } console.log(JSON.parse(gdlm_ls_get_location_history())); } function gdlm_ls_nearest_cities() { if(!gdlmls_doing_nearest){ gdlmls_doing_nearest = true; jQuery.ajax({ type: "GET", url: geodir_params.api_url + "locations/cities/?orderby=ip", success: function(data) { if (data) { jQuery.each(data, function(index, value) { jQuery(gdlmls_selected).parent().find("ul.gdlmls-near").append(gdlm_ls_create_li('city', value)); }); } gdlmls_doing_nearest = false; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); gdlmls_doing_nearest = false; } }); } } function gdlm_ls_create_li($type,$data){ var output; var history = ''; var $delete = ''; var $common_class = 'list-group-item-action c-pointer px-1 py-1 m-0 d-flex justify-content-between'; if($data.history){ history = '<i class="fas fa-history" title="Search history"></i> '; $delete = '<span><i onclick="var event = arguments[0] || window.event; geodir_cancelBubble(event);gdlm_ls_del_location_history(\''+$data.slug+'\');jQuery(this).parent().parent().remove();" class="fas fa-times" title="Remove from history"></i></span> '; }else if($type == 'neighbourhood' || $type == 'city' || $type == 'region' || $type == 'country'){ history = '<i class="fas fa-map-marker-alt"></i> '; } if($type=='neighbourhood'){ if($data.area){$data.city = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.city)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.city_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+ $data.city + ' (Neighbourhood)</span>'+$delete+'</li>'; }else if($type=='city'){ if($data.area){$data.region = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.region)+'\',\''+$data.country_slug+'\',\''+$data.region_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.region+' (City)</span>'+$delete+'</li>'; }else if($type=='region'){ if($data.area){$data.country = $data.area;} output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\''+geodirLMEscapeQuote($data.country)+'\',\''+$data.country_slug+'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b>, '+$data.country_title+' (Region)</span>'+$delete+'</li>'; }else if($type=='country'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span>'+history+'In: <b>'+ $data.title + '</b> (Country)</span>'+$delete+'</li>'; }else if($type=='near'){ output = '<li data-type="'+$type+'" class="gd-near-me text-primary '+$common_class+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.title)+'\',\'\',\''+$data.slug+'\');"><span><i class="fas fa-location-arrow"></i> Near: '+ $data.title + '</span></li>'; }else if($type=='near-search'){ output = '<li class="'+$common_class+'" data-type="'+$type+'" ontouchstart="this.click();return false;" onclick="gdlm_click_action(\''+$type+'\',\''+geodirLMEscapeQuote($data.description)+'\');"><span><i class="fas fa-search"></i> Near: '+ $data.description + '</span></li>'; } return output; } function gdlm_click_action($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ if(gdlmls_is_search){ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ $slug = ''; if($type=='neighbourhood'){$slug = $hood_slug;} else if($type=='city'){$slug = $city_slug;} else if($type=='region'){$slug = $region_slug;} else if($type=='country'){$slug = $country_slug;} gdlm_search_fill_location($type,$slug,$title); }else if($type=='near-search'){ gdlm_search_fill_location($type,'',$title); }else if($type=='near'){ gd_get_user_position(gdlm_search_near_me); } }else{ if($type=='neighbourhood' || $type=='city' || $type=='region' || $type=='country'){ gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); }else if($type=='near-search'){ gdlm_go_search($title); }else if($type=='near'){ gd_get_user_position(gdlm_ls_near_me); } } setTimeout(function() { _ua = navigator.userAgent.toLowerCase(); isChrome = /chrome/.test(_ua); isWin10 = /windows nt 10.0/.test(_ua); if (isChrome && isWin10) { jQuery(".gdlm-location-suggestions").hide(); } },200); } function gdlm_ls_near_me($lat,$lon){ window.location = geodir_params.location_base_url+"near/me/"+$lat+","+$lon+"/"; } function gdlm_ls_near_gps($lat,$lon){ window.location = geodir_params.location_base_url+"near/gps/"+$lat+","+$lon+"/"; } function gdlm_search_near_me($lat,$lon){ gdlm_search_fill_location('near','me',"Near: "+geodir_params.txt_form_my_location,$lat,$lon) } function gdlm_search_fill_location($type,$slug,$title,$lat,$lon){ if($type=='near'){ }else if($type=='near-search'){ $type=''; }else{ var txtType; if ($type == 'country') { txtType = '(Country)'; } else if ($type == 'region') { txtType = '(Region)'; } else if ($type == 'city') { txtType = '(City)'; } else if ($type == 'neighbourhood') { txtType = '(Neighbourhood)'; } else { txtType = "("+$type+")"; } $title = "In: "+$title+" "+txtType; } jQuery('.geodir-location-search-type').val($slug).attr('name', $type); jQuery('.sgeo_lat').val($lat); jQuery('.sgeo_lon').val($lon); jQuery('.snear').val($title).trigger('change'); // fire change event so we can check if we need to add in-location class } function gdlm_go_search($text){ if (window.gdMaps === 'google') { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': $text}, function (results, status) { if (status == 'OK') { $lat = results[0].geometry.location.lat(); $lon = results[0].geometry.location.lng(); gdlm_ls_near_gps($lat,$lon); } else { alert("Search was not successful for the following reason :" + status); } }); } else if (window.gdMaps === 'osm') { geocodePositionOSM(false, $text, false, false, function(geo) { if (typeof geo !== 'undefined' && geo.lat && geo.lon) { console.log(results); } else { alert("Search was not successful for the requested address."); } }); } } function gdlm_ls_search_location($type,$term){ jQuery.ajax({ type: "GET", url: geodir_params.api_url+$type+"/?search="+$term, success: function(data) { console.log(data); return data; }, error: function(xhr, textStatus, errorThrown) { console.log(errorThrown); } }); } function gdlm_go_location($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // save search history before redirect gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug); window.location = gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug); //console.log( gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug)); } function gdlm_ls_location_url($country_slug,$region_slug,$city_slug,$hood_slug){ //$url = geodir_params.location_url.slice(0, -1); // get location url without the ending slash $url = geodir_params.location_base_url; // get location url without the ending slash var show_country = 0; var show_region = 1; var show_city = 1; var show_hood = 0; if(show_country && $country_slug){ $url += ""+$country_slug+"/"; } if(show_region && $region_slug){ $url += ""+$region_slug+"/"; } if(show_city && $city_slug){ $url += ""+$city_slug+"/"; } if(show_hood && $hood_slug){ $url += ""+$hood_slug+"/"; } return $url; } function gdlm_ls_get_location_history(){ if (geodir_is_localstorage() === true) { return gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); }else{ return ''; } } function gdlm_ls_del_location_history($slug){ gdlmls_do_not_close = true; if (geodir_is_localstorage() === true) { gdlm_ls_history = JSON.parse(localStorage.getItem("gdlm_ls_history")); var found = ''; jQuery.each(gdlm_ls_history, function(index, value) { if($slug && $slug==value.slug){ // its already in the list so bail. //gdlm_ls_history.splice(index, 1); found = index; } }); if(found!==''){ gdlm_ls_history.splice(found, 1); // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } setTimeout(function(){gdlmls_do_not_close = false;}, 200); } function gdlm_ls_set_location_history($type,$title,$area,$country_slug,$region_slug,$city_slug,$hood_slug){ // set a searched location if (geodir_is_localstorage() === true) { var gdlm_ls_history = localStorage.getItem("gdlm_ls_history"); var $exists = false; if (!gdlm_ls_history || gdlm_ls_history === undefined) { gdlm_ls_history = [] }else{ gdlm_ls_history = JSON.parse(gdlm_ls_history); jQuery.each(gdlm_ls_history, function(index, value) { if(value.type == $type && value.title==$title){ // its already in the list so bail. $exists = true; } }); } if(!$exists){ $slug = $city_slug; if($type=='neighbourhood'){ $slug = $hood_slug; }if($type=='city'){ $slug = $city_slug; }else if($type=='region'){ $slug = $region_slug; }else if($type=='country'){ $slug = $country_slug; } var $location = { history:true, // set it as historical type:$type, title:$title, country_slug:$country_slug, region_slug:$region_slug, city_slug:$city_slug, hood_slug:$hood_slug, slug:$slug, area:$area }; gdlm_ls_history.unshift($location); // only keep latest 5 searches if(gdlm_ls_history.length > 5){ gdlm_ls_history.pop(); } } // store the user selection localStorage.setItem("gdlm_ls_history", JSON.stringify(gdlm_ls_history)); } } function gdlm_ls_google_suggestions($search){ // Create a new session token. if(!gdlmls_google_sessionToken){ gdlmls_google_sessionToken = new google.maps.places.AutocompleteSessionToken(); } // display function var displaySuggestions = function(predictions, status) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } console.log(predictions); html = ''; predictions.forEach(function(prediction) { html = html + gdlm_ls_create_li('near-search', prediction); }); jQuery(gdlmls_selected).parent().find("ul.gdlmls-more").empty().append(html); if (html && gdlmls_is_search){ geodirLMShowDropdown(gdlmls_selected); } }; if(!gdlmls_google_service){ gdlmls_google_service = new google.maps.places.AutocompleteService(); } gdlmls_google_service.getPlacePredictions({input: $search, sessionToken: gdlmls_google_sessionToken, types: ['geocode']}, displaySuggestions); } function geodirLMEscapeQuote(str) { if (str) { str = str.replace(/"/g, "&quot;"); str = str.replace(/'/g, "\\'"); str = str.replace(/&#039;/g, "\\'"); } return str; } /** * Open the location switcher */ function geodir_lm_setup_switcher_trigger() { var no_show = false; // Clear the location and redirect to the base location page jQuery(".gdlmls-menu-icon").on("click", function(event){ no_show = true; event.preventDefault(); window.location = geodir_params.location_base_url; }); // detect the menu item location switcher click jQuery('a[href$="#location-switcher"]').on("click", function(event){ if (!window.gdMaps) { if ((window.gdSetMap=='google' || window.gdSetMap=='auto') && window.google && typeof google.maps!=='undefined') { gdMaps = 'google'; } else if ((window.gdSetMap=='osm' || window.gdSetMap=='auto') && typeof L!=='undefined' && typeof L.version!=='undefined') { gdMaps = 'osm'; } else { gdMaps = null; } window.gdMaps = window.gdMaps || gdMaps; } if (!window.gdMaps) { jQuery(this).geodirLoadMap({loadJS:true}); jQuery(window).trigger('resize'); } // prevent the hash being added to the url event.preventDefault(); // only fire if the click is not the clear location button. if(!no_show){ jQuery('#gdlm-switcher').modal('show').on('shown.bs.modal', function (e) { jQuery('.modal .geodir-location-search').trigger("focus").trigger("click"); // second open might not trigger dropdown so we check. setTimeout(function(){ if( jQuery('.modal .geodir-location-search').attr('aria-expanded')=='false' ){ jQuery('.modal .geodir-location-search').dropdown('show'); } }, 200); }); } }); } function geodirLMShowDropdown(el) { /* Windows 11 Edge/Chrome dropdown fix */ var uA = navigator.userAgent.toLowerCase(); if (navigator.platform.toLowerCase().indexOf('win') !== -1 && uA.indexOf("windows nt 10") !== -1 && (uA.match(/chrome/i) || uA.match(/edge/i))) { jQuery(el).dropdown('show'); setTimeout(function(){ jQuery('.gd-search-field-near .gdlm-location-suggestions').css('display',"").show(); }, 30); } else if (jQuery(el).attr('aria-expanded')=='false'){ jQuery(el).dropdown('show'); } } jQuery(document).ready(function() {geodir_lm_setup_switcher_trigger()}); });html{font-size:16px;} var geodir_search_params = {"geodir_advanced_search_plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodir_advance_search_filters","geodir_admin_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","request_param":"{\"geo_url\":\"is_location\"}","msg_Near":"Near:","default_Near":"Search for a location","msg_Me":"Me","unom_dist":"km","autocomplete_field_name":"s","geodir_enable_autocompleter":"1","search_suggestions_with":"","geodir_location_manager_active":"1","msg_User_defined":"User defined","ask_for_share_location":"","geodir_autolocate_ask":"","geodir_autolocate_ask_msg":"Do you wish to be geolocated to listings near you?","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","GEOLOCATION_NOT_SUPPORTED":"Geolocation is not supported by this browser.","DEFAUTL_ERROR":"Browser unable to find your location.","text_more":"More","text_less":"Less","msg_In":"In:","txt_in_country":"(Country)","txt_in_region":"(Region)","txt_in_city":"(City)","txt_in_hood":"(Neighbourhood)","compass_active_color":"#087CC9","onload_redirect":"no","onload_askRedirect":"","onload_redirectLocation":"","autocomplete_min_chars":"3","autocompleter_max_results":"10","autocompleter_filter_location":"1","time_format":"g:i a","am_pm":"[\"am\", \"AM\", \"pm\", \"PM\"]","open_now_format":"{label}, {time}","ajaxPagination":"","txt_loadMore":"Load More","txt_loading":"Loading..."}; var geodir_location_params = {"select_merge_city_msg":"Please select merge city.","confirm_set_default":"Are sure you want to make this city default?","LISTING_URL_PREFIX":"Please enter listing url prefix","LISTING_URL_PREFIX_INVALID_CHAR":"Invalid character in listing url prefix","LOCATION_URL_PREFIX":"Please enter location url prefix","LOCATOIN_PREFIX_INVALID_CHAR":"Invalid character in location url prefix","LOCATION_CAT_URL_SEP":"Please enter location and category url separator","LOCATION_CAT_URL_SEP_INVALID_CHAR":"Invalid character in location and category url separator","LISTING_DETAIL_URL_SEP":"Please enter listing detail url separator","LISTING_DETAIL_URL_SEP_INVALID_CHAR":"Invalid character in listing detail url separator","LOCATION_PLEASE_WAIT":"Please wait...","LOCATION_CHOSEN_NO_RESULT_TEXT":"Sorry, nothing found!","LOCATION_CHOSEN_KEEP_TYPE_TEXT":"Please wait...","LOCATION_CHOSEN_LOOKING_FOR_TEXT":"We are searching for","select_location_translate_msg":"Please select country to update translation.","select_location_translate_confirm_msg":"Are you sure?","gd_text_search_city":"Search City","gd_text_search_region":"Search Region","gd_text_search_country":"Search Country","gd_text_search_location":"Search location","gd_base_location":"https:\/\/purephysiotherapy.co.uk\/location\/","UNKNOWN_ERROR":"Unable to find your location.","PERMISSION_DENINED":"Permission denied in finding your location.","POSITION_UNAVAILABLE":"Your location is currently unknown.","BREAK":"Attempt to find location took too long.","DEFAUTL_ERROR":"Browser unable to find your location.","msg_Near":"Near:","msg_Me":"Me","msg_User_defined":"User defined","confirm_delete_location":"Deleting location will also DELETE any LISTINGS in this location. Are you sure want to DELETE this location?","confirm_delete_neighbourhood":"Are you sure you want to delete this neighbourhood?","delete_bulk_location_select_msg":"Please select at least one location.","neighbourhood_is_active":"","text_In":"In:","autocompleter_min_chars":"0","disable_nearest_cities":""}; var geodir_params = {"siteurl":"https:\/\/purephysiotherapy.co.uk","plugin_url":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory","ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","gd_ajax_url":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php?gd-ajax=1","has_gd_ajax":"1","gd_modal":"0","is_rtl":"","basic_nonce":"2362b70b59","text_add_fav":"Add to Favorites","text_fav":"Favorite","text_remove_fav":"Remove from Favorites","text_unfav":"Unfavorite","icon_fav":"fas fa-heart","icon_unfav":"fas fa-heart","api_url":"https:\/\/purephysiotherapy.co.uk\/wp-json\/geodir\/v2\/","location_base_url":"https:\/\/purephysiotherapy.co.uk\/location\/","location_url":"https:\/\/purephysiotherapy.co.uk\/location\/","search_base_url":"https:\/\/purephysiotherapy.co.uk\/search\/","custom_field_not_blank_var":"Field label must not be blank","custom_field_not_special_char":"Please do not use special character and spaces in field key Variable Name.","custom_field_unique_name":"Field key must be unique.","custom_field_delete":"Are you sure you wish to delete this field?","custom_field_delete_children":"You must move or remove child elements first.","tax_meta_class_succ_del_msg":"File has been successfully deleted.","tax_meta_class_not_permission_to_del_msg":"You do NOT have permission to delete this file.","tax_meta_class_order_save_msg":"Order saved!","tax_meta_class_not_permission_record_img_msg":"You do not have permission to reorder images.","address_not_found_on_map_msg":"Address not found for:","my_place_listing_del":"Are you sure you wish to delete this listing?","confirmPostAuthorAction":"Are you sure you wish to perform this action?","my_main_listing_del":"Deleting the main listing of a franchise will turn all franchises in regular listings. Are you sure wish to delete this main listing?","rating_error_msg":"Error : please retry","listing_url_prefix_msg":"Please enter listing url prefix","invalid_listing_prefix_msg":"Invalid character in listing url prefix","location_url_prefix_msg":"Please enter location url prefix","invalid_location_prefix_msg":"Invalid character in location url prefix","location_and_cat_url_separator_msg":"Please enter location and category url separator","invalid_char_and_cat_url_separator_msg":"Invalid character in location and category url separator","listing_det_url_separator_msg":"Please enter listing detail url separator","invalid_char_listing_det_url_separator_msg":"Invalid character in listing detail url separator","loading_listing_error_favorite":"Error loading listing.","field_id_required":"This field is required.","valid_email_address_msg":"Please enter valid email address.","default_marker_icon":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads\/2024\/09\/Group-202.svg","default_marker_w":"43","default_marker_h":"57","latitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","longgitude_error_msg":"A numeric value is required. Please make sure you have either dragged the marker or clicked the button: Set Address On Map","gd_cmt_btn_post_reply":"Post Reply","gd_cmt_btn_reply_text":"Reply text","gd_cmt_btn_post_review":"Post Review","gd_cmt_btn_review_text":"Review text","gd_cmt_err_no_rating":"Please select star rating, you can't leave a review without stars.","err_max_file_size":"File size error : You tried to upload a file over %s","err_file_upload_limit":"You have reached your upload limit of %s files.","err_pkg_upload_limit":"You may only upload %s files with this package, please try again.","action_remove":"Remove","txt_all_files":"Allowed files","err_file_type":"File type error. Allowed file types: %s","gd_allowed_img_types":"jpg,jpe,jpeg,gif,png,bmp,ico,webp,avif","txt_form_wait":"Wait...","txt_form_searching":"Searching...","txt_form_my_location":"My Location","txt_near_my_location":"Near: My Location","rating_type":"fa","reviewrating":"","multirating":"","map_name":"osm","osmStart":"Start","osmVia":"Via {viaNumber}","osmEnd":"Enter Your Location","osmPressEnter":"Press Enter key to search","geoMyLocation":"My Location","geoErrUNKNOWN_ERROR":"Unable to find your location","geoErrPERMISSION_DENINED":"Permission denied in finding your location","geoErrPOSITION_UNAVAILABLE":"Your location is currently unknown","geoErrBREAK":"Attempt to find location took too long","geoErrDEFAULT":"Location detection not supported in browser","i18n_set_as_default":"Set as default","i18n_no_matches":"No matches found","i18n_ajax_error":"Loading failed","i18n_input_too_short_1":"Please enter 1 or more characters","i18n_input_too_short_n":"Please enter %item% or more characters","i18n_input_too_long_1":"Please delete 1 character","i18n_input_too_long_n":"Please delete %item% characters","i18n_selection_too_long_1":"You can only select 1 item","i18n_selection_too_long_n":"You can only select %item% items","i18n_load_more":"Loading more results\u2026","i18n_searching":"Searching\u2026","txt_choose_image":"Choose an image","txt_use_image":"Use image","img_spacer":"https:\/\/mlf4ooqm0yfc.i.optimole.com\/cb:IuZP.42347\/w:auto\/h:auto\/q:75\/f:best\/https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/media-button-image.gif","txt_post_review":"Post Review","txt_post_reply":"Post reply","txt_leave_a_review":"Leave a Review","txt_leave_a_reply":"Leave a reply","txt_reply_text":"Reply text","txt_review_text":"Review text","txt_read_more":"Read more","txt_about_listing":"about this listing","txt_open_now":"Open now","txt_closed_now":"Closed now","txt_closed_today":"Closed today","txt_closed":"Closed","txt_single_use":"This field is single use only and is already being used.","txt_page_settings":"Page selections should not be the same, please correct the issue to continue.","txt_save_other_setting":"Please save the current setting before adding a new one.","txt_previous":"Previous","txt_next":"Next","txt_lose_changes":"You may lose changes if you navigate away now!","txt_are_you_sure":"Are you sure?","txt_saving":"Saving...","txt_saved":"Saved","txt_order_saved":"Order saved","txt_preview":"Preview","txt_edit":"Edit","txt_delete":"Delete","txt_cancel":"Cancel","txt_confirm":"Confirm","txt_continue":"Continue","txt_yes":"Yes","txt_deleted":"Deleted","txt_google_key_error":"Google API key Error","txt_documentation":"Documentation","txt_google_key_verifying":"Verifying API Key","txt_google_key_enable_billing":"Enable Billing","txt_google_key_error_project":"Key invalid, you might have entered the project number instead of the API key","txt_google_key_error_invalid":"Key invalid, please double check you have entered it correctly","txt_google_key_error_referer":"This URL is not allowed for this API Key","txt_google_key_error_billing":"You must enable billing on your Google account.","txt_google_key_error_brave":"Brave browser shield will block this check and return a false positive","confirm_new_wp_template":"Are you sure want to create a new template to customize?","gmt_offset":"+0:00","timezone_string":"Europe\/London","autosave":"10000","search_users_nonce":"e01d366a1e","google_api_key":"","mapLanguage":"en","osmRouteLanguage":"en","markerAnimation":"bounce","confirm_set_location":"Would you like to manually set your location?","confirm_lbl_error":"ERROR:","label_title":"Title","label_caption":"Caption","button_set":"Set","BH_altTimeFormat":"h:i K","splitUK":"0","time_ago":{"prefix_ago":"","suffix_ago":" ago","prefix_after":"after ","suffix_after":"","seconds":"less than a minute","minute":"about a minute","minutes":"%d minutes","hour":"about an hour","hours":"about %d hours","day":"a day","days":"%d days","month":"about a month","months":"%d months","year":"about a year","years":"%d years"},"resize_marker":"","marker_max_width":"50","marker_max_height":"50","hasAjaxSearch":""}; var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1680,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"44d7087fd9"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1680,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":13,"title":"Pure%20Physiotherapy%20%7C%20Expert%20Physiotherapists","excerpt":"","featuredImage":false}}; var JetEngineSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","ajaxlisting":"https:\/\/purephysiotherapy.co.uk\/?nocache=1764157157","restNonce":"bfddc29971","hoverActionTimeout":"400","post_id":"13","query_builder":{"custom_ids":{"9":"other_conditions"}},"addedPostCSS":["3438"]}; var geodir_map_params = {"api":"osm","lazyLoad":"","language":"en","lazyLoadButton":"<div class=\"btn btn-light text-center mx-auto align-self-center shadow-lg c-pointer w-auto z-index-1\"><i class=\"far fa-map\"><\/i> Load Map<\/div>","lazyLoadPlaceholder":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/images\/placeholder.svg","apis":{"google":{"key":"","scripts":[{"id":"geodir-google-maps-script","src":"https:\/\/maps.googleapis.com\/maps\/api\/js?key=&libraries=places&language=en&callback=geodirInitGoogleMap&ver=2.8.138","main":true,"onLoad":true,"onError":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-g-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms.min.js?ver=2.8.138","check":true},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]},"osm":{"styles":[{"id":"geodir-leaflet-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.css?ver=2.8.138"},{"id":"geodir-leaflet-routing-machine-css","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.css","check":true}],"scripts":[{"id":"geodir-leaflet-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/leaflet.min.js?ver=2.8.138","main":true},{"id":"geodir-leaflet-geo-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/osm.geocode.min.js?ver=2.8.138"},{"id":"leaflet-routing-machine-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/leaflet\/routing\/leaflet-routing-machine.min.js?ver=2.8.138","check":true},{"id":"geodir-o-overlappingmarker-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/jawj\/oms-leaflet.min.js?ver=2.8.138","check":true},{"id":"geodir-gomap-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/js\/goMap.min.js?ver=2.8.138"},{"id":"geodir-map-widget-script","src":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/geodirectory\/assets\/aui\/js\/map.min.js?ver=2.8.138"}]}}}; window.addEventListener('DOMContentLoaded', function() { function geodirInitGoogleMap(){window.geodirGoogleMapsCallback=true;try{jQuery(document).trigger("geodir.googleMapsCallback")}catch(err){}} }); wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","nonce":"b381f831a2","urls":{"assets":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/purephysiotherapy.co.uk\/wp-json\/"},"settings":{"lazy_load_background_images":false},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_GB","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/purephysiotherapy.co.uk\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; var JetTabsSettings = {"ajaxurl":"https:\/\/purephysiotherapy.co.uk\/wp-admin\/admin-ajax.php","isMobile":"false","templateApiUrl":"https:\/\/purephysiotherapy.co.uk\/wp-json\/jet-tabs-api\/v1\/elementor-template","devMode":"false","isSelfRequest":""}; window.addEventListener('DOMContentLoaded', function() { (function($){ $(window).on("load",function(){ // $(".our-services").on("touchstart", function( event ) { // debugger; // $(this).addClass("touched"); // }); $(".our-services").on("touchend", function( event ) { //debugger; $(this).addClass("touched"); }); }); })(jQuery); }); window.lazyLoadOptions={elements_selector:"iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1) (()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach((t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}}))}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find((t=>e[t]))];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout((()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)}),i);window.addEventListener("rocket-startLoading",(function(){clearTimeout(o)}))}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach((t=>{e.forEach((e=>{i.push(t+e)}))})),i}l(t,e){this.i().forEach((t=>delete e[t])),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();