CINXE.COM
Privacy Notice | Canmore
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr"> <head profile="http://www.w3.org/1999/xhtml/vocab"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="/sites/all/themes/canmore_bootstrap/apple-touch-icon-152x152.png" rel="apple-touch-icon-precomposed" sizes="152x152" /> <meta property="og:image" content="https://canmore.org.uk/sites/default/files/canmore.ico" /> <link href="/sites/all/themes/canmore_bootstrap/apple-touch-icon-120x120.png" rel="apple-touch-icon-precomposed" sizes="120x120" /> <link href="/sites/all/themes/canmore_bootstrap/apple-touch-icon-180x180.png" rel="apple-touch-icon-precomposed" sizes="180x180" /> <link href="/sites/all/themes/canmore_bootstrap/apple-touch-icon.png" rel="apple-touch-icon-precomposed" /> <meta name="Generator" content="Drupal 7 (http://drupal.org)" /> <link rel="canonical" href="/content/privacy-notice" /> <link rel="shortlink" href="/node/147" /> <link rel="shortcut icon" href="/sites/default/files/canmore.ico" type="image/vnd.microsoft.icon" /> <link href="/sites/all/themes/canmore_bootstrap/apple-touch-icon-76x76.png" rel="apple-touch-icon-precomposed" sizes="76x76" /> <title>Privacy Notice | Canmore</title> <style> @import url("/modules/system/system.base.css?sml5ma"); </style> <style> @import url("/sites/all/modules/custom/canmore_insites/css/canmore_insites.css?sml5ma"); @import url("/sites/all/modules/custom/scran_sound_archive/css/scran_sound_archive.css?sml5ma"); @import url("/sites/all/modules/contrib/date/date_api/date.css?sml5ma"); @import url("/sites/all/modules/contrib/date/date_popup/themes/datepicker.1.7.css?sml5ma"); @import url("/modules/field/theme/field.css?sml5ma"); @import url("/modules/node/node.css?sml5ma"); </style> <link type="text/css" rel="stylesheet" href="/sites/all/modules/custom/canmore_mycanmore/css/canmore_mycanmore.css?sml5ma" media="all" /> <link type="text/css" rel="stylesheet" href="/sites/all/modules/custom/canmore/css/canmore-style.css?sml5ma" media="all" /> <link type="text/css" rel="stylesheet" href="/sites/all/modules/custom/canmore_cart/css/canmore-cart.css?sml5ma" media="all" /> <link type="text/css" rel="stylesheet" href="/sites/all/modules/custom/image_gallery/css/image-gallery.css?sml5ma" media="all" /> <link type="text/css" rel="stylesheet" href="/sites/all/modules/custom/image_grid/css/image-grid.css?sml5ma" media="all" /> <link type="text/css" rel="stylesheet" href="/sites/all/modules/custom/rcahms_image_grid/css/rcahms-image-grid.css?sml5ma" media="all" /> <link type="text/css" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css?sml5ma" media="all" /> <link type="text/css" rel="stylesheet" href="/sites/all/themes/canmore_bootstrap/css/colours-default.css?sml5ma" media="all" /> <style> @import url("/sites/all/modules/custom/canmore_feedback/canmore_feedback.css?sml5ma"); </style> <style> @import url("/sites/all/themes/canmore_bootstrap/css/style.css?sml5ma"); @import url("/sites/all/themes/canmore_bootstrap/css/canmore_bootstrap.css?sml5ma"); @import url("/sites/all/themes/canmore_bootstrap/css/media-queries.css?sml5ma"); </style> <script src="/sites/all/modules/contrib/jquery_update/replace/jquery/1.10/jquery.min.js?v=1.10.2"></script> <script src="/misc/jquery-extend-3.4.0.js?v=1.10.2"></script> <script src="/misc/jquery.once.js?v=1.2"></script> <script src="/misc/drupal.js?sml5ma"></script> <script>/* Google Tag Manager */ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-P3LQ4GX'); /* End Google Tag Manager */</script> <script>/* Google Tag Manager */ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-TJ83XJS'); /* End Google Tag Manager */</script> <script src="/sites/all/modules/custom/accessibility/js/accessibility.js?sml5ma"></script> <script src="/sites/all/modules/custom/canmore/js/canmore_common.js?sml5ma"></script> <script src="/sites/all/modules/custom/image_gallery/js/image_gallery.js?sml5ma"></script> <script src="/sites/all/modules/custom/image_grid/js/image_grid.js?sml5ma"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="/sites/all/themes/canmore_bootstrap/js/canmore-bootstrap.js?sml5ma"></script> <script>jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"canmore_bootstrap","theme_token":"FtlL6CRBuJN__Oo6wlvcnA0fg0lFr3VTlA80uafP6q4","css":{"modules\/system\/system.base.css":1,"sites\/all\/modules\/custom\/canmore_insites\/css\/canmore_insites.css":1,"sites\/all\/modules\/custom\/scran_sound_archive\/css\/scran_sound_archive.css":1,"sites\/all\/modules\/contrib\/date\/date_api\/date.css":1,"sites\/all\/modules\/contrib\/date\/date_popup\/themes\/datepicker.1.7.css":1,"modules\/field\/theme\/field.css":1,"modules\/node\/node.css":1,"\/sites\/all\/modules\/custom\/canmore_mycanmore\/css\/canmore_mycanmore.css":1,"\/sites\/all\/modules\/custom\/canmore\/css\/canmore-style.css":1,"\/sites\/all\/modules\/custom\/canmore_cart\/css\/canmore-cart.css":1,"\/sites\/all\/modules\/custom\/image_gallery\/css\/image-gallery.css":1,"\/sites\/all\/modules\/custom\/image_grid\/css\/image-grid.css":1,"\/sites\/all\/modules\/custom\/rcahms_image_grid\/css\/rcahms-image-grid.css":1,"https:\/\/maxcdn.bootstrapcdn.com\/bootstrap\/3.3.7\/css\/bootstrap.min.css":1,"sites\/all\/themes\/canmore_bootstrap\/css\/colours-default.css":1,"sites\/all\/modules\/custom\/canmore_feedback\/canmore_feedback.css":1,"sites\/all\/themes\/canmore_bootstrap\/css\/style.css":1,"sites\/all\/themes\/canmore_bootstrap\/css\/canmore_bootstrap.css":1,"sites\/all\/themes\/canmore_bootstrap\/css\/media-queries.css":1},"js":{"sites\/all\/themes\/bootstrap\/js\/bootstrap.js":1,"sites\/all\/modules\/contrib\/jquery_update\/replace\/jquery\/1.10\/jquery.min.js":1,"misc\/jquery-extend-3.4.0.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"0":1,"1":1,"\/sites\/all\/modules\/custom\/accessibility\/js\/accessibility.js":1,"sites\/all\/modules\/custom\/canmore\/js\/canmore_common.js":1,"sites\/all\/modules\/custom\/image_gallery\/js\/image_gallery.js":1,"sites\/all\/modules\/custom\/image_grid\/js\/image_grid.js":1,"https:\/\/maxcdn.bootstrapcdn.com\/bootstrap\/3.3.7\/js\/bootstrap.min.js":1,"sites\/all\/themes\/canmore_bootstrap\/js\/canmore-bootstrap.js":1}},"urlIsAjaxTrusted":{"\/postback":true},"bootstrap":{"anchorsFix":0,"anchorsSmoothScrolling":1,"formHasError":1,"popoverEnabled":1,"popoverOptions":{"animation":1,"html":0,"placement":"right","selector":"","trigger":"click","triggerAutoclose":1,"title":"","content":"","delay":0,"container":"body"},"tooltipEnabled":1,"tooltipOptions":{"animation":1,"html":0,"placement":"auto left","selector":"","trigger":"hover focus","delay":0,"container":"body"}}});</script> </head> <body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-147 node-type-help" > <div id="skip-link"> <a href="#main-content" class="element-invisible element-focusable">Skip to main content</a> </div> <script> /** Flip client onto SSL */ /* var ssl = 'https:'; if (window.location.protocol != ssl) { var chunks = String(window.location).split(':'); if (typeof(chunks[1]) != 'undefined' && chunks[1] != null) { window.location.href = ssl + chunks[1]; } } */ </script> <div id="header-wrap"> <div class="header-bar hidden-print"> <div class="container"> <div class="row"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 topnav-col text-right"> <div class="header-block"><div id="canmore-cart-min" class="canmore-cart-min"> <a href="/canmore_cart"><span data-toggle="canmore-buy-link-tooltip" data-original-title="Image Sales Basket"><span class="glyphicon glyphicon-shopping-cart"></span> (<span id="canmore-cart-buy-total">0</span>)</span> <script> (function ($) { $('[data-toggle="canmore-buy-link-tooltip"]').tooltip({ 'placement': 'bottom' }); })(jQuery); </script></a> <a href="/canmore_cart_sr"><span data-toggle="canmore-sr-link-tooltip" data-original-title="Search Room Appointment"><span class="glyphicon glyphicon-calendar"></span> (<span id="canmore-cart-sr-total">0</span>)</span> <script> (function ($) { $('[data-toggle="canmore-sr-link-tooltip"]').tooltip({ 'placement': 'bottom' }); })(jQuery); </script></a> <div id="canmore-cart-added" class="canmore-cart-added"></div> </div></div> <div class="header-block"> <a href="/mycanmore/login" title="Login to MyCanmore">Login</a> | <a href="/mycanmore/register" title="Register for MyCanmore">Register</a> </div> <div class="header-block"><span id="accessibility-options-link">Accessibility</span> <div class="accessibility-widget-main text-center" id="accessibility-widget"> <div class="box"> <p>Font Size</p> <div class="btn-group" role="group" aria-label="Set font size using these buttons"> <span class="btn btn-sm btn-default" id="accessibility-size-1">100%</span> <span class="btn btn-md btn-default" id="accessibility-size-2">150%</span> <span class="btn btn-lg btn-default" id="accessibility-size-3">200%</span> </div> </div> <div class="box"> <p>Background Colour</p> <div class="btn-group" role="group" aria-label="Set background colour using these buttons"> <span class="btn btn-md btn-default" id="accessibility-bg-1">Default</span> <span class="btn btn-md btn-default" id="accessibility-bg-2">Contrast</span> </div> </div> <div class="box"> <span class="btn btn-primary" id="accessibility-close">Close</span> <span class="btn btn-primary" id="accessibility-reset">Reset</span> </div> </div> <script> (function ($) { $(document).ready(function() { var colour_1_url = '/accessibility_switcher/colour_1?destination=content/privacy-notice'; var colour_2_url = '/accessibility_switcher/colour_2?destination=content/privacy-notice'; var size_1_url = '/accessibility_switcher/size_1?destination=content/privacy-notice'; var size_2_url = '/accessibility_switcher/size_2?destination=content/privacy-notice'; var size_3_url = '/accessibility_switcher/size_3?destination=content/privacy-notice'; var reset_url = '/accessibility_switcher/reset?destination=content/privacy-notice'; accessibility_widget_init(colour_1_url, colour_2_url, size_1_url, size_2_url, size_3_url, reset_url); }); })(jQuery); </script> </div> </div> </div> </div> </div> <div id="topnav" class="navbar navbar-static-top blue-top"> <div class="container"> <div class="row"> <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12 topnav-col"> <img width=177 height=40 src="/sites/all/themes/canmore_bootstrap/css/images/partof_hes_alt_mono.png" class="img-responsive extralogo_mobile" /> <a title="Canmore Home" href="/"><img width=200 height=41 alt="Canmore Home" src="/sites/all/themes/canmore_bootstrap/css/images/canmore_new.png" /></a> </div> <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12 topnav-col topnav-col-right"> <div style="display:inline-block;"> <a title="Canmore Home" href="https://www.historicenvironment.scot/" target="_blank"><img src="/sites/all/themes/canmore_bootstrap/css/images/partof_hes_mono.png" class="extralogo" /></a> </div> <div style="display:inline-block;"> <input type="text" placeholder="Search" class="canmore-search-input" id="canmore-search-input"> </div> <div style="display:inline-block;"> <span id="canmore-search-addon" style="cursor:pointer"><span class="glyphicon glyphicon-search"></span></span> </div> <script> (function ($) { $( '#canmore-search-input' ).keypress(function(e) { if ( e.which == 13 ) { sp_search_do_search_default(); } }); $( '#canmore-search-addon' ).click( function() { sp_search_do_search_default(); }); })(jQuery); function sp_search_do_search_default() { (function ($) { var searchterm = $( '#canmore-search-input' ).val(); if (searchterm) { window.location.replace('/search/image?SIMPLE_KEYWORD='+searchterm); } })(jQuery); } </script> </div> </div> </div> </div> <header id="navbar" role="banner" class="navbar navbar-static-top navbar-default"> <div class="container"> <div id="canmore-main-menu"> <div class="navbar-header"> <!-- .btn-navbar is used as the toggle for collapsed navbar content --> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <nav role="navigation"> <div class="navbar-collapse collapse"> <ul class="menu nav navbar-nav"> <li id="nav-home" class="first leaf"> <a href="/" class="nav-link-home">Home</a> </li> <li id="nav-about" class="collapsed"> <a href="/content/about" class="nav-link-about">About</a> </li> <li id="nav-contributions" class="collapsed"> <a href="/contributions" class="nav-link-contributions">MyCanmore</a> </li> <li id="nav-search" class="collapsed"> <a href="/site" class="nav-link-search">Search</a> </li> <li id="nav-gallery" class="collapsed"> <a href="/gallery" class="nav-link-gallery">Galleries</a> </li> <li id="nav-visit" class="collapsed"> <a href="/content/search-room" class="nav-link-visit">Search Room</a> </li> <li id="nav-resources" class="collapsed"> <a href="/content/resources" class="nav-link-resources">Guidance</a> </li> <li id="nav-enquiries" class="collapsed"> <a href="/content/contact" class="nav-link-enquiries">Contact Us</a> </li> </ul> </div> <div id="nav-sub-search" class="nav-sub"> <div class="navbar-collapse collapse"> <ul class="menu nav navbar-nav"> <li><a href="/site/search">Search Sites</a></li> <li><a href="/map/about">Search Map</a></li> <li><a href="/thesaurus">Search Thesauri</a></li> <li><a href="/collection/search">Search Collections</a></li> <li><a href="/image/search">Search Images</a></li> <li><a href="/publication/search">Search Digital Publications</a></li> </ul> </div> </div> </nav> </div> <script type="text/javascript"> (function ($) { canmore_bootstrap_menu_init(); })(jQuery); </script> </div> </header> </div> <!-- Google Tag Manager (noscript) --><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P3LQ4GX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><!-- End Google Tag Manager (noscript) --> <!-- Google Tag Manager (noscript) --><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TJ83XJS" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><!-- End Google Tag Manager (noscript) --> <div id="content" class="front-large"> <div class="main-container container"> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 front-large"> <div class="region region-content-top"> <section id="block-block-13" class="block block-block clearfix"> <h2 class="block-title">Scheduled Maintenance</h2> <p></p><center><br /><p style="margin-top: 0.75rem; margin-bottom: 0px; font-size: 14px; line-height: 1.714; letter-spacing: -0.005em; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; white-space: pre-wrap;" data-renderer-start-pos="61"><span style="letter-spacing: -0.07px; white-space-collapse: preserve;"><strong>Please be advised that this website will undergo scheduled maintenance on the following dates: • </strong></span></p> <p style="margin-top: 0.75rem; margin-bottom: 0px; font-size: 14px; line-height: 1.714; letter-spacing: -0.005em; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; white-space: pre-wrap;" data-renderer-start-pos="61"><span style="color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;"><span style="font-size: 14px; letter-spacing: -0.07px; white-space-collapse: preserve;"><strong>Tuesday 3rd December 11:00-15:00</strong></span></span></p> <p style="margin-top: 0.75rem; margin-bottom: 0px; font-size: 14px; line-height: 1.714; letter-spacing: -0.005em; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; white-space: pre-wrap;" data-renderer-start-pos="61"><span style="letter-spacing: -0.07px; white-space-collapse: preserve;"><strong>During these times, some services may be temporarily unavailable. We apologise for any inconvenience this may cause.</strong></span></p> <p style="margin-top: 0.75rem; margin-bottom: 0px; font-size: 14px; line-height: 1.714; letter-spacing: -0.005em; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; white-space: pre-wrap;" data-renderer-start-pos="61"> </p> <p></p></center> </section> </div> </div> </div> <div class="row"> <section class="col-sm-12"> <a id="main-content"></a> <div style="display:table;width:100%;"> <div style="display:table-row"> <div style="display:table-cell"> <h1 class="page-header">Privacy Notice</h1> </div> <div style="display:table-cell;white-space:nowrap;" class="text-right hidden-print"> <div class="share"> <a href="https://www.facebook.com/share.php?u=https://canmore.org.uk/content/privacy-notice" target="_blank" title="Facebook"><img alt="facebook" src="/sites/all/themes/canmore_bootstrap/css/images/social/facebook.png" /></a> <a href="https://twitter.com/intent/tweet?text=&url=https://canmore.org.uk/content/privacy-notice" target="_blank" title="Tweet"><img alt="tweet" src="/sites/all/themes/canmore_bootstrap/css/images/social/twitter.png" /></a> <a href="javascript:window.print()" title="Print"><img alt="print" src="/sites/all/themes/canmore_bootstrap/css/images/social/print.png" /></a> </div> </div> </div> </div> <div id="content-wrap"> <div class="region region-content"> <section id="block-system-main" class="block block-system clearfix"> <article id="node-147" class="node node-help clearfix" about="/content/privacy-notice" typeof="sioc:Item foaf:Document"> <header> <span property="dc:title" content="Privacy Notice" class="rdf-meta element-hidden"></span><span property="sioc:num_replies" content="0" datatype="xsd:integer" class="rdf-meta element-hidden"></span> </header> <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><strong>1. Who we are</strong></p> <p>We are Historic Environment Scotland, an executive non-departmental public body, incorporated and established under the Historic Environment Scotland Act 2014, being a registered charity (Scottish Charity number SC045925) and having its principal office at Longmore House, Salisbury Place, Edinburgh, EH9 1SH.</p> <p>We are a data controller for the purposes of the UK General Data Protection Regulation and related data protection legislation.<br /> <br /><strong>2. How to contact us</strong></p> <p>If you have any questions about this privacy notice or our data protection policies generally, please contact us:</p> <p>By post:</p> <p>The Data Protection Officer</p> <p>Historic Environment Scotland</p> <p>Room G.50</p> <p>Longmore House</p> <p>Salisbury Place</p> <p>Edinburgh, EH9 1SH </p> <p>By email: <a href="mailto:dataprotection@hes.scot">dataprotection@hes.scot</a></p> <p>By phone: 0131 668 8600</p> <p> </p> <p><strong>3. Privacy notice</strong></p> <p>3.1 We are committed to protecting your personal data and your privacy. This privacy notice sets out the basis on which any personal data we collect from you, or that you provide to us, or that we acquire from a third party, will be processed by us. Please read the following carefully to understand our practices regarding your personal data and how we will treat it.</p> <p>3.2 Before we process your personal data, we are obliged to inform you of who we are, why we need to process your personal data, what we will do with your personal data and to whom we will pass your personal data.</p> <p>3.3 It is important that the personal data we hold about you is accurate and current. Please keep us informed if your personal data changes during your relationship with us.</p> <p>3.4 This version of our privacy notice was last updated on 8 June 2021.</p> <p> </p> <p><strong>4. The data we collect about you</strong></p> <p>4.1 Personal data, or personal information, means any information about an individual from which that person can be identified. It does not include data where the identity of the individual has been removed (anonymous data).</p> <p>4.2 We may collect, use, store and transfer different kinds of personal data about you which we have grouped together as follows:</p> <p> 4.2.1 <strong>Identity Data</strong> includes first name, maiden name, last name, username or similar identifier, marital status, title, date of birth and gender.</p> <p> 4.2.2 <strong>Contact Data</strong> includes billing address, delivery address, email address and telephone numbers.</p> <p> 4.2.3 <strong>Technical Data</strong> includes internet protocol (IP) address, your login data, browser type and version, time zone setting and location, browser plug-in types and versions,</p> <p> operating system and platform and other technology on the devices you use to access the Website.</p> <p> 4.2.4 <strong>Usage Data</strong> includes information about how you use our Website.</p> <p> 4.2.5 <strong>Marketing and Communications Data</strong> includes your preferences in receiving marketing from us and our third parties and your communication preferences.</p> <p> 4.2.6 Images and Photographic data when we take photographs of events at our properties, or if you share your images of people with us on social media.</p> <p> 4.2.7 Image data if we capture your image on our CCTV systems.</p> <p>4.3 We do not collect any <strong>Special Categories of Personal Data</strong> about you if you are applying to work with us through our recruitment system. <strong>Special Categories of Personal Data</strong> include details about your race or ethnicity, religious or philosophical beliefs, sex life, sexual orientation, political opinions, trade union membership, information about your health and genetic and biometric data. This information will only be used for the purposes of equalities monitoring as stated within the job application process. </p> <p> </p> <p><strong>5. How is your personal data collected?</strong></p> <p>5.1 We use different methods to collect data from and about you including through:</p> <p> 5.1.1 <strong>Direct interactions</strong>. You may give us your personal data by filling in forms or by corresponding with us by post, phone, email or otherwise. This includes personal data you provide when you:</p> <p> 5.1.1.1 filling in forms on our Website;</p> <p> 5.1.1.2 request marketing to be sent to you;</p> <p> 5.1.1.3 enter a competition, promotion or survey; or</p> <p> 5.1.1.4 give us some feedback.</p> <p> 5.1.2 <strong>Automated technologies or interactions</strong>. As you interact with our Website, we may automatically collect Technical Data about your equipment, browsing actions and patterns. We collect this personal data by using cookies, and other similar technologies.</p> <p> 5.1.3 <strong>Third parties or publicly available sources</strong>. We may receive personal data about you from various third parties and public sources, for example Identity and Contact Data from publicly available sources such as Companies House and the Electoral Register based inside the EU.</p> <p class="MsoNormal"> </p> <p class="MsoNormal"><strong>6. How we use your personal data</strong></p> <p class="MsoNormal"> 6.1 We will only use your personal data when the law allows us to. Most commonly, we will use your personal data in the following circumstances:</p> <p class="MsoNormal"> 6.1.1 Where it is necessary:</p> <p class="MsoNormal"> 6.1.1.1 for us to carry out a specific task in the public interest which is laid down by law; or</p> <p class="MsoNormal"> 6.1.1.2 for our legitimate interests (or those of a third party) and your interests and fundamental rights do not override those interests.</p> <p class="MsoNormal"> 6.1.2 Where we need to comply with a legal or regulatory obligation</p> <p class="MsoNormal"> 6.2 Generally we do not rely on consent as a legal basis for processing your personal data other than in relation to sending third party direct marketing communications to you via email or text message.</p> <p class="MsoNormal"> </p> <p class="MsoNormal"><strong>7. Purposes for which we will use your personal data</strong></p> <p class="MsoNormal"> 7.1 We have set out below, in a table format, a description of all the ways we plan to use your personal data, and which of the legal bases we rely on to do so.</p> <p class="MsoNormal"> 7.2 Note that we may process your personal data for more than one lawful ground depending on the specific purpose for which we are using your data. Please contact us if you need details about the specific legal ground we are relying on to process your personal data where more than one ground has been set out in the table below.</p> <table border="1"><tbody><tr><td><strong>Purpose/Activity</strong></td> <td><strong>Type of data</strong></td> <td><strong>Lawful basis for processing including basis of legitimate interest</strong></td> </tr><tr><td>Where you fill in forms on the website requesting that we contact you</td> <td>(a) Identity <p>(b) Contact</p></td> <td>(a) Necessary for our legitimate interests (to respond to customer enquiries) <p>(b) Necessary for us to carry out a specific task in the public interest which is laid out by law</p></td> </tr><tr><td>Where you sign up for a newsletter</td> <td>(a) Identity <p>(b) Contact</p> <p>(c) Marketing & Communications Data</p></td> <td>On the basis of your consent (by signing up for a newsletter you are taking a positive action to opt-in to receiving marketing material from us)</td> </tr><tr><td>To manage our relationship with you which will include: <p>(a) Notifying you about changes to our terms or privacy policy</p> <p>(b) Asking you to leave a review or take a survey </p></td> <td>(a) Identity <p>(b) Contact</p></td> <td>(a) Necessary to comply with a legal obligation <p>(b) Necessary for our legitimate interests (to keep our records updated and to study how customers use our products/services)</p></td> </tr><tr><td>To administer and protect our business and this Website (including troubleshooting, data analysis, testing, system maintenance, support, reporting and hosting of data)</td> <td>(a) Identity <p>(b) Contact</p> <p>(c) Technical</p></td> <td>(a) Necessary for our legitimate interests (for running our business, provision of administration and IT services, network security, to prevent fraud and in the context of a business reorganisation or group restructuring exercise) <p>(b) Necessary to comply with a legal obligation</p></td> </tr><tr><td>To use data analytics to improve our Website, products/services, customer relationships and experiences</td> <td>(a) Technical <p>(b) Usage</p></td> <td>Necessary for our legitimate interests (to define types of customers for our products and services, to keep our Website updated and relevant and to develop our business</td> </tr></tbody></table><p> </p> <p><strong>8. Disclosures of your personal data</strong></p> <p> 8.1 We may have to share your personal data with-third party service providers to fulfil our contractual obligations to you.</p> <p> 8.2 We require all third parties to respect the security of your personal data and to treat it in accordance with the law. We do not allow our third-party service providers to use your personal data for their own purposes and only permit them to process your personal data for specified purposes and in accordance with our instructions. </p> <p> </p> <p><strong>9. How long do we retain your data?</strong></p> <p> 9.1 We will only retain your personal data for as long as necessary to fulfil the purposes we collected it for, including for the purposes of satisfying any legal, accounting, or reporting requirements.</p> <p> 9.2 To determine the appropriate retention period for personal data, we consider the amount, nature, and sensitivity of the personal data, the potential risk of harm from unauthorised use or disclosure of your personal data, the purposes for which we process your personal data and whether we can achieve those purposes through other means, and the applicable legal requirements.</p> <p> </p> <p><strong>10. Marketing</strong></p> <p>We will only use your personal data for direct marketing purposes where you have consented to be contacted for such purposes. We do not share your personal details with any third party for their marketing purposes. You have the right to withdraw consent to marketing at any time by contacting us using the details above. We use trusted third-party media agencies to help us with our advertising, but we do not share your personal details with any third party for their marketing purposes. You have the right to withdraw consent to marketing at any time by contacting us using the details above.</p> <p>If you receive marketing from us on social media platforms you are able to withdraw your consent by adjusting your privacy settings on the social media platform itself. You may see our adverts if your settings allow for targeted advertising based on attributes of your social media profile, such as your location, age and interests. For example, if you live near one of our properties you may see an ad for an event at that property. You may also see our advertising as a result of your information being automatically profiled by the social media platform and your being selected as part of the audience for the ad. You can prevent this type of targeting by adjusting your privacy settings in the social media site or by adjusting your cookie settings in the browser. You can also interact with the ad itself and select the options that prevent further targeted advertising using your information in this way.</p> <p> </p> <p><strong>11. Cookies</strong></p> <p>You can set your browser to refuse all or some browser cookies, or to alert you when websites set or access cookies. If you disable or refuse cookies, please note that some parts of this Website may become inaccessible or not function properly.</p> <p>For more information regarding the cookies we use please see <a href="https://www.historicenvironment.scot/cookie-policy/?_ga=2.181735591.1614914402.1579270182-1426722830.1579270182">Historic Environment Scotland's Cookie policy</a>. </p> <p> </p> <p class="MsoNormal">12. <strong>Additional Information</strong></p> <p class="MsoNormal"> 12.1 <strong>Compliance with legal obligations, etc</strong></p> <p class="MsoNormal">We may process (including disclose) your personal data in order to comply with any legal obligations binding on us; to protect the rights, property, or safety of our staff, our customers, or others; and to establish, exercise or defend our legal rights.</p> <p class="MsoNormal">When we process your personal data for the above purposes, we do so on the basis that such processing is necessary for compliance with a legal obligation to which we are subject or necessary in order to protect the vital interests of a natural person, respectively or necessary in order to pursue our legitimate interests in exercising our legal rights.</p> <p class="MsoNormal"> 12.2 <strong>Corporate governance</strong></p> <p class="MsoNormal">We may share your personal data with any member of our group, which means our subsidiaries, our ultimate holding company and its subsidiaries, as defined in section 1159 of the UK Companies Act 2006.</p> <p class="MsoNormal">When we process your personal data for the above purpose, we do so on the basis that we have a legitimate interest in pursuing business aims and objectives.</p> <p class="MsoNormal"> </p> <p class="MsoNormal">13. <strong>Data transfers</strong></p> <p class="MsoNormal">We only transfer personal data outside of the European Economic Area (EEA) when we can ensure it will be protected to a similar degree as within the EEA.</p> <p class="MsoNormal">For some of our services, such as ticket sales and social media management, we need to transfer data outside of the EEA. Your data may be transferred to Canada, which is deemed by the European Commission to provide an adequate level of protection for personal data. We may also transfer personal data to the United States to recipient organisations that are certified as adhering to the EU Privacy Shield.</p> <p class="MsoNormal"> </p> <p class="MsoNormal">14. <strong>Data Security</strong></p> <p class="MsoNormal"> 14.1 We have put in place appropriate security measures to prevent your personal data from being accidentally lost, used or accessed in an unauthorised way, altered or disclosed. In addition, we limit access to your personal data to those employees, agents, contractors and other third parties who have a business need to know. They will only process your personal data on our instructions and they are subject to a duty of confidentiality.</p> <p class="MsoNormal"> 14.2 We have put in place procedures to deal with any suspected personal data breach and will notify you and any applicable regulator of a breach where we are legally required to do so.</p> <p class="MsoNormal"> </p> <p class="MsoNormal">15. <strong>Your rights</strong></p> <p class="MsoNormal"> 15.1 Your personal data is protected by legal rights, which include your rights:</p> <p class="MsoNormal"> 15.2 If you want to exercise any of these rights, please contact us using the details above.</p> <p class="MsoNormal"> 15.2.1<strong> Request access to your personal data</strong> (commonly known as a "data subject access request"). This enables you to receive a copy of the personal data we hold about you and to check that we are lawfully processing it.</p> <p class="MsoNormal"> 15.2.2<strong> Request correction of the personal data that we hold about you</strong>. This enables you to have any incomplete or inaccurate data we hold about you corrected, though we may need to verify the accuracy of the new data you provide to us.</p> <p class="MsoNormal"> 15.2.3<strong> Request erasure of your personal data</strong>. This enables you to ask us to delete or remove personal data where there is no good reason for us continuing to process it. You also have the right to ask us to delete or remove your personal data where you have successfully exercised your right to object to processing (see below), where we may have processed your information unlawfully or where we are required to erase your personal data to comply with local law. Note, however, that we may not always be able to comply with your request of erasure for specific legal reasons which will be notified to you, if applicable, at the time of your request.</p> <p class="MsoNormal"> 15.2.4<strong> Object to processing of your personal data</strong> where we are relying on a legitimate interest (or those of a third party) and there is something about your particular situation which makes you want to object to processing on this ground as you feel it impacts on your fundamental rights and freedoms. You also have the right to object where we are processing your personal data for direct marketing purposes.</p> <p class="MsoNormal"> 15.2.5<strong> Request restriction of processing of your personal data</strong>. This enables you to ask us to suspend the processing of your personal data in the following scenarios: (a) if you want us to establish the data's accuracy; (b) where our use of the data is unlawful but you do not want us to erase it; (c) where you need us to hold the data even if we no longer require it as you need it to establish, exercise or defend legal claims; or (d) you have objected to our use of your data but we need to verify whether we have overriding legitimate grounds to use it.</p> <p class="MsoNormal"> 15.2.6<strong> Request the transfer of your personal data to you or to a third party</strong>. We will provide to you, or a third party you have chosen, your personal data in a structured, commonly used, machine-readable format. Note that this right only applies to automated information which you initially provided consent for us to use or where we used the information to perform a contract with you.</p> <p class="MsoNormal"> 15.2.7<strong> Withdraw consent at any time where we are relying on consent to process your personal data</strong>. However, this will not affect the lawfulness of any processing carried out before you withdraw your consent. If you withdraw your consent, we may not be able to provide certain products or services to you. We will advise you if this is the case at the time you withdraw your consent.</p> <p class="MsoNormal"> 15.3 You will not have to pay a fee to access your personal data (or to exercise any of the other rights). However, we may charge a reasonable fee if your request is clearly unfounded, repetitive or excessive. Alternatively, we may refuse to comply with your request in these circumstances.</p> <p class="MsoNormal"> 15.4 We will only use your personal data for the purposes for which we collected it, unless we reasonably consider that we need to use it for another reason and that reason is compatible with the original purpose. If you wish to get an explanation as to how the processing for the new purpose is compatible with the original purpose, please contact us at using the details above. If we need to use your personal data for an unrelated purpose, we will notify you and we will explain the legal basis which allows us to do so.</p> <p class="MsoNormal"> 15.5 You also have the right to complain to the Information Commissioner's Office, which regulates the processing of personal data, about how we are processing your personal data.</p> <p> </p> </div></div></div> </article> </section> </div> </div> </section> </div> </div> </div> <!-- New Cookie banner logic starts here --> <script type="text/javascript"> /** * @@name storm-cookie-banner: * @@version 0.4.0: Thu, 26 Sep 2019 12:02:09 GMT * @@author stormid * @@license MIT */ (function(root, factory) { var mod = { exports: {} }; if (typeof exports !== 'undefined') { mod.exports = exports; factory(mod.exports); module.exports = mod.exports.default; } else { factory(mod.exports); root.StormCookieBanner = mod.exports.default; } })(this, function(exports) { 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var TRIGGER_EVENTS = window.PointerEvent ? ['pointerup', 'keydown'] : ['ontouchstart' in window ? 'touchstart' : 'click', 'keydown']; var TRIGGER_KEYCODES = [13, 32]; //Modernizr cookie test var cookiesEnabled = function cookiesEnabled() { try { document.cookie = 'cookietest=1'; var ret = document.cookie.indexOf('cookietest=') !== -1; document.cookie = 'cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT'; return ret; } catch (e) { return false; } }; var writeCookie = function writeCookie(state) { //console.log('Cookie set') document.cookie = [ state.settings.name + '=' + JSON.stringify(state.consent) + ';', 'expires=' + new Date( new Date().getTime() + state.settings.expiry * 24 * 60 * 60 * 1000 ).toGMTString() + ';', state.settings.path ? 'path=' + state.settings.path + ';' : '', state.settings.domain ? 'domain=' + state.settings.domain : '', state.settings.secure ? 'secure' : '' ].join(''); }; var readCookie = function readCookie(settings) { var cookie = document.cookie .split('; ') .map(function(part) { return { name: part.split('=')[0], value: part.split('=')[1] }; }) .filter(function(part) { return part.name === settings.name; })[0]; return cookie !== undefined ? cookie : false; }; var updateCookie = function updateCookie(state) { return function(model) { return (document.cookie = [ model.name + '=' + model.value + ';', 'expires=' + model.expiry + ';', 'path=' + state.settings.path + ';', state.settings.domain ? 'domain=' + state.settings.domain + ';' : '', state.settings.secure ? 'secure' : '' ].join('')); }; }; var deleteCookies = function deleteCookies(state) { document.cookie .split('; ') .map(function(part) { return { name: part.split('=')[0], value: part.split('=')[1], expiry: 'Thu, 01 Jan 1970 00:00:01 GMT' }; }) .map(updateCookie(state)); }; var shouldReturn = function shouldReturn(e) { return ( (!!e.keyCode && !~TRIGGER_KEYCODES.indexOf(e.keyCode)) || (e.which && e.which === 3) ); }; var composeTypes = function composeTypes(opts) { return function(acc, curr) { if (acc[curr]) { acc[curr] = Object.assign({}, acc[curr], { fns: acc[curr].fns.concat(opts.types[curr].fns) }); } else acc[curr] = opts.types[curr]; return acc; }; }; var noop = function noop() {}; var isCheckable = function isCheckable(field) { return /radio|checkbox/i.test(field.type); }; var hasValue = function hasValue(input) { return ( input.value !== undefined && input.value !== null && input.value.length > 0 ); }; var groupValueReducer = function groupValueReducer(acc, input) { if (!isCheckable(input) && hasValue(input)) acc = input.value; if (isCheckable(input) && input.checked) { if (Array.isArray(acc)) acc.push(input.value); else acc = [input.value]; } return acc; }; var firstTLDs = 'ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|be|bf|bg|bh|bi|bj|bm|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|cl|cm|cn|co|cr|cu|cv|cw|cx|cz|de|dj|dk|dm|do|dz|ec|ee|eg|es|et|eu|fi|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|im|in|io|iq|ir|is|it|je|jo|jp|kg|ki|km|kn|kp|kr|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|na|nc|ne|nf|ng|nl|no|nr|nu|nz|om|pa|pe|pf|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|yt'.split( '|' ); var secondTLDs = 'azurewebsites|com|edu|gov|net|mil|org|nom|sch|caa|res|off|gob|int|tur|ip6|uri|urn|asn|act|nsw|qld|tas|vic|pro|biz|adm|adv|agr|arq|art|ato|bio|bmd|cim|cng|cnt|ecn|eco|emp|eng|esp|etc|eti|far|fnd|fot|fst|g12|ggf|imb|ind|inf|jor|jus|leg|lel|mat|med|mus|not|ntr|odo|ppg|psc|psi|qsl|rec|slg|srv|teo|tmp|trd|vet|zlg|web|ltd|sld|pol|fin|k12|lib|pri|aip|fie|eun|sci|prd|cci|pvt|mod|idv|rel|sex|gen|nic|abr|bas|cal|cam|emr|fvg|laz|lig|lom|mar|mol|pmn|pug|sar|sic|taa|tos|umb|vao|vda|ven|mie|北海道|和歌山|神奈川|鹿児島|ass|rep|tra|per|ngo|soc|grp|plc|its|air|and|bus|can|ddr|jfk|mad|nrw|nyc|ski|spy|tcm|ulm|usa|war|fhs|vgs|dep|eid|fet|fla|flå|gol|hof|hol|sel|vik|cri|iwi|ing|abo|fam|gok|gon|gop|gos|aid|atm|gsm|sos|elk|waw|est|aca|bar|cpa|jur|law|sec|plo|www|bir|cbg|jar|khv|msk|nov|nsk|ptz|rnd|spb|stv|tom|tsk|udm|vrn|cmw|kms|nkz|snz|pub|fhv|red|ens|nat|rns|rnu|bbs|tel|bel|kep|nhs|dni|fed|isa|nsn|gub|e12|tec|орг|обр|упр|alt|nis|jpn|mex|ath|iki|nid|gda|inc'.split( '|' ); var removeSubdomain = function removeSubdomain(s) { s = s.replace(/^www\./, ''); var parts = s.split('.'); while (parts.length > 3) { parts.shift(); } if ( parts.length === 3 && secondTLDs.indexOf(parts[1]) === -1 && firstTLDs.indexOf(parts[2]) === -1 ) { parts.shift(); } return parts.join('.'); }; var defaults = { name: '.CookiePreferences', path: '', domain: window.location.hostname === 'localhost' ? '' : '.' + removeSubdomain(window.location.hostname), secure: false, expiry: 365, types: {}, necessary: [], bannerTrigger: false, policyURL: '/cookie-policy', classNames: { banner: 'privacy-banner', acceptBtn: 'privacy-banner__accept', submitBtn: 'privacy-banner__submit', field: 'privacy-banner__field', form: 'privacy-banner__form', fieldset: 'privacy-banner__fieldset', legend: 'privacy-banner__legend', formContainer: 'privacy-banner__form-container', formMessage: 'privacy-banner__form-msg', title: 'privacy-banner__form-title', description: 'privacy-banner__form-description' }, savedMessage: 'Your settings have been saved.', bannerTemplate: function bannerTemplate(model) { return ( '<section role="dialog" aria-live="polite" aria-label="You privacy" class="' + model.classNames.banner + '">\n\t\t\t<div class="privacy-content">\n\t\t\t\t<div class="wrap">\n\t\t\t\t\t<div class="row">\n\t\t\t\t\t\t<!--googleoff: all-->\n\t\t\t\t\t\t<div class="privacy-banner__title">Cookies</div>\n\t\t\t\t\t\t<p>We use cookies to improve your experience on our site and show you personalised advertising.</p>\n\t\t\t\t\t\t<p>Find out more from our <a class="privacy-banner__link" rel="noopener noreferrer nofollow" href="/content/privacy-notice">privacy policy</a> and <a class="privacy-banner__link" rel="noopener noreferrer nofollow" href="' + model.policyURL + '">cookie policy</a>.</p>\n\t\t\t\t\t\t<button class="btn btn--primary ' + model.classNames.acceptBtn + '">Accept and close</button>\n\t\t\t\t\t\t<a class="privacy-banner__link" rel="noopener noreferrer nofollow" href="' + model.policyURL + '">Your options</a>\n\t\t\t\t\t\t<!--googleon: all-->\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>' ); }, messageTemplate: function messageTemplate(model) { return ( '<div class="' + model.settings.classNames.formMessage + '" aria-role="alert">' + model.settings.savedMessage + '</div>' ); }, formTemplate: function formTemplate(model) { return ( '<form class="' + model.settings.classNames.form + '" novalidate>\n\t\t\t\t' + Object.keys(model.settings.types) .map(function(type) { return ( '<fieldset class="' + model.settings.classNames.fieldset + '">\n\t\t\t\t<legend class="' + model.settings.classNames.legend + '">\n\t\t\t\t\t<span class="' + model.settings.classNames.title + '">' + model.settings.types[type].title + '</span>\n\t\t\t\t\t<span class="' + model.settings.classNames.description + '">' + model.settings.types[type].description + '</span>\n\t\t\t\t</legend>\n\t\t\t\t<div class="form-row">\n\t\t\t\t\t<div class="relative">\n\t\t\t\t\t\t<label class="privacy-banner__label">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass="' + model.settings.classNames.field + '"\n\t\t\t\t\t\t\t\ttype="radio"\n\t\t\t\t\t\t\t\tname="privacy-' + type.split(' ')[0].replace(' ', '-') + '"\n\t\t\t\t\t\t\t\tvalue="1"\n\t\t\t\t\t\t\t\t' + (model.consent[type] === 1 ? ' checked' : '') + '>\n\t\t\t\t\t\t\t<span class="privacy-banner__label-text">I am OK with this</span>\n\t\t\t\t\t\t\t<span class="privacy-banner__label-description">' + model.settings.types[type].labels.yes + '</span>\n\t\t\t\t\t\t</label> \n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="form-row">\n\t\t\t\t\t<div class="relative">\n\t\t\t\t\t\t<label class="privacy-banner__label">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass="' + model.settings.classNames.field + '"\n\t\t\t\t\t\t\t\ttype="radio"\n\t\t\t\t\t\t\t\tname="privacy-' + type.split(' ')[0].replace(' ', '-') + '"\n\t\t\t\t\t\t\t\tvalue="0"\n\t\t\t\t\t\t\t\t' + (model.consent[type] === 0 ? ' checked' : '') + '>\n\t\t\t\t\t\t\t<span class="privacy-banner__label-text">No thank you</span>\n\t\t\t\t\t\t\t<span class="privacy-banner__label-description">' + model.settings.types[type].labels.no + '</span>\n\t\t\t\t\t\t</label> \n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</fieldset>' ); }) .join('') + '\n\t\t\t<button class="' + model.settings.classNames.submitBtn + '"' + (Object.keys(model.consent).length === 0 ? ' disabled' : '') + '>Save my settings</button>\n\t\t</form>' ); } }; var initialState = function initialState(state, data) { return Object.assign({}, state, data); }; var updateConsent = function updateConsent(state, data) { return Object.assign({}, state, { consent: Object.assign({}, state.consent, data) }); }; var updateExecuted = function updateExecuted(state, data) { return Object.assign({}, state, { settings: Object.assign({}, state.settings, { types: Object.assign({}, state.settings.types, data) }) }); }; var apply = function apply(Store) { return function(state) { Object.keys(state.consent).forEach(function(key) { if (state.settings.types[key].executed === true) return; if (state.consent[key] && Boolean(state.consent[key])) { state.settings.types[key].fns.forEach(function(fn) { return fn(state); }); } }); Store.update( updateExecuted, Object.keys(state.settings.types).reduce(function(acc, type) { acc[type] = Object.assign({}, state.settings.types[type], { executed: state.settings.types[type].executed || (state.consent[type] && Boolean(state.consent[type])) }); return acc; }, {}) ); }; }; var necessary = function necessary(state) { state.settings.necessary.forEach(function(fn) { return fn(state); }); }; var initBanner = function initBanner(Store) { return function(state) { document.body.firstElementChild.insertAdjacentHTML( 'beforebegin', state.settings.bannerTemplate(state.settings) ); var banner = document.querySelector( '.' + state.settings.classNames.banner ); var acceptBtn = document.querySelector( '.' + state.settings.classNames.acceptBtn ); TRIGGER_EVENTS.forEach(function(ev) { acceptBtn.addEventListener(ev, function(e) { if (shouldReturn(e)) return; Store.update( updateConsent, Object.keys(state.settings.types).reduce(function( acc, type ) { acc[type] = 1; return acc; }, {}), [ writeCookie, apply(Store), removeBanner(banner), initForm(Store) ] ); }); }); }; }; var removeBanner = function removeBanner(banner) { return function() { return ( banner && banner.parentNode && banner.parentNode.removeChild(banner) ); }; }; var initForm = function initForm(Store) { return function(state) { var formContainer = document.querySelector( '.' + state.settings.classNames.formContainer ); if (!formContainer) return; formContainer.innerHTML = state.settings.formTemplate(state); var form = document.querySelector( '.' + state.settings.classNames.form ); var banner = document.querySelector( '.' + state.settings.classNames.banner ); var button = document.querySelector( '.' + state.settings.classNames.submitBtn ); var groups = [].slice .call( document.querySelectorAll( '.' + state.settings.classNames.field ) ) .reduce(function(groups, field) { var groupName = field .getAttribute('name') .replace('privacy-', ''); if (groups[groupName]) groups[groupName].push(field); else groups[groupName] = [field]; return groups; }, {}); var extractConsent = function extractConsent() { return Object.keys(groups).reduce(function(acc, key) { var value = groups[key].reduce(groupValueReducer, ''); if (value) acc[key] = parseInt(value); return acc; }, {}); }; var enableButton = function enableButton(e) { if ( Object.keys(extractConsent()).length !== Object.keys(groups).length ) return; button.removeAttribute('disabled'); form.removeEventListener('change', enableButton); }; button.hasAttribute('disabled') && form.addEventListener('change', enableButton); form.addEventListener('submit', function(e) { e.preventDefault(); Store.update(updateConsent, extractConsent(), [ deleteCookies, writeCookie, apply(Store), removeBanner(banner), renderMessage(button) ]); }); }; }; var renderMessage = function renderMessage(button) { return function(state) { button.insertAdjacentHTML( 'afterend', state.settings.messageTemplate(state) ); button.setAttribute('disabled', 'disabled'); window.setTimeout(function() { button.parentNode.removeChild(button.nextElementSibling); button.removeAttribute('disabled'); }, 3000); }; }; var createStore = function createStore() { //shared centralised validator state var state = {}; //state getter var getState = function getState() { return state; }; /** * Create next state by invoking reducer on current state * * Execute side effects of state update, as passed in the update * * @@param reducer [Function] * @@param nextState [Object] New slice of state to combine with current state to create next state * @@param effects [Array] Array of side effect functions to invoke after state update (DOM, operations, cmds...) */ var update = function update(reducer, nextState, effects) { state = reducer(state, nextState); // console.log(state); if (!effects) return; effects.forEach(function(effect) { effect(state); }); }; return { update: update, getState: getState }; }; var factory = function factory(settings) { if (!cookiesEnabled()) return; var Store = createStore(); var cookies = readCookie(settings); Store.update( initialState, { settings: settings, consent: cookies ? JSON.parse(cookies.value) : {} }, [ necessary, apply(Store), cookies ? noop : initBanner(Store), initForm(Store) ] ); return { getState: Store.getState }; }; var index = { init: function init(opts) { return factory( Object.assign({}, defaults, opts, { types: Object.keys(opts.types).reduce( composeTypes(opts), defaults.types ) }) ); } }; exports.default = index; }); StormCookieBanner.init({ path: '/', types: { 'performance': { title: 'Performance preferences', description: 'Performance cookies are used to measure the performance of our website and make improvements. Your personal data is not identified.', labels: { yes: 'Pages you visit and actions you take will be measured and used to improve the service', no: 'Pages you visit and actions you take will not be measured and used to improve the service' }, fns: [ () => { (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-TJ83XJS'); } ] }, 'ads': { title: 'Set your personalised ads preferences', description: 'We work with advertising partners to show you ads for our products and services across the web. You can choose whether we collect and share that data with our partners below. ', labels: { yes: 'Our partners might serve you ads knowing you have visited our website', no: 'Our partners will still serve you ads, but they will not know you have visited our website' }, fns: [ () => { (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-P3LQ4GX'); } ] } }, bannerTemplate(model){ return `<section role="dialog" aria-live="polite" aria-label="You privacy" class="${model.classNames.banner}"> <div class="privacy-content"> <div class="container"> <!--googleoff: all--> <div class="privacy-banner__title">Cookies</div> <p>We use cookies to improve your experience on our site and show you personalised advertising.</p> <p>Find out more from our <a class="privacy-banner__link" rel="noopener noreferrer nofollow" href="/content/privacy-notice">privacy notice</a> and <a href="/content/cookie-policy">cookie policy</a>.</p> <button class="btn btn--primary push--right ${model.classNames.acceptBtn}">Accept all and close</button> <a class="privacy-banner__link" rel="noopener noreferrer nofollow" href="/content/cookie-policy#preferences">Your options</a> <!--googleon: all--> </div> </div> </section>`; }, formTemplate(model){ return `<form class="${model.settings.classNames.form}" novalidate> ${Object.keys(model.settings.types).map(type => `<p><strong>${model.settings.types[type].title}</strong></p><fieldset class="${model.settings.classNames.fieldset}"> <legend class="${model.settings.classNames.legend}" style="font-size: 14px;"> <p>${model.settings.types[type].description}</p> </legend> <div class="form-row"> <div class="relative"> <label class="form-control-label form-control-label--checkbox"> <input class="form-row-checkbox__checkbox form-row-checkbox__checkbox--radio ${model.settings.classNames.field}" type="radio" name="privacy-${type.split(' ')[0].replace(' ', '-')}" value="1" ${model.consent[type] === 1 ? ` checked` : ''}> <span class="privacy-banner__label-text">I am OK with this</span> <span class="privacy-banner__label-description">${model.settings.types[type].labels.yes}</span> </label> </div> </div> <div class="form-row"> <div class="relative"> <label class="form-control-label form-control-label--checkbox"> <input class="form-row-checkbox__checkbox form-row-checkbox__checkbox--radio ${model.settings.classNames.field}" type="radio" name="privacy-${type.split(' ')[0].replace(' ', '-')}" value="0" ${model.consent[type] === 0 ? ` checked` : ''}> <span class="privacy-banner__label-text">No thank you</span> <span class="privacy-banner__label-description">${model.settings.types[type].labels.no}</span> </label> </div> </div> </fieldset>`).join('')} <button class="btn btn--primary ${model.settings.classNames.submitBtn}"${Object.keys(model.consent).length === 0 ? ` disabled` : ''}>Save my settings</button> </form>`; } }); </script> <div class="hidden-xs hidden-print"> <div id='canmore_feedback'> <a href="http://enterprises.rcahms.gov.uk/shop/image_sales/rcahms_general_enquiry.php?destination=content/privacy-notice" title="Feedback" style="top: 50%; height: 100px; width: 35px;" class="canmore_feedback-right"><img alt='Feedback' src='/sites/all/modules/custom/canmore_feedback/canmore_feedback.gif' height='100' width='35' /></a> </div> </div><script src="/sites/all/themes/bootstrap/js/bootstrap.js?sml5ma"></script> <div id="footer" class="hidden-print"> <div id="landscape" class="hidden-print"></div> <div id="canmore-main-footer" class="container"> <div class="row"> <div class="box col-xs-12 col-sm-12 col-md-12 col-lg-12"> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-5 col-lg-5"> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> <ul> <li><a href="/content/accessibility">Accessibility Policy</a></li> <li><a href="/content/buying-images">Buying Images</a></li> <li><a href="/content/privacy-notice">Privacy Notice</a></li> <li><a href="/content/cookie-policy">Cookie Policy</a></li> <li><a href="/content/legals">Legals</a></li> <li><a href="/content/glossary">Glossary</a></li> </ul> </div> <div class="box col-xs-12 col-sm-12 col-md-4 col-lg-4"> <ul> <li><a href="/content/contact">Contact</a></li> <li><a href="/contributions">MyCanmore</a></li> <li><a href="/sitemap">Sitemap</a></li> <li><a href="/user-guide/menu">User Guide</a></li> <li><a href="/content/takedown-policy">Takedown Policy</a></li> </ul> </div> <div class="box col-xs-12 col-sm-12 col-md-4 col-lg-4 text-center"> <div class="icons"> <a href="https://www.facebook.com/historicenvscotland" target="blank" title="RCAHMS Facebook page" class="facebook"></a> <a href="https://www.flickr.com/rcahms/" target="blank" title="RCAHMS Flickr page" class="flickr"></a> <a href="https://twitter.com/histenvscot" target="blank" title="RCAHMS Twitter page" class="twitter"></a> </div> </div> </div> </div> <div class="col-xs-12 col-sm-12 col-md-7 col-lg-7"> <div class="row"> <div class="box col-xs-12 col-sm-12 col-md-5 col-lg-5 text-right"> </div> <div class="box col-xs-12 col-sm-12 col-md-7 col-lg-7 text-right"> <a href="https://www.historicenvironment.scot" title="Historic Environment Scotland Website" target="blank"><img id="hes-footer-logo" typeof="foaf:Image" src="/sites/all/themes/canmore_bootstrap/css/images/hes_new.png" alt="Historic Environment Scotland Website" /></a> </div> </div> </div> </div> <div class="row"> <div class="box col-xs-12 col-sm-12 col-md-12 col-lg-12 text-right"> <p><small>© Historic Environment Scotland. Scottish Charity No. SC045925</small></p> </div> </div> </div> </div> </div> </div> </div> <script> (function ($) { Drupal.behaviors.DisableInputEnter = { attach: function(context, settings) { $('.form-autocomplete input', context).once('disable-input-enter', function() { $(this).keypress(function(e) { if (e.keyCode == 13) { e.preventDefault(); } }); }); } } })(jQuery); </script> </body> </html>