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