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