Error executing template "Designs/Condition/_parsed/AccommodationPageLinker.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_0cd1334ac0654b1a82476b60389fc84a.Execute() in D:\Websites\nstgroup.co.uk\Live\Files\Templates\Designs\Condition\_parsed\AccommodationPageLinker.parsed.cshtml:line 874
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using Dynamicweb 3 @using Dynamicweb.Content 4 @using NstWebsite 5 @using System.Web.Optimization 6 @using System.Web 7 @using System.Linq 8 @using Newtonsoft.Json 9 <!DOCTYPE html> 10 <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> 11 <!--[if IE 7]> <html class="no-js ie7 lt-ie9 lt-ie8"> <![endif]--> 12 <!--[if IE 8]> <html class="no-js ie8 lt-ie9"> <![endif]--> 13 <!--[if IE 9]> <html class="no-js ie9"> <![endif]--> 14 <!--[if gt IE 9]> <html class="modern-browser no-js"><![endif]--> 15 @{ 16 bool social = true; 17 var areaId = (int)GetValue("DwAreaID"); 18 string loadingImage = "/Files/Images/Loading/NST_loading.gif"; 19 string logoAltText = "NST"; 20 var telNumber = GetString("Item.Area.Telephone"); 21 var telSEOAK = GetString("Item.Area.TelephoneSeoAccountId"); 22 var telSEOCL = GetString("Item.Area.TelephoneSeoPassword"); 23 var facebookPixelId = GetString("Item.Area.FacebookPixelId"); 24 var mobileRequestQuoteText = "Request quote"; 25 26 var twitterUN = GetString("Item.Area.TwitterAcc"); 27 var facebookUN = GetString("Item.Area.FacebookAcc"); 28 var flickrUN = GetString("Item.Area.FlickrAcc"); 29 var youtubeUN = GetString("Item.Area.YoutubeAcc"); 30 var instagramUN = GetString("Item.Area.InstagramAcc"); 31 var snapchatUN = GetString("Item.Area.SnapchatAcc"); 32 var tumblrUN = GetString("Item.Area.TumblrAcc"); 33 34 if (areaId == 2) 35 { 36 loadingImage = "/Files/Images/Loading/NSTIE_loading.gif"; 37 } 38 else if (areaId == 3) 39 { 40 loadingImage = "/Files/Images/Loading/Studylink_loading.gif"; 41 logoAltText = "StudyLink Tours"; 42 } 43 else if (areaId == 4) 44 { 45 loadingImage = "/Files/Images/Loading/EST_loading.gif"; 46 logoAltText = "European Study Tours"; 47 mobileRequestQuoteText = "REQUEST QUOTE"; 48 } 49 var brandLogoSmall = GetString("Item.Area.BrandLogoSmall"); 50 var brandNameSmall = GetString("Item.Area.TitleBrand"); 51 var enableChat = GetBoolean("Item.Area.EnableChat"); 52 var ChatGuid = GetString("Item.Area.ChatGuid"); 53 var chatTriggerPhrase = GetString("Item.Area.ChatTriggerPhrase"); 54 var OneTrustUrl = GetString("Item.Area.OneTrustScriptUrl"); 55 var OneTrustDataDomainScript = GetString("Item.Area.OneTrustDataDomainScript"); 56 var OneTrustAutoBlockScript = GetString("Item.Area.OneTrustAutoBlockScript"); 57 var GoogleTagManagerId = GetString("Item.Area.GoogleTagManagerId"); 58 59 //Put any details we have on the page into the request quote URL 60 //var quoteDetails = string.Format("/request-quote?Country={0}&Destination={1}&Subject={2}", countryEnq, "", ""); 61 62 FeefoInformation feefoInformation = null; 63 if (!string.IsNullOrWhiteSpace(GetString("Item.Area.FeefoApi")) && !string.IsNullOrWhiteSpace(GetString("Item.Area.FeefoImage"))) 64 { 65 feefoInformation = new FeefoInformation(GetString("Item.Area.FeefoApi")); 66 } 67 var theme = "uk"; 68 if (!string.IsNullOrEmpty(GetString("Item.Area.Theme"))) 69 { 70 theme = GetString("Item.Area.Theme"); 71 } 72 string BingVerificationCode = null; 73 if (!string.IsNullOrEmpty(GetString("Item.Area.BingVerificationCode"))) 74 { 75 BingVerificationCode = GetString("Item.Area.BingVerificationCode"); 76 } 77 78 } 79 @helper GetOptimisedImage(string imgName) 80 { 81 //Banner image 82 string imgFormat = "webp"; 83 int imgHeight = 650; 84 int imgCompression = 75; 85 int imgQuality = 85; 86 bool doNotUpscale = true; 87 string imgPath = string.Empty; 88 if (!string.IsNullOrEmpty(imgName)) 89 { 90 imgPath = string.Format("/Admin/Public/GetImage.ashx?Image={0}&Crop=0&Format={1}&Height={2}&Compression={3}&Quality={5}&DoNotUpscale={4}", 91 imgName.Replace("&","%26"), imgFormat, imgHeight.ToString(), imgCompression.ToString(), doNotUpscale.ToString(), imgQuality); 92 } 93 @imgPath 94 } 95 <html class="modern-browser no-js" lang="en"> 96 <head> 97 <title> @GetValue("Title") | @GetValue("Item.Area.TitleBrand")</title> 98 @GetValue("MetaTags") 99 @GetValue("CopyRightNotice") 100 101 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 102 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 103 104 105 <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" defer="" async=""></script> 106 107 108 <script src='@Scripts.Url("~/bundles/jquery")'></script> 109 <script src='@Scripts.Url("~/bundles/slick")'></script> 110 <script src='@Scripts.Url("~/bundles/modernizr")'></script> 111 @if (!string.IsNullOrWhiteSpace(OneTrustUrl) && !string.IsNullOrWhiteSpace(OneTrustDataDomainScript)) 112 { 113 <!-- OneTrust Cookies Consent Notice start --> 114 if (!string.IsNullOrWhiteSpace(OneTrustAutoBlockScript)) 115 { 116 <script type="text/javascript" src="@OneTrustAutoBlockScript"></script> 117 } 118 <script src="@OneTrustUrl" type="text/javascript" charset="UTF-8" data-domain-script="@OneTrustDataDomainScript"></script> 119 <script type="text/javascript"> 120 121 function OptanonWrapper() { 122 // Get initial OnetrustActiveGroups ids 123 if (typeof OptanonWrapperCount == "undefined") { 124 otGetInitialGrps(); 125 } 126 127 //Delete cookies 128 otDeleteCookie(otIniGrps); 129 130 // Assign OnetrustActiveGroups to custom variable 131 function otGetInitialGrps() { 132 OptanonWrapperCount = ''; 133 otIniGrps = OnetrustActiveGroups; 134 // console.log("otGetInitialGrps", otIniGrps) 135 } 136 137 function otDeleteCookie(iniOptGrpId) { 138 var otDomainGrps = JSON.parse(JSON.stringify(Optanon.GetDomainData().Groups)); 139 var otDeletedGrpIds = otGetInactiveId(iniOptGrpId, OnetrustActiveGroups); 140 if (otDeletedGrpIds.length != 0 && otDomainGrps.length != 0) { 141 for (var i = 0; i < otDomainGrps.length; i++) { 142 //Check if CustomGroupId matches 143 if (otDomainGrps[i]['CustomGroupId'] != '' && otDeletedGrpIds.includes(otDomainGrps[i]['CustomGroupId'])) { 144 for (var j = 0; j < otDomainGrps[i]['Cookies'].length; j++) { 145 // console.log("otDeleteCookie",otDomainGrps[i]['Cookies'][j]['Name']) 146 //Delete cookie 147 eraseCookie(otDomainGrps[i]['Cookies'][j]['Name']); 148 } 149 } 150 151 //Check if Hostid matches 152 if (otDomainGrps[i]['Hosts'].length != 0) { 153 for (var j = 0; j < otDomainGrps[i]['Hosts'].length; j++) { 154 //Check if HostId presents in the deleted list and cookie array is not blank 155 if (otDeletedGrpIds.includes(otDomainGrps[i]['Hosts'][j]['HostId']) && otDomainGrps[i]['Hosts'][j]['Cookies'].length != 0) { 156 for (var k = 0; k < otDomainGrps[i]['Hosts'][j]['Cookies'].length; k++) { 157 //Delete cookie 158 eraseCookie(otDomainGrps[i]['Hosts'][j]['Cookies'][k]['Name']); 159 } 160 } 161 } 162 } 163 164 } 165 } 166 otGetInitialGrps(); //Reassign new group ids 167 } 168 169 //Get inactive ids 170 function otGetInactiveId(customIniId, otActiveGrp) { 171 //Initial OnetrustActiveGroups 172 // console.log("otGetInactiveId",customIniId) 173 customIniId = customIniId.split(","); 174 customIniId = customIniId.filter(Boolean); 175 176 //After action OnetrustActiveGroups 177 otActiveGrp = otActiveGrp.split(","); 178 otActiveGrp = otActiveGrp.filter(Boolean); 179 180 var result = []; 181 for (var i = 0; i < customIniId.length; i++) { 182 if (otActiveGrp.indexOf(customIniId[i]) <= -1) { 183 result.push(customIniId[i]); 184 } 185 } 186 return result; 187 } 188 189 //Delete cookie 190 function eraseCookie(name) { 191 //Delete root path cookies 192 domainName = window.location.hostname; 193 document.cookie = name + '=; Max-Age=-99999999; Path=/;Domain=' + domainName; 194 document.cookie = name + '=; Max-Age=-99999999; Path=/;'; 195 196 //Delete LSO incase LSO being used, cna be commented out. 197 localStorage.removeItem(name); 198 199 //Check for the current path of the page 200 pathArray = window.location.pathname.split('/'); 201 //Loop through path hierarchy and delete potential cookies at each path. 202 for (var i = 0; i < pathArray.length; i++) { 203 if (pathArray[i]) { 204 //Build the path string from the Path Array e.g /site/login 205 var currentPath = pathArray.slice(0, i + 1).join('/'); 206 document.cookie = name + '=; Max-Age=-99999999; Path=' + currentPath + ';Domain=' + domainName; 207 document.cookie = name + '=; Max-Age=-99999999; Path=' + currentPath + ';'; 208 //Maybe path has a trailing slash! 209 document.cookie = name + '=; Max-Age=-99999999; Path=' + currentPath + '/;Domain=' + domainName; 210 document.cookie = name + '=; Max-Age=-99999999; Path=' + currentPath + '/;'; 211 212 213 } 214 } 215 216 } 217 218 if (!OptanonActiveGroups.includes('C0004') || !OptanonActiveGroups.includes('C0003')) { 219 let iframes = document.getElementsByTagName("iframe"); 220 221 for (var i = 0; i < iframes.length; i++) { 222 iframes[i].classList.remove("optanon-category-C0004"); 223 224 iframes[i].classList.remove("optanon-category-C0003"); 225 let src = iframes[i].getAttribute('data-src'); 226 if (src && src.includes("youtube.com")) { 227 $(iframes[i]).removeAttr('data-src'); 228 $(iframes[i]).attr('src', src.replace('youtube.com', 'youtube-nocookie.com')); 229 230 } 231 } 232 } 233 234 235 } 236 237 function deleteAllCookies() { 238 var cookies = document.cookie.split("; "); 239 for (var c = 0; c < cookies.length; c++) { 240 var d = window.location.hostname.split("."); 241 while (d.length > 0) { 242 var cookieBase = encodeURIComponent(cookies[c].split(";")[0].split("=")[0]) + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=' + d.join('.') + ' ;path='; 243 var p = location.pathname.split('/'); 244 document.cookie = cookieBase + '/'; 245 while (p.length > 0) { 246 document.cookie = cookieBase + p.join('/'); 247 p.pop(); 248 }; 249 d.shift(); 250 } 251 } 252 } 253 254 const getCookieValue = (name) => ( 255 document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')?.pop() || '' 256 ) 257 258 const urlParams = new URLSearchParams(getCookieValue('OptanonConsent')); 259 const myParam = urlParams.get('datestamp'); 260 const consentdate = new Date(myParam); 261 const Resetdate = new Date('Thu Nov 07 2024 12:00:00 GMT+0000 (Greenwich Mean Time)'); 262 if (consentdate < Resetdate) { 263 deleteAllCookies(); 264 } 265 266 </script> 267 <!--OneTrust Cookies Consent Notice end --> 268 } 269 270 @{ 271 if (theme == "uk") 272 { 273 <link rel="preload" crossorigin="anonymous" href="/Files/Templates/Designs/Condition/assets/fonts/filsonpro/FilsonProRegular.otf" as="font" type="font/woff2"> 274 275 } 276 if (theme != "est") 277 { 278 <link rel="preload" crossorigin="anonymous" href="/Files/Templates/Designs/Condition/assets/fonts/montserrat/Montserrat-Bold.woff2" as="font" type="font/woff2"> 279 <link rel="preload" crossorigin="anonymous" href="/Files/Templates/Designs/Condition/assets/fonts/montserrat/Montserrat-Hairline.woff2" as="font" type="font/woff2"> 280 <link rel="preload" crossorigin="anonymous" href="/Files/Templates/Designs/Condition/assets/fonts/montserrat/Montserrat-Light.woff2" as="font" type="font/woff2"> 281 <link rel="preload" crossorigin="anonymous" href="/Files/Templates/Designs/Condition/assets/fonts/montserrat/Montserrat-Regular.woff2" as="font" type="font/woff2"> 282 } 283 @* dont currently have a woff2 284 else 285 { 286 <link rel="preload" crossorigin="anonymous" href="/Files/Templates/Designs/Condition/assets/fonts/raleway/raleway-regular.woff2" as="font" type="font/woff2"> 287 }*@ 288 289 } 290 291 292 <link rel="preload" crossorigin="anonymous" href="/Files/Templates/Designs/Condition/assets/fonts/icomoon.woff?wtdjes" as="font" type="font/woff"> 293 <script type="text/javascript"> 294 function loadScript(url, callback) { 295 296 var script = document.createElement("script") 297 script.type = "text/javascript"; 298 script.setAttribute('async', 'async') 299 if (script.readyState) { //IE 300 script.onreadystatechange = function () { 301 if (script.readyState == "loaded" || 302 script.readyState == "complete") { 303 script.onreadystatechange = null; 304 callback(); 305 } 306 }; 307 } else { //Others 308 script.onload = function () { 309 callback(); 310 }; 311 } 312 313 script.src = url; 314 document.getElementsByTagName("head")[0].appendChild(script); 315 } 316 </script> 317 <script src='@Scripts.Url("~/bundles/plugins")' defer=""></script> 318 319 @if (!string.IsNullOrWhiteSpace(GoogleTagManagerId)) 320 { 321 <!-- Google Tag Manager --> 322 <script type="text/javascript"> 323 setTimeout(function(){ 324 (function (w, d, s, l, i) { 325 w[l] = w[l] || []; w[l].push({ 326 'gtm.start': 327 new Date().getTime(), event: 'gtm.js' 328 }); var f = d.getElementsByTagName(s)[0], 329 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 330 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 331 })(window, document, 'script', 'dataLayer', '@GoogleTagManagerId'); 332 }, 2000); 333 </script> 334 <!-- End Google Tag Manager --> 335 } 336 337 @GetValue("Item.HrefLangMapping") 338 @RenderSnippet("hreflang") 339 340 <meta name="viewport" content="width=device-width, initial-scale=1"> 341 <meta name="format-detection" content="telephone=no"> 342 343 @if (theme == "uk") 344 { 345 <link rel="apple-touch-icon" sizes="192x192" href="/Images/Favicon/NST/favicon-nst-192x192.png"> 346 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NST/favicon-nst-192x192.png" sizes="192x192"> 347 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NST/favicon-nst-160x160.png" sizes="160x160"> 348 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NST/favicon-nst-96x96.png" sizes="96x96"> 349 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NST/favicon-nst-16x16.png" sizes="16x16"> 350 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NST/favicon-nst-32x32.png" sizes="32x32"> 351 } 352 else if (theme == "ie") 353 { 354 <link rel="apple-touch-icon" sizes="192x192" href="/Images/Favicon/NSTIE/favicon-nst-dublin-192x192.png"> 355 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NSTIE/favicon-nst-dublin-192x192.png" sizes="192x192"> 356 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NSTIE/favicon-nst-dublin-160x160.png" sizes="160x160"> 357 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NSTIE/favicon-nst-dublin-96x96.png" sizes="96x96"> 358 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NSTIE/favicon-nst-dublin-16x16.png" sizes="16x16"> 359 <link rel="icon" type="image/png" href="/Files/Images/Favicon/NSTIE/favicon-nst-dublin-32x32.png" sizes="32x32"> 360 } 361 else if (theme == "slk") 362 { 363 <link rel="apple-touch-icon" sizes="192x192" href="/Files/Images/Favicon/SLK/favicon-slk-192x192.png"> 364 <link rel="icon" type="image/png" href="/Files/Images/Favicon/SLK/favicon-slk-192x192.png" sizes="192x192"> 365 <link rel="icon" type="image/png" href="/Files/Images/Favicon/SLK/favicon-slk-160x160.png" sizes="160x160"> 366 <link rel="icon" type="image/png" href="/Files/Images/Favicon/SLK/favicon-slk-96x96.png" sizes="96x96"> 367 <link rel="icon" type="image/png" href="/Files/Images/Favicon/SLK/favicon-slk-16x16.png" sizes="16x16"> 368 <link rel="icon" type="image/png" href="/Files/Images/Favicon/SLK/favicon-slk-32x32.png" sizes="32x32"> 369 } 370 else if (theme == "est") 371 { 372 <link rel="apple-touch-icon" sizes="192x192" href="/Files/Images/Favicon/EST/favicon-est-192x192.png"> 373 <link rel="icon" type="image/png" href="/Files/Images/Favicon/EST/favicon-est-192x192.png" sizes="192x192"> 374 <link rel="icon" type="image/png" href="/Files/Images/Favicon/EST/favicon-est-160x160.png" sizes="160x160"> 375 <link rel="icon" type="image/png" href="/Files/Images/Favicon/EST/favicon-est-96x96.png" sizes="96x96"> 376 <link rel="icon" type="image/png" href="/Files/Images/Favicon/EST/favicon-est-16x16.png" sizes="16x16"> 377 <link rel="icon" type="image/png" href="/Files/Images/Favicon/EST/favicon-est-32x32.png" sizes="32x32"> 378 } 379 380 @Styles.Render(string.Format("~/bundles/{0}_css", theme)) 381 382 @Styles.Render("~/bundles/googlefonts_css") 383 @Styles.Render("~/bundles/bootstrap-carousel_css") 384 385 386 <!--[if lt IE 9]> 387 <script src="/assets/js/min/selectivizr-min.js"></script> 388 <![endif]--> 389 <!-- <link rel="stylesheet" href="/assets/css/jquery-ui.min.css"> --> 390 <!-- Google Analytics --> 391 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.GoogleAnalyticsId"))) 392 { 393 <script type="text/plain" class="optanon-category-C0002"> 394 (function (i, s, o, g, r, a, m) { 395 i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { 396 (i[r].q = i[r].q || []).push(arguments) 397 }, i[r].l = 1 * new Date(); a = s.createElement(o), 398 m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) 399 })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); 400 401 ga('create', '@GetValue("Item.Area.GoogleAnalyticsId")', 'auto'); 402 ga('send', 'pageview'); 403 404 </script> 405 } 406 @if (!string.IsNullOrWhiteSpace(telSEOAK) && !string.IsNullOrWhiteSpace(telSEOCL)) 407 { 408 <script type="text/plain" class="optanon-category-C0002"> 409 (function (a, e, c, f, g, h, b, d) { 410 var k = { ak: "@telSEOAK", cl: "@telSEOCL", autoreplace: "@telNumber" }; 411 a[c] = a[c] || function () { (a[c].q = a[c].q || []).push(arguments) }; 412 a[g] || (a[g] = k.ak); b = e.createElement(h); b.async = 1; 413 b.src = "//www.gstatic.com/wcm/loader.js"; d = e.getElementsByTagName(h)[0]; 414 d.parentNode.insertBefore(b, d); a[f] = function (b, d, e) { a[c](2, b, k, d, null, new Date, e) }; 415 a[f]() 416 })(window, document, "_googWcmImpl", "_googWcmGet", "_googWcmAk", "script"); 417 418 </script> 419 } 420 421 422 @if (!string.IsNullOrWhiteSpace(facebookPixelId)) 423 { 424 <!-- Facebook Pixel Code --> 425 <script type="text/plain" class="optanon-category-C0004"> 426 !function (f, b, e, v, n, t, s) { 427 if (f.fbq) return; n = f.fbq = function () { 428 n.callMethod ? 429 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 430 }; 431 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 432 n.queue = []; t = b.createElement(e); t.async = !0; 433 t.src = v; s = b.getElementsByTagName(e)[0]; 434 s.parentNode.insertBefore(t, s) 435 }(window, document, 'script', 436 'https://connect.facebook.net/en_US/fbevents.js'); 437 fbq('init', '@facebookPixelId'); 438 fbq('track', 'PageView'); 439 </script> 440 <!-- End Facebook Pixel Code --> 441 } 442 443 @if (!string.IsNullOrWhiteSpace(BingVerificationCode)) 444 { 445 <!-- BingVerificationCode --> 446 <meta name="msvalidate.01" content="@BingVerificationCode"> 447 <!-- End BingVerificationCode --> 448 } 449 450 <script> 451 document.addEventListener("DOMContentLoaded", function (event) { 452 var frames = document.getElementsByTagName('iframe'); 453 for (var i = 0; i < frames.length; i++) { 454 frames[i].src = frames[i].src.replace("youtube.com", "youtube-nocookie.com"); 455 } 456 }); 457 </script> 458 459 460 @GetValue("Stylesheets") 461 @GetValue("Javascripts") 462 </head> 463 464 <body> 465 <div id="mainContent"> 466 <div class="header-push"></div> 467 <header> 468 <div class="container clearfix menu-container"> 469 @if (theme != "uk") 470 { 471 <a href="/"><img class="logo mobile-only" src="@brandLogoSmall" alt="@brandNameSmall"></a> 472 } 473 else 474 { 475 <div class="header-background desktop"></div> 476 } 477 <nav id="site-nav" class="clearfix"> 478 @if (theme == "slk") 479 { 480 <ul> 481 <li style="background-color:white;"> 482 <a href="/"> 483 <img src="/Files/Templates/Designs/Condition/assets/images/design/StudyLink_Logo_Reg.png" style="max-height:20px"> 484 </a> 485 </li> 486 </ul> 487 @GetValue("DwNavigation(slkNavMenu)") 488 <nav id="navTools" class="navTools"> 489 <ul> 490 <li class="contact no-mobile"><a href="javascript:;">Contact Us</a></li> 491 </ul> 492 </nav> 493 494 } 495 else if (theme == "est") 496 { 497 <ul> 498 <li> 499 <a href="/"> 500 <img src="/Files/Templates/Designs/Condition/assets/images/design/ESTLogo.png" style="max-height:50px; margin-top: -10px;"> 501 </a> 502 </li> 503 </ul> 504 @GetValue("DwNavigation(estNavMenu)") 505 <nav id="navTools" class="navTools"> 506 <ul> 507 <li class="contact no-mobile"><a href="javascript:;">Contact Us</a></li> 508 </ul> 509 </nav> 510 511 } 512 else if (theme == "pgl") 513 { 514 <ul> 515 <li class="logo-item"><a href="/"><img class="logo show-on-scroll-50 no-mobile small" src="@brandLogoSmall" alt="@brandNameSmall"></a></li> 516 </ul> 517 @GetValue("DwNavigation(pglNavMenu)") 518 <nav id="navTools" class="navTools"> 519 <ul> 520 <li class="contact no-mobile"><a href="javascript:;">Enquire</a></li> 521 </ul> 522 </nav> 523 } 524 else if (theme == "uk") 525 { 526 <svg class="position-absolute path-size"> 527 <defs> 528 <clippath id="smoothWave" clippathunits="objectBoundingBox"> 529 <path d="M0,0.2 C0.15,0.32 0.25,0.38 0.3,0.42 S0.5,0.78 0.7,0.95 S0.88,0.88 1,0.7 L1,0 L0,0 Z"></path> 530 </clippath> 531 </defs> 532 </svg> 533 <div class="header-top desktop"> 534 <div class="container d-flex justify-content-end align-items-center"> 535 <a href="/login" class="action-link mr-0"> 536 <img src="/Files/Templates/Designs/Condition/assets/images/design/icons/nst-login-icon.svg" alt="Login" class="pr-3"> 537 <p class="fs-55">Login</p> 538 </a> 539 <span class="divider"></span> 540 <a href='tel:@GetString("Item.Area.Telephone")' class="action-link mr-0"> 541 <img src="/Files/Templates/Designs/Condition/assets/images/design/icons/nst-phone-icon.svg" alt="Call us" class="pr-3"> 542 <p class="fs-55"><span class="no-desktop">@telNumber</span><span class="desktop-only">Call us</span></p> 543 </a> 544 <span class="divider"></span> 545 <a href="/contact-us" class="action-link mr-0"> 546 <img src="/Files/Templates/Designs/Condition/assets/images/design/icons/nst-message-icon.svg" alt="Get in touch" class="pr-3 mt-2"> 547 <p class="fs-55">Get in touch</p> 548 </a> 549 </div> 550 </div> 551 <nav class="header-bottom container d-flex justify-content-between align-items-center"> 552 <a href="/"> 553 <img class="logo" src="@brandLogoSmall" alt="@brandNameSmall"> 554 </a> 555 <div class="mt-6 header-text-color"> 556 @GetValue("DwNavigation(UkNstNavMenu)") 557 </div> 558 <ul class="mt-6"> 559 <li class="quote no-mobile"> 560 <a href="/request-quote">Request quote</a> 561 </li> 562 </ul> 563 </nav> 564 } 565 else 566 { 567 <ul> 568 <li class="logo-item"><a href="/"><img class="logo show-on-scroll-50 no-mobile small" src="@brandLogoSmall" alt="@brandNameSmall"></a></li> 569 </ul> 570 @GetValue("DwNavigation(IeNstNavMenu)") 571 <nav id="navTools" class="navTools"> 572 <ul> 573 <li class="contact no-mobile"><a href="javascript:;">Enquire</a></li> 574 </ul> 575 </nav> 576 } 577 578 <div class="right"> 579 <ul> 580 @if (theme == "est") 581 { 582 <li class="no-mobile align-center"> 583 <a href='tel:@GetString("Item.Area.Telephone")'>@GetString("Item.Area.Telephone")</a> 584 </li> 585 } 586 else if (theme == "uk") 587 { 588 589 } 590 else 591 { 592 <li class="call-number no-mobile"> 593 <a href='tel:@GetString("Item.Area.Telephone")'>@GetString("Item.Area.Telephone")</a> 594 </li> 595 } 596 @if (theme == "slk") 597 { 598 <li class="no-mobile" style="background-color:#414042;"> 599 <a href="http://slk.my-tour-manager.com" target="_blank"> 600 <span class="icon-user" style="font-size:1.5em; color:white;"></span> 601 </a> 602 </li> 603 <li class="quote no-mobile"> 604 <a href="/request-quote" style="color:white;"> 605 REQUEST A QUOTE 606 </a> 607 </li> 608 } 609 else if (theme == "est") 610 { 611 <li class="quote no-mobile"> 612 <a href="/request-quote" id="navQuoteButton"> 613 Request quote 614 </a> 615 </li> 616 } 617 else if (theme == "uk") 618 { 619 620 } 621 else 622 { 623 <li class="quote no-mobile"> 624 <a href="/request-quote"> 625 Request quote 626 </a> 627 </li> 628 } 629 </ul> 630 </div> 631 </nav> 632 633 @if (theme == "uk") 634 { 635 <svg class="position-absolute path-size"> 636 <defs> 637 <clippath id="smoothWaveMobile" clippathunits="objectBoundingBox"> 638 <path d="M0,0.2 C0.5,0.9 0.5,0.9 1,0.99 L1,0 L0,0 Z"></path> 639 </clippath> 640 </defs> 641 </svg> 642 <div class="header-top mobile mobile-only"> 643 <div class="container d-flex justify-content-end align-items-center"> 644 <a href="/login" class="action-link mr-0"> 645 <img src="/Files/Templates/Designs/Condition/assets/images/design/icons/nst-login-icon.svg" alt="Login" class="pr-3"> 646 </a> 647 <a href='tel:@GetString("Item.Area.Telephone")' class="action-link mr-0"> 648 <img src="/Files/Templates/Designs/Condition/assets/images/design/icons/nst-phone-icon.svg" alt="Call us" class="pr-3"> 649 </a> 650 <a href="/contact-us" class="action-link mr-0"> 651 <img src="/Files/Templates/Designs/Condition/assets/images/design/icons/nst-message-icon.svg" alt="Get in touch" class="pr-3 mt-2"> 652 </a> 653 </div> 654 </div> 655 656 <a class="mobile-only mobile-logo" href="/"> 657 <img class="logo" src="@brandLogoSmall" alt="@brandNameSmall"> 658 </a> 659 } 660 661 <div class="mobile-only right mobile-menu-button"></div> 662 663 @*<div class="search-activate mobile-only right"><a href="#"><span class="icon-search hidden"></span><span class="text">Search</span></a></div>*@ 664 665 <nav id="mobile-nav" class="clearfix"> 666 @GetValue("DwNavigation(mobilenav)") 667 <ul> 668 669 @if (theme == "slk") 670 { 671 <li class="mobile-only"><a href="http://slk.my-tour-manager.com" target="_blank">Login</a></li> 672 <li class="contact"><div class="nav-name"><a href="javascript:;">Contact us</a></div></li> 673 } 674 else if (theme == "est") 675 { 676 <li class="contact"><div class="nav-name"><a href="javascript:;">Contact us</a></div></li> 677 } 678 else if (theme == "uk") 679 { 680 <li class="mt-3"><div class="nav-name"><a href="http://nst.my-tour-manager.com" target="_blank">Login</a></div></li> 681 <li class=""><div class="nav-name"><a href="/contact-us">Get in touch</a></div></li> 682 683 <li class="mobile-contact mt-6"><a style="color: #ffffff !important" href='tel:@GetString("Item.Area.Telephone")'>Call us</a></li> 684 <li class="mobile-quote"><a style="color: #ffffff !important" href="/request-quote">Request quote</a></li> 685 } 686 else 687 { 688 <li class="contact"><div class="nav-name"><a href="javascript:;">Enquire</a></div></li> 689 } 690 691 @if (theme == "est") 692 { 693 <li class="standard"><div class="nav-name"><a href="https://www.euro-study-tours.co.uk/work-for-us">Work for Us</a></div></li> 694 } 695 else if (theme == "uk") 696 { 697 698 } 699 else 700 { 701 <li class="standard"><div class="nav-name"><a href="https://www.nstgroup.co.uk/work-for-us">Work for Us</a></div></li> 702 } 703 704 705 </ul> 706 </nav> 707 </div> 708 709 @if (theme == "uk") 710 { 711 712 } 713 else 714 { 715 <div class="container clearfix mobile-only mobile-contact-header"> 716 <div class="mobile-only mobile-number call-number"> 717 <a href='tel:@GetString("Item.Area.Telephone")'>@GetString("Item.Area.Telephone")</a> 718 </div> 719 <div class="button quote-button-background"> 720 <a href="/request-quote"> 721 @mobileRequestQuoteText 722 </a> 723 </div> 724 </div> 725 } 726 727 <div class="contact-bar-dropdown"> 728 <div class="container"> 729 <!-- <a class="mobile-only contact-button" href="/contact-us/request-a-quote"><span class="icon-calculator"></span> Request quote</a> --> 730 @if (areaId == 1) 731 { 732 <!--<a class="contact-button" href="/view-our-brochures"><span class="icon-brochure"></span> View our brochures</a>--> 733 } 734 <a class="contact-button no-mobile" href="/request-quote"><span class="icon-email"></span> Request quote</a> 735 <a class="contact-button" href="/get-in-touch"><span class="icon-email"></span> Get in touch</a> 736 </div> 737 </div> 738 739 <div class="search-bar-dropdown"> 740 <div class="container"> 741 @*<form action="/search-results"> 742 <label for="search">Search</label> 743 <input type="text" name="q" id="q" placeholder="Enter search term"> 744 <input type="submit" value="submit" name="submit" id="submit"> 745 </form>*@ 746 </div> 747 </div> 748 </header> 749 750 <div class="mobileMenuBkgndOverlay"></div> 751 752 <main class="mainContent"> 753 754 755 756 757 @{ 758 string countr = (string) @GetValue("Item.Link_To_Item_Type.Country"); 759 string accName = (string) @GetValue("Item.Link_To_Item_Type.Title"); 760 var brandLogo = GetString("Item.Area.BrandLogo"); 761 var brandName = GetString("Item.Area.TitleBrand"); 762 //string accUrl = System.Web.HttpContext.Current.Request.Url.AbsoluteUri; 763 764 string id = (string) @GetValue("Item.Link_To_Item_Type.Id"); 765 766 //Dynamicweb.Content.Items.Item it = Dynamicweb.Content.Items.ItemManager.Storage.GetById("Accommodation", id); 767 768 //string accId = it.Page.ID.ToString(); 769 770 //var pageId = @GetString("Global:Page.ID"); 771 string accDefaultURL = "Default.aspx?ID=" + GetInteger("DwPageID").ToString(); 772 string accUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(accDefaultURL); 773 accUrl = accUrl.Replace("&", "-"); 774 775 string tripName = ""; 776 777 if(System.Web.HttpContext.Current.Request.QueryString["trip"] != null) 778 tripName = System.Web.HttpContext.Current.Request.QueryString["trip"]; 779 780 string referrer = ""; 781 782 if(System.Web.HttpContext.Current.Request.UrlReferrer != null) 783 referrer = System.Web.HttpContext.Current.Request.UrlReferrer.ToString(); 784 785 } 786 787 @{ 788 var inspectionName = brandName; 789 string breadcrumbTripText = ""; 790 string breadcrumbTripLink = ""; 791 switch (brandName) 792 { 793 case "NST": 794 case "NST Ireland": 795 { 796 inspectionName = "NST's"; 797 breadcrumbTripText = "Trips"; 798 breadcrumbTripLink = "/trips"; 799 break; 800 } 801 case "Studylink": 802 { 803 inspectionName = "Studylink's"; 804 breadcrumbTripText = "Trips"; 805 breadcrumbTripLink = "/trips"; 806 break; 807 } 808 case "European Study Tours": 809 { 810 inspectionName = "EST's"; 811 breadcrumbTripText = ""; 812 breadcrumbTripLink = ""; 813 break; 814 } 815 default: 816 inspectionName = "NST's"; 817 breadcrumbTripText = "Trips"; 818 breadcrumbTripLink = "/trips"; 819 break; 820 } 821 } 822 823 <div class="masthead no-slider"> 824 <!-- Logo Overlay --> 825 <div class="background-image"> 826 <img src='@GetOptimisedImage(GetString("Item.Link_To_Item_Type.Banner_Image"))' alt=""> 827 </div> 828 @if (!String.IsNullOrWhiteSpace(brandLogo)) 829 { 830 <div class="clearfix logo"> 831 <div class="container"> 832 <a href="/"><img class="hide-on-scroll-50 no-mobile" src="@brandLogo" alt="@brandName"></a> 833 </div> 834 </div> 835 } 836 </div> 837 838 <section class="breadcrumbs clearfix container"> 839 <p><span class="bold">You are here:</span></p> 840 <ul class="breadcrumbtrail"> 841 <li> 842 <a href="/">Home</a> 843 </li> 844 845 846 @if (!String.IsNullOrWhiteSpace(breadcrumbTripLink)) 847 { 848 <li> 849 <a href="@breadcrumbTripLink">@breadcrumbTripText</a> 850 </li> 851 } 852 853 @if (tripName != "") 854 { 855 <li> 856 <a href="@referrer">@tripName</a> 857 </li> 858 } 859 <li> 860 <a href="@accUrl">@accName</a> 861 </li> 862 </ul> 863 <a href="#" class="go-back"><p>Go back</p></a> 864 </section> 865 866 <section id="standard" class="page-content"> 867 <div class="container clearfix"> 868 <!-- content --> 869 <div class="col col-width-9 content-with-sidebar right"> 870 <!-- row --> 871 <div class="row accomodation"> 872 <div class="heading col col-width-12"> 873 <h1>@GetValue("Item.Link_To_Item_Type.Title")</h1> 874 @if ((bool)@GetValue("Item.Link_To_Item_Type.NST_Safety") == true) 875 { 876 <p class="pink">Inspected as part of @inspectionName Safety Management System</p> 877 } 878 </div> 879 <div class="information"> 880 <div class="col col-width-7 equalise mpp-lazy"> 881 <span class="red-dots"> 882 @GetValue("Item.Link_To_Item_Type.Summary_Points").ToString().Replace("src", "data-original").Replace("class='", "class='lazy") 883 </span> 884 <h3 class="margin-bottom-20">Location</h3> 885 <p>@GetValue("Item.Link_To_Item_Type.Location_Summary_Text").ToString().Replace("src", "data-original").Replace("class='", "class='lazy")</p> 886 </div> 887 @if (@GetValue("Item.Link_To_Item_Type.Google_Maps_URL") != "") 888 { 889 <div class="col col-width-5 equalise side-image"> 890 <div class="map" id="map"> 891 @GetValue("Item.Link_To_Item_Type.Google_Maps_URL") 892 </div> 893 </div> 894 } 895 </div><!-- information --> 896 </div><!-- row accommodation --> 897 <!-- row --> 898 <div class="row"> 899 <div class="col col-width-6"> 900 <h3 class="margin-bottom-20">Student rooms</h3> 901 <span class="red-dots"> 902 <div class="list-group mpp-lazy"> 903 @GetValue("Item.Link_To_Item_Type.Student_Room_Points").ToString().Replace("src", "data-original").Replace("class='", "class='lazy") 904 </div> 905 </span> 906 </div> 907 908 <div class="col col-width-6"> 909 <h3 class="margin-bottom-20">Staff rooms</h3> 910 <span class="red-dots"> 911 <div class="list-group mpp-lazy"> 912 @GetValue("Item.Link_To_Item_Type.Staff_Room_Points").ToString().Replace("src", "data-original").Replace("class='", "class='lazy") 913 </div> 914 </span> 915 </div> 916 </div><!-- row --> 917 918 <div class="row" id="visits"> 919 <h3 class="margin-bottom-20">@GetValue("Item.Link_To_Item_Type.Image_Carousel_Title")</h3> 920 <div class="slick-container secondary-grey-background"> 921 <div class="slick centered"> 922 @foreach (LoopItem i in GetLoop("Item.Link_To_Item_Type.Image_Carousel")) 923 { 924 <div class="image-slide equalise"> 925 <img class="lazy" data-original='@GetOptimisedImage(i.GetString("Item.Link_To_Item_Type.Image_Carousel.Image"))' alt="@i.GetString(" item.link_to_item_type.image_carousel.title")"=""> 926 <div class="heading"> 927 <p>@i.GetString("Item.Link_To_Item_Type.Image_Carousel.Title")</p> 928 </div> 929 </div> 930 } 931 </div> 932 </div> 933 </div><!-- row --> 934 <!-- row --> 935 <div class="row"> 936 <h3 class="margin-bottom-20">Facilities</h3> 937 <span class="red-dots"> 938 <div class="list-group col col-width-4 mpp-lazy"> 939 @GetValue("Item.Link_To_Item_Type.Column1").ToString().Replace("src", "data-original").Replace("class='", "class='lazy") 940 </div> 941 <div class="list-group col col-width-4 mpp-lazy"> 942 @GetValue("Item.Link_To_Item_Type.Column_2").ToString().Replace("src", "data-original").Replace("class='", "class='lazy") 943 </div> 944 <div class="list-group col col-width-4 mpp-lazy"> 945 @GetValue("Item.Link_To_Item_Type.Column_3").ToString().Replace("src", "data-original").Replace("class='", "class='lazy") 946 </div> 947 </span> 948 </div> 949 950 951 </div><!-- content --> 952 953 <div class="col col-width-3 sidebar left"> 954 <!-- essentials --> 955 <div class="essentials secondary-grey-background"> 956 <h4 class="mobile-only">Essentials</h4> 957 @if (@GetValue("Item.Link_To_Item_Type.Link") != "") 958 { 959 <div class="link"> 960 <span class="icon-link"></span> 961 <a target="_blank" href='@GetValue("Item.Link_To_Item_Type.Link")'>@GetValue("Item.Link_To_Item_Type.Link")</a> 962 </div> 963 } 964 @if (@GetValue("Item.Link_To_Item_Type.Capacity_List") != "") 965 { 966 <div class="options mpp-lazy"> 967 <span class="icon-bed"></span> 968 <h5>Capacity</h5> 969 @GetValue("Item.Link_To_Item_Type.Capacity_List").ToString().Replace("src", "data-original").Replace("class='", "class='lazy") 970 </div> 971 } 972 @if (@GetValue("Item.Link_To_Item_Type.Disabled_Access_List") != "") 973 { 974 <div class="options mpp-lazy"> 975 <span class="icon-wheelchair"></span> 976 <h5>Disabled access</h5> 977 @GetValue("Item.Link_To_Item_Type.Disabled_Access_List").ToString().Replace("src", "data-original").Replace("class='", "class='lazy") 978 </div> 979 } 980 @if (@GetValue("Item.Link_To_Item_Type.Board_Basis_List") != "") 981 { 982 <div class="options mpp-lazy"> 983 <span class="icon-food"></span> 984 <h5>Board basis</h5> 985 @GetValue("Item.Link_To_Item_Type.Board_Basis_List").ToString().Replace("src", "data-original").Replace("class='", "class='lazy") 986 </div> 987 } 988 @if (@GetValue("Item.Link_To_Item_Type.MusicSubsection") != "") 989 { 990 <div class="options mpp-lazy"> 991 <span class="icon-music"></span> 992 <h5>Music</h5> 993 <p>@GetValue("Item.Link_To_Item_Type.MusicSubsection").ToString().Replace("src", "data-original").Replace("class='", "class='lazy")</p> 994 </div> 995 } 996 </div><!-- essentials --> 997 </div> 998 999 <div class="row"> 1000 <a href="#" class="back-to-top scrolldown">Back to top</a> 1001 </div> 1002 </div> 1003 <script defer=""> 1004 setTimeout(function () { 1005 loadScript('@Scripts.Url("~/bundles/mapescape")', function () { $('.map').mapescape(); }); 1006 }, 2000); 1007 </script> 1008 <link rel="stylesheet" href='@Styles.Url("~/bundles/mapescape_css")' media="none" onload="if(media!='all')media='all'"><noscript><link rel="stylesheet" href='@Styles.Url("~/bundles/mapescape_css")'></noscript> 1009 </section> 1010 1011 1012 </main> 1013 1014 <footer> 1015 1016 @{ 1017 var hasFeefo = false; 1018 1019 var thisPageId = (int)GetValue("DwPageID"); 1020 var paragraphService = new ParagraphService(); 1021 hasFeefo = paragraphService.GetParagraphsByPageId(thisPageId) 1022 .Any(p => p.ShowParagraph && string.Equals(p.ItemType, "Feefo_Reviews", StringComparison.OrdinalIgnoreCase)); 1023 1024 } 1025 1026 @if (!hasFeefo && feefoInformation != null && feefoInformation.NumberOfReviews > 0) 1027 { 1028 string userReviews = feefoInformation.NumberOfReviews > 1 ? "user reviews" : "user review"; 1029 string userRatings = feefoInformation.NumberOfRatings > 1 ? "ratings" : "rating"; 1030 string image = GetString("Item.Area.FeefoImage"); 1031 <section class="preFooter"> 1032 <div class="row container padding-bottom-0"> 1033 <div class="col col-width-6 feefo-markup"> 1034 <div> 1035 <strong><span>@feefoInformation.CompanyName</span></strong><br> 1036 <span> 1037 <span>@feefoInformation.Score</span> out of <span>5</span> 1038 </span> 1039 based on <span>@feefoInformation.NumberOfRatings</span> @userRatings.<br> 1040 <span>@feefoInformation.NumberOfReviews</span> @userReviews. 1041 </div> 1042 </div> 1043 <div class="col col-width-6 feefo-badge"> 1044 <a href="@feefoInformation.ReviewsUrl" target="_blank" rel="noopener"><img class="lazy" data-original="@image"></a> 1045 </div> 1046 </div> 1047 </section> 1048 } 1049 <div class="upper row padding-bottom-0 container"> 1050 1051 @if (theme != "uk") 1052 { 1053 <div class="col col-width-4 no-mobile"> 1054 <img data-original='@GetString("Item.Area.FooterLogo")' class="footerLogo lazy" alt="@logoAltText"> 1055 </div> 1056 1057 <div class="col col-width-4 margin-bottom-0 certificates"> 1058 <img data-original='@GetString("Item.Area.AccreditationLogos")' alt="Certificates" class="footerCertificates lazy"> 1059 1060 @if (social) 1061 { 1062 <div class="clear margin-20 social-follow"> 1063 @if (!string.IsNullOrWhiteSpace(twitterUN)) 1064 { 1065 <a href="https://www.twitter.com/@twitterUN" target="_blank" rel="noopener"><img class="footersocial margin-right-5 lazy" data-original="/Files/Templates/Designs/Condition/assets/images/Icons/social-twitter.svg" alt="Twitter"></a> 1066 } 1067 @if (!string.IsNullOrWhiteSpace(facebookUN)) 1068 { 1069 <a href="https://www.facebook.com/@facebookUN" target="_blank" rel="noopener"><img class="footersocial margin-right-5 lazy" data-original="/Files/Templates/Designs/Condition/assets/images/Icons/social-facebook.svg" alt="Facebook"></a> 1070 } 1071 @if (!string.IsNullOrWhiteSpace(flickrUN)) 1072 { 1073 <a href="https://www.flickr.com/photos/@flickrUN" target="_blank" rel="noopener"><img class="footersocial margin-right-5 lazy" data-original="/Files/Templates/Designs/Condition/assets/images/Icons/social-flickr.svg" alt="Flickr"></a> 1074 } 1075 @if (!string.IsNullOrWhiteSpace(youtubeUN)) 1076 { 1077 <a href="https://www.youtube.com/channel/@youtubeUN" target="_blank" rel="noopener"><img class="footersocial margin-right-5 lazy" data-original="/Files/Templates/Designs/Condition/assets/images/Icons/social-youtube.svg" alt="Youtube"></a> 1078 } 1079 @if (!string.IsNullOrWhiteSpace(instagramUN)) 1080 { 1081 <a href="https://www.instagram.com/@instagramUN" target="_blank" rel="noopener"><img class="footersocial margin-right-5 lazy" data-original="/Files/Templates/Designs/Condition/assets/images/Icons/social-instagram.svg" alt="Instagram"></a> 1082 } 1083 @if (!string.IsNullOrWhiteSpace(snapchatUN)) 1084 { 1085 <a href="https://www.snapchat.com/add/@snapchatUN" target="_blank" rel="noopener"><img class="footersocial margin-right-5 lazy" data-original="/Files/Templates/Designs/Condition/assets/images/Icons/social-snapchat.svg" alt="Snapchat"></a> 1086 } 1087 @if (!string.IsNullOrWhiteSpace(tumblrUN)) 1088 { 1089 tumblrUN = tumblrUN + ".tumblr.com"; 1090 <a href="https://@tumblrUN" target="_blank" rel="noopener"><img class="footersocial margin-right-5 lazy" data-original="/Files/Templates/Designs/Condition/assets/images/Icons/social-tumblr.svg" alt="Tumblr"></a> 1091 } 1092 </div> 1093 } 1094 </div> 1095 1096 } 1097 1098 1099 1100 @if (theme == "uk") 1101 { 1102 <div class="footer-clip-container d-flex align-bottom no-small-mobile"> 1103 <img src="@brandLogoSmall" class="lazy nst-footer-logo"> 1104 <img src="/Files/Files/Footer-Images/footer-clip-path.png" class="lazy clip-image"> 1105 <div class="col col-width-4 margin-bottom-20 contacts"> 1106 <p class="bold">Tel <span class="regular"><a class="phone" href='tel:@GetString("Item.Area.TelephoneOther")'>@GetString("Item.Area.TelephoneOther")</a></span></p> 1107 <p class="bold"> 1108 Email <span class="regular"> 1109 <a href='mailto:@GetString("Item.Area.Email")'>@GetString("Item.Area.Email")</a> 1110 </span> 1111 </p> 1112 </div> 1113 </div> 1114 1115 1116 <div class="footer-clip-container footer-clip-container-mobile"> 1117 <img src="@brandLogoSmall" class="lazy nst-footer-logo"> 1118 <img src="/Files/Files/Footer-Images/footer-clip-path.png" class="lazy clip-image"> 1119 <div class="col col-width-4 margin-bottom-20 contacts"> 1120 <p class="bold">Tel <span class="regular"><a class="phone" href='tel:@GetString("Item.Area.TelephoneOther")'>@GetString("Item.Area.TelephoneOther")</a></span></p> 1121 <p class="bold"> 1122 Email <span class="regular"> 1123 <a href='mailto:@GetString("Item.Area.Email")'>@GetString("Item.Area.Email")</a> 1124 </span> 1125 </p> 1126 </div> 1127 </div> 1128 } 1129 else 1130 { 1131 <div class="col col-width-4 margin-bottom-20 contacts"> 1132 <p class="bold">Tel <span class="regular"><a class="phone" href='tel:@GetString("Item.Area.TelephoneOther")'>@GetString("Item.Area.TelephoneOther")</a></span></p> 1133 1134 <p class="bold">Fax <span class="regular">@GetString("Item.Area.Fax")</span></p> 1135 <p class="bold"> 1136 Email <span class="regular"> 1137 <a href='mailto:@GetString("Item.Area.Email")'>@GetString("Item.Area.Email")</a> 1138 </span> 1139 </p> 1140 </div> 1141 } 1142 1143 </div> 1144 1145 1146 @if (theme == "uk") 1147 { 1148 <div class="beyond-footer-container"> 1149 <div class="beyond-footer-padding"> 1150 <div class="beyond-footer-image-container "> 1151 <a href="https://pglbeyond.com" target="_blank"><img class="beyond-footer-beyond-image" src="/Files/Files/Footer-Images/PGL-Beyond.png"></a> 1152 </div> 1153 <div class="beyond-footer-image-container "> 1154 <a href="https://pglbeyond.com" target="_blank"><img class="beyond-footer-brand-image" src="/Files/Files/Footer-Images/All-Brands.png"></a> 1155 </div> 1156 </div> 1157 </div> 1158 } 1159 1160 <div class="lower row centralise padding-top-40 container"> 1161 <nav class="footer-nav"> 1162 <ul class="clearfix"> 1163 <li><a href="/about-us">About Us</a></li> 1164 @if (theme == "est") 1165 { 1166 1167 <li><a href="https://www.euro-study-tours.co.uk/work-for-us">Work for Us</a></li> 1168 } 1169 else 1170 { 1171 <li><a href="https://www.nstgroup.co.uk/work-for-us">Work for Us</a></li> 1172 } 1173 1174 <li><a href="/cookie-policy">Cookie Policy</a></li> 1175 <li><a href="/privacy-statement">Privacy Statement</a></li> 1176 <li><a href="/legal-information">Legal Information</a></li> 1177 <li><a href="/modern-slavery">Modern Slavery</a></li> 1178 @if (theme == "uk" || theme == "slk" || theme == "est") 1179 { 1180 <li> 1181 <a href="https://www.gov.uk/foreign-travel-advice" target="_blank" rel="noopener">Foreign Travel Advice</a> 1182 </li> 1183 } 1184 else 1185 { 1186 <li> 1187 <a style="padding:0px 0px 0px 20px;">Foreign Travel Advice</a> <a href="https://www.dfa.ie/travel/travel-advice/" style="padding:0px 0px; text-decoration:underline;" target="_blank">ROI</a> <a style="padding:0px 0px;"> & </a> <a href="https://www.gov.uk/foreign-travel-advice" style="padding:0px 0px; text-decoration:underline;" target="_blank">NI</a> 1188 </li> 1189 } 1190 1191 <li><a href="/sitemap">Sitemap</a></li> 1192 <li><a class="ot-sdk-show-settings" style="cursor:pointer;">Cookies Settings</a></li> 1193 </ul> 1194 </nav> 1195 <p class="company-disclaimer" style="padding-top: 25px;">@GetString("Item.Area.CompanyRegistration")</p> 1196 <!-- <p class="copyright">© 2014 NST Travel Group Ltd</p> --> 1197 <p class="footer-company-address"> 1198 @GetString("Item.Area.CompanyAddress") 1199 </p> 1200 </div> 1201 @{ 1202 PageService affiliatepages = new PageService(); 1203 var allffiliatepages = affiliatepages.GetPagesByTitle("Affiliation Logos"); 1204 1205 if (theme != "uk") 1206 { 1207 1208 foreach (var page in allffiliatepages.Where(x => x.AreaId == Convert.ToInt32(GetGlobalValue("Global:Area.ID")))) 1209 { 1210 <div id="Affiliation-Logos">@RenderPageContent(page.ID)</div> 1211 } 1212 } 1213 } 1214 </footer> 1215 1216 @if (theme != "uk") 1217 { 1218 <div class="beyond-footer-container"> 1219 <div class="beyond-footer-curved-edge"> &nbsp; </div> 1220 <div class="beyond-footer-padding"> 1221 <div class="beyond-footer-image-container "> 1222 <a href="https://pglbeyond.com" target="_blank"><img class="beyond-footer-beyond-image" src="/Files/Files/Footer-Images/PGL-Beyond.png"></a> 1223 </div> 1224 <div class="beyond-footer-image-container "> 1225 <a href="https://pglbeyond.com" target="_blank"><img class="beyond-footer-brand-image" src="/Files/Files/Footer-Images/All-Brands.png"></a> 1226 </div> 1227 </div> 1228 </div> 1229 } 1230 </div> 1231 <div id="loadingOverlay"> 1232 <div style="width: 100%; height: 100%; background-position: center; background-repeat: no-repeat; background-image: url('@loadingImage')"></div> 1233 </div> 1234 <script> 1235 function displayLoadingOverlay() { 1236 //var scrollposition = window.sc 1237 $("#loadingOverlay").css("top", window.scrollY); 1238 $("#loadingOverlay").fadeIn(); 1239 $("body").css("overflow-y", "hidden"); 1240 } 1241 1242 function hideLoadingOverlay() { 1243 $("#loadingOverlay").fadeOut(); 1244 $("body").css("overflow-y", "initial"); 1245 } 1246 1247 window.addEventListener("pageshow", function (event) { 1248 var historyTraversal = event.persisted || 1249 (typeof window.performance != "undefined" && 1250 window.performance.navigation.type === 2); 1251 if (historyTraversal) { 1252 hideLoadingOverlay(); 1253 } 1254 }); 1255 1256 //$("img.lazy").each(function () { 1257 // $(this).attr("src", $(this).attr("data-original"); 1258 // //$(this).attr("data-original", $(this).attr("src")); 1259 // // $(this).attr("src", "/Files/Images/Loading/NST_loading.gif"); 1260 // //$(this).removeAttr("src"); 1261 //}); 1262 1263 //$(function() { 1264 // $('.tile-inner-content').hover(function () { 1265 // console.log("oooooh"); 1266 // $(this).fadeOut(); 1267 // }, function () { 1268 // $(this).fadeIn(); 1269 // }); 1270 //}); 1271 1272 </script> 1273 1274 <script src='@Scripts.Url("~/bundles/picker")'></script> 1275 <script src='@Scripts.Url("~/bundles/mainJS")'></script> @* dont put mainJS in async, it breaks FastClick and Slickify *@ 1276 <script type="text/javascript"> 1277 setTimeout(function () { 1278 var nodes = document.querySelectorAll('.mpp-lazy img'); 1279 var arr = Array.prototype.slice.call(nodes); 1280 arr.forEach(function (obj) { obj.classList.add('lazy'); }); 1281 }, 10); 1282 </script> 1283 1284 <!-- begin SnapEngage code --> 1285 @if (enableChat && !String.IsNullOrEmpty(ChatGuid)) 1286 { 1287 <script type="text/plain" class="optanon-category-C0003"> 1288 setTimeout(function () { 1289 loadScript('@Scripts.Url("~/bundles/snapengage")', function () { initSnapEnagage('@ChatGuid'); }); 1290 }, 2000); 1291 </script> 1292 } 1293 <!-- end SnapEngage code --> 1294 1295 1296 1297 1298 @{ 1299 var ctx = HttpContext.Current; 1300 var mergedFaqs = ctx.Items["AllFAQs"] as List<NstWebsite.Model.FAQ_Question_Answer>; 1301 1302 if (mergedFaqs != null && mergedFaqs.Any()) 1303 { 1304 var faqSchema = new 1305 { 1306 @context = "https://schema.org", 1307 @type = "FAQPage", 1308 mainEntity = mergedFaqs.Select(i => new 1309 { 1310 @type = "Question", 1311 name = i.Question, 1312 acceptedAnswer = new 1313 { 1314 @type = "Answer", 1315 text = i.Answer 1316 } 1317 }) 1318 }; 1319 1320 var faqJSON = JsonConvert.SerializeObject(faqSchema, Formatting.Indented); 1321 1322 <script type="application/ld+json"> 1323 @(new System.Web.HtmlString(faqJSON)) 1324 </script> 1325 } 1326 } 1327 1328 1329 </body> 1330 </html> 1331