Lead #466
Best Contact
—
Email
info@farnhamchiropractic.co.ukour (generic)
Override
Captured Pages
https://farnhamchiropractic.co.uk/contacting-us
Status: 200
Emails: info@farnhamchiropractic.co.uk, info@farnhamchiropractic.co.ukclinic, info@farnhamchiropractic.co.ukour
View text
MenuHomeAboutOur TeamTestimonialsFAQBlogServicesChiropracticMassage, Reflexology & KinesiologyActive Release Technique (ART)In House GymCorporate WellnessTreatment PricesContactTel: 01252 235310Contacting Farnham Chiropractic Wellness CentrePlease feel free to contact us if you have any queries at info@farnhamchiropractic.co.ukClinic Opening HoursMonday 8am - 6.45pm Tuesday 8am - 6.45pm Wednesday 8am - 1pm Thursday 8am - 6.45pm Friday 8am - 5.30pm Saturday 8am - 1pm The Clinic of 'Farnham Chiropractic Wellness' is located within Farnham's town centre, nestled conveniently amongst many public car parks. The Central car park, Sainsbury's car park, and Waggon Yard car park are the closest to our front door.To find out more about our chiropractic clinic and the techniques we use please click here to email usVisiting us - Address and DirectionsOur clinic is located at 1A Victoria Road. You get to it off Union road, opposite the entrance to Gostrey Meadows. This is the road that you turn into to get to the Central car park. The clinic is the second last building on the right, near the traffic lights at South Street. We can be found between Personnel Select and Kidd Rapinet. The closest car parks are: Sainsburys; Central Carpark; and Wagon Yard. We look forward to welcoming you.Our AddressFarnham Chiropractic Wellness 1A Victoria Road Farnham Surrey GU9 7RBTelephone 01252-235310 Contact InfoTelephone: 01252 2353101A Victoria Road, Farnham, Surrey. GU9 7RBEmail: info@farnhamchiropractic.co.ukOur clinic is located at 1A Victoria Road. This is the road that you turn into to get to the Central car park. You get to it off Union road. Latest from the blogIn House GymWelcome to Your Private, Fully Equipped Gym Experience At our in-house gym, we offer more than just a place to work out — we provide a personalised, supportive, and expertly guided fitness experience. Whether you're looking to build strength, recover from injury, or simply enjoy a more social and structured…Read more© Farnham Chiropractic Wellness Centre. | Terms | Privacy PolicyBack to top×SubscribeGet the latest news, updates and more delivered directly to your email inboxEmail Address (required) First Name Last Name window.publiiThemeMenuConfig = { mobileMenuMode: 'sidebar', animationSpeed: 300, submenuWidth: 'auto', doubleClickTime: 500, mobileMenuExpandableSubmenus: true, relatedContainerForOverlayMenuSelector: '#js-header', };var lazyFeaturedImage = function lazyFeaturedImage() { var lazyFeaturedImageImages = document.querySelectorAll('.hero__image-img'); for (var i = 0; i < lazyFeaturedImageImages.length; i++) { var lazyFeaturedImageImg = lazyFeaturedImageImages[i]; lazyFeaturedImageImg.addEventListener('lazyloaded', function (e) { var featuredImage = e.target.parentNode; featuredImage.classList.add('hero__image--overlay'); }); } } lazyFeaturedImage();This website uses cookiesSelect which cookies to opt-in to via the checkboxes below; our website uses cookies to examine site traffic and user activity while on our site, for marketing, and to provide social media functionality. More details...OK(function(win) { if (!document.querySelector('.pcb')) { return; } var cbConfig = { behaviour: document.querySelector('.pcb').getAttribute('data-behaviour'), behaviourLink: document.querySelector('.pcb').getAttribute('data-behaviour-link'), revision: document.querySelector('.pcb').getAttribute('data-revision'), configTTL: parseInt(document.querySelector('.pcb').getAttribute('data-config-ttl'), 10), debugMode: document.querySelector('.pcb').getAttribute('data-debug-mode') === 'true', initialState: null, initialLsState: null, previouslyAccepted: [] }; var cbUI = { wrapper: document.querySelector('.pcb'), banner: { element: null, btnAccept: null, btnReject: null, btnConfigure: null }, popup: { element: null, btnClose: null, btnSave: null, btnAccept: null, btnReject: null, checkboxes: null, }, overlay: null, badge: null, blockedScripts: document.querySelectorAll('script[type^="gdpr-blocker/"]'), triggerLinks: cbConfig.behaviourLink ? document.querySelectorAll('a[href*="' + cbConfig.behaviourLink + '"]') : null }; function initUI () { // setup banner elements cbUI.banner.element = cbUI.wrapper.querySelector('.pcb__banner'); cbUI.banner.btnAccept = cbUI.banner.element.querySelector('.pcb__btn--accept'); cbUI.banner.btnReject = cbUI.banner.element.querySelector('.pcb__btn--reject'); cbUI.banner.btnConfigure = cbUI.banner.element.querySelector('.pcb__btn--configure'); // setup popup elements if (cbUI.wrapper.querySelector('.pcb__popup')) { cbUI.popup.element = cbUI.wrapper.querySelector('.pcb__popup'); cbUI.popup.btnClose = cbUI.wrapper.querySelector('.pcb__popup__close'); cbUI.popup.btnSave = cbUI.popup.element.querySelector('.pcb__btn--save'); cbUI.popup.btnAccept = cbUI.popup.element.querySelector('.pcb__btn--accept'); cbUI.popup.btnReject = cbUI.popup.element.querySelector('.pcb__btn--reject'); cbUI.popup.checkboxes = cbUI.popup.element.querySelector('input[type="checkbox"]'); // setup overlay cbUI.overlay = cbUI.wrapper.querySelector('.pcb__overlay'); } cbUI.badge = cbUI.wrapper.querySelector('.pcb__badge'); if (cbConfig.behaviour.indexOf('link') > -1) { for (var i = 0; i < cbUI.triggerLinks.length; i++) { cbUI.triggerLinks[i].addEventListener('click', function(e) { e.preventDefault(); showBannerOrPopup(); }); } } } function initState () { var lsKeyName = getConfigName(); var currentConfig = localStorage.getItem(lsKeyName); var configIsFresh = checkIfConfigIsFresh(); if (!configIsFresh || currentConfig === null) { if (cbConfig.debugMode) { console.log('🍪 Config not found, or configuration expired'); } if (window.publiiCBGCM) { gtag('consent', 'default', { 'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied', 'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied', 'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied', 'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied', 'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied', 'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied', 'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied' }); if (cbConfig.debugMode) { console.log('🍪 GCMv2 DEFAULT STATE: ' + JSON.stringify({ 'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied', 'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied', 'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied', 'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied', 'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied', 'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied', 'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied' })); } } showBanner(); } else if (typeof currentConfig === 'string') { if (cbConfig.debugMode) { console.log('🍪 Config founded'); } cbConfig.initialLsState = currentConfig.split(','); if (window.publiiCBGCM) { gtag('consent', 'default', { 'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'), 'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'), 'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'), 'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'), 'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'), 'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'), 'security_storage': getDefaultConsentState(currentConfig, 'security_storage') }); if (cbConfig.debugMode) { console.log('🍪 GCMv2 DEFAULT STATE: ' + JSON.stringify({ 'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'), 'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'), 'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'), 'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'), 'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'), 'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'), 'security_storage': getDefaultConsentState(currentConfig, 'security_storage') })); } } showBadge(); if (cbUI.popup.element) { var allowedGroups = currentConfig.split(','); var checkedCheckboxes = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); for (var j = 0; j < checkedCheckboxes.length; j++) { var name = checkedCheckboxes[j].getAttribute('data-group-name'); if (name && name !== '-' && allowedGroups.indexOf(name) === -1) { checkedCheckboxes[j].checked = false; } } for (var i = 0; i < allowedGroups.length; i++) { var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + allowedGroups[i] + '"]'); if (checkbox) { checkbox.checked = true; } allowCookieGroup(allowedGroups[i]); } } } setTimeout(function () { cbConfig.initialState = getInitialStateOfConsents(); }, 0); } function checkIfConfigIsFresh () { var lastConfigSave = localStorage.getItem('publii-gdpr-cookies-config-save-date'); if (lastConfigSave === null) { return false; } lastConfigSave = parseInt(lastConfigSave, 10); if (lastConfigSave === 0) { return true; } if (+new Date() - lastConfigSave < cbConfig.configTTL * 24 * 60 * 60 * 1000) { return true; } return false; } function getDefaultConsentState (currentConfig, consentGroup) { let configGroups = currentConfig.split(','); for (let i = 0; i < configGroups.length; i++) { let groupName = configGroups[i]; let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === groupName); if (group && group[consentGroup]) { return 'granted'; } } if (window.publiiCBGCM.defaultState[consentGroup]) { return 'granted'; } return 'denied'; } function initBannerEvents () { cbUI.banner.btnAccept.addEventListener('click', function (e) { e.preventDefault(); acceptAllCookies('banner'); showBadge(); }, false); if (cbUI.banner.btnReject) { cbUI.banner.btnReject.addEventListener('click', function (e) { e.preventDefault(); rejectAllCookies(); showBadge(); }, false); } if (cbUI.banner.btnConfigure) { cbUI.banner.btnConfigure.addEventListener('click', function (e) { e.preventDefault(); hideBanner(); showAdvancedPopup(); showBadge(); }, false); } } function initPopupEvents () { if (!cbUI.popup.element) { return; } cbUI.overlay.addEventListener('click', function (e) { hideAdvancedPopup(); }, false); cbUI.popup.element.addEventListener('click', function (e) { e.stopPropagation(); }, false); cbUI.popup.btnAccept.addEventListener('click', function (e) { e.preventDefault(); acceptAllCookies('popup'); }, false); cbUI.popup.btnReject.addEventListener('click', function (e) { e.preventDefault(); rejectAllCookies(); }, false); cbUI.popup.btnSave.addEventListener('click', function (e) { e.preventDefault(); saveConfiguration(); }, false); cbUI.popup.btnClose.addEventListener('click', function (e) { e.preventDefault(); hideAdvancedPopup(); }, false); } function initBadgeEvents () { if (!cbUI.badge) { return; } cbUI.badge.addEventListener('click', function (e) { showBannerOrPopup(); }, false); } initUI(); initState(); initBannerEvents(); initPopupEvents(); initBadgeEvents(); /** * API */ function addScript (src, inline) { var newScript = document.createElement('script'); if (src) { newScript.setAttribute('src', src); } if (inline) { newScript.text = inline; } document.body.appendChild(newScript); } function allowCookieGroup (allowedGroup) { var scripts = document.querySelectorAll('script[type="gdpr-blocker/' + allowedGroup + '"]'); cbConfig.previouslyAccepted.push(allowedGroup); for (var j = 0; j < scripts.length; j++) { addScript(scripts[j].src, scripts[j].text); } var groupEvent = new Event('publii-cookie-banner-unblock-' + allowedGroup); document.body.dispatchEvent(groupEvent); unlockEmbeds(allowedGroup); if (cbConfig.debugMode) { console.log('🍪 Allowed group: ' + allowedGroup); } if (window.publiiCBGCM && (!cbConfig.initialLsState || cbConfig.initialLsState.indexOf(allowedGroup) === -1)) { let consentResult = {}; let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === allowedGroup); if (group) { let foundSomeConsents = false; Object.keys(group).forEach(key => { if (key !== 'cookieGroup' && group[key] === true) { consentResult[key] = 'granted'; foundSomeConsents = true; } }); if (foundSomeConsents) { gtag('consent', 'update', consentResult); if (cbConfig.debugMode) { console.log('🍪 GCMv2 UPDATE: ' + JSON.stringify(consentResult)); } } } } } function showBannerOrPopup () { if (cbUI.popup.element) { showAdvancedPopup(); } else { showBanner(); } } function showAdvancedPopup () { cbUI.popup.element.classList.add('is-visible'); cbUI.overlay.classList.add('is-visible'); cbUI.popup.element.setAttribute('aria-hidden', 'false'); cbUI.overlay.setAttribute('aria-hidden', 'false'); } function hideAdvancedPopup () { cbUI.popup.element.classList.remove('is-visible'); cbUI.overlay.classList.remove('is-visible'); cbUI.popup.element.setAttribute('aria-hidden', 'true'); cbUI.overlay.setAttribute('aria-hidden', 'true'); } function showBanner () { cbUI.banner.element.classList.add('is-visible'); cbUI.banner.element.setAttribute('aria-hidden', 'false'); } function hideBanner () { cbUI.banner.element.classList.remove('is-visible'); cbUI.banner.element.setAttribute('aria-hidden', 'true'); } function showBadge () { if (!cbUI.badge) { return; } cbUI.badge.classList.add('is-visible'); cbUI.badge.setAttribute('aria-hidden', 'false'); } function getConfigName () { var lsKeyName = 'publii-gdpr-allowed-cookies'; if (cbConfig.revision) { lsKeyName = lsKeyName + '-v' + parseInt(cbConfig.revision, 10); } return lsKeyName; } function storeConfiguration (allowedGroups) { var lsKeyName = getConfigName(); var dataToStore = allowedGroups.join(','); localStorage.setItem(lsKeyName, dataToStore); if (cbConfig.configTTL === 0) { localStorage.setItem('publii-gdpr-cookies-config-save-date', 0); if (cbConfig.debugMode) { console.log('🍪 Store never expiring configuration'); } } else { localStorage.setItem('publii-gdpr-cookies-config-save-date', +new Date()); } } function getInitialStateOfConsents () { if (!cbUI.popup.element) { return []; } var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); var groups = []; for (var i = 0; i < checkedGroups.length; i++) { var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); if (allowedGroup !== '') { groups.push(allowedGroup); } } if (cbConfig.debugMode) { console.log('🍪 Initial state: ' + groups.join(', ')); } return groups; } function getCurrentStateOfConsents () { if (!cbUI.popup.element) { return []; } var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); var groups = []; for (var i = 0; i < checkedGroups.length; i++) { var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); if (allowedGroup !== '') { groups.push(allowedGroup); } } if (cbConfig.debugMode) { console.log('🍪 State to save: ' + groups.join(', ')); } return groups; } function getAllGroups () { if (!cbUI.popup.element) { return []; } var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]'); var groups = []; for (var i = 0; i < checkedGroups.length; i++) { var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); if (allowedGroup !== '') { groups.push(allowedGroup); } } return groups; } function acceptAllCookies (source) { var groupsToAccept = getAllGroups(); storeConfiguration(groupsToAccept); for (var i = 0; i < groupsToAccept.length; i++) { var group = groupsToAccept[i]; if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) { if (cbConfig.debugMode) { console.log('🍪 Skip previously activated group: ' + group); } continue; } allowCookieGroup(group); } if (cbUI.popup.element) { var checkboxesToCheck = cbUI.popup.element.querySelectorAll('input[type="checkbox"]'); for (var j = 0; j < checkboxesToCheck.length; j++) { checkboxesToCheck[j].checked = true; } } if (cbConfig.debugMode) { console.log('🍪 Accept all cookies: ', groupsToAccept.join(', ')); } if (source === 'popup') { hideAdvancedPopup(); } else if (source === 'banner') { hideBanner(); } } function rejectAllCookies () { if (cbConfig.debugMode) { console.log('🍪 Reject all cookies'); } storeConfiguration([]); setTimeout(function () { window.location.reload(); }, 100); } function saveConfiguration () { var groupsToAccept = getCurrentStateOfConsents(); storeConfiguration(groupsToAccept); if (cbConfig.debugMode) { console.log('🍪 Save new config: ', groupsToAccept.join(', ')); } if (reloadIsNeeded(groupsToAccept)) { setTimeout(function () { window.location.reload(); }, 100); return; } for (var i = 0; i < groupsToAccept.length; i++) { var group = groupsToAccept[i]; if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) { if (cbConfig.debugMode) { console.log('🍪 Skip previously activated group: ' + group); } continue; } allowCookieGroup(group); } hideAdvancedPopup(); } function reloadIsNeeded (groupsToAccept) { // check if user rejected consent for initial groups var initialGroups = cbConfig.initialState; var previouslyAcceptedGroups = cbConfig.previouslyAccepted; var groupsToCheck = initialGroups.concat(previouslyAcceptedGroups); for (var i = 0; i < groupsToCheck.length; i++) { var groupToCheck = groupsToCheck[i]; if (groupToCheck !== '' && groupsToAccept.indexOf(groupToCheck) === -1) { if (cbConfig.debugMode) { console.log('🍪 Reload is needed due lack of: ', groupToCheck); } return true; } } return false; } function unlockEmbeds (cookieGroup) { var iframesToUnlock = document.querySelectorAll('.pec-wrapper[data-consent-group-id="' + cookieGroup + '"]'); for (var i = 0; i < iframesToUnlock.length; i++) { var iframeWrapper = iframesToUnlock[i]; iframeWrapper.querySelector('.pec-overlay').classList.remove('is-active'); iframeWrapper.querySelector('.pec-overlay').setAttribute('aria-hidden', 'true'); var iframe = iframeWrapper.querySelector('iframe'); iframe.setAttribute('src', iframe.getAttribute('data-consent-src')); } } win.publiiEmbedConsentGiven = function (cookieGroup) { // it will unlock embeds allowCookieGroup(cookieGroup); var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + cookieGroup + '"]'); if (checkbox) { checkbox.checked = true; } var groupsToAccept = getCurrentStateOfConsents(); storeConfiguration(groupsToAccept); if (cbConfig.debugMode) { console.log('🍪 Save new config: ', groupsToAccept.join(', ')); } } })(window);
Emails: info@farnhamchiropractic.co.ukour
View text
MenuHomeAboutOur TeamTestimonialsFAQBlogServicesChiropracticMassage, Reflexology & KinesiologyActive Release Technique (ART)In House GymCorporate WellnessTreatment PricesContactTel: 01252 235310Our TeamGrant Pretorius, M.Chiro (RSA)Grant prides himself in being an eternal student, constantly learning the best way of getting his clients well in the shortest possible time, and keeping them well. Grant was born in Johannesburg, South Africa. His extremely sporty lifestyle and interest in the function of the human body attracted him to…Read moreGraeme Harpham, M.Chiro (RSA)Graeme Harpham, M.Chiro (RSA). Graeme was born and raised in Durban in South Africa, a diverse coastal city that promotes outside activities in the sun, sea, and mountains. Graeme graduated from Durban University of Technology (DUT) in South Africa in 2005 and has been in private practice ever since. Even…Read moreNicola Watts - Sports TherapistWith 18 years of experience in the sports therapy industry, Nicola has built a diverse and highly skilled career centered on improving health, fitness, and recovery. Her journey began as a personal trainer and sports massage therapist, where she developed a passion for helping individuals enhance their physical well-being. Nicola’s…Read moreDorothy Metter- Massage TherapistDorothy is often referred to as the clinic good witch (in the best way of course!) She uses her magical skills to heal her clients in a variety of ways. Passionate about natural health and healing, Dorothy looks at the body as a whole using deep tissue massage, kinesiology, and…Read moreIryna - MassageIryna, a proficient massage therapist from Ukraine, blends expertise with precision. Committed to her craft, she delivers a focused and professional approach to each session, ensuring a well-rounded experience in the realm of wellness. For many years, Iryna has been dedicated to helping individuals restore their health using massage, osteopathic,…Read moreJordan - TrainerJordan is a level 4 qualified strength and conditioning coach and level 3 personal trainer. He is dedicated to enhancing lives through fitness. With expertise in injury prevention and a focus on youth development, Jordan is passionate about guiding others to achieve their optimal fitness. Get ready to transform your…Read moreLewis - TrainerLewis is a Sport and Exercise Science graduate currently working towards his UKSCA qualification. He is passionate about helping others achieve their goals, whether that’s improving fitness, recovering from injury, or preventing future issues. He also works closely with Jordan, focusing on youth development. Lewis takes pride in being part…Read moreJohn - TrainerOriginally from Canada, John has worked extensively as a top certified snowboard instructor and mountain bike coach. John is a level 3 personal trainer with a Bachelors in Sports Performance and Physical Activity. His positive energy and tuition will help motivate you to reach your fitness goals and live a…Read moreBrooke - Registered Nutritional TherapistBrooke holds a degree in Personalised Nutrition from Middlesex University and a diploma from CNELM. Brooke supports people with hormonal health, digestive issues, weight management, chronic illness, fertility, and menopause. Her aim is to create a space where you feel understood and supported. Brooke's approach is practical, grounded, and designed…Read moreKirstyKirsty moved here from Durban with her husband, Graeme, one of our fantastic chiropractors in 2016. Thriving in caring environments, Kirsty has been an early years educator for over 20 years, having a special affinity for working with disabled children. Outside of the clinic, Kirsty avoids having her toes stepped…Read moreZoeZoe is a dependable member of the reception team. Being the social butterfly of the group, Zoe is always ready for a friendly chat. Also into health and wellness, Zoe often joins in with the group training sessions in our gym. Zoe enjoys spending time with friends and family. If…Read moreContact InfoTelephone: 01252 2353101A Victoria Road, Farnham, Surrey. GU9 7RBEmail: info@farnhamchiropractic.co.ukOur clinic is located at 1A Victoria Road. This is the road that you turn into to get to the Central car park. You get to it off Union road. Latest from the blogIn House GymWelcome to Your Private, Fully Equipped Gym Experience At our in-house gym, we offer more than just a place to work out — we provide a personalised, supportive, and expertly guided fitness experience. Whether you're looking to build strength, recover from injury, or simply enjoy a more social and structured…Read more© Farnham Chiropractic Wellness Centre. | Terms | Privacy PolicyBack to top×SubscribeGet the latest news, updates and more delivered directly to your email inboxEmail Address (required) First Name Last Name window.publiiThemeMenuConfig = { mobileMenuMode: 'sidebar', animationSpeed: 300, submenuWidth: 'auto', doubleClickTime: 500, mobileMenuExpandableSubmenus: true, relatedContainerForOverlayMenuSelector: '#js-header', };var lazyFeaturedImage = function lazyFeaturedImage() { var lazyFeaturedImageImages = document.querySelectorAll('.hero__image-img'); for (var i = 0; i < lazyFeaturedImageImages.length; i++) { var lazyFeaturedImageImg = lazyFeaturedImageImages[i]; lazyFeaturedImageImg.addEventListener('lazyloaded', function (e) { var featuredImage = e.target.parentNode; featuredImage.classList.add('hero__image--overlay'); }); } } lazyFeaturedImage();This website uses cookiesSelect which cookies to opt-in to via the checkboxes below; our website uses cookies to examine site traffic and user activity while on our site, for marketing, and to provide social media functionality. More details...OK(function(win) { if (!document.querySelector('.pcb')) { return; } var cbConfig = { behaviour: document.querySelector('.pcb').getAttribute('data-behaviour'), behaviourLink: document.querySelector('.pcb').getAttribute('data-behaviour-link'), revision: document.querySelector('.pcb').getAttribute('data-revision'), configTTL: parseInt(document.querySelector('.pcb').getAttribute('data-config-ttl'), 10), debugMode: document.querySelector('.pcb').getAttribute('data-debug-mode') === 'true', initialState: null, initialLsState: null, previouslyAccepted: [] }; var cbUI = { wrapper: document.querySelector('.pcb'), banner: { element: null, btnAccept: null, btnReject: null, btnConfigure: null }, popup: { element: null, btnClose: null, btnSave: null, btnAccept: null, btnReject: null, checkboxes: null, }, overlay: null, badge: null, blockedScripts: document.querySelectorAll('script[type^="gdpr-blocker/"]'), triggerLinks: cbConfig.behaviourLink ? document.querySelectorAll('a[href*="' + cbConfig.behaviourLink + '"]') : null }; function initUI () { // setup banner elements cbUI.banner.element = cbUI.wrapper.querySelector('.pcb__banner'); cbUI.banner.btnAccept = cbUI.banner.element.querySelector('.pcb__btn--accept'); cbUI.banner.btnReject = cbUI.banner.element.querySelector('.pcb__btn--reject'); cbUI.banner.btnConfigure = cbUI.banner.element.querySelector('.pcb__btn--configure'); // setup popup elements if (cbUI.wrapper.querySelector('.pcb__popup')) { cbUI.popup.element = cbUI.wrapper.querySelector('.pcb__popup'); cbUI.popup.btnClose = cbUI.wrapper.querySelector('.pcb__popup__close'); cbUI.popup.btnSave = cbUI.popup.element.querySelector('.pcb__btn--save'); cbUI.popup.btnAccept = cbUI.popup.element.querySelector('.pcb__btn--accept'); cbUI.popup.btnReject = cbUI.popup.element.querySelector('.pcb__btn--reject'); cbUI.popup.checkboxes = cbUI.popup.element.querySelector('input[type="checkbox"]'); // setup overlay cbUI.overlay = cbUI.wrapper.querySelector('.pcb__overlay'); } cbUI.badge = cbUI.wrapper.querySelector('.pcb__badge'); if (cbConfig.behaviour.indexOf('link') > -1) { for (var i = 0; i < cbUI.triggerLinks.length; i++) { cbUI.triggerLinks[i].addEventListener('click', function(e) { e.preventDefault(); showBannerOrPopup(); }); } } } function initState () { var lsKeyName = getConfigName(); var currentConfig = localStorage.getItem(lsKeyName); var configIsFresh = checkIfConfigIsFresh(); if (!configIsFresh || currentConfig === null) { if (cbConfig.debugMode) { console.log('🍪 Config not found, or configuration expired'); } if (window.publiiCBGCM) { gtag('consent', 'default', { 'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied', 'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied', 'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied', 'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied', 'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied', 'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied', 'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied' }); if (cbConfig.debugMode) { console.log('🍪 GCMv2 DEFAULT STATE: ' + JSON.stringify({ 'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied', 'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied', 'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied', 'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied', 'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied', 'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied', 'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied' })); } } showBanner(); } else if (typeof currentConfig === 'string') { if (cbConfig.debugMode) { console.log('🍪 Config founded'); } cbConfig.initialLsState = currentConfig.split(','); if (window.publiiCBGCM) { gtag('consent', 'default', { 'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'), 'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'), 'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'), 'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'), 'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'), 'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'), 'security_storage': getDefaultConsentState(currentConfig, 'security_storage') }); if (cbConfig.debugMode) { console.log('🍪 GCMv2 DEFAULT STATE: ' + JSON.stringify({ 'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'), 'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'), 'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'), 'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'), 'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'), 'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'), 'security_storage': getDefaultConsentState(currentConfig, 'security_storage') })); } } showBadge(); if (cbUI.popup.element) { var allowedGroups = currentConfig.split(','); var checkedCheckboxes = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); for (var j = 0; j < checkedCheckboxes.length; j++) { var name = checkedCheckboxes[j].getAttribute('data-group-name'); if (name && name !== '-' && allowedGroups.indexOf(name) === -1) { checkedCheckboxes[j].checked = false; } } for (var i = 0; i < allowedGroups.length; i++) { var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + allowedGroups[i] + '"]'); if (checkbox) { checkbox.checked = true; } allowCookieGroup(allowedGroups[i]); } } } setTimeout(function () { cbConfig.initialState = getInitialStateOfConsents(); }, 0); } function checkIfConfigIsFresh () { var lastConfigSave = localStorage.getItem('publii-gdpr-cookies-config-save-date'); if (lastConfigSave === null) { return false; } lastConfigSave = parseInt(lastConfigSave, 10); if (lastConfigSave === 0) { return true; } if (+new Date() - lastConfigSave < cbConfig.configTTL * 24 * 60 * 60 * 1000) { return true; } return false; } function getDefaultConsentState (currentConfig, consentGroup) { let configGroups = currentConfig.split(','); for (let i = 0; i < configGroups.length; i++) { let groupName = configGroups[i]; let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === groupName); if (group && group[consentGroup]) { return 'granted'; } } if (window.publiiCBGCM.defaultState[consentGroup]) { return 'granted'; } return 'denied'; } function initBannerEvents () { cbUI.banner.btnAccept.addEventListener('click', function (e) { e.preventDefault(); acceptAllCookies('banner'); showBadge(); }, false); if (cbUI.banner.btnReject) { cbUI.banner.btnReject.addEventListener('click', function (e) { e.preventDefault(); rejectAllCookies(); showBadge(); }, false); } if (cbUI.banner.btnConfigure) { cbUI.banner.btnConfigure.addEventListener('click', function (e) { e.preventDefault(); hideBanner(); showAdvancedPopup(); showBadge(); }, false); } } function initPopupEvents () { if (!cbUI.popup.element) { return; } cbUI.overlay.addEventListener('click', function (e) { hideAdvancedPopup(); }, false); cbUI.popup.element.addEventListener('click', function (e) { e.stopPropagation(); }, false); cbUI.popup.btnAccept.addEventListener('click', function (e) { e.preventDefault(); acceptAllCookies('popup'); }, false); cbUI.popup.btnReject.addEventListener('click', function (e) { e.preventDefault(); rejectAllCookies(); }, false); cbUI.popup.btnSave.addEventListener('click', function (e) { e.preventDefault(); saveConfiguration(); }, false); cbUI.popup.btnClose.addEventListener('click', function (e) { e.preventDefault(); hideAdvancedPopup(); }, false); } function initBadgeEvents () { if (!cbUI.badge) { return; } cbUI.badge.addEventListener('click', function (e) { showBannerOrPopup(); }, false); } initUI(); initState(); initBannerEvents(); initPopupEvents(); initBadgeEvents(); /** * API */ function addScript (src, inline) { var newScript = document.createElement('script'); if (src) { newScript.setAttribute('src', src); } if (inline) { newScript.text = inline; } document.body.appendChild(newScript); } function allowCookieGroup (allowedGroup) { var scripts = document.querySelectorAll('script[type="gdpr-blocker/' + allowedGroup + '"]'); cbConfig.previouslyAccepted.push(allowedGroup); for (var j = 0; j < scripts.length; j++) { addScript(scripts[j].src, scripts[j].text); } var groupEvent = new Event('publii-cookie-banner-unblock-' + allowedGroup); document.body.dispatchEvent(groupEvent); unlockEmbeds(allowedGroup); if (cbConfig.debugMode) { console.log('🍪 Allowed group: ' + allowedGroup); } if (window.publiiCBGCM && (!cbConfig.initialLsState || cbConfig.initialLsState.indexOf(allowedGroup) === -1)) { let consentResult = {}; let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === allowedGroup); if (group) { let foundSomeConsents = false; Object.keys(group).forEach(key => { if (key !== 'cookieGroup' && group[key] === true) { consentResult[key] = 'granted'; foundSomeConsents = true; } }); if (foundSomeConsents) { gtag('consent', 'update', consentResult); if (cbConfig.debugMode) { console.log('🍪 GCMv2 UPDATE: ' + JSON.stringify(consentResult)); } } } } } function showBannerOrPopup () { if (cbUI.popup.element) { showAdvancedPopup(); } else { showBanner(); } } function showAdvancedPopup () { cbUI.popup.element.classList.add('is-visible'); cbUI.overlay.classList.add('is-visible'); cbUI.popup.element.setAttribute('aria-hidden', 'false'); cbUI.overlay.setAttribute('aria-hidden', 'false'); } function hideAdvancedPopup () { cbUI.popup.element.classList.remove('is-visible'); cbUI.overlay.classList.remove('is-visible'); cbUI.popup.element.setAttribute('aria-hidden', 'true'); cbUI.overlay.setAttribute('aria-hidden', 'true'); } function showBanner () { cbUI.banner.element.classList.add('is-visible'); cbUI.banner.element.setAttribute('aria-hidden', 'false'); } function hideBanner () { cbUI.banner.element.classList.remove('is-visible'); cbUI.banner.element.setAttribute('aria-hidden', 'true'); } function showBadge () { if (!cbUI.badge) { return; } cbUI.badge.classList.add('is-visible'); cbUI.badge.setAttribute('aria-hidden', 'false'); } function getConfigName () { var lsKeyName = 'publii-gdpr-allowed-cookies'; if (cbConfig.revision) { lsKeyName = lsKeyName + '-v' + parseInt(cbConfig.revision, 10); } return lsKeyName; } function storeConfiguration (allowedGroups) { var lsKeyName = getConfigName(); var dataToStore = allowedGroups.join(','); localStorage.setItem(lsKeyName, dataToStore); if (cbConfig.configTTL === 0) { localStorage.setItem('publii-gdpr-cookies-config-save-date', 0); if (cbConfig.debugMode) { console.log('🍪 Store never expiring configuration'); } } else { localStorage.setItem('publii-gdpr-cookies-config-save-date', +new Date()); } } function getInitialStateOfConsents () { if (!cbUI.popup.element) { return []; } var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); var groups = []; for (var i = 0; i < checkedGroups.length; i++) { var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); if (allowedGroup !== '') { groups.push(allowedGroup); } } if (cbConfig.debugMode) { console.log('🍪 Initial state: ' + groups.join(', ')); } return groups; } function getCurrentStateOfConsents () { if (!cbUI.popup.element) { return []; } var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); var groups = []; for (var i = 0; i < checkedGroups.length; i++) { var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); if (allowedGroup !== '') { groups.push(allowedGroup); } } if (cbConfig.debugMode) { console.log('🍪 State to save: ' + groups.join(', ')); } return groups; } function getAllGroups () { if (!cbUI.popup.element) { return []; } var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]'); var groups = []; for (var i = 0; i < checkedGroups.length; i++) { var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); if (allowedGroup !== '') { groups.push(allowedGroup); } } return groups; } function acceptAllCookies (source) { var groupsToAccept = getAllGroups(); storeConfiguration(groupsToAccept); for (var i = 0; i < groupsToAccept.length; i++) { var group = groupsToAccept[i]; if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) { if (cbConfig.debugMode) { console.log('🍪 Skip previously activated group: ' + group); } continue; } allowCookieGroup(group); } if (cbUI.popup.element) { var checkboxesToCheck = cbUI.popup.element.querySelectorAll('input[type="checkbox"]'); for (var j = 0; j < checkboxesToCheck.length; j++) { checkboxesToCheck[j].checked = true; } } if (cbConfig.debugMode) { console.log('🍪 Accept all cookies: ', groupsToAccept.join(', ')); } if (source === 'popup') { hideAdvancedPopup(); } else if (source === 'banner') { hideBanner(); } } function rejectAllCookies () { if (cbConfig.debugMode) { console.log('🍪 Reject all cookies'); } storeConfiguration([]); setTimeout(function () { window.location.reload(); }, 100); } function saveConfiguration () { var groupsToAccept = getCurrentStateOfConsents(); storeConfiguration(groupsToAccept); if (cbConfig.debugMode) { console.log('🍪 Save new config: ', groupsToAccept.join(', ')); } if (reloadIsNeeded(groupsToAccept)) { setTimeout(function () { window.location.reload(); }, 100); return; } for (var i = 0; i < groupsToAccept.length; i++) { var group = groupsToAccept[i]; if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) { if (cbConfig.debugMode) { console.log('🍪 Skip previously activated group: ' + group); } continue; } allowCookieGroup(group); } hideAdvancedPopup(); } function reloadIsNeeded (groupsToAccept) { // check if user rejected consent for initial groups var initialGroups = cbConfig.initialState; var previouslyAcceptedGroups = cbConfig.previouslyAccepted; var groupsToCheck = initialGroups.concat(previouslyAcceptedGroups); for (var i = 0; i < groupsToCheck.length; i++) { var groupToCheck = groupsToCheck[i]; if (groupToCheck !== '' && groupsToAccept.indexOf(groupToCheck) === -1) { if (cbConfig.debugMode) { console.log('🍪 Reload is needed due lack of: ', groupToCheck); } return true; } } return false; } function unlockEmbeds (cookieGroup) { var iframesToUnlock = document.querySelectorAll('.pec-wrapper[data-consent-group-id="' + cookieGroup + '"]'); for (var i = 0; i < iframesToUnlock.length; i++) { var iframeWrapper = iframesToUnlock[i]; iframeWrapper.querySelector('.pec-overlay').classList.remove('is-active'); iframeWrapper.querySelector('.pec-overlay').setAttribute('aria-hidden', 'true'); var iframe = iframeWrapper.querySelector('iframe'); iframe.setAttribute('src', iframe.getAttribute('data-consent-src')); } } win.publiiEmbedConsentGiven = function (cookieGroup) { // it will unlock embeds allowCookieGroup(cookieGroup); var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + cookieGroup + '"]'); if (checkbox) { checkbox.checked = true; } var groupsToAccept = getCurrentStateOfConsents(); storeConfiguration(groupsToAccept); if (cbConfig.debugMode) { console.log('🍪 Save new config: ', groupsToAccept.join(', ')); } } })(window);
http://farnhamchiropractic.co.uk/
Status: 200
Emails: info@farnhamchiropractic.co.ukour
View text
MenuHomeAboutOur TeamTestimonialsFAQBlogServicesChiropracticMassage, Reflexology & KinesiologyActive Release Technique (ART)In House GymCorporate WellnessTreatment PricesContactTel: 01252 235310Back and Neck PainFrom chronic pain to acute problems, we can help...Read moreSports InjuriesFrom fitness injuries to Pro-atheletes and complete Sports teams...Read moreFamily WellbeingFrom babies to pensioners, we treat the whole familyRead moreFarnham Chiropractic Wellness CentreWelcome to Farnham Chiropractic Wellness Centre. We are the only wellness focused chiropractic office in Farnham and the surrounding villages. Our multidisciplinary set up of Chiropractic, Active Release Technique (ART), Massage, Reflexology and Functional Rehabilitation helps you achieve your goals in the shortest time.Find the cause! - We map the stress patterns of your spine using Space Certified Technology – ‘The Insight Subluxation Station’. Used by NASA, this technology is the best available to measure and track the patterns of stress on your spine and nervous system.Learn how to help yourself - As a wellness based centre our interest goes beyond the symptoms. We teach you the tools to make better decisions about your health. We offer an ongoing education programme for all our clients so you can learn the best strategies for long-term health and wellbeing.Get the correct exercises - We are the only office in the surrounding area that offers FMS (functional movement screening). By analysing 7 basic functional movements we can find the exact rehab exercises that will take you to the next level of improved strength and movement.Enjoy the little extras - Our chiropractors are trained to use the best techniques. You will not be charged any extra for these specialised treatments such as FAKTR, ART, Kinesio Taping, or dry needling.ChiropracticRestoring and Regulating the body's Nervous SystemChiropractic is concerned with removing interference to the nervous system, and thus restoring the body's ability to heal and regulate.Read moreMassage, Reflexology & KinesiologyRelaxing and RejuvenatingFully trained in both relaxation and therapeutic massage, you can be assured of release from those muscular stresses and strains in our friendly and calming environmentRead moreActive Release Technique (ART)Powerful fascial releaseCertified providers of upper extremity Active Release Technique (ART), a powerful fascial release technique; break down soft tissue adhesions, restore function and speed healing.Read moreTRANSFORMThe mission of Transform is simple – it is going to transform lives. This programme is suitable for anyone that wants to improve and get the most from their future health. Transform includes, chiropractic, nutrition, massage, group PT, mindfulness and health coaching. The excellent ‘Transform’ manual and journalling books will guide you through the latest in nutrition (including delicious recipes) as well as detailing the importance and benefits of training, chiropractic, massage, supplementation, and mindfulness. Click Here for more information What our Clients say..."I’ve had a back complaint for 34 years and it has prompted me to begin 34 years of yoga to ensure I can still do all the hobbies and leisure activities. Every now and then it plays up and I’ve been to a few chiropractic clinics in the Farnham area but none as good as these guys. The diagnostic methods were simply mind blowing and I walked out of the wellness centre without a hint of pain. And far more strength in areas that were particular painful. 5 Stars!"- Richard Giltinan Read more testimonials Our money back guaranteeWe are confident that you will enjoy the effort we put in to help you achieve your initial goals. In the unlikely event that you are not happy, we offer a money back guarantee – If after 3 adjustments our service is not for you we will refund you the cost of the 3 adjustments (Terms and conditions apply)* Please note: we are not guaranteeing that your symptoms will be fully resolved after 3 visits! Click here to get an idea of likely response time and schedule.Contact InfoTelephone: 01252 2353101A Victoria Road, Farnham, Surrey. GU9 7RBEmail: info@farnhamchiropractic.co.ukOur clinic is located at 1A Victoria Road. This is the road that you turn into to get to the Central car park. You get to it off Union road. Latest from the blogIn House GymWelcome to Your Private, Fully Equipped Gym Experience At our in-house gym, we offer more than just a place to work out — we provide a personalised, supportive, and expertly guided fitness experience. Whether you're looking to build strength, recover from injury, or simply enjoy a more social and structured…Read more© Farnham Chiropractic Wellness Centre. | Terms | Privacy PolicyBack to top×SubscribeGet the latest news, updates and more delivered directly to your email inboxEmail Address (required) First Name Last Name window.publiiThemeMenuConfig = { mobileMenuMode: 'sidebar', animationSpeed: 300, submenuWidth: 'auto', doubleClickTime: 500, mobileMenuExpandableSubmenus: true, relatedContainerForOverlayMenuSelector: '#js-header', };window.onload = function() { var slider = tns({ container: ".hero__slider", mode: 'gallery', axis: 'horizontal', items: 1, loop: true, mouseDrag: true, swipeAngle: 15, speed: 400, controls: false, controlsPosition: "bottom", arrowKeys: true, autoplay: true, autoplayButtonOutput: false, autoplayTimeout: 6000, rewind: false }); }var lazyFeaturedImage = function lazyFeaturedImage() { var lazyFeaturedImageImages = document.querySelectorAll('.hero__image-img'); for (var i = 0; i < lazyFeaturedImageImages.length; i++) { var lazyFeaturedImageImg = lazyFeaturedImageImages[i]; lazyFeaturedImageImg.addEventListener('lazyloaded', function (e) { var featuredImage = e.target.parentNode; featuredImage.classList.add('hero__image--overlay'); }); } } lazyFeaturedImage();This website uses cookiesSelect which cookies to opt-in to via the checkboxes below; our website uses cookies to examine site traffic and user activity while on our site, for marketing, and to provide social media functionality. More details...OK(function(win) { if (!document.querySelector('.pcb')) { return; } var cbConfig = { behaviour: document.querySelector('.pcb').getAttribute('data-behaviour'), behaviourLink: document.querySelector('.pcb').getAttribute('data-behaviour-link'), revision: document.querySelector('.pcb').getAttribute('data-revision'), configTTL: parseInt(document.querySelector('.pcb').getAttribute('data-config-ttl'), 10), debugMode: document.querySelector('.pcb').getAttribute('data-debug-mode') === 'true', initialState: null, initialLsState: null, previouslyAccepted: [] }; var cbUI = { wrapper: document.querySelector('.pcb'), banner: { element: null, btnAccept: null, btnReject: null, btnConfigure: null }, popup: { element: null, btnClose: null, btnSave: null, btnAccept: null, btnReject: null, checkboxes: null, }, overlay: null, badge: null, blockedScripts: document.querySelectorAll('script[type^="gdpr-blocker/"]'), triggerLinks: cbConfig.behaviourLink ? document.querySelectorAll('a[href*="' + cbConfig.behaviourLink + '"]') : null }; function initUI () { // setup banner elements cbUI.banner.element = cbUI.wrapper.querySelector('.pcb__banner'); cbUI.banner.btnAccept = cbUI.banner.element.querySelector('.pcb__btn--accept'); cbUI.banner.btnReject = cbUI.banner.element.querySelector('.pcb__btn--reject'); cbUI.banner.btnConfigure = cbUI.banner.element.querySelector('.pcb__btn--configure'); // setup popup elements if (cbUI.wrapper.querySelector('.pcb__popup')) { cbUI.popup.element = cbUI.wrapper.querySelector('.pcb__popup'); cbUI.popup.btnClose = cbUI.wrapper.querySelector('.pcb__popup__close'); cbUI.popup.btnSave = cbUI.popup.element.querySelector('.pcb__btn--save'); cbUI.popup.btnAccept = cbUI.popup.element.querySelector('.pcb__btn--accept'); cbUI.popup.btnReject = cbUI.popup.element.querySelector('.pcb__btn--reject'); cbUI.popup.checkboxes = cbUI.popup.element.querySelector('input[type="checkbox"]'); // setup overlay cbUI.overlay = cbUI.wrapper.querySelector('.pcb__overlay'); } cbUI.badge = cbUI.wrapper.querySelector('.pcb__badge'); if (cbConfig.behaviour.indexOf('link') > -1) { for (var i = 0; i < cbUI.triggerLinks.length; i++) { cbUI.triggerLinks[i].addEventListener('click', function(e) { e.preventDefault(); showBannerOrPopup(); }); } } } function initState () { var lsKeyName = getConfigName(); var currentConfig = localStorage.getItem(lsKeyName); var configIsFresh = checkIfConfigIsFresh(); if (!configIsFresh || currentConfig === null) { if (cbConfig.debugMode) { console.log('🍪 Config not found, or configuration expired'); } if (window.publiiCBGCM) { gtag('consent', 'default', { 'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied', 'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied', 'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied', 'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied', 'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied', 'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied', 'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied' }); if (cbConfig.debugMode) { console.log('🍪 GCMv2 DEFAULT STATE: ' + JSON.stringify({ 'ad_storage': window.publiiCBGCM.defaultState.ad_storage ? 'granted' : 'denied', 'ad_personalization': window.publiiCBGCM.defaultState.ad_personalization ? 'granted' : 'denied', 'ad_user_data': window.publiiCBGCM.defaultState.ad_user_data ? 'granted' : 'denied', 'analytics_storage': window.publiiCBGCM.defaultState.analytics_storage ? 'granted' : 'denied', 'personalization_storage': window.publiiCBGCM.defaultState.personalization_storage ? 'granted' : 'denied', 'functionality_storage': window.publiiCBGCM.defaultState.functionality_storage ? 'granted' : 'denied', 'security_storage': window.publiiCBGCM.defaultState.security_storage ? 'granted' : 'denied' })); } } showBanner(); } else if (typeof currentConfig === 'string') { if (cbConfig.debugMode) { console.log('🍪 Config founded'); } cbConfig.initialLsState = currentConfig.split(','); if (window.publiiCBGCM) { gtag('consent', 'default', { 'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'), 'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'), 'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'), 'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'), 'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'), 'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'), 'security_storage': getDefaultConsentState(currentConfig, 'security_storage') }); if (cbConfig.debugMode) { console.log('🍪 GCMv2 DEFAULT STATE: ' + JSON.stringify({ 'ad_storage': getDefaultConsentState(currentConfig, 'ad_storage'), 'ad_personalization': getDefaultConsentState(currentConfig, 'ad_personalization'), 'ad_user_data': getDefaultConsentState(currentConfig, 'ad_user_data'), 'analytics_storage': getDefaultConsentState(currentConfig, 'analytics_storage'), 'personalization_storage': getDefaultConsentState(currentConfig, 'personalization_storage'), 'functionality_storage': getDefaultConsentState(currentConfig, 'functionality_storage'), 'security_storage': getDefaultConsentState(currentConfig, 'security_storage') })); } } showBadge(); if (cbUI.popup.element) { var allowedGroups = currentConfig.split(','); var checkedCheckboxes = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); for (var j = 0; j < checkedCheckboxes.length; j++) { var name = checkedCheckboxes[j].getAttribute('data-group-name'); if (name && name !== '-' && allowedGroups.indexOf(name) === -1) { checkedCheckboxes[j].checked = false; } } for (var i = 0; i < allowedGroups.length; i++) { var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + allowedGroups[i] + '"]'); if (checkbox) { checkbox.checked = true; } allowCookieGroup(allowedGroups[i]); } } } setTimeout(function () { cbConfig.initialState = getInitialStateOfConsents(); }, 0); } function checkIfConfigIsFresh () { var lastConfigSave = localStorage.getItem('publii-gdpr-cookies-config-save-date'); if (lastConfigSave === null) { return false; } lastConfigSave = parseInt(lastConfigSave, 10); if (lastConfigSave === 0) { return true; } if (+new Date() - lastConfigSave < cbConfig.configTTL * 24 * 60 * 60 * 1000) { return true; } return false; } function getDefaultConsentState (currentConfig, consentGroup) { let configGroups = currentConfig.split(','); for (let i = 0; i < configGroups.length; i++) { let groupName = configGroups[i]; let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === groupName); if (group && group[consentGroup]) { return 'granted'; } } if (window.publiiCBGCM.defaultState[consentGroup]) { return 'granted'; } return 'denied'; } function initBannerEvents () { cbUI.banner.btnAccept.addEventListener('click', function (e) { e.preventDefault(); acceptAllCookies('banner'); showBadge(); }, false); if (cbUI.banner.btnReject) { cbUI.banner.btnReject.addEventListener('click', function (e) { e.preventDefault(); rejectAllCookies(); showBadge(); }, false); } if (cbUI.banner.btnConfigure) { cbUI.banner.btnConfigure.addEventListener('click', function (e) { e.preventDefault(); hideBanner(); showAdvancedPopup(); showBadge(); }, false); } } function initPopupEvents () { if (!cbUI.popup.element) { return; } cbUI.overlay.addEventListener('click', function (e) { hideAdvancedPopup(); }, false); cbUI.popup.element.addEventListener('click', function (e) { e.stopPropagation(); }, false); cbUI.popup.btnAccept.addEventListener('click', function (e) { e.preventDefault(); acceptAllCookies('popup'); }, false); cbUI.popup.btnReject.addEventListener('click', function (e) { e.preventDefault(); rejectAllCookies(); }, false); cbUI.popup.btnSave.addEventListener('click', function (e) { e.preventDefault(); saveConfiguration(); }, false); cbUI.popup.btnClose.addEventListener('click', function (e) { e.preventDefault(); hideAdvancedPopup(); }, false); } function initBadgeEvents () { if (!cbUI.badge) { return; } cbUI.badge.addEventListener('click', function (e) { showBannerOrPopup(); }, false); } initUI(); initState(); initBannerEvents(); initPopupEvents(); initBadgeEvents(); /** * API */ function addScript (src, inline) { var newScript = document.createElement('script'); if (src) { newScript.setAttribute('src', src); } if (inline) { newScript.text = inline; } document.body.appendChild(newScript); } function allowCookieGroup (allowedGroup) { var scripts = document.querySelectorAll('script[type="gdpr-blocker/' + allowedGroup + '"]'); cbConfig.previouslyAccepted.push(allowedGroup); for (var j = 0; j < scripts.length; j++) { addScript(scripts[j].src, scripts[j].text); } var groupEvent = new Event('publii-cookie-banner-unblock-' + allowedGroup); document.body.dispatchEvent(groupEvent); unlockEmbeds(allowedGroup); if (cbConfig.debugMode) { console.log('🍪 Allowed group: ' + allowedGroup); } if (window.publiiCBGCM && (!cbConfig.initialLsState || cbConfig.initialLsState.indexOf(allowedGroup) === -1)) { let consentResult = {}; let group = window.publiiCBGCM.groups.find(group => group.cookieGroup === allowedGroup); if (group) { let foundSomeConsents = false; Object.keys(group).forEach(key => { if (key !== 'cookieGroup' && group[key] === true) { consentResult[key] = 'granted'; foundSomeConsents = true; } }); if (foundSomeConsents) { gtag('consent', 'update', consentResult); if (cbConfig.debugMode) { console.log('🍪 GCMv2 UPDATE: ' + JSON.stringify(consentResult)); } } } } } function showBannerOrPopup () { if (cbUI.popup.element) { showAdvancedPopup(); } else { showBanner(); } } function showAdvancedPopup () { cbUI.popup.element.classList.add('is-visible'); cbUI.overlay.classList.add('is-visible'); cbUI.popup.element.setAttribute('aria-hidden', 'false'); cbUI.overlay.setAttribute('aria-hidden', 'false'); } function hideAdvancedPopup () { cbUI.popup.element.classList.remove('is-visible'); cbUI.overlay.classList.remove('is-visible'); cbUI.popup.element.setAttribute('aria-hidden', 'true'); cbUI.overlay.setAttribute('aria-hidden', 'true'); } function showBanner () { cbUI.banner.element.classList.add('is-visible'); cbUI.banner.element.setAttribute('aria-hidden', 'false'); } function hideBanner () { cbUI.banner.element.classList.remove('is-visible'); cbUI.banner.element.setAttribute('aria-hidden', 'true'); } function showBadge () { if (!cbUI.badge) { return; } cbUI.badge.classList.add('is-visible'); cbUI.badge.setAttribute('aria-hidden', 'false'); } function getConfigName () { var lsKeyName = 'publii-gdpr-allowed-cookies'; if (cbConfig.revision) { lsKeyName = lsKeyName + '-v' + parseInt(cbConfig.revision, 10); } return lsKeyName; } function storeConfiguration (allowedGroups) { var lsKeyName = getConfigName(); var dataToStore = allowedGroups.join(','); localStorage.setItem(lsKeyName, dataToStore); if (cbConfig.configTTL === 0) { localStorage.setItem('publii-gdpr-cookies-config-save-date', 0); if (cbConfig.debugMode) { console.log('🍪 Store never expiring configuration'); } } else { localStorage.setItem('publii-gdpr-cookies-config-save-date', +new Date()); } } function getInitialStateOfConsents () { if (!cbUI.popup.element) { return []; } var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); var groups = []; for (var i = 0; i < checkedGroups.length; i++) { var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); if (allowedGroup !== '') { groups.push(allowedGroup); } } if (cbConfig.debugMode) { console.log('🍪 Initial state: ' + groups.join(', ')); } return groups; } function getCurrentStateOfConsents () { if (!cbUI.popup.element) { return []; } var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]:checked'); var groups = []; for (var i = 0; i < checkedGroups.length; i++) { var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); if (allowedGroup !== '') { groups.push(allowedGroup); } } if (cbConfig.debugMode) { console.log('🍪 State to save: ' + groups.join(', ')); } return groups; } function getAllGroups () { if (!cbUI.popup.element) { return []; } var checkedGroups = cbUI.popup.element.querySelectorAll('input[type="checkbox"]'); var groups = []; for (var i = 0; i < checkedGroups.length; i++) { var allowedGroup = checkedGroups[i].getAttribute('data-group-name'); if (allowedGroup !== '') { groups.push(allowedGroup); } } return groups; } function acceptAllCookies (source) { var groupsToAccept = getAllGroups(); storeConfiguration(groupsToAccept); for (var i = 0; i < groupsToAccept.length; i++) { var group = groupsToAccept[i]; if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) { if (cbConfig.debugMode) { console.log('🍪 Skip previously activated group: ' + group); } continue; } allowCookieGroup(group); } if (cbUI.popup.element) { var checkboxesToCheck = cbUI.popup.element.querySelectorAll('input[type="checkbox"]'); for (var j = 0; j < checkboxesToCheck.length; j++) { checkboxesToCheck[j].checked = true; } } if (cbConfig.debugMode) { console.log('🍪 Accept all cookies: ', groupsToAccept.join(', ')); } if (source === 'popup') { hideAdvancedPopup(); } else if (source === 'banner') { hideBanner(); } } function rejectAllCookies () { if (cbConfig.debugMode) { console.log('🍪 Reject all cookies'); } storeConfiguration([]); setTimeout(function () { window.location.reload(); }, 100); } function saveConfiguration () { var groupsToAccept = getCurrentStateOfConsents(); storeConfiguration(groupsToAccept); if (cbConfig.debugMode) { console.log('🍪 Save new config: ', groupsToAccept.join(', ')); } if (reloadIsNeeded(groupsToAccept)) { setTimeout(function () { window.location.reload(); }, 100); return; } for (var i = 0; i < groupsToAccept.length; i++) { var group = groupsToAccept[i]; if (cbConfig.initialState.indexOf(group) > -1 || cbConfig.previouslyAccepted.indexOf(group) > -1) { if (cbConfig.debugMode) { console.log('🍪 Skip previously activated group: ' + group); } continue; } allowCookieGroup(group); } hideAdvancedPopup(); } function reloadIsNeeded (groupsToAccept) { // check if user rejected consent for initial groups var initialGroups = cbConfig.initialState; var previouslyAcceptedGroups = cbConfig.previouslyAccepted; var groupsToCheck = initialGroups.concat(previouslyAcceptedGroups); for (var i = 0; i < groupsToCheck.length; i++) { var groupToCheck = groupsToCheck[i]; if (groupToCheck !== '' && groupsToAccept.indexOf(groupToCheck) === -1) { if (cbConfig.debugMode) { console.log('🍪 Reload is needed due lack of: ', groupToCheck); } return true; } } return false; } function unlockEmbeds (cookieGroup) { var iframesToUnlock = document.querySelectorAll('.pec-wrapper[data-consent-group-id="' + cookieGroup + '"]'); for (var i = 0; i < iframesToUnlock.length; i++) { var iframeWrapper = iframesToUnlock[i]; iframeWrapper.querySelector('.pec-overlay').classList.remove('is-active'); iframeWrapper.querySelector('.pec-overlay').setAttribute('aria-hidden', 'true'); var iframe = iframeWrapper.querySelector('iframe'); iframe.setAttribute('src', iframe.getAttribute('data-consent-src')); } } win.publiiEmbedConsentGiven = function (cookieGroup) { // it will unlock embeds allowCookieGroup(cookieGroup); var checkbox = cbUI.popup.element.querySelector('input[type="checkbox"][data-group-name="' + cookieGroup + '"]'); if (checkbox) { checkbox.checked = true; } var groupsToAccept = getCurrentStateOfConsents(); storeConfiguration(groupsToAccept); if (cbConfig.debugMode) { console.log('🍪 Save new config: ', groupsToAccept.join(', ')); } } })(window);