PageSourceSearch

https://keelesu.com/news/article/advice/Moving-Into-Rented-Accommodation/

html keelesu.com collected 2026-09-25 06:05:16 UTC 131,347 bytes, 2,338 lines download raw bytes

1
2
3<!DOCTYPE html>
4
5<html lang="en-GB">
6<head><!-- Powered by www.ukmsl.com - v8.90.2609.303 --><title>
7	Moving Into Rented Accommodation
8</title><meta charset="utf-8" /><link href="//static-uk.ukmsl.net/8.90/skins/print.css" rel="stylesheet" type="text/css" media="print" />
9<link href="//static-uk.ukmsl.net/8.90/skins/system.css" rel="stylesheet" type="text/css" media="all" />
10<link href="//static-uk.ukmsl.net/8.90/skins/icons.css" rel="stylesheet" type="text/css" media="all" />
11<link href="//static-uk.ukmsl.net/8.90/skins/Froala.css" rel="stylesheet" type="text/css" media="all" />
12
13<!-- start of su-meta snippet -->
14<!-- Basic Meta Tags -->
15<meta charset="utf-8">
16<meta name="viewport" content="width=device-width, initial-scale=1.0">
17<meta name="referrer" content="strict-origin-when-cross-origin">
18<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="">
19<link rel="preload" href="/assets/site_resources/Lato-Light.woff2" as="font" type="font/woff2" crossorigin>
20<link rel="preload" href="/assets/site_resources/league-spartan-700.woff2" as="font" type="font/woff2" crossorigin>
21
22<!-- Branding -->
23<meta name="theme-color" content="#22004d">
24<meta name="msapplication-TileColor" content="#22004d">
25<!--
26  Removed msapplication-navbutton-color: Windows Phone IE only, no modern
27  browser reads it (same dead-platform relic as the old UA-sniffing code).
28-->
29
30<!-- iOS / mobile web app -->
31<!-- apple-mobile-web-app-status-bar-style only accepts "default",
32     "black", or "black-translucent" — a hex color is invalid and is
33     silently ignored by iOS. Using "black-translucent" as the closest
34     supported equivalent for a dark theme-color; adjust if you want the
35     plain black bar instead. -->
36<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
37<!-- apple-mobile-web-app-capable is required for standalone/home-screen
38     mode on iOS versions before 16.4; mobile-web-app-capable alone is not
39     enough for those older Safari versions. Keeping both. -->
40<meta name="apple-mobile-web-app-capable" content="yes">
41<meta name="mobile-web-app-capable" content="yes">
42<meta name="apple-itunes-app" content="app-id=1579307063">
43
44<!-- App Titles -->
45<meta name="application-name" content="Keele SU">
46<meta name="apple-mobile-web-app-title" content="Keele SU">
47
48<!-- Icons -->
49<link rel="apple-touch-icon" sizes="180x180" href="https://keelesu.com/stylesheet/Brand/apple-touch-icon.png">
50<link rel="icon" type="image/png" sizes="32x32" href="https://keelesu.com/stylesheet/Brand/favicon-32x32.png">
51<link rel="icon" type="image/png" sizes="16x16" href="https://keelesu.com/stylesheet/Brand/favicon-16x16.png">
52<link rel="manifest" href="https://keelesu.com/stylesheet/Brand/site.webmanifest">
53<link rel="mask-icon" href="https://keelesu.com/stylesheet/Brand/safari-pinned-tab.svg" color="#2e1a47">
54<link rel="shortcut icon" href="https://keelesu.com/stylesheet/Brand/favicon.ico">
55
56<!-- Open Graph (Global defaults via MSL fields) -->
57<meta property="og:type" content="website">
58<meta property="og:site_name" content="Keele SU">
59<meta property="og:locale" content="en_GB">
60<meta property="og:url" content="https://keelesu.com/news/article/advice/moving-into-rented-accommodation/">
61<meta property="og:title" content="Moving Into Rented Accommodation">
62<meta property="og:description" content="Following these steps could save you from future problems!">
63<meta property="og:image" content="https://keelesu.com/asset/News/7171/Moving-in.png">
64
65<!-- Twitter -->
66<meta name="twitter:card" content="summary_large_image">
67<meta name="twitter:site" content="@keelesu">
68<meta name="twitter:url" content="https://keelesu.com/news/article/advice/moving-into-rented-accommodation/">
69<meta name="twitter:title" content="Moving Into Rented Accommodation">
70<meta name="twitter:description" content="Following these steps could save you from future problems!">
71<meta name="twitter:image" content="https://keelesu.com/asset/News/7171/Moving-in.png">
72
73<!-- General -->
74<meta name="author" content="Keele SU">
75<meta name="url" content="https://keelesu.com/news/article/advice/moving-into-rented-accommodation/">
76<meta name="title" content="Moving Into Rented Accommodation">
77<meta name="description" content="Following these steps could save you from future problems!">
78<meta name="image" content="https://keelesu.com/asset/News/7171/Moving-in.png">
79<!--
80  NOTE: <meta name="title"> is not a recognised SEO tag — it does nothing
81  for search engines or browsers. Confirm the CMS also emits a real
82  <title>...</title> element somewhere in this head; none is present in
83  this fragment.
84-->
85
86<!-- Facebook Verify -->
87<meta name="facebook-domain-verification" content="j8zqeuyega64aha524xuxeb1913wri" />
88
89<!--
90  Meta Pixel Code
91  NOTE: this fires unconditionally on every page load. As a UK site,
92  this is subject to UK GDPR/PECR, which requires consent before
93  non-essential tracking pixels/cookies load. If a consent-management
94  layer elsewhere gates this script (e.g. only injecting it after
95  opt-in, or holding it via a tag manager's consent mode), that's fine —
96  but as a standalone unconditional 
96<script> it loads Facebook's
97  tracker before any opt-in choice is made. Verify a consent gate wraps
98  this before shipping.
99-->
100<script>
vendor: 408 bytes, lines 100-109
100
101!function(f,b,e,v,n,t,s)
102{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
103n.callMethod.apply(n,arguments):n.queue.push(arguments)};
104if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
105n.queue=[];t=b.createElement(e);t.async=!0;
106t.src=v;s=b.getElementsByTagName(e)[0];
107s.parentNode.insertBefore(t,s)}(window, document,'script',
108'https://connect.facebook.net/en_GB/fbevents.js');
109fbq('init', '
1092123049768236773
vendor: 32 bytes, lines 109-110
109');
110fbq('track', 'PageView');
111</script>
111
112<noscript><img height="1" width="1" style="display:none"
113src="https://www.facebook.com/tr?id=2123049768236773&ev=PageView&noscript=1"
114/></noscript>
115<!-- End Meta Pixel Code -->
116
117<!-- Structured Data (Unified Organization/EducationalOrganization) -->
118<script type="application/ld+json">
119{
120  "@context": "https://schema.org",
121  "@type": ["Organization", "EducationalOrganization"],
122  "@id": "https://keelesu.com/#organization",
123  "name": "Keele University Students' Union",
124  "alternateName": "Keele SU",
125  "url": "https://keelesu.com/",
126  "logo": "https://keelesu.com/stylesheet/Brand/keelesu_rich_blue_logo_long.png",
127  "sameAs": [
128    "https://www.facebook.com/keelestudentsunion/",
129    "https://www.instagram.com/keelesu/",
130    "https://www.tiktok.com/@keelesu",
131    "https://www.youtube.com/@KeeleSU",
132    "https://www.linkedin.com/company/keele-students-union/",
133    "https://linktr.ee/keelesu"
134  ],
135  "address": {
136    "@type": "PostalAddress",
137    "streetAddress": "Keele University",
138    "addressLocality": "Keele",
139    "addressRegion": "Staffordshire",
140    "postalCode": "ST5 5BJ",
141    "addressCountry": "GB"
142  },
143  "contactPoint": {
144    "@type": "ContactPoint",
145    "telephone": "+44 1782 733700",
146    "email": "[email protected]",
147    "contactType": "Customer Service",
148    "availableLanguage": "English"
149  },
150  "parentOrganization": {
151    "@type": "CollegeOrUniversity",
152    "name": "Keele University",
153    "url": "https://www.keele.ac.uk/"
154  }
155}
156</script>
156
157
158<!-- ========================= -->
159<!-- Structured Data: Consistent Author -->
160<!-- ========================= -->
161<!--
162  This now correctly resolves: the "@id" above matches the "@id" this
163  block references below, so search engines can actually connect the
164  two entities. Previously the first schema had no "@id" at all, so the
165  link was broken.
166-->
167<script type="application/ld+json">
168{
169  "@context": "https://schema.org",
170  "@type": "Organization",
171  "@id": "https://keelesu.com/#author",
172  "name": "Keele SU Team",
173  "url": "https://keelesu.com/yoursu/aboutus/",
174  "parentOrganization": {
175    "@id": "https://keelesu.com/#organization"
176  }
177}
178</script>
178
179
180<!--
181  Canonical link.
182  IMPORTANT: this is still a client-side fallback, kept only for parity
183  with the original snippet. A canonical tag this important should
184  ideally be rendered server-side directly into the HTML <head> by the
185  CMS/MSL template, since crawlers that don't execute JavaScript (and
186  even Googlebot, under rendering-budget constraints) may never see a
187  tag injected this way. Treat this script as a safety net, not the
188  primary mechanism, and prefer wiring MSL's own canonical/URL field
189  into a real <link rel="canonical"> tag if one exists.
190
191  Fixes applied vs the original inline script:
192  - Skips entirely if a canonical <link> already exists in <head>, to
193    avoid emitting a duplicate (which causes Google to ignore or
194    arbitrarily choose between them).
195  - Does NOT force a trailing slash onto paths that already end in a
196    file extension (.aspx, .pdf, .jpg, etc.) — this site's markup
197    (ctl00_basket_lnk... control IDs) indicates ASP.NET/MSL, where many
198    real URLs end in .aspx and would 404 if forced to end in "/".
199  - Uses the built-in URL API instead of ad hoc string/regex surgery to
200    avoid double slashes or malformed protocols.
201  - Deliberately still drops the query string, matching the original
202    behavior. If any pages rely on query strings for distinct content
203    (pagination, filters, search results), those pages need their own
204    canonical logic — this generic script should not run on them.
205-->
206<script>
207(function () {
208  if (document.querySelector('link[rel="canonical"]')) return;
209
210  var url = new URL(window.location.href);
211  var path = url.pathname;
212
213  // Only add a trailing slash if the last path segment has no file
214  // extension (i.e. looks like a directory/route, not a file).
215  var lastSegment = path.split('/').pop();
216  var looksLikeFile = lastSegment.indexOf('.') !== -1;
217
218  if (!looksLikeFile && !path.endsWith('/')) {
219    path += '/';
220  }
221
222  var canonicalURL = url.origin + path;
223
224  var link = document.createElement('link');
225  link.rel = 'canonical';
226  link.href = canonicalURL;
227
228  document.head.appendChild(link);
229})();
230</script>
230
231
232<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 232-233
232
233<script async src="https://www.googletagmanager.com/gtag/js?id=
233AW-18398694871
vendor: 13 bytes, line 233
233"></script>
234<script>
235  
vendor: 138 bytes, lines 235-239
235window.dataLayer = window.dataLayer || [];
236  function gtag(){dataLayer.push(arguments);}
237  gtag('js', new Date());
238
239  gtag('config', '
239AW-18398694871
vendor: 5 bytes, line 239
239');
240</script>
240
241
242 <!-- Google Tag Manager -->
243<script>
vendor: 331 bytes, lines 243-247
243(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
244new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
245j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
246'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
247})(window,document,'script','dataLayer','
247GTM-W8L44PJ6
vendor: 3 bytes, line 247
247');
247</script>
247
248<!-- End Google Tag Manager -->
249<!-- end of su-meta snippet -->
250
251
252<!-- start of novus-head snippet -->
253<!-- JavaScript Bundle with Popper -->
254<script defer src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.8/js/bootstrap.bundle.min.js" integrity="sha512-HvOjJrdwNpDbkGJIG2ZNqDlVqMo77qbs4Me4cah0HoDrfhrbA+8SBlZn1KrvAQw7cILLPFJvdwIgphzQmMm+Pw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
vendor: 2 bytes, line 254
254
255<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
255
256<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css" integrity="sha512-2SwdPD6INVrV/lHTZbO2nodKhrnDdJK9/kg2XD1r9uGqPo1cUbujc+IYdlYdEErWNu69gVcYgdxlmVmzTWnetw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
257
258<!-- Self‑hosted fonts -->
259<style>
260/* Lato Light — Weight 300 */
261@font-face {
262  font-family: "Lato";
263  font-style: normal;
264  font-weight: 300;
265  font-display: swap;
266  src: url("https://keelesu.com/assets/site_resources/Lato-Light.woff2") format("woff2");
267}
268
269/* League Spartan Bold — Weight 700 
270@font-face {
271  font-family: "League Spartan";
272  font-style: normal;
273  font-weight: 700;
274  font-display: swap;
275  src: url("https://keelesu.com/assets/site_resources/league-spartan-700.woff2") format("woff2");
276}
277
278/* League Spartan Bold — Weight 700 */
279@font-face {
280  font-family: "League Spartan";
281  font-style: normal;
282  font-weight: 600;
283  font-display: swap;
284  src: url("https://keelesu.com/assets/site_resources/Spartan-Bold.ttf") format("ttf");
285}
286</style>
287
288
289
290
291<script>
292  (function() {
293    const canonicalLink = document.createElement('link');
294    canonicalLink.rel = 'canonical';
295    canonicalLink.href = 'https://keelesu.com' + window.location.pathname;
296    document.head.appendChild(canonicalLink);
297  })();
298</script>
298
299<!-- end of novus-head snippet -->
300
301<link href="//static-uk.ukmsl.net/8.90/skins/Controls/Rating.css" rel="stylesheet" type="text/css" media="all" />
302<link href="//static-uk.ukmsl.net/8.90/skins/Controls/Breadcrumb.css" rel="stylesheet" type="text/css" media="all" />
303<link href="//static-uk.ukmsl.net/8.90/skins/Controls/BasketLink.css" rel="stylesheet" type="text/css" media="all" />
304<link href="//static-uk.ukmsl.net/8.90/skins/Common/News/NewsItem.css" rel="stylesheet" type="text/css" media="all" />
305<link href="/stylesheet/novus/core.css?v=1405" rel="stylesheet" type="text/css" />
306<link href="/stylesheet/novus/navigation.css?v=380" rel="stylesheet" type="text/css" />
307<link href="/stylesheet/novus/bootstrap.css?v=152" rel="stylesheet" type="text/css" />
308<link href="/pagestylesheet/news/article/advice/moving-into-rented-accommodation/styles.css?v=32" rel="stylesheet" type="text/css" media="all" /><!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 65 bytes, lines 308-309
308
309<script async src="https://www.googletagmanager.com/gtag/js?id=
309G-6L5N1C41XV
vendor: 13 bytes, line 309
309"></script>
310<script>
311	
vendor: 133 bytes, lines 311-314
311window.dataLayer = window.dataLayer || [];
312	function gtag(){dataLayer.push(arguments);}
313	gtag('js', new Date());
314	gtag('config', '
314G-6L5N1C41XV
vendor: 5 bytes, line 314
314');
315</script>
315
316<link href="https://ajax.aspnetcdn.com/ajax/act/16_1_1/Content/AjaxControlToolkit/Styles/Backgrounds.min.css" type="text/css" rel="stylesheet" /></head>
317<body id="msl">
318    <form method="post" action="./" id="aspnetForm">
319<div class="aspNetHidden">
320<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
321<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
322<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="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" />
323</div>
324
325<script type="text/javascript">
326//<![CDATA[
327var theForm = document.forms['aspnetForm'];
328if (!theForm) {
329    theForm = document.aspnetForm;
330}
331function __doPostBack(eventTarget, eventArgument) {
332    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
333        theForm.__EVENTTARGET.value = eventTarget;
334        theForm.__EVENTARGUMENT.value = eventArgument;
335        theForm.submit();
336    }
337}
338//]]>
339</script>
339
340
341
342<script src="https://ajax.aspnetcdn.com/ajax/4.6/1/WebForms.js" type="text/javascript"></script>
vendor: 2 bytes, line 342
342
343<script type="text/javascript">
344//<![CDATA[
345window.WebForm_PostBackOptions||document.write('
345<script type="text/javascript" src="/WebResource.axd?d=pynGkmcFUV13He1Qd6_TZA5Pm6HoQodZMTRqDRmkRQVgWn7tOgQlDkJJRuri60lphrOTNQ2&amp;t=639190869332169432"><\/script>');//]]>
346</script>
346
347
348
349
350<script type="text/javascript">
351//<![CDATA[
352var __cultureInfo = {"name":"en-GB","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"£","NaNSymbol":"NaN","CurrencyNegativePattern":1,"NumberNegativePattern":1,"PercentPositivePattern":1,"PercentNegativePattern":1,"NegativeInfinitySymbol":"-∞","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"∞","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"‰","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"\/Date(-62135596800000)\/","MaxSupportedDateTime":"\/Date(253402300799999)\/","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2049,"IsReadOnly":true},"DateSeparator":"/","FirstDayOfWeek":1,"CalendarWeekRule":2,"FullDateTimePattern":"dd MMMM yyyy HH:mm:ss","LongDatePattern":"dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"d MMMM","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\u0027:\u0027mm\u0027:\u0027ss \u0027GMT\u0027","ShortDatePattern":"dd/MM/yyyy","ShortTimePattern":"HH:mm","SortableDateTimePattern":"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\u0027-\u0027MM\u0027-\u0027dd HH\u0027:\u0027mm\u0027:\u0027ss\u0027Z\u0027","YearMonthPattern":"MMMM yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":true,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]},"eras":[1,"A.D.",null,0]};//]]>
353</script>
353
354
355<script src="https://ajax.aspnetcdn.com/ajax/4.6/1/MicrosoftAjax.js" type="text/javascript"></script>
vendor: 2 bytes, line 355
355
356<script type="text/javascript">
357//<![CDATA[
358(window.Sys && Sys._Application && Sys.Observer)||document.write('
358<script type="text/javascript" src="/ScriptResource.axd?d=NJmAwtEo3Ipnlaxl6CMhvl6DVv6mN-f_T9GleXprYSdJat24ORSRp2MgHzKTv7RMDyjpmNp17kiLYmqNfTjOiH9ZwxJObGjuiB_78QzmIFo3Ld4bu-KqIXFacyxI7uv3b6pZYUkoIdYqrIdUk5FZxvfOUcU1&t=ffffffffbec1863d"><\/script>');//]]>
359</script>
359
360
361<script src="https://ajax.aspnetcdn.com/ajax/4.6/1/MicrosoftAjaxWebForms.js" type="text/javascript"></script>
vendor: 2 bytes, line 361
361
362<script type="text/javascript">
363//<![CDATA[
364(window.Sys && Sys.WebForms)||document.write('
364<script type="text/javascript" src="/ScriptResource.axd?d=dwY9oWetJoJoVpgL6Zq8OD0U5mUkqMO8C1rKJavZtjUNmyiUn5yn5Q5faVPjJjfK5g40WTCxLeZxWbrkdd5QwCtfh1f5-qqjMpEsCSjGTZF0ygktRjoYsDEZlkO91nN0JfonM1IFsswLnVxGcfk9jAVQXU01&t=ffffffffbec1863d"><\/script>');//]]>
365</script>
365
366
367<script src="/ScriptResource.axd?d=eE6V8nDbUVn0gtG6hKNX_LLQqoZQWKjprCuJ2vwzd_-xhZFvzpdYN1HvhwR0-7B3Hqr_wnpR4EvHv5NJ4jwU11WO1U1O0nVEyirHrhhlLQEDlf9H0&amp;t=ffffffffcfeeeb28" type="text/javascript"></script>
vendor: 2 bytes, line 367
367
368<script src="/ScriptResource.axd?d=jwf4VSQi7LeShc44FJ-gARjDXdRKLJ0JZikbIjkiK3K0aaxYQSMJL1hDW9iIpz4d1WFWDCbAiD9B3VHwW6tqUwNGdV3kp_AG2p5kOIY6k_rxaK250&amp;t=ffffffffcfeeeb28" type="text/javascript"></script>
vendor: 2 bytes, line 368
368
369<script src="/ScriptResource.axd?d=mcAASOSteirJeuV-3by3UZOJtNruZsYIpTl8r1JpV4Mxsm3aAcpK9oHAucdyYL5zoo7lY1z6v9MO3LGygzXs3875Vgs1&amp;t=ffffffffcfeeeb28" type="text/javascript"></script>
vendor: 2 bytes, line 369
369
370<script src="/ScriptResource.axd?d=nai7mGcYyE2dix_TwveLDYL6zE7N0iFboor6G0PzwTNYoKCmRJp7G6GsgADFLQe-TvHvRgQwfryZvMJEhVPvVEiPTySXSzn0vv3Ll-2aQIKMdOQ_0&amp;t=ffffffffcfeeeb28" type="text/javascript"></script>
vendor: 2 bytes, line 370
370
371<script src="/ScriptResource.axd?d=LQ1q2RBSthBAZhliMjtG__vRwJ93k2eD19a_JJXGKRDTHvOAAW2wwecea6fS5HwAepeCVI-bbRe5xVREnwYqnWFMXAEENJ0RMsvTKAZr0JylFOVo0&amp;t=ffffffffcfeeeb28" type="text/javascript"></script>
vendor: 2 bytes, line 371
371
372<script src="/ScriptResource.axd?d=HEFpVKbnoeQjkjHkFKu3ML8tJgN5292M-pV6h8xUVIQRVKlVNhb9ibhumY7Kf2uWy45yIaQZvMq7ZeDVyrRrFi5BZy-QEFaO24SiZgnPYRGIetFV0&amp;t=ffffffffcfeeeb28" type="text/javascript"></script>
vendor: 2 bytes, line 372
372
373<script src="/ScriptResource.axd?d=VOYD8Xe7kQA0lniBYXVpAu4G4933rItAj8eY7-OBKXe4e9lgtw3xbaeszqXwGVNyr8kL0POPWBOe-oqih73IXmtyNEbLZa4IbtJ4eD7To6boIW8b0&amp;t=ffffffffcfeeeb28" type="text/javascript"></script>
vendor: 2 bytes, line 373
373
374<script src="/ScriptResource.axd?d=GhMTAxdxy2a-Wl-WY5EfmRJNDAJcq3V-qsyRRGkeDIYm2HxZX9jD67pk_5L2kxRRmr9s-ixs_crdjcJrh0vf7BShBEOdQK_ooMIH6hRMeFQsXz_Q0&amp;t=ffffffffcfeeeb28" type="text/javascript"></script>
374
375<div class="aspNetHidden">
376
377	<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="F856B7D8" />
378	<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="fkhSf1NhSvjEurIehEfVq2RaePfqx+l8AAvK2g9NubZ7wLtwrUXih717APOo5vl9+RzfWSWwz9DAJgrrRYH9+DdlpOkMJscDs+UALWK5PjXqvoM7i+OfCy0HkJdTxGjrAzEJoYSpUBBrSxwZc1PhoBxTqkU=" />
379</div>
380
381        
382        
383
384        
385
386        
387
388        <div id="ctl00_pnlCatchEnter" class="CatchEnter" onkeypress="javascript:return WebForm_FireDefaultButton(event, &#39;ctl00_btnCatchEnter&#39;)">
389	
390            <input type="submit" name="ctl00$btnCatchEnter" value="" onclick="javascript:return false;" id="ctl00_btnCatchEnter" style="display:none;" />
391        
392</div>
393
394        
394<script type="text/javascript">
395//<![CDATA[
396Sys.WebForms.PageRequestManager._initialize('ctl00$ctl04', 'aspnetForm', ['tctl00$Main$RatingCtl1$upRating',''], [], [], 90, 'ctl00');
397//]]>
398</script>
398
399
400
401        <div id="skin_novus" class="page_news page_article">
402        
403<!-- start of novus-header-redesign snippet -->
404<header class="slim no-padding">
405    <div class="container">
406        <div class="row">
407            <div class="col-sm-4 hidden-sm-down branding no-padding ">
408                <a href="/"><img src="https://keelesu.com/stylesheet/Brand/navbar-logo.png" alt="KeeleSU Logo" URL='/' width="120" height="85"></a>
409                <a class="toggle-left dsk-navigation-toggle" id="navMenu" href="https://keelesu.com/" aria-expanded="false" aria-label="Open menu">
410                    <i class="nav-menu-icon fa-solid fa-bars" aria-hidden="true"></i>
411                    <span class="nav-menu-label">Menu</span>
412                </a>
413
414            </div>
415            <div class="controls col-12 col-md-8 no-padding">
416                <div id="search-form" class="search-form d-none">
417                    
418<div id="search">
419    <div role="search" id="site-search" class="mslwidget">
420	<div id="ctl00_search_pnlSearch" onkeypress="javascript:return WebForm_FireDefaultButton(event, &#39;ctl00_search_btnSubmit&#39;)">
421	
422		<label for="ctl00_search_txtSearchStr" id="ctl00_search_lblSearch" class="msl-visually-hidden">Search</label>
423	    <input name="ctl00$search$txtSearchStr" type="text" id="ctl00_search_txtSearchStr" class="textbox" placeholder="Search text..." />
424	    
425	    <input type="submit" name="ctl00$search$btnSubmit" value="Search" id="ctl00_search_btnSubmit" class="button" />
426	
427</div>
428	</div>
429</div>
430</MSL:search>
431                </div>
432                <div id="login-controls">
433                    <a id="ctl00_ctl31_lnkLogin" class="msl-loginbutton msl-loggedout " href="/login/">Log in</a>
434</MSL:Loginbutton>
435                </div>
436                <div class="admin-links desktop-admin-links">
437                    <ul class="nav-icons icons">
438                        <li>
439                            
440
441<div id="msl-basket-summary">
442    <a title="Review Basket" class="msl-basket-link" href="/shop/basket/">Basket</a>
443	<div class="msl-basket-summary-items">   
444        
445            <div class="msl-basket-itemcount-container">
446                
447                    <span class="msl-basket-noitems-text"></span>
448                
449    		        <div class="msl-basket-itemcount">0</div> 
450                
451            </div>
452        
453        
454
455        
456
457	</div> 
458</div></MSL:BasketLink>
459                            <div class="hidden-xl-down">
460                            </div>
461                        </li>
462                        <!-- CHANGED: was class="fa-solid fa-user"aria-hidden="true" - missing space
463                             meant the class and aria-hidden attributes ran together. Harmless in
464                             most browsers' lenient parsing, but invalid HTML; fixed the spacing. -->
465                        <li class="profile"><a href="https://keelesu.com/profile/"><i class="fa-solid fa-user" aria-hidden="true"></i><span class="hidden-xl-down">My Account</span></a></li>
466                        <li class="admin-container">
467                            <a href="https://keelesu.com/admin/" class="notext" id="admin-trigger"><i class="fas fa-cog" aria-hidden="true"></i><span class="hidden-xl-down">Admin Panel</span></a>
468
469                        </li>
470                        <li> <a class="searchbar" role="button" aria-label="Site Search" href="https://keelesu.com/search/"> <i class="fas fa-search fa-inverse" aria-hidden="true"></i><span class="hidden-xl-down">Site Search</span> </a> </li>
471                    </ul>
472                                                <div class="dropdown-menu">
473                                </MSL:ControlPanel>
474                                </MSL:Admin>
475                            </div>
476                </div>
477            </div>
478        </div>
479    </div>
480    <div class="container mainnav dsk-nav-c">
481        <div class="row">
482            <div class="col-xl-12">
483                </div>
484                  <div class="mobile-admin-links">
485                     <div id="login-controls">
486                    <a id="ctl00_ctl37_lnkLogin" class="msl-loginbutton msl-loggedout " href="/login/">Log in</a>
487</MSL:Loginbutton>
487
488                </div>
489</div>
490                  <div class="admin-links mobile-admin-links">
491                    <ul class="nav-icons icons">
492                        <li>
493                            
494
495<div id="msl-basket-summary">
496    <a title="Review Basket" class="msl-basket-link" href="/shop/basket/">Basket</a>
497	<div class="msl-basket-summary-items">   
498        
499            <div class="msl-basket-itemcount-container">
500                
501                    <span class="msl-basket-noitems-text"></span>
502                
503    		        <div class="msl-basket-itemcount">0</div> 
504                
505            </div>
506        
507        
508
509        
510
511	</div> 
512</div></MSL:BasketLink>
513                            <div class="hidden-xl-down">
514                            </div>
515                        </li>
516                        <!-- CHANGED: was class="fa-solid fa-user"aria-hidden="true" - missing space
517                             meant the class and aria-hidden attributes ran together. Harmless in
518                             most browsers' lenient parsing, but invalid HTML; fixed the spacing. -->
519                        <li class="profile"><a href="https://keelesu.com/profile/"><i class="fa-solid fa-user" aria-hidden="true"></i><span class="hidden-xl-down">My Account</span></a></li>
520                        <li class="admin-container">
521                            <a href="https://keelesu.com/admin/" class="notext" id="admin-trigger"><i class="fas fa-cog" aria-hidden="true"></i><span class="hidden-xl-down">Admin Panel</span></a>
522
523                        </li>
524                        <li> <a class="searchbar" role="button" aria-label="Site Search" href="https://keelesu.com/search/"> <i class="fas fa-search fa-inverse" aria-hidden="true"></i><span class="hidden-xl-down">Site Search</span> </a> </li>
525                    </ul>
526                                                <div class="dropdown-menu">
527                                </MSL:ControlPanel>
528                                </MSL:Admin>
529                            </div>
530                </div>
531                <div aria-label="Main Navigation" id="topnav" class="mslwidget dsk-nav">
532<ul class="msl_navbar">	<li><a href="/whatson/" class="msl-itemhassubnav"><span class="nav-text">Events and Gigs</span></a>
533<ul class="level_1 subnav_nav_whatson_">		<li><a href="https://keelesu.com/gigs/" class="nav_whatson_gigs_">Public Events &amp; Gigs - Open to Everyone</a></li>
534		<li><a href="/whatson/venueinfo/" class="nav_whatson_venueinfo_">Venue Info</a></li>
535</ul>
536</li>
537	<li><a href="/yourunion/" class="msl-itemhassubnav"><span class="nav-text">Student Voice</span></a>
538<ul class="level_1 subnav_nav_yourunion_">		<li><a href="/yourunion/campaigns/" class="nav_yourunion_campaigns_">Campaigns</a></li>
539		<li><a href="/yourunion/elections/" class="nav_yourunion_elections_">Elections</a></li>
540		<li><a href="/yourunion/ideas/" class="nav_yourunion_ideas_">Have Your Say - Your Ideas</a></li>
541		<li><a href="/yourunion/networks/" class="nav_yourunion_networks_">Student Networks</a></li>
542		<li><a href="/yourunion/uniondelegates/" class="nav_yourunion_uniondelegates_">Union Delegates</a></li>
543		<li><a href="/yourunion/voicereps/" class="nav_yourunion_voicereps_">Voice Reps</a></li>
544		<li><a href="/yourunion/electedofficers/" class="nav_yourunion_electedofficers_">Your Current Elected Officers</a></li>
545</ul>
546</li>
547	<li><a href="/advice/" class="msl-itemhassubnav"><span class="nav-text">Advice and Support</span></a>
548<ul class="level_1 subnav_nav_advice_">		<li><a href="/advice/aboutask/" class="nav_advice_aboutask_">About ASK</a></li>
549		<li><a href="/advice/academic/" class="nav_advice_academic_">Academic</a></li>
550		<li><a href="/advice/complaints/" class="nav_advice_complaints_">Complaints</a></li>
551		<li><a href="/advice/discipline/" class="nav_advice_discipline_">Discipline</a></li>
552		<li><a href="/advice/employment/" class="nav_advice_employment_">Employment</a></li>
553		<li><a href="/advice/family/" class="nav_advice_family_">Family</a></li>
554		<li><a href="/advice/graduating/" class="nav_advice_graduating_">Graduate Guide</a></li>
555		<li><a href="/advice/accommodation/" class="nav_advice_accommodation_">Housing</a></li>
556		<li><a href="/advice/international/" class="nav_advice_international_">International Students</a></li>
557		<li><a href="/advice/legal/" class="nav_advice_legal_">Legal</a></li>
558		<li><a href="/advice/finance/" class="nav_advice_finance_">Money</a></li>
559		<li><a href="/advice/wellbeing/" class="nav_advice_wellbeing_">Wellbeing</a></li>
560</ul>
561</li>
562	<li><a href="/activities/" class="msl-itemhassubnav"><span class="nav-text">Get Involved</span></a>
563<ul class="level_1 subnav_nav_activities_">		<li><a href="/activities/clubs-societies/" class="nav_activities_clubs-societies_">Societies</a></li>
564		<li><a href="/activities/au/" class="nav_activities_au_">Sport Clubs</a></li>
565		<li><a href="/activities/volunteering/" class="nav_activities_volunteering_">Volunteering</a></li>
566</ul>
567</li>
568	<li><a href="/shopsandservices/" class="msl-itemhassubnav"><span class="nav-text">Shops and Services</span></a>
569<ul class="level_1 subnav_nav_shopsandservices_">		<li><a href="/shopsandservices/bookinghub/" class="nav_shopsandservices_bookinghub_">Booking Hub</a></li>
570		<li><a href="/shopsandservices/printshop/" class="nav_shopsandservices_printshop_">Keele Print House</a></li>
571		<li><a href="/shopsandservices/vehiclehire/" class="nav_shopsandservices_vehiclehire_">Minibus Bookings</a></li>
572		<li><a href="/shopsandservices/shop/" class="nav_shopsandservices_shop_">Online Shop</a></li>
573		<li><a href="/shopsandservices/student-discounts/" class="nav_shopsandservices_student-discounts_">Student Discounts</a></li>
574		<li><a href="/shopsandservices/venues/" class="nav_shopsandservices_venues_">Venues &amp; Outlets</a></li>
575</ul>
576</li>
577	<li><a href="/yoursu/" class="msl-itemhassubnav"><span class="nav-text">Your Union</span></a>
578<ul class="level_1 subnav_nav_yoursu_">		<li><a href="/yoursu/aboutus/" class="nav_yoursu_aboutus_">About your SU</a></li>
579		<li><a href="/yoursu/contact/" class="nav_yoursu_contact_">Contact Us</a></li>
580		<li><a href="/yoursu/feedback/" class="nav_yoursu_feedback_">Feedback &amp; Complaints</a></li>
581		<li><a href="/yoursu/sustainability/" class="nav_yoursu_sustainability_">Sustainability &amp; Environmental Responsibility</a></li>
582		<li><a href="https://jobs.keelesu.com" class="nav_yoursu_workwithus_">Work with Us</a></li>
583		<li><a href="/yoursu/advertise/" class="nav_yoursu_advertise_">Advertise with us!</a></li>
584</ul>
585</li>
586	<li><a href="/freshers/" class="fresherstab"><span class="nav-text">
586Freshers 2026 &#127881;</span></a></li>
587</ul>
588
589</div></MSL:Navigation>
590              </div>
591            <!--end 12-->
592        </div>
593        <!--end row-->
594    </div>
595</header>
596<div class="adminmenu">
597    <div class="dropdown-menu">
598        </MSL:ControlPanel>
599        </MSL:Admin>
600        <!-- Mobile copy of admin links so MSL links appear inside the nav pop-up -->
601        <div class="admin-links mobile-admin-links">
602            <ul class="nav-icons icons">
603                <li>
604                    
605
606<div id="msl-basket-summary">
607    <a title="Review Basket" class="msl-basket-link" href="/shop/basket/">Basket</a>
608	<div class="msl-basket-summary-items">   
609        
610            <div class="msl-basket-itemcount-container">
611                
612                    <span class="msl-basket-noitems-text"></span>
613                
614    		        <div class="msl-basket-itemcount">0</div> 
615                
616            </div>
617        
618        
619
620        
621
622	</div> 
623</div></MSL:BasketLink>
624                </li>
625                <li class="profile"><a href="https://keelesu.com/profile/"><i class="fa-solid fa-user" aria-hidden="true"></i><span>My Account</span></a></li>
626                <li class="admin-container"><a href="https://keelesu.com/admin/" class="notext" id="admin-trigger-mobile"><i class="fas fa-cog" aria-hidden="true"></i><span>Admin Panel</span></a></li>
627                <li><a class="searchbar" role="button" aria-label="Site Search" href="https://keelesu.com/search/"><i class="fas fa-search fa-inverse" aria-hidden="true"></i><span>Site Search</span></a></li>
628            </ul>
629        </div>
630    </div>
631</div>
632<!-- feedback form and button  -->
633<!--
634<iframe id="feedbackForm" width="640px" height="480px" src="https://forms.office.com/Pages/ResponsePage.aspx?id=7vO7K2i2-U2wY1mJRcPUZnsNe7WejyZOv7GKwMl3GbdUMVVKMDNHNVpPSVJIQVVFT0Q5NjZHRjRLSS4u&embed=true" frameborder="0" marginwidth="0" marginheight="0" style="border: none; max-width:100%; max-height:100vh" allowfullscreen=""> </iframe>
635<div id="FBBS" class="row">
636<div id="fbButton" onclick="formToggle()">How did we do?<br />Give your Feedback here!</div>
637<div id="closeFB" onclick="hideButton()">&#x2716;</div>
638</div>-->
639<script defer>
640  document.addEventListener("DOMContentLoaded", function () {
641    let searchVisible = false;
642    const searchForm = document.getElementById("search-form");
643    const searchBars = document.querySelectorAll("a.searchbar");
644    const navMenu = document.getElementById("navMenu");
645
646    function toggleSearch() {
647      if (!searchForm) return;
648      if (!searchVisible) {
649        searchForm.classList.remove("d-none");
650        searchForm.scrollIntoView({ behavior: "smooth" });
651        searchVisible = true;
652      } else {
653        searchForm.classList.add("d-none");
654        searchVisible = false;
655      }
656    }
657
658    function hideSearch() {
659      if (searchVisible && searchForm) {
660        searchForm.classList.add("d-none");
661        searchVisible = false;
662      }
663    }
664
665    // Keep the mobile search links as real navigation to the search page.
666    // Desktop still opens the inline search form.
667    if (searchBars && searchBars.length) {
668      searchBars.forEach(function (searchBar) {
669        searchBar.addEventListener("click", function (e) {
670          if (window.innerWidth <= 767) return;
671          e.preventDefault();
672          toggleSearch();
673        });
674      });
675    }
676
677    if (navMenu) {
678      const navMenuIcon = navMenu.querySelector(".nav-menu-icon");
679      const navMenuLabel = navMenu.querySelector(".nav-menu-label");
680      const mainNav = document.querySelector(".mainnav");
681
682      function setNavMenuState(isOpen) {
683        navMenu.classList.toggle("is-open", isOpen);
684        navMenu.setAttribute("aria-expanded", String(isOpen));
685        navMenu.setAttribute("aria-label", isOpen ? "Close menu" : "Open menu");
686
687        if (navMenuIcon) {
688          navMenuIcon.classList.remove("fa-bars", "fa-xmark");
689          navMenuIcon.classList.add(isOpen ? "fa-xmark" : "fa-bars");
690        }
691
692        if (navMenuLabel) {
693          navMenuLabel.textContent = isOpen ? "Close" : "Menu";
694        }
695
696        if (mainNav) {
697          mainNav.classList.toggle("open", isOpen);
698          mainNav.style.display = isOpen ? "block" : "none";
699        }
700      }
701
702      setNavMenuState(false);
703
704      navMenu.addEventListener("click", function (e) {
705        e.preventDefault();
706        const isOpen = navMenu.classList.toggle("is-open");
707        setNavMenuState(isOpen);
708        hideSearch();
709        // also close admin menus when opening nav
710        closeAllAdmin();
711      });
712    }
713
714    // Admin menu handling (desktop and mobile)
715    function toggleAdminMenu(trigger) {
716      const container = trigger.closest(".admin-links") || document.querySelector('.adminmenu');
717      if (!container) return;
718      const dropdown = container.querySelector(".dropdown-menu");
719      if (!dropdown) return;
720      const isOpen = dropdown.classList.contains("show");
721      closeAllAdmin();
722      if (!isOpen) {
723        dropdown.classList.add("show");
724      }
725    }
726
727    function closeAllAdmin() {
728      document.querySelectorAll(".dropdown-menu").forEach(function (d) {
729        d.classList.remove("show");
730      });
731    }
732
733    // Attach handlers to admin triggers (covers #admin-trigger, #admin-trigger-mobile and any .admin-container anchors)
734    const adminTriggers = Array.from(document.querySelectorAll("a#admin-trigger, a#admin-trigger-mobile, .admin-container > a"));
735    adminTriggers.forEach(function (t) {
736      t.addEventListener("click", function (e) {
737        e.preventDefault();
738        hideSearch();
739        toggleAdminMenu(t);
740      });
741    });
742
743    // Close menus/search when clicking outside
744    document.addEventListener("click", function (e) {
745      const clickedInsideAdmin = e.target.closest(".admin-links, .adminmenu, a#admin-trigger, a#admin-trigger-mobile");
746      const clickedSearch = e.target.closest("#search-form, a.searchbar");
747      if (!clickedInsideAdmin) {
748        closeAllAdmin();
749      }
750      if (!clickedSearch) {
751        hideSearch();
752      }
753    });
754
755    // Close on Escape key
756    document.addEventListener("keydown", function (e) {
757      if (e.key === "Escape") {
758        hideSearch();
759        closeAllAdmin();
760      }
761    });
762  });
763</script>
763
764
765<script>
766document.addEventListener("DOMContentLoaded", function () {
767    const triggers = document.querySelectorAll(
768        "#admin-trigger, #admin-trigger-mobile"
769    );
770
771    const adminMenu = document.querySelector(".adminmenu");
772    const dropdown = adminMenu?.querySelector(".dropdown-menu");
773
774    if (!adminMenu || !dropdown) return;
775
776    triggers.forEach(trigger => {
777        trigger.addEventListener("click", function (e) {
778            if (window.innerWidth > 767) return;
779
780            e.preventDefault();
781
782            const isHidden =
783                adminMenu.style.display === "none" ||
784                adminMenu.style.display === "";
785
786            if (isHidden) {
787                adminMenu.style.display = "block";
788                dropdown.style.display = "contents";
789            } else {
790                adminMenu.style.display = "none";
791                dropdown.style.display = "none";
792            }
793        });
794    });
795});
796</script>
796
797<!-- end of novus-header-redesign snippet -->
798
799<div class="container-fluid" role="main">
800  <div class="row">
801    <div class="col-xl-12 no-padding">
802	        <section class="main">
803		        <div class="container no-padding">
804            		<div class="wht-container">
805      					  <div class="row">
806                               		<div class="col-xl-12">
807        					<div id="title-section">
808          						<div class="mslwidget">
809Moving Into Rented Accommodation
810</div>
811        					</div>
812        					<div class="row breadcrumbs"><div class="span12">
813<nav id="breadcrumb" class="msl-breadcrumb" aria-label="Breadcrumb">
814
815    <ul class="breadcrumb"><li><a href="/news/7171/">Advice &amp; Support</a><span class="msl-breadcrumb-separator" aria-hidden="true">&gt;</span></li><li class="current-page" aria-current="page"><span>Moving Into Rented Accommodation</span></li></ul>
816
817</nav></div></div>
818				                <div class="row">
819                               		<div class="col-xl-12">
820      						            
821        <p>
822        
823
824<div id="news">
825
826	<h1>Moving Into Rented Accommodation</h1>
827    
828    
829        <p class="byline">Charlotte Jones</p>
830    
831
832	
833		<p class="msl-article-leader">Following these steps could save you from future problems!</p>
834	
835
836    <div class="msl-tags"><span class="msl-tag">homeslider</span></div>
837	
838    
839
840    <div class="news_rating">
841        
842
843<div class="msl-rating">
844    
845    <div id="ctl00_Main_RatingCtl1_upRating">
846	
847
848            <div dir="ltr">
849                    <a id="ctl00_Main_RatingCtl1_rptRating_ctl01_lb1" title="1" class="aspNetDisabled msl-icon msl_star" style="float:left;">&nbsp;</a>
850                
851                    <a id="ctl00_Main_RatingCtl1_rptRating_ctl02_lb1" title="2" class="aspNetDisabled msl-icon msl_star" style="float:left;">&nbsp;</a>
852                
853                    <a id="ctl00_Main_RatingCtl1_rptRating_ctl03_lb1" title="3" class="aspNetDisabled msl-icon msl_star" style="float:left;">&nbsp;</a>
854                
855                    <a id="ctl00_Main_RatingCtl1_rptRating_ctl04_lb1" title="4" class="aspNetDisabled msl-icon msl_star" style="float:left;">&nbsp;</a>
856                
857                    <a id="ctl00_Main_RatingCtl1_rptRating_ctl05_lb1" title="5" class="aspNetDisabled msl-icon msl_star" style="float:left;">&nbsp;</a>
858                </div>
859                     
860            <span id="img" style="display:none;" class="msl-icon msl_updating msl-icon-16"></span>
861            <span id="txt" class="msl-rating-text">No ratings yet. Log in to rate.</span>
862
863        
864</div>
865
866    
867
868</div>
869
870    </div>
871	
872	<div class="news_image">
873        <img id="ctl00_Main_imgImage" class="main_image" src="../../../../asset/News/7171/Moving-in.png?thumbnail_width=200&amp;thumbnail_height=160&amp;resize_type=ResizeFitAllFill" alt="Students unpacking boxes" />
874            <span class="news_caption"></span>
875        
876	</div>
877	
878	<div class="news_body">
879	    <div style="font-family:'Segoe UI';font-size:14px;font-style:normal;font-weight:400;line-height:20px;"><div style="font-family:'Segoe UI';font-size:14px;font-style:normal;font-weight:400;line-height:20px;"><div style="font-family:'Segoe UI';font-size:14px;font-style:normal;font-weight:400;line-height:20px;" data-pasted="true"><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Moving into a new home is exciting, but there are a few important things to do when you first move in. Taking the time to follow these steps can help you avoid problems with your landlord, bills, and your deposit later on.</span></p><table style="width: 50%; margin: auto; border-width: 0px; border-style: inset; height: 100px;"><colgroup><col></colgroup><tbody><tr><td style="background-color: rgb(238, 232, 247); text-align: left;"><h2 data-pasted="true"><span style="font-size: 24px;">Moving-In Checklist</span></h2><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">✅ Check your deposit is protected<br />✅ Take photos and complete an inventory<br />✅ Confirm your council tax exemption<br />✅ Record meter readings<br />✅ Arrange contents insurance</span></p><br /></td></tr></tbody></table><h2 data-pasted="true"><br /></h2><h2><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;"><br /></span></h2><h2><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif; font-size: 24px;">Make Sure Your Deposit Is Protected</span></h2><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Most private landlords must protect your deposit in a government-approved tenancy deposit protection scheme and provide you with information about the scheme within 30 days.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">These schemes exist to make sure landlords cannot unfairly keep your deposit at the end of your tenancy.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">If you&#39;re unsure whether your deposit has been protected, you can check with the deposit protection schemes directly:</span></p><ul><li style="box-sizing: inherit; scrollbar-color: oklab(0.21013 0.0460792 -0.0731735) oklab(0.924716 0.0054621 -0.00859057); scrollbar-width: thin; animation: auto ease 0s 1 normal none running none !important; transition: none !important; scroll-behavior: auto !important; color: rgb(41, 105, 176); font-family: Verdana, Geneva, sans-serif;" data-pasted="true"><p style="box-sizing: inherit; animation: auto ease 0s 1 normal none running none !important; transition: none !important; scroll-behavior: auto !important; scrollbar-color: oklab(0.21013 0.0460792 -0.0731735) oklab(0.924716 0.0054621 -0.00859057); scrollbar-width: thin; margin: 0px;"><a href="http://www.depositprotection.com/" rel="external noopener" target="_blank" style="box-sizing: inherit; scrollbar-color: oklab(0.21013 0.0460792 -0.0731735) oklab(0.924716 0.0054621 -0.00859057); scrollbar-width: thin; color: rgb(41, 105, 176); text-decoration: none; background-color: transparent; touch-action: manipulation; animation: auto ease 0s 1 normal none running none !important; transition: none !important; scroll-behavior: auto !important; font-family: Verdana, Geneva, sans-serif;">Deposit Protection Service</a></p></li><li style="box-sizing: inherit; scrollbar-color: oklab(0.21013 0.0460792 -0.0731735) oklab(0.924716 0.0054621 -0.00859057); scrollbar-width: thin; animation: auto ease 0s 1 normal none running none !important; transition: none !important; scroll-behavior: auto !important; color: rgb(41, 105, 176); font-family: Verdana, Geneva, sans-serif;"><p style="box-sizing: inherit; animation: auto ease 0s 1 normal none running none !important; transition: none !important; scroll-behavior: auto !important; scrollbar-color: oklab(0.21013 0.0460792 -0.0731735) oklab(0.924716 0.0054621 -0.00859057); scrollbar-width: thin; margin: 0px;"><a href="https://www.mydeposits.co.uk/" rel="external noopener" target="_blank" style="box-sizing: inherit; scrollbar-color: oklab(0.21013 0.0460792 -0.0731735) oklab(0.924716 0.0054621 -0.00859057); scrollbar-width: thin; color: rgb(41, 105, 176); text-decoration: none; background-color: transparent; touch-action: manipulation; font-family: Verdana, Geneva, sans-serif; animation: auto ease 0s 1 normal none running none !important; transition: none !important; scroll-behavior: auto !important;">MyDeposits</a></p></li><li style="box-sizing: inherit; scrollbar-color: oklab(0.21013 0.0460792 -0.0731735) oklab(0.924716 0.0054621 -0.00859057); scrollbar-width: thin; animation: auto ease 0s 1 normal none running none !important; transition: none !important; scroll-behavior: auto !important; color: rgb(41, 105, 176); font-family: Verdana, Geneva, sans-serif;"><p style="box-sizing: inherit; animation: auto ease 0s 1 normal none running none !important; transition: none !important; scroll-behavior: auto !important; scrollbar-color: oklab(0.21013 0.0460792 -0.0731735) oklab(0.924716 0.0054621 -0.00859057); scrollbar-width: thin; margin: 0px;"><a href="https://www.tenancydepositscheme.com/" target="_blank" rel="noopener" style="box-sizing: inherit; scrollbar-color: oklab(0.21013 0.0460792 -0.0731735) oklab(0.924716 0.0054621 -0.00859057); scrollbar-width: thin; color: rgb(41, 105, 176); text-decoration: none; background-color: transparent; touch-action: manipulation; font-family: Verdana, Geneva, sans-serif; animation: auto ease 0s 1 normal none running none !important; transition: none !important; scroll-behavior: auto !important;">Tenancy Deposit Scheme</a></p></li></ul><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">You can also use&nbsp;</span><span style="color: rgb(41, 105, 176); font-family: Arial, Helvetica, sans-serif;"><a href="https://england.shelter.org.uk/housing_advice/tenancy_deposits/check_your_tenancy_deposit_is_protected" style="color: rgb(41, 105, 176);">Shelter&#39;s deposit checke</a><a href="https://england.shelter.org.uk/housing_advice/tenancy_deposits/check_your_tenancy_deposit_is_protected" style="color: rgb(41, 105, 176);">r</a></span><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">&nbsp;for guidance.</span></p><p><br /></p><div style="font-family:'Segoe UI';font-size:14px;font-style:normal;font-weight:400;line-height:20px;" data-pasted="true"><h2 data-pasted="true"><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif; font-size: 24px;">Get Proof of the Property&#39;s Condition</span></h2><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">This is one of the most important things you can do when moving in.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Make sure an inventory is completed and take clear photos of every room as soon as you move in. Pay particular attention to any existing damage, marks, stains, or broken items. This evidence can help protect you if there is a dispute about your deposit when you move out. Shelter has&nbsp;</span><span style="color: rgb(41, 105, 176); font-family: Arial, Helvetica, sans-serif;"><a href="https://england.shelter.org.uk/housing_advice/private_renting/how_to_check_and_agree_an_inventory" style="color: rgb(41, 105, 176);">more information about inventories</a></span><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">&nbsp;on their website.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">If your landlord does not provide an inventory, create your own and ask your landlord and all tenants to sign it. If your landlord is unwilling to sign, consider asking an independent witness to do so.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">If you discover any damage or disrepair, report it to your landlord in writing straight away. This creates a record of the issue and helps ensure you are not held responsible for it later.</span></p></div><div style="font-family:'Segoe UI';font-size:14px;font-style:normal;font-weight:400;line-height:20px;"><h2><br /></h2><h2 data-pasted="true"><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif; font-size: 24px;">
879Check Your Council Tax Status</span></h2><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">If everyone living in the property is a full-time student, the household should be exempt from council tax.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">The University provides information about enrolled students to the local councils covering:</span></p><ul><li style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Newcastle-under-Lyme</li><li style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Stoke-on-Trent</li><li style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Cheshire East</li></ul><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Even so, it&#39;s a good idea to contact your local council and confirm that your exemption has been applied correctly.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">If you&#39;re living outside these areas, or if there is a problem with your exemption, you can download a student status letter through eVision by selecting:</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;"><strong>Common Actions &rarr; My Status Letter</strong></span></p><p><br /></p></div><table style="width: 50%; margin: auto; text-align: left; border-width: 3px; border-style: inset; height: 120px;" data-pasted="true"><tbody><tr><td style="background-color: rgb(238, 232, 247); vertical-align: middle; text-align: left;"><div style="font-family:'Segoe UI';font-size:14px;font-style:normal;font-weight:400;line-height:20px;" data-pasted="true"><span style="font-size: 30px;">⚠️</span><strong data-pasted="true"><span style="font-size: 24px;">Don&#39;t Ignore Council Letters</span></strong><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif; font-size: 18px;"><br /><br /></span></div><div style="font-family:'Segoe UI';font-size:14px;font-style:normal;font-weight:400;line-height:20px;">Even if you&#39;re exempt from council tax, don&#39;t ignore letters, emails, or bills from the council. Responding quickly can help you avoid unnecessary charges, enforcement action, or additional costs.</div></td></tr></tbody></table><div style="font-family:'Segoe UI';font-size:14px;font-style:normal;font-weight:400;line-height:20px;"><br /><h2><br /></h2><h2 data-pasted="true"><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif; font-size: 24px;">Read the Meters</span></h2><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">If you are responsible for paying utility bills, take gas, electricity, and water meter readings as soon as you move in.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Providing opening readings to suppliers helps ensure that you are only charged for the energy and water you use, rather than the previous tenants&#39; usage.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">It&#39;s also worth agreeing with your housemates:</span></p><ul><li style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">How bills will be shared</li><li style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Who will manage the accounts</li><li style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">How payments will be collected</li></ul><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Having these conversations early can prevent disagreements later.</span></p><p><br /></p><h2><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif; font-size: 24px;">Protect Your Belongings</span></h2><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Your landlord&#39;s insurance usually covers the building, not your personal belongings.&nbsp;
879If your possessions are stolen, damaged, or destroyed, you may not be covered unless you have your own contents insurance.</span></p><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">Consider whether contents insurance is right for you, particularly if you own expensive items such as laptops, tablets, bicycles, or other valuable equipment.</span></p><p><br /></p><h2 data-pasted="true"><span style="font-size: 24px; font-family: Arial, Helvetica, sans-serif; color: rgb(40, 50, 78);">Need Advice?</span></h2><p><span style="color: rgb(40, 50, 78); font-family: Arial, Helvetica, sans-serif;">If you&#39;re unsure about your tenancy, deposit protection, council tax, or any housing-related issue, <span style="font-family: Arial, Helvetica, sans-serif; color: rgb(40, 50, 78);" data-pasted="true"><span style="color: rgb(41, 105, 176); font-size: 14px;" data-pasted="true"><a href="https://keelesu.com/advice/contact/" style="font-size: 14px;">contact ASK</a></span></span>. We&#39;re here to help you understand your rights and resolve problems before they become bigger issues.</span></p></div></div></div></div><h2><br /></h2>
880	</div>
881	
882	<div id="news_comments">
883
884        
885
886	    
887	    
888
889	</div>
890	
891	<div class="news_footer">
892		<span class="article-published">Published: 27 Jul 2021 11:52</span>
893		
894			<span class="article-updated">Last updated: 17 Sep 2026 10:45</span>
895		
896		<span class="article-viewcount">6795 views</span>
897	</div>
898	
899	
900</div>
901
902
903        
904        </p>
905
906<section class="no-padding newslist">
907<div class="container-fluid">
908<div class="row newslist-box"></div>
909</div>
910</section>
911        
912					                </div>
913				                </div>
914			        </div>
915		        </div>
916        	</section>
917    </div>
918  </div>
919</div>
920
921
922<!-- start of novus-footer snippet -->
923<footer>
924  <div class="container">
925    <!-- Advertisement Section -->
926    <!-- NOTE: this MSL:Advert control is the "Perks" banner I found on the live homepage
927         (asset/Advert/34/1.png) - it's the one image on the whole page NOT going through
928         MSL's resize pipeline (?thumbnail_width=...&resize_type=CropToFit) that every news/
929         event/officer image uses. That's set by whatever image is uploaded in Adverts Admin
930         for this advert slot, not by this template - re-uploading it there through the same
931         resize pipeline is the actual fix, this file has no control over it. -->
932    <div class="row" style="padding-top: 15px;">
933      <div class="col-12" style="text-align: center;">
934        <div class="mslwidget">
935<a href="/advertclick/33/" target="_blank"><img src="/asset/Advert/33/banner-Blue2-CitizenCard.png" alt="Apply for your Citizen card Today" /></a>
936</div>
937      </div> 
938    </div>
939
940    <!-- Footer Links -->
941    <div class="row f-links">
942      <!-- Useful Links -->
943      <div class="col-sm-4 col-xs-12 f-links-col">
944        <div class="f-links-cont">
945          <div class="f-head">Useful Links</div>
946          <div class="mslwidget footer-nav">
947<ul class="msl_navbar">	<li><a href="/yoursu/workwithus/" target="_blank"><span class="nav-text">Jobs at Keele SU</span></a></li>
948	<li><a href="/yoursu/advertise/"><span class="nav-text">Advertise</span></a></li>
949	<li><a href="/yoursu/feedback/"><span class="nav-text">Make a Complaint</span></a></li>
950	<li><a href="/tac/"><span class="nav-text">Terms &amp; Conditions</span></a></li>
951	<li><a href="/yoursu/aboutus/governance/"><span class="nav-text">Our Policies</span></a></li>
952	<li><a href="/accessibility/"><span class="nav-text">Accessibility</span></a></li>
953	<li><a href="/cookies/"><span class="nav-text">Cookies Policy</span></a></li>
954	<li><a href="/it/"><span class="nav-text">IT Support Links</span></a></li>
955	<li><a href="/accessable/" target="_blank"><span class="nav-text">Accessibility at Keele SU</span></a></li>
956	<li><a href="/system-status/"><span class="nav-text">System Status</span></a></li>
957	<li><a href="/activities/clubs-societies/committeeresources/"><span class="nav-text">Committee Resources</span></a></li>
958	<li><a href="/lostproperty/"><span class="nav-text">Lost Property</span></a></li>
959</ul>
960
961</div>
962        </div>
963      </div>
964
965      <!-- Vision, Mission, and Values -->
966      <div class="col-sm-5 col-xs-12 f-links-col">
967        <div class="f-links-cont">
968          <div class="f-head">Our Vision</div>
969          <p>Empower every student to be who they want to be and make a difference to the world.</p>
970          
971          <div class="f-head">Our Mission</div>
972          <p>Through the delivery of our quality support, activity, representation, entertainment, and value-for-money services, we will ensure that our students feel part of a community which is inclusive, where they can grow in confidence and simply be students.</p>
973          
974          <div class="f-head">Our Values</div>
975          <p>We are Global Citizens, We Challenge & Collaborate, We Unlock Potential.</p>
976        </div>
977      </div>
978
979      <!-- Contact Information and Social Media -->
980      <div class="col-sm-3 col-xs-12 f-links-col">
981        <div class="f-links-cont">
982          <div class="f-head">Contact Us</div>
983          <p>
984            Keele University Students' Union<br>
985            Keele University<br>
986            Newcastle-Under-Lyme<br>
987            Staffordshire<br>
988            ST5 5BJ<br>
989            United Kingdom
990          </p>
991          <p><i class="fas fa-phone"></i> 01782 733700</p>
992          <p><i class="fas fa-envelope"></i> <a href="mailto:[email protected]">[email protected]</a></p>
993          <p><i class="fas fa-map-marker-alt"></i> <a href="https://maps.app.goo.gl/U8Mw4fiQVAKoC1iNA/">Maps & Directions</a></p>
994        </div>
995
996        <!-- Social Media Links -->
997        <br>
998        <div class="f-head">Follow Us!</div>
999        <div id="socialsFooter" class="clearfix">
1000          <ul>
1001            <!-- Facebook -->
1002            <li>
1003              <a target="_blank" href="https://www.facebook.com/keelestudentsunion/" aria-label="Facebook" tabindex="0" role="button" aria-pressed="false">
1004                <i class="fa-brands fa-facebook"></i>
1005                <span class="social-description">Facebook</span>
1006              </a>
1007            </li>
1008            <!-- Instagram -->
1009            <li>
1010              <a target="_blank" href="https://www.instagram.com/keelesu/" aria-label="Instagram" tabindex="0" role="button" aria-pressed="false">
1011                <i class="fa-brands fa-instagram"></i>
1012                <span class="social-description">Instagram</span>
1013              </a>
1014            </li>
1015            <!-- YouTube -->
1016            <li>
1017              <a target="_blank" href="https://www.youtube.com/user/keelesu/" aria-label="YouTube" tabindex="0" role="button" aria-pressed="false">
1018                <i class="fa-brands fa-youtube"></i>
1019                <span class="social-description">YouTube</span>
1020              </a>
1021            </li>
1022            <!-- LinkedIn -->
1023            <li>
1024              <a target="_blank" href="https://www.linkedin.com/company/keelesu/" aria-label="LinkedIn" tabindex="0" role="button" aria-pressed="false">
1025                <i class="fa-brands fa-linkedin"></i>
1026                <span class="social-description">LinkedIn</span>
1027              </a>
1028            </li>
1029            <!-- TikTok -->
1030            <li>
1031              <a target="_blank" href="https://www.tiktok.com/@keele_su/" aria-label="TikTok" tabindex="0" role="button" aria-pressed="false">
1032                <i class="fa-brands fa-tiktok"></i>
1033                <span class="social-description">TikTok</span>
1034              </a>
1035            </li>
1036            <!-- LinkTree -->
1037            <li>
1038              <a target="_blank" href="https://linktr.ee/keelesu/" aria-label="LinkTree" tabindex="0" role="button" aria-pressed="false">
1039                <!-- CHANGED: added loading="lazy" - this was the one footer image without it -->
1040                <img width="32" height="32" src="https://keelesu.com/stylesheet/Brand/linktree-icon.png" alt="LinkTree" loading="lazy"/>
1041                <span class="social-description">LinkTree</span>
1042              </a>
1043            </li>
1044          </ul>
1045        </div>
1046      </div>
1047    </div>
1048
1049    <!-- Download App Section -->
1050    <div class="row">
1051      <div class="col-12">
1052        <div class="f-head text-center">Download Our App</div>
1053        <p class="text-center">
1054          <a href="https://apps.apple.com/gb/app/studentlink/id1579307063/" rel="noopener noreferrer" target="_blank" aria-label="Keele SU App on the Appstore">
1055            <i class="fa-brands fa-apple fa-2xl"></i>
1056            <span class="social-description">Keele SU iOS App</span>
1057          </a>&nbsp;&nbsp;
1058          <a href="https://play.google.com/store/apps/details?id=com.ukmsl.studentlinkplus.keele" rel="noopener noreferrer" target="_blank" aria-label="Keele SU App on the Playstore">
1059            <i class="fa-brands fa-android fa-2xl"></i>
1060            <span class="social-description">Keele SU Android App</span>
1061          </a>
1062        </p>
1063      </div>
1064    </div>
1065
1066    <!-- Footer Credits -->
1067    <div class="row">
1068      <div class="col-12">
1069        <p class="msl-footer">Keele SU is a Charitable Incorporated Organisation No.1173328</p>
1070        <p class="msl-footer">
1071          <a href="https://www.ukmsl.com/" id="poweredmsl">Powered by MSL</a>
1072        </p>
1073        <p class="msl-footer">
1074          Last Updated: Thu, 18 Jul 2024 14:17:46 GMT
1075        </p>
1076      </div>
1077    </div>
1078  </div>
1079</footer>
1080
1081<!-- Popup for Voting -->
1082<!--class="hide"-->
1083<div id="popup">
1084<MSL:VoterPopup
1085  ContainerTag=""
1086  ContainerID=""
1087  ContainerCssClass=""
1088  SuppressContainer=""
1089  ElectionId="1293"
1090  VotingPeriodNotStartedText=""
1091  VotingNotStartedText="<img src='https://keelesu.com/stylesheet/novus/electionsheaderfs.jpg' alt='Elections Banner' width='100%'>
1092      <br>You haven't voted in the current Elections &#128557
1093      <br><a href='https://keelesu.com/elections/vote/1293/'>Vote Now!</a>
1094      <br>"
1095  VotingInProgressText=""
1096  VotingCompleteText=""
1097  VotingClosedText=""
1098  HideButtonText="Close"
1099/>
1100
1101  <div id="fbmllike">
1102    <div style="clear:both"></div>
1103  </div>
1104</div>
1105
1106<!-- Microsoft Clarity Analytics -->
1107<script>
1108  (function(c, l, a, r, i, t, y) {
1109    c[a] = c[a] || function() { 
1110      (c[a].q = c[a].q || []).push(arguments);
1111    };
1112    t = l.createElement(r);
1113    t.async = true;
1114    t.src = "https://www.clarity.ms/tag/" + i;
1115    y = l.getElementsByTagName(r)[0];
1116    y.parentNode.insertBefore(t, y);
1117  })(window, document, "clarity", "script", "lqptr9hbv4");
1118</script>
1118
1119
1120<!-- Chatbot Styles -->
1121<!-- NOTE: no change needed here. Earlier I flagged this chatbot as a likely big contributor
1122     to page weight, going only off the fact that it existed. Having now seen the actual
1123     implementation: the iframe ships with loading="lazy" AND starts display:none, and the
1124     script below only flips it to display:block after a 60s timer or a manual click. A
1125     hidden, lazy iframe like this is very unlikely to be fetched during a single automated
1126     page-load measurement (the kind carbon calculators run), so this was probably already a
1127     non-issue - correcting my earlier read rather than "fixing" something that isn't broken. -->
1128<style>
1129  :root {
1130    --chat-width: 320px;
1131    --chat-height: 600px;
1132    --chat-margin: 20px;
1133    --chat-button-size: 60px;
1134  }
1135
1136  #chat-popup {
1137    position: fixed;
1138    bottom: var(--chat-margin);
1139    right: calc(var(--chat-margin) * 2);
1140    width: var(--chat-width);
1141    height: var(--chat-height);
1142    display: none;
1143    border: none;
1144    z-index: 1000;
1145  }
1146
1147  #chat-button {
1148    position: fixed;
1149    bottom: var(--chat-margin);
1150    right: var(--chat-margin);
1151    width: var(--chat-button-size);
1152    height: var(--chat-button-size);
1153    border: none;
1154    border-radius: 50%;
1155    background-color: var(--secondary-color, #65b22e);
1156    color: #fff;
1157    cursor: pointer;
1158    z-index: 1001;
1159    font-size: 1rem;
1160  }
1161
1162  .popup-container {
1163    display: none;
1164    position: fixed;
1165    top: 50%;
1166    left: 50%;
1167    transform: translate(-50%, -50%);
1168    background-color: #fff3cd;
1169    color: #856404;
1170    border: 1px solid #ffeeba;
1171    padding: 30px;
1172    border-radius: 10px;
1173    box-shadow: 0 6px 12px rgba(0,0,0,0.15);
1174    max-width: 500px;
1175    width: 90%;
1176    font-family: Arial, sans-serif;
1177    z-index: 1000;
1178    text-align: center;
1179  }
1180
1181  .popup-container h2 {
1182    margin-top: 0;
1183  }
1184
1185  .app-links a {
1186    color: #856404;
1187    text-decoration: underline;
1188    font-weight: bold;
1189  }
1190
1191  .popup-close {
1192    background-color: #856404;
1193    color: white;
1194    border: none;
1195    padding: 10px 16px;
1196    border-radius: 5px;
1197    cursor: pointer;
1198    margin-top: 15px;
1199    font-size: 1em;
1200  }
1201
1202  .popup-close:hover {
1203    background-color: #6c4f03;
1204  }
1205</style>
1206
1207<!-- Chatbot Iframe -->
1208<iframe
1209  id="chat-popup"
1210  src="https://www.chatbase.co/chatbot-iframe/KUL--w-zDPlx88ZgZl8Xh"
1211  title="Live Chat"
1212  loading="lazy"
1213></iframe>
1214
1215<!-- Chat Toggle Button -->
1216<button id="chat-button" type="button" aria-label="Open Chat">Chat</button>
1217
1218<!-- Chat Toggle Script (Vanilla JS) -->
1219<script>
1220  (function() {
1221    'use strict';
1222    
1223    function initChatToggle() {
1224      const chatButton = document.getElementById('chat-button');
1225      const chatPopup = document.getElementById('chat-popup');
1226      
1227      if (!chatButton || !chatPopup) return;
1228
1229      chatButton.addEventListener('click', function(e) {
1230        e.preventDefault();
1231        const isVisible = chatPopup.style.display === 'block';
1232        chatPopup.style.display = isVisible ? 'none' : 'block';
1233      });
1234    }
1235
1236    // Initialize when DOM is ready
1237    if (document.readyState === 'loading') {
1238      document.addEventListener('DOMContentLoaded', initChatToggle);
1239    } else {
1240      initChatToggle();
1241    }
1242  })();
1243</script>
1243
1244
1245<script>
1246window.addEventListener("load", () => {
1247  const path = window.location.pathname;
1248  const isBackend = path.includes("/admin/") || path.includes("/edit/");
1249
1250  const STORAGE_KEY = "chatPopupLastShown";
1251  const COOLDOWN_DAYS = 3;
1252
1253  // Check if popup should show
1254  function canShowPopup() {
1255    const lastShown = localStorage.getItem(STORAGE_KEY);
1256    if (!lastShown) return true;
1257
1258    const now = Date.now();
1259    const diff = now - parseInt(lastShown, 10);
1260    const cooldown = COOLDOWN_DAYS * 24 * 60 * 60 * 1000;
1261
1262    return diff > cooldown;
1263  }
1264
1265  // Save timestamp
1266  function markShown() {
1267    localStorage.setItem(STORAGE_KEY, Date.now().toString());
1268  }
1269
1270  // If admin/edit page → stop
1271  if (isBackend) {
1272    const iframe = document.getElementById("chat-popup");
1273    if (iframe) iframe.style.display = "none";
1274    return;
1275  }
1276
1277  // 🔴 If within 3 days → don't show
1278  if (!canShowPopup()) return;
1279
1280  // ✅ Show popup after 60s
1281  setTimeout(() => {
1282    const interval = setInterval(() => {
1283      const iframe = document.getElementById("chat-popup");
1284      if (iframe) {
1285        iframe.style.display = "block";
1286        iframe.click();
1287
1288        // Save that it has been shown
1289        markShown();
1290
1291        clearInterval(interval);
1292      }
1293    }, 300);
1294  }, 60000);
1295});
1296</script>
1296
1297
1298<!-- Changes Colour/Text on Chatbot Button -->
1299
1300<script>
1301document.addEventListener("DOMContentLoaded", function () {
1302  const chatPopup = document.getElementById("chat-popup");
1303  const chatButton = document.getElementById("chat-button");
1304
1305  if (!chatPopup || !chatButton) return;
1306
1307  // Store original button styles/text so we can restore them
1308  const originalText = chatButton.textContent;
1309  const originalBg = getComputedStyle(chatButton).backgroundColor;
1310  const originalColor = getComputedStyle(chatButton).color;
1311
1312  function updateChatButton() {
1313    const isVisible = getComputedStyle(chatPopup).display === "block";
1314
1315    if (isVisible) {
1316      chatButton.textContent = "Close";
1317      chatButton.style.backgroundColor = "red";
1318      chatButton.style.color = "black";
1319      chatButton.setAttribute("aria-label", "Close Chat");
1320    } else {
1321      chatButton.textContent = originalText || "Chat";
1322      chatButton.style.backgroundColor = originalBg;
1323      chatButton.style.color = originalColor;
1324      chatButton.setAttribute("aria-label", "Open Chat");
1325    }
1326  }
1327
1328  // Watch for changes to the iframe's style attribute
1329  const observer = new MutationObserver(updateChatButton);
1330  observer.observe(chatPopup, {
1331    attributes: true,
1332    attributeFilter: ["style", "class"]
1333  });
1334
1335  // Run once on load
1336  updateChatButton();
1337});
1338
1339</script>
1339
1340
1341<script>
1342// Removes empty location box from events
1343document.querySelectorAll('.location').forEach(location => {
1344    const text = location.textContent.trim();
1345
1346    if (!text) {
1347        location.style.display = 'none';
1348    }
1349});
1350</script>
1350
1351
1352<!-- Cookie Popup -->
1353<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent/3.1.1/cookieconsent.min.css" integrity="sha512-LQ97camar/lOliT/MqjcQs5kWgy6Qz/cCRzzRzUCfv0fotsCTC9ZHXaPQmJV8Xu/PVALfJZ7BDezl5lW3/qBxg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
1354<script defer src="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent/3.1.1/cookieconsent.min.js" integrity="sha512-yXXqOFjdjHNH1GND+1EO0jbvvebABpzGKD66djnUfiKlYME5HGMUJHoCaeE4D5PTG2YsSJf6dwqyUUvQvS0vaA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
vendor: 2 bytes, line 1354
1354
1355<script>
1356  (function() {
1357    'use strict';
1358    
1359    function initCookieConsent() {
1360      if (typeof window.cookieconsent === 'undefined') return;
1361      
1362      window.cookieconsent.initialise({
1363        palette: {
1364          popup: {
1365            background: "#575952"
1366          },
1367          button: {
1368            background: "#22004d"
1369          }
1370        },
1371        theme: "edgeless",
1372        content: {
1373          message: "This site uses cookies",
1374          dismiss: "Dismiss",
1375          link: "More info",
1376          href: "https://keelesu.com/cookies/"
1377        },
1378        position: "bottom-left"
1379      });
1380    }
1381
1382    window.addEventListener("load", initCookieConsent);
1383  })();
1384</script>
1384
1385
1386<!-- Accessibility Widget -->
1387<script>
1388  window.interdeal = {
1389    sitekey: "6771fa1a11958d581b731f95e0c44d43",
1390    Position: "right",
1391    domains: {
1392      js: "https://cdn.equalweb.com/",
1393      acc: "https://access.equalweb.com/"
1394    },
1395    showTooltip: true,
1396    btnStyle: {
1397      vPosition: ["92%", "20%"],
1398      scale: ["0.5", "0.5"],
1399      color: {
1400        main: "#2b0e48",
1401        second: "#ffffff"
1402      },
1403      icon: {
1404        type: 11,
1405        shape: "rounded"
1406      }
1407    }
1408  };
1409
1410  (function(doc, head, body) {
1411    'use strict';
1412    
1413    const coreCall = doc.createElement('script');
1414    coreCall.src = window.interdeal.domains.js + 'core/4.6.14/accessibility.js';
1415    coreCall.defer = true;
1416    coreCall.integrity = 'sha512-DeZBWLOEHK1CkmU3vQTNSXeENfZmhTHFmn7zzhvZCPERahpp/DTouMc1ZHOu+RAo1FTKnuKEf1NQyB76z8mU1Q==';
1417    coreCall.crossOrigin = 'anonymous';
1418    coreCall.setAttribute('data-cfasync', true);
1419    
1420    (body || head).appendChild(coreCall);
1421  })(document, document.head, document.body);
1422</script>
1422
1423
1424<!-- System Issue Popup (Vanilla JS) -->
1425<script>
1426  (function() {
1427    'use strict';
1428    
1429    function initPopup() {
1430      const popup = document.getElementById('system-issue-popup');
1431      const closeBtn = document.querySelector('.popup-close');
1432      
1433      if (!popup) return;
1434
1435      // Check if popup was already dismissed in this session
1436      const dismissed = sessionStorage.getItem('popupDismissed');
1437      
1438      if (!dismissed) {
1439        setTimeout(function() {
1440          popup.style.display = 'block';
1441        }, 1000);
1442      }
1443
1444      // Close button handler
1445      if (closeBtn) {
1446        closeBtn.addEventListener('click', function() {
1447          popup.style.display = 'none';
1448          sessionStorage.setItem('popupDismissed', 'true');
1449        });
1450      }
1451    }
1452
1453    // Initialize when DOM is ready
1454    if (document.readyState === 'loading') {
1455      document.addEventListener('DOMContentLoaded', initPopup);
1456    } else {
1457      initPopup();
1458    }
1459  })();
1460</script>
1460
1461<!-- end of novus-footer snippet -->
1462
1463<script type="text/javascript">
1464  $(document).ready(function () {
1465    
1466<!-- start of novus-scripts snippet -->
1467// Enhanced Site Script - Optimized Vanilla JavaScript
1468// Performance optimized with caching and efficient DOM operations
1469//
1470// Fixes applied in this version:
1471// 1. Moved the "accessibility cleanup / admin controls / basket buttons /
1472//    event location / referendum" block OUT of the newsItems.forEach loop.
1473//    It previously only ran once per news-scroller item (and not at all
1474//    when there were no news items) instead of once per page load.
1475// 2. Removed no-op `return false` inside a native addEventListener handler
1476//    (that only works with jQuery); replaced with explicit preventDefault.
1477// 3. Added aria-expanded updates to the nav toggle and admin trigger buttons
1478//    so assistive tech can announce expanded/collapsed state.
1479// 4. Added aria-hidden="true" to the accordion chevron icon, and aria-controls
1480//    linking the accordion title to its content panel, for consistency with
1481//    the slider's icons and proper ARIA relationships.
1482// 5. Guarded the popup auto-focus so it only steals focus when the popup is
1483//    actually visible, instead of unconditionally on every page load.
1484// 6. Removed dead/commented-out code (legacy UA sniffing comment left as-is
1485//    where still functionally relevant, but the disabled bxSlider/doubleTap
1486//    leftovers were removed).
1487
1488(function() {
1489  'use strict';
1490
1491  const $ = (selector, context = document) => context.querySelector(selector);
1492
1493  const $$ = (selector, context = document) => {
1494    return Array.from(context.querySelectorAll(selector));
1495  };
1496
1497  // Batch DOM operations
1498  const domBatch = {
1499    operations: [],
1500    add(fn) {
1501      this.operations.push(fn);
1502    },
1503    execute() {
1504      requestAnimationFrame(() => {
1505        this.operations.forEach(fn => fn());
1506        this.operations = [];
1507      });
1508    }
1509  };
1510
1511  // Double Tap To Go (optimized with event delegation where possible)
1512  function doubleTapToGo(selector) {
1513    if (!('ontouchstart' in window) &&
1514        !navigator.msMaxTouchPoints &&
1515        !navigator.userAgent.toLowerCase().match(/windows phone os 7/i)) {
1516      return;
1517    }
1518
1519    let lastTapped = null;
1520    const container = document.getElementById('topnav');
1521    if (!container) return;
1522
1523    container.addEventListener('click', function(e) {
1524      const element = e.target.closest(selector);
1525      if (element && element !== lastTapped) {
1526        e.preventDefault();
1527        lastTapped = element;
1528      }
1529    });
1530
1531    document.addEventListener('click', function(e) {
1532      if (lastTapped && !lastTapped.contains(e.target)) {
1533        lastTapped = null;
1534      }
1535    });
1536
1537    document.addEventListener('touchstart', function(e) {
1538      if (lastTapped && !lastTapped.contains(e.target)) {
1539        lastTapped = null;
1540      }
1541    }, { passive: true });
1542  }
1543
1544  // Relative time formatting (cached results)
1545  const timeCache = new Map();
1546  function relTime(dateString) {
1547    if (timeCache.has(dateString)) {
1548      return timeCache.get(dateString);
1549    }
1550
1551    const date = new Date(dateString);
1552    const now = new Date();
1553    const diff = now - date;
1554    const seconds = Math.floor(diff / 1000);
1555    const minutes = Math.floor(seconds / 60);
1556    const hours = Math.floor(minutes / 60);
1557    const days = Math.floor(hours / 24);
1558
1559    let result;
1560    if (days > 7) result = date.toLocaleDateString();
1561    else if (days > 0) result = `${days} day${days > 1 ? 's' : ''} ago`;
1562    else if (hours > 0) result = `${hours} hour${hours > 1 ? 's' : ''} ago`;
1563    else if (minutes > 0) result = `${minutes} minute${minutes > 1 ? 's' : ''} ago`;
1564    else result = 'Just now';
1565
1566    timeCache.set(dateString, result);
1567    return result;
1568  }
1569
1570  // Main initialization (optimized with fewer DOM queries)
1571  function init() {
1572    const body = document.body;
1573    const mainNav = document.querySelector('.mainnav');
1574
1575    // Remove admin elements for logged out users (single pass)
1576    if (document.querySelector('.msl-loggedout')) {
1577      const adminSelectors = '.admin-links ul li.admin-container, #admin-trigger, .admin-links ul li.profile';
1578      $$(adminSelectors).forEach(el => el.remove());
1579    }
1580
1581    // Event delegation for navigation toggle
1582    body.addEventListener('click', function(e) {
1583      const toggle = e.target.closest('a[class*="toggle-left"]');
1584      if (toggle) {
1585        if (!mainNav.classList.contains('show-nav')) {
1586          body.classList.remove('show-admin');
1587        }
1588        mainNav.classList.toggle('show-nav');
1589        toggle.setAttribute('aria-expanded', mainNav.classList.contains('show-nav'));
1590        return;
1591      }
1592
1593      // Admin trigger
1594      const adminTrigger = e.target.closest('#admin-trigger');
1595      if (adminTrigger) {
1596        e.preventDefault();
1597        if (!body.classList.contains('show-admin')) {
1598          mainNav.classList.remove('show-nav');
1599        }
1600        body.classList.toggle('show-admin');
1601        adminTrigger.setAttribute('aria-expanded', body.classList.contains('show-admin'));
1602        return;
1603      }
1604
1605      // Shop tile clicks
1606      const shopTile = e.target.closest('.shop-cat li');
1607      if (shopTile) {
1608        const link = shopTile.querySelector('a');
1609        if (link) {
1610          e.preventDefault();
1611          window.location = link.href;
1612          return;
1613        }
1614      }
1615
1616      // Accordion clicks
1617      const accordionTitle = e.target.closest('.accordion-title');
1618      if (accordionTitle) {
1619        handleAccordion(accordionTitle);
1620      }
1621
1622      // Submenu clicks
1623      const submenuLink = e.target.closest('#topnav ul.msl_navbar li:has(ul) a');
1624      if (submenuLink) {
1625        const parent = submenuLink.parentElement;
1626        const siblings = Array.from(parent.parentElement.children).filter(el => el !== parent);
1627
1628        siblings.forEach(sib => {
1629          const openUl = sib.querySelector('ul.open');
1630          if (openUl) openUl.classList.remove('open');
1631        });
1632
1633        const firstUl = parent.querySelector('ul');
1634        if (firstUl) firstUl.classList.toggle('open');
1635      }
1636    });
1637
1638    // Enable double-tap navigation
1639    doubleTapToGo('#topnav ul.msl_navbar > li:has(ul) > a');
1640
1641    // Batch DOM manipulations
1642    const exploreTiles = $$('.explore-tiles ul li');
1643    const shopTiles = $$('.shop-cat li');
1644    const tables = $$('#main table:not([class])');
1645    const newsItems = $$('#scroller .news_item');
1646    const mslNewsItems = $$('.msl-news .msl-item');
1647    const bannerItems = $$('#banner .msl-news .msl-item');
1648
1649    // Process explore tiles
1650    exploreTiles.forEach(tile => {
1651      const link = tile.querySelector('a');
1652      if (!link) return;
1653
1654      if (!link.querySelector('.msl-imagenav-image')) {
1655        const img = document.createElement('img');
1656        img.src = 'https://keelesu.com/stylesheet/Brand/image_nav_default.png';
1657        img.alt = 'KeeleSU Branded Image Placeholder';
1658        img.width = 570;
1659        img.height = 285;
1660        img.className = 'msl-imagenav-image';
1661        link.appendChild(img);
1662      }
1663
1664      const desc = tile.querySelectorAll('.msl-imagenav-description, .msl-imagenav-title');
1665      if (desc.length > 0) {
1666        const wrapper = document.createElement('div');
1667        wrapper.className = 'explore_description';
1668        desc[0].parentNode.insertBefore(wrapper, desc[0]);
1669        desc.forEach(el => wrapper.appendChild(el));
1670
1671        const title = wrapper.querySelector('.msl-imagenav-title');
1672        const description = wrapper.querySelector('.msl-imagenav-description');
1673        if (title && description) {
1674          description.parentNode.insertBefore(title, description.nextSibling);
1675        }
1676
1677        const image = tile.querySelector('.msl-imagenav-image');
1678        if (image && wrapper) {
1679          image.parentNode.insertBefore(wrapper, image.nextSibling);
1680        }
1681      }
1682    });
1683
1684    // Process shop tiles
1685    shopTiles.forEach(tile => {
1686      const name = tile.querySelector('.msl-product-name');
1687      const price = tile.querySelector('.msl-product-price');
1688
1689      if (name && price && !name.parentElement.classList.contains('details')) {
1690        const wrapper = document.createElement('div');
1691        wrapper.className = 'details';
1692        name.parentNode.insertBefore(wrapper, name);
1693        wrapper.appendChild(name);
1694        wrapper.appendChild(price);
1695      }
1696    });
1697
1698    // Wrap tables
1699    tables.forEach(table => {
1700      table.className = 'table table-light table-bordered table-striped';
1701      const wrapper = document.createElement('div');
1702      wrapper.className = 'table-responsive';
1703      table.parentNode.insertBefore(wrapper, table);
1704      wrapper.appendChild(table);
1705    });
1706
1707    // Basket handling
1708    $$('.product_box > .btn').forEach(btn => btn.value = 'Add to Basket');
1709
1710    const basket = document.getElementById('basket');
1711    if (basket) {
1712      const basketItems = basket.querySelectorAll('dt');
1713      const itemCount = basketItems.length;
1714      const basketContainer = document.querySelector('.basket-container');
1715
1716      if (itemCount > 0 && basketContainer) {
1717        const basketCount = document.createElement('span');
1718        basketCount.className = 'basket-count';
1719        basketCount.textContent = itemCount;
1720        basketCount.setAttribute('aria-label', `${itemCount} item${itemCount > 1 ? 's' : ''} in basket`);
1721        basketContainer.style.display = '';
1722        basketContainer.classList.add('bagged');
1723        const link = basketContainer.querySelector('a');
1724        if (link) link.appendChild(basketCount);
1725      } else if (basketContainer) {
1726        basketContainer.style.display = 'none';
1727      }
1728
1729      let totalQty = 0;
1730      basket.querySelectorAll('.qty').forEach(qty => {
1731        const match = qty.textContent.match(/\d+/);
1732        if (match) {
1733          const num = parseInt(match[0], 10);
1734          if (!isNaN(num)) totalQty += num;
1735        }
1736      });
1737
1738      if (totalQty > 0) {
1739        const basketIcon = document.querySelector('.basket-icon');
1740        if (basketIcon) {
1741          const quantitySpan = document.createElement('span');
1742          quantitySpan.className = 'basket-quantity';
1743          quantitySpan.setAttribute('aria-label', `${totalQty} item${totalQty > 1 ? 's' : ''} in basket`);
1744          quantitySpan.innerHTML = `<div class="quantity-inner" aria-hidden="true">${totalQty}</div>`;
1745          basketIcon.appendChild(quantitySpan);
1746        }
1747      }
1748
1749      basketItems.forEach(dt => {
1750        const dd = dt.nextElementSibling?.nextElementSibling;
1751        if (dd) {
1752          const wrapper = document.createElement('div');
1753          wrapper.className = 'basket-item';
1754          dt.parentNode.insertBefore(wrapper, dt);
1755          wrapper.appendChild(dt);
1756          wrapper.appendChild(dd);
1757        }
1758      });
1759    }
1760
1761    // Add rel="noopener" to target="_blank" links
1762    $$('a[target="_blank"]').forEach(link => {
1763      const rel = link.getAttribute('rel') || '';
1764      if (!rel.includes('noopener')) {
1765        link.setAttribute('rel', (rel + ' noopener').trim());
1766      }
1767    });
1768
1769    // News scroller formatting
1770    newsItems.forEach(item => {
1771      const title = item.querySelector('h5');
1772      if (title) {
1773        const newTitle = document.createElement('h2');
1774        newTitle.innerHTML = title.innerHTML;
1775        title.replaceWith(newTitle);
1776
1777        const leader = item.querySelector('p.leader');
1778        const newsDetail = document.createElement('div');
1779        newsDetail.className = 'news-detail';
1780        newsDetail.innerHTML = `<div class="news-detail-cell">${newTitle.outerHTML}</div>`;
1781        item.appendChild(newsDetail);
1782
1783        if (leader) {
1784          newsDetail.querySelector('.news-detail-cell').appendChild(leader);
1785        }
1786      }
1787    });
1788
1789    // --- The block below previously lived (incorrectly) inside the
1790    // newsItems.forEach loop above, so it only ran once per news item
1791    // and not at all when #scroller had no news items. It now runs
1792    // exactly once per page load, as intended. ---
1793
1794    // Accessibility cleanup
1795    const popup = document.querySelector('.popup.vp_form');
1796    if (popup) {
1797      popup.setAttribute('tabindex', '0');
1798      popup.setAttribute('title', 'Modal form popup');
1799      // Only steal focus if the popup is actually visible/open, so we don't
1800      // yank focus away from the page on every load when it's hidden.
1801      const isVisible = popup.offsetParent !== null &&
1802        window.getComputedStyle(popup).display !== 'none';
1803      if (isVisible) popup.focus();
1804    }
1805
1806    if (typeof mslUserInfo === 'undefined') {
1807      $$('#skip-to-user, #skip-to-admin, #skip-to-basket').forEach(el => el.remove());
1808    } else {
1809      const skipLogin = document.getElementById('skip-to-login');
1810      if (skipLogin) skipLogin.remove();
1811    }
1812
1813    $$('[aria-label="Site navigation"] > ul > li > a > span').forEach(span => {
1814      const h2 = document.createElement('h2');
1815      span.parentNode.insertBefore(h2, span);
1816      h2.appendChild(span);
1817    });
1818
1819    const adminControls = document.querySelector('.controls-container');
1820    if (adminControls) {
1821      if (adminControls.querySelectorAll('li').length > 0) {
1822        adminControls.style.display = 'block';
1823      } else {
1824        const skipAdmin = document.getElementById('skip-to-admin');
1825        if (skipAdmin) skipAdmin.remove();
1826      }
1827    }
1828
1829    const eventLocation = document.querySelector('.event-location');
1830    if (eventLocation && eventLocation.textContent.length === 1) {
1831      eventLocation.style.display = 'none';
1832    }
1833
1834    $$('.qty > .remove').forEach(btn => btn.textContent = '');
1835
1836    const reviewBtn = document.getElementById('ctl00_basket_lnkReviewBasket');
1837    if (reviewBtn) {
1838      reviewBtn.classList.add('btn', 'btn-primary');
1839    }
1840
1841    const checkoutBtn = document.getElementById('ctl00_basket_lnkCheckout');
1842    if (checkoutBtn) {
1843      checkoutBtn.classList.add('btn', 'btn-secondary');
1844    }
1845
1846    // Format publication metadata for news items
1847    mslNewsItems.forEach(item => {
1848      const title = item.querySelector('.msl-title');
1849      const org = item.querySelector('.msl-organisation');
1850      const byline = item.querySelector('.msl-byline');
1851      const pubDateEl = item.querySelector('.msl-pubdate');
1852
1853      if (pubDateEl) {
1854        const pubDate = pubDateEl.textContent;
1855        const isBanner = item.closest('.mslwidget')?.classList.contains('banner');
1856        pubDateEl.textContent = isBanner ? 'Posted ' + relTime(pubDate) : relTime(pubDate);
1857      }
1858
1859      if (org && byline && title) {
1860        org.textContent += ' | ' + byline.textContent;
1861        title.parentNode.insertBefore(org, title);
1862        byline.remove();
1863      } else if (org && title) {
1864        title.parentNode.insertBefore(org, title);
1865      } else if (byline && title) {
1866        byline.classList.add('msl-organisation');
1867        title.parentNode.insertBefore(byline, title);
1868      }
1869    });
1870
1871    // Banner formatting
1872    bannerItems.forEach(item => {
1873      const h = item.querySelector('h3');
1874      const d = item.querySelector('.msl-pubdate');
1875      const o = item.querySelector('.msl-organisation');
1876
1877      if (h) {
1878        h.classList.remove('msl-title');
1879        const wrapper = document.createElement('div');
1880        wrapper.className = 'msl-title';
1881        h.parentNode.insertBefore(wrapper, h);
1882        wrapper.appendChild(h);
1883
1884        if (d) h.parentNode.insertBefore(d, h.nextSibling);
1885        if (o) h.parentNode.insertBefore(o, h);
1886      }
1887    });
1888
1889    // Hide "More" buttons if no content
1890    const latestEventP = document.querySelector('.banner-latest .latest-event .msl_eventlist > p');
1891    if (latestEventP && latestEventP.textContent.length > 0) {
1892      const btnGroup = document.querySelector('.banner-latest .latest-event .btn-group');
1893      if (btnGroup) btnGroup.style.display = 'none';
1894    }
1895
1896    const noNewsMsg = document.querySelector('.banner-latest .latest-news .msl-no-news-message');
1897    if (noNewsMsg && noNewsMsg.textContent.length > 0) {
1898      const btnGroup = document.querySelector('.banner-latest .latest-news .btn-group');
1899      if (btnGroup) btnGroup.style.display = 'none';
1900    }
1901
1902    // Referendum styling
1903    if (document.querySelector('.referendum')) {
1904      $$('.referendum .vote').forEach(el => el.classList.toggle('btn-group'));
1905      $$('.referendum .votenow').forEach(el => {
1906        el.classList.add('btn', 'btn-primary');
1907      });
1908    }
1909  }
1910
1911  function handleAccordion(title) {
1912    const tabId = title.dataset.tab;
1913    const content = document.getElementById(tabId);
1914    if (!content) return;
1915
1916    // Ensure the ARIA relationship between title and content is present.
1917    if (!title.hasAttribute('aria-controls')) {
1918      title.setAttribute('aria-controls', tabId);
1919    }
1920
1921    const parent = content.parentElement;
1922    const siblings = Array.from(parent.parentElement.children).filter(el => el !== parent);
1923
1924    const isVisible = window.getComputedStyle(content).display !== 'none';
1925    content.style.display = isVisible ? 'none' : 'block';
1926
1927    siblings.forEach(sib => {
1928      const sibContent = sib.querySelector('.accordion-content');
1929      if (sibContent) sibContent.style.display = 'none';
1930    });
1931
1932    title.classList.toggle('active-title');
1933    siblings.forEach(sib => {
1934      const sibTitle = sib.querySelector('.accordion-title');
1935      if (sibTitle) sibTitle.classList.remove('active-title');
1936    });
1937
1938    title.setAttribute('aria-expanded', title.classList.contains('active-title'));
1939
1940    const icon = title.querySelector('i.fa-chevron-down');
1941    if (icon) {
1942      icon.classList.toggle('chevron-top');
1943      icon.setAttribute('aria-hidden', 'true');
1944    }
1945
1946    siblings.forEach(sib => {
1947      const sibIcon = sib.querySelector('.accordion-title i.fa-chevron-down');
1948      if (sibIcon) {
1949        sibIcon.classList.remove('chevron-top');
1950        sibIcon.setAttribute('aria-hidden', 'true');
1951      }
1952    });
1953  }
1954
1955  // Initialize when DOM is ready
1956  if (document.readyState === 'loading') {
1957    document.addEventListener('DOMContentLoaded', init);
1958  } else {
1959    init();
1960  }
1961})();
1962
1963
1964(function() {
1965  function ready(fn) {
1966    if (document.readyState !== 'loading') fn();
1967    else document.addEventListener('DOMContentLoaded', fn);
1968  }
1969
1970  ready(function initAllSliders() {
1971    // Support multiple instances: ID (hero/mini hook) and class (mini)
1972    var containers = Array.prototype.slice.call(
1973      document.querySelectorAll('#sliderControl, .sliderControls-mini')
1974    );
1975
1976    // Remove duplicates if the same element is returned twice
1977    containers = containers.filter(function(el, i, arr){
1978      return arr.indexOf(el) === i;
1979    });
1980
1981    containers.forEach(function(container){
1982      initSliderContainer(container);
1983    });
1984  });
1985
1986  function initSliderContainer(container) {
1987    // Prevent double init
1988    if (container.dataset.sliderInit === '1') return;
1989
1990    // --- STEP 1: Collect slides (news first; else adapt events) ---
1991    var slides = Array.prototype.slice.call(container.querySelectorAll('.news_item'));
1992
1993    if (!slides.length) {
1994      // Try events markup and adapt to news structure
1995      var eventSlides = Array.prototype.slice.call(container.querySelectorAll('.event_item'));
1996      if (eventSlides.length) {
1997        slides = adaptEventsToNews(container, eventSlides);
1998      }
1999    }
2000
2001    if (!slides.length) return; // nothing to do
2002
2003    // --- STEP 2: Track setup ---
2004    var track = container.querySelector('.slider-track');
2005    var createdTrack = false;
2006
2007    if (!track) {
2008      track = document.createElement('div');
2009      track.className = 'slider-track';
2010      createdTrack = true;
2011    }
2012
2013    // Ensure each slide has the expected inner structure
2014    slides.forEach(function(slide, i) {
2015      // If not already structured, build .slide-grid with .slide-image & .slide-text
2016      var hasGrid = slide.querySelector('.slide-grid');
2017      if (!hasGrid) {
2018        var titleBlock = slide.querySelector('h2, h3, h4, h5');
2019        var leader     = slide.querySelector('.leader');
2020        var imageWrap  = slide.querySelector('.news_image');
2021
2022        var grid    = document.createElement('div');
2023        grid.className = 'slide-grid';
2024
2025        var textCol = document.createElement('div');
2026        textCol.className = 'slide-text';
2027
2028        var imageCol = document.createElement('div');
2029        imageCol.className = 'slide-image';
2030
2031        if (imageWrap) {
2032          var img = imageWrap.querySelector('img');
2033          if (img) {
2034            img.removeAttribute('width');
2035            img.removeAttribute('height');
2036            img.loading = 'lazy';
2037          }
2038          imageCol.appendChild(imageWrap);
2039        }
2040
2041        if (titleBlock) textCol.appendChild(titleBlock);
2042        if (leader)     textCol.appendChild(leader);
2043
2044        while (slide.firstChild) slide.removeChild(slide.firstChild);
2045        slide.appendChild(grid);
2046        grid.appendChild(imageCol);
2047        grid.appendChild(textCol);
2048      }
2049
2050      // A11y
2051      slide.setAttribute('role', 'group');
2052      slide.setAttribute('aria-roledescription', 'slide');
2053      slide.setAttribute('aria-label', (i + 1) + ' of ' + slides.length);
2054
2055      // Move into track if we just created it
2056      if (createdTrack) track.appendChild(slide);
2057    });
2058
2059    // Insert track if we created it
2060    if (createdTrack) {
2061      container.insertBefore(track, container.firstChild);
2062    }
2063
2064    // --- STEP 3: Controls & dots (create only if not present) ---
2065    var prevBtn = container.querySelector('.slider-edge.left');
2066    var nextBtn = container.querySelector('.slider-edge.right');
2067
2068    if (!prevBtn) {
2069      prevBtn = document.createElement('button');
2070      prevBtn.type = 'button';
2071      prevBtn.className = 'slider-edge left';
2072      prevBtn.setAttribute('aria-label', 'Previous slide');
2073      prevBtn.innerHTML = '<i class="fa-solid fa-chevron-left" aria-hidden="true"></i>';
2074      container.appendChild(prevBtn);
2075    }
2076
2077    if (!nextBtn) {
2078      nextBtn = document.createElement('button');
2079      nextBtn.type = 'button';
2080      nextBtn.className = 'slider-edge right';
2081      nextBtn.setAttribute('aria-label', 'Next slide');
2082      nextBtn.innerHTML = '<i class="fa-solid fa-chevron-right" aria-hidden="true"></i>';
2083      container.appendChild(nextBtn);
2084    }
2085
2086    var dotsWrap = container.querySelector('.slider-dots');
2087    if (!dotsWrap) {
2088      dotsWrap = document.createElement('div');
2089      dotsWrap.className = 'slider-dots';
2090      dotsWrap.setAttribute('role', 'tablist');
2091      dotsWrap.setAttribute('aria-label', 'Slide navigation');
2092      container.appendChild(dotsWrap);
2093    }
2094
2095    // Pause/Play control so autoplay can be stopped by keyboard/AT users,
2096    // not just via mouseenter.
2097    var pauseBtn = container.querySelector('.slider-pause');
2098    if (!pauseBtn) {
2099      pauseBtn = document.createElement('button');
2100      pauseBtn.type = 'button';
2101      pauseBtn.className = 'slider-pause';
2102      container.appendChild(pauseBtn);
2103    }
2104
2105    container.classList.add('slider-initialized');
2106    container.dataset.sliderInit = '1';
2107
2108    // --- STEP 4: State & behavior ---
2109    var index = 0;
2110    var autoTimer = null;
2111    var AUTO_MS = 6000;
2112    var PAUSE_ON_HOVER = true;
2113    var prefersReducedMotion = window.matchMedia &&
2114      window.matchMedia('(prefers-reduced-motion: reduce)').matches;
2115    var userPaused = prefersReducedMotion; // start paused if user prefers reduced motion
2116
2117    // Dots
2118    var dots = [];
2119    function buildDots() {
2120      while (dotsWrap.firstChild) dotsWrap.removeChild(dotsWrap.firstChild);
2121      dots = slides.map(function(_, i) {
2122        var b = document.createElement('button');
2123        b.type = 'button';
2124        b.setAttribute('role', 'tab');
2125        b.setAttribute('aria-label', 'Go to slide ' + (i + 1));
2126        b.addEventListener('click', function() { goTo(i); });
2127        dotsWrap.appendChild(b);
2128        return b;
2129      });
2130    }
2131
2132    function updatePauseButton() {
2133      var isPaused = !autoTimer;
2134      pauseBtn.setAttribute('aria-label', isPaused ? 'Play slideshow' : 'Pause slideshow');
2135      pauseBtn.setAttribute('aria-pressed', String(isPaused));
2136      pauseBtn.innerHTML = isPaused
2137        ? '<i class="fa-solid fa-play" aria-hidden="true"></i>'
2138        : '<i class="fa-solid fa-pause" aria-hidden="true"></i>';
2139    }
2140
2141    function updateUI() {
2142      var slideWidth = slides[0].getBoundingClientRect().width || container.getBoundingClientRect().width;
2143      if (!slideWidth) return; // container hidden? wait for next tick
2144
2145      var offset = index * slideWidth * -1;
2146      track.style.transform = 'translateX(' + offset + 'px)';
2147
2148      dots.forEach(function(d, i) {
2149        d.setAttribute('aria-current', i === index ? 'true' : 'false');
2150      });
2151    }
2152
2153    function goTo(i) {
2154      index = (i + slides.length) % slides.length;
2155      updateUI();
2156      resetAuto();
2157    }
2158    function next() { goTo(index + 1); }
2159    function prev() { goTo(index - 1); }
2160
2161    // Autoplay
2162    function startAuto() {
2163      stopAuto();
2164      if (userPaused) { updatePauseButton(); return; }
2165      autoTimer = setInterval(next, AUTO_MS);
2166      updatePauseButton();
2167    }
2168    function stopAuto()  {
2169      if (autoTimer) { clearInterval(autoTimer); autoTimer = null; }
2170      updatePauseButton();
2171    }
2172    function resetAuto() { if (!userPaused) startAuto(); }
2173
2174    pauseBtn.addEventListener('click', function() {
2175      userPaused = !userPaused;
2176      if (userPaused) stopAuto(); else startAuto();
2177    });
2178
2179    // Keyboard
2180    container.setAttribute('tabindex', '0');
2181    container.addEventListener('keydown', function(e) {
2182      var k = e.key;
2183      if (k === 'ArrowRight' || k === 'PageDown') { e.preventDefault(); next(); }
2184      else if (k === 'ArrowLeft' || k === 'PageUp') { e.preventDefault(); prev(); }
2185      else if (k === 'Home') { e.preventDefault(); goTo(0); }
2186      else if (k === 'End')  { e.preventDefault(); goTo(slides.length - 1); }
2187    });
2188
2189    // Buttons
2190    prevBtn.addEventListener('click', prev);
2191    nextBtn.addEventListener('click', next);
2192
2193    // Pause on hover (does not permanently set userPaused, just suspends the timer)
2194    if (PAUSE_ON_HOVER) {
2195      container.addEventListener('mouseenter', function() {
2196        if (autoTimer) { clearInterval(autoTimer); autoTimer = null; }
2197      });
2198      container.addEventListener('mouseleave', function() {
2199        if (!userPaused) startAuto();
2200      });
2201    }
2202
2203    // Touch swipe
2204    var startX = null, startY = null, dragging = false;
2205    var SWIPE_THRESHOLD = 40; // px
2206    container.addEventListener('touchstart', function(e) {
2207      var t = e.touches ? e.touches[0] : e;
2208      startX = t.clientX; startY = t.clientY; dragging = true;
2209      if (autoTimer) { clearInterval(autoTimer); autoTimer = null; }
2210    }, { passive: true });
2211    container.addEventListener('touchmove', function(e) {
2212      if (!dragging) return;
2213      var t = e.touches ? e.touches[0] : e;
2214      var dx = t.clientX - startX, dy = t.clientY - startY;
2215      if (Math.abs(dx) > Math.abs(dy) && Math.abs(dx) > SWIPE_THRESHOLD) {
2216        dragging = false; (dx < 0 ? next() : prev());
2217      }
2218    }, { passive: true });
2219    container.addEventListener('touchend', function() {
2220      dragging = false;
2221      if (!userPaused) startAuto();
2222    });
2223
2224    // Resize & late image load sync
2225    var resizeTimer = null;
2226    window.addEventListener('resize', function() {
2227      if (resizeTimer) clearTimeout(resizeTimer);
2228      resizeTimer = setTimeout(updateUI, 150);
2229    });
2230    window.addEventListener('load', updateUI);
2231
2232    // On hidden container at init (e.g., tabs), re-check.
2233    // Also re-check via ResizeObserver where available, so sliders revealed
2234    // later (e.g. inside a tab panel opened after page load) still sync.
2235    setTimeout(updateUI, 200);
2236    setTimeout(updateUI, 500);
2237
2238    if (typeof ResizeObserver !== 'undefined') {
2239      var ro = new ResizeObserver(function() { updateUI(); });
2240      ro.observe(container);
2241    }
2242
2243    // Init
2244    buildDots();
2245    goTo(0);
2246    if (!userPaused) startAuto();
2247    updatePauseButton();
2248  }
2249
2250  /**
2251   * Adapt events markup (.event_item) to the news structure the slider expects.
2252   * Returns the new slides NodeList (now with .news_item).
2253   */
2254  function adaptEventsToNews(container, eventSlides) {
2255    eventSlides.forEach(function(slide) {
2256      // 1) Mark as news_item so existing logic sees it
2257      slide.classList.add('news_item');
2258
2259      // 2) Extract typical events markup
2260      var dl       = slide.querySelector('dl');
2261      var dt       = dl ? dl.querySelector('dt') : null;
2262      var nameLink = dt ? dt.querySelector('.msl_event_name') : null;
2263      var imgWrap  = dt ? dt.querySelector('.msl_event_image') : null;
2264      var desc     = slide.querySelector('.msl_event_description');
2265
2266      // 3) Build grid columns
2267      var grid    = document.createElement('div');
2268      grid.className = 'slide-grid';
2269
2270      var imgCol  = document.createElement('div');
2271      imgCol.className = 'slide-image';
2272
2273      var textCol = document.createElement('div');
2274      textCol.className = 'slide-text';
2275
2276      // Image column: convert to .news_image for CSS compatibility
2277      if (imgWrap) {
2278        imgWrap.classList.add('news_image');
2279        var img = imgWrap.querySelector('img');
2280        if (img) {
2281          img.removeAttribute('width');
2282          img.removeAttribute('height');
2283          img.loading = 'lazy';
2284        }
2285        imgCol.appendChild(imgWrap);
2286      }
2287
2288      // Text column: wrap name in h5, convert description to .leader
2289      if (nameLink) {
2290        var h2 = document.createElement('h2');
2291        h2.appendChild(nameLink);
2292        textCol.appendChild(h2);
2293      }
2294      if (desc) {
2295        desc.classList.add('leader');
2296        textCol.appendChild(desc);
2297      }
2298
2299      // Replace slide content
2300      while (slide.firstChild) slide.removeChild(slide.firstChild);
2301      slide.appendChild(grid);
2302      grid.appendChild(imgCol);
2303      grid.appendChild(textCol);
2304    });
2305
2306    // Return as slides for the rest of the flow
2307    return Array.prototype.slice.call(container.querySelectorAll('.news_item'));
2308  }
2309})();
2310<!-- end of novus-scripts snippet -->
2311
2312  });
2313</script>
2313
2314        </div>
2315        
2316        
2317        
2317<script type="text/javascript" src="/stylesheet/novus/chnageh1.js?v=10" defer="defer"></script>
2317
2318
2319        
2320	
2320<script id="ctl00_commonjs" type="text/javascript" src="//static-uk.ukmsl.net/8.90/scripts/common.js"></script>
2320
2321        
2321<script type="text/javascript" src="/pagestylesheet/news/article/advice/moving-into-rented-accommodation/scripts.js?v=32"></script>
2321
2322
2323
2324        
2325
2326    
2327
2328<script type="text/javascript">
2329//<![CDATA[
2330Sys.Application.add_init(function() {
2331    $create(Sys.Extended.UI.Animation.UpdatePanelAnimationBehavior, {"id":"ctl00_Main_RatingCtl1_upAe1","onUpdated":"{\"AnimationName\":\"Parallel\",\"duration\":\"1\",\"AnimationChildren\":[{\"AnimationName\":\"HideAction\",\"TargetScript\":\"$get(\\u0027img\\u0027)\",\"AnimationChildren\":[]},{\"AnimationName\":\"HideAction\",\"TargetScript\":\"$get(\\u0027txt\\u0027)\",\"visible\":\"true\",\"AnimationChildren\":[]}]}","onUpdating":"{\"AnimationName\":\"Parallel\",\"duration\":\"0\",\"AnimationChildren\":[{\"AnimationName\":\"HideAction\",\"TargetScript\":\"$get(\\u0027img\\u0027)\",\"visible\":\"true\",\"AnimationChildren\":[]},{\"AnimationName\":\"HideAction\",\"TargetScript\":\"$get(\\u0027txt\\u0027)\",\"AnimationChildren\":[]}]}","triggerControlsClientID":[]}, null, null, $get("ctl00_Main_RatingCtl1_upRating"));
2332});
2333//]]>
2334</script>
2334
2335</form>
2336
2337</body>
2338</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.