1<!DOCTYPE html> 2<html> 3<head> 4
5<script src='/cms-packages/jquery/1.8.3/jquery-min.js' type='text/javascript'></script>
vendor: 1 bytes, line 5
5
6<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
vendor: 1 bytes, line 6
6
7<script src="/compiled-assets/autocomplete-rails-5d8d93a5f6e19ab6e682b9dd9999592b61ff3c3d69ea242a830a8556158001fa.js"></script>
vendor: 1 bytes, line 7
7
8<script src="/javascripts/frontend/site.js"></script>
8 9<link rel="stylesheet" media="screen" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css" />
10<script src='/cms-packages/jquery-match-height/0.6.0/jquery-match-height.js' type='text/javascript'></script>
10 11<meta name="csrf-param" content="authenticity_token" /> 12<meta name="csrf-token" content="23Hb7qGbwnlNXL+dhpYWhVMV4A0ILDs6vChuFYD5a5NTB+T3KAtMDFXbIu6Q5B0bBQf85rn/wAX6fSBCdbegvQ==" /> 13<link rel="apple-touch-icon" href="/dynamic/apple-touches/1751-1105645.png" /> 14<link rel="shortcut icon" type="image/x-icon" href="/dynamic/favicons/1751-1105645.ico" /> 15 16<link rel="stylesheet" media="screen" href="/ui.css?cache=2026-10-02T23:38:54+00:00" />
17<script> 18 $(function(){ 19 $('.working-on-click').click(function(){ 20 $(this).val('Working...'); 21 return true; 22 }); 23 }) 24</script>
24 25<link href='//fonts.googleapis.com/css?family=Roboto:400,700' rel='stylesheet'> 26<link href='/cms-packages/fontawesome/4.7.0/font-awesome.css' rel='stylesheet'> 27<link href='/cms-packages/jquery-slick/1.6.0/slick-theme.css' rel='stylesheet'> 28<link href='/cms-packages/jquery-slick/1.6.0/slick.css' rel='stylesheet'> 29<link href='/generated-stylesheets/1751-160320260708.css' rel='stylesheet'> 30 31<meta content='width=device-width,initial-scale=1.0' name='viewport'> 32 33 34<title>North Devon Yacht Club</title>
35<script> 36 $(function(){ 37 $('.once-only').submit(function(){ 38 $(this).find(':submit,a.submit').prop('disabled','disabled'); 39 }); 40 }) 41</script>
41 42</head> 43<body class='action-shop '> 44 45 46 47 48<div id='topper'> 49<div class='inner'> 50<form action="/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" /> 51 52<span id='top-social'> 53 54 55 56 57 58 59 60</span> 61<span id='top-phone'> 62<span class='not-mobile'><img width="18" height="18" src="/images/site/top-phone2xnew.svg" alt="Top phone2xnew" /></span> 63<span class='not-mobile'>01271 861390</span> 64</span> 65<span id='top-email'> 66<a href='mailto:[email protected]'><img width="24" height="18" src="/images/site/top-email2xnew.svg" alt="Top email2xnew" /></a> 67<span class='not-mobile'><a href="mailto:[email protected]">Email us</a></span> 68</span> 69<span id='top-right'> 70<a href="/join-begin">Join</a> 71<a href="/my-cart">Basket</a> 72<a href="/login">Login</a> 73</span> 74<span class='bkgaae' id='top-right-dropdown' style='display:none;'> 75<div class='only-mobile'><a href="/schedule">Schedule</a></div> 76<div class='only-mobile'><a href="/messages">Messages</a></div> 77<div><a href="/portal?uix_click=uid_profile">Profile & Membership</a></div> 78<div><a href="/portal?uix_click=uid_payment">Payments & Account</a></div> 79<div><a href="/portal?uix_click=uid_club">Club Directory</a></div> 80<div><a href="/portal?uix_click=uid_booking">Bookings & Logbook</a></div> 81<div><a href="/portal?uix_click=uid_volunteer">Volunteering</a></div> 82<div><a href="/portal?uix_click=uid_comms">Communication</a></div> 83<div><a href="/portal">Portal</a></div> 84<div><a href="/do_logout">Logout</a></div> 85</span> 86<style> 87 #top-right-dropdown { position:absolute; right:0; top:calc(3px + 1em + 20px); background:transparent; border-bottom-left-radius:0.5em; border-bottom-right-radius:0.5em; z-index:1000; } 88 #top-right-dropdown a { display:block; padding:7px 20px; color:4C5D72; } 89 #top-right-dropdown a:hover { text-decoration:none; background:rgba(255,255,255,0.8); } 90 #top-right-dropdown div:last-child a { border-top:1px solid rgba(255,255,255,0.8); border-bottom-left-radius:0.5em; border-bottom-right-radius:0.5em; } 91 #topper .inner { position:relative; } 92 #top-right-dropdown.bkgffffff { border:1px solid #CCC; border-top-style:none; } 93</style> 94<style> 95 #top-right-dropdown { background-color:rgba(255,255,255,0.8); border:1px solid rgba(0,0,0,0.2); border-top-style:none; } 96 #top-right-dropdown a:hover { text-decoration:none; background:rgba(0,0,0,0.2); } 97</style> 98</form> 99 100</div> 101</div> 102 103<div id='header'> 104<div class='inner'> 105<a href="/"><img id="primary-logo" src="https://boxstuff-development-thumbnails.s3.amazonaws.com/1794441_orig.jpg" alt="1794441 orig" /></a> 106<img id="secondary-logo" src="https://boxstuff-development-thumbnails.s3.amazonaws.com/1794443_orig.jpg" alt="1794443 orig" /> 107 108</div> 109</div> 110 111<div id='grouping'> 112<div class='itop_pop' id='navigation'> 113<div class='inner'>
113<script> 114 function descendant_selector( path ) { return $('li[data-path^='+path+']').not('li[data-path='+path+']') } 115 function child_selector( path ) { var depth = $('li[data-path='+path+']').data('depth'); return $('li[data-path^='+path+'].depth'+(depth+1)).not('li[data-path='+path+']') } 116 117 function toggle_descendants( path ) { descendant_selector( path ).toggle() } 118 function toggle_children( path ) { child_selector( path ).toggle() } 119 120 function hide_descendants( path ) { descendant_selector( path ).hide() } 121 function hide_children( path ) { child_selector( path ).hide() } 122 123 function show_descendants( path ) { descendant_selector( path ).show() } 124 function show_children( path ) { child_selector( path ).show() } 125 126 function handle_toggle_click( path ) { 127 // (if) any children visible (then) hide all descendents (else) show children 128 if (child_selector( path ).filter(':visible').length) { 129 hide_descendants( path ); 130 } else { 131 hide_descendants( path ); 132 show_children( path ); 133 } 134 } 135 136 function string_chop( str, size ) { 137 if (str == null) return []; 138 str = String(str); 139 size = ~~size; 140 return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; 141 } 142 143 function expose_menu_item( path, fragment_size ) { 144 // Show parents and siblings of the given path 145 var parts = string_chop( path, fragment_size ); 146 var partial = '' 147 148 for (var i=0;i<parts.length;i++) { 149 partial += parts[i]; 150 $('li[data-path='+partial+']').show(); 151 show_children( partial ); 152 } 153 } 154</script>
154 155<ul class='menu with-burger'> 156<li class='burger'><a href="#" onclick="toggle_burger(); return false;">☰ Menu</a></li> 157<li class=' non-burger depth0 ' data-depth='0'> 158<a rel="noopener noreferrer" href="/">Home</a> 159</li> 160<li class=' non-burger depth0 popdown' data-depth='0' data-index='2'> 161<a href="#" onclick="toggle_menu_with_click( 2, "/page/club" ); return false;">Club</a> 162<div class='popup-menu' id='menu2' style='display:none;min-width:308px;'>
162<script> 163 function descendant_selector( path ) { return $('li[data-path^='+path+']').not('li[data-path='+path+']') } 164 function child_selector( path ) { var depth = $('li[data-path='+path+']').data('depth'); return $('li[data-path^='+path+'].depth'+(depth+1)).not('li[data-path='+path+']') } 165 166 function toggle_descendants( path ) { descendant_selector( path ).toggle() } 167 function toggle_children( path ) { child_selector( path ).toggle() } 168 169 function hide_descendants( path ) { descendant_selector( path ).hide() } 170 function hide_children( path ) { child_selector( path ).hide() } 171 172 function show_descendants( path ) { descendant_selector( path ).show() } 173 function show_children( path ) { child_selector( path ).show() } 174 175 function handle_toggle_click( path ) { 176 // (if) any children visible (then) hide all descendents (else) show children 177 if (child_selector( path ).filter(':visible').length) { 178 hide_descendants( path ); 179 } else { 180 hide_descendants( path ); 181 show_children( path ); 182 } 183 } 184 185 function string_chop( str, size ) { 186 if (str == null) return []; 187 str = String(str); 188 size = ~~size; 189 return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; 190 } 191 192 function expose_menu_item( path, fragment_size ) { 193 // Show parents and siblings of the given path 194 var parts = string_chop( path, fragment_size ); 195 var partial = '' 196 197 for (var i=0;i<parts.length;i++) { 198 partial += parts[i]; 199 $('li[data-path='+partial+']').show(); 200 show_children( partial ); 201 } 202 } 203</script>
203 204<ul class='menu'> 205<li class='only-mobile depth0 ' data-depth='0'> 206<a rel="noopener noreferrer" href="/page/club">Club</a> 207</li> 208<li class=' depth0 ' data-depth='0' data-path='2021'> 209<a rel="noopener noreferrer" href="/club/join-us-1">Join Us / Membership</a> 210</li> 211<li class=' depth0 ' data-depth='0' data-path='2023'> 212<a rel="noopener noreferrer" href="/club/new-members-pages">New Members' Pages</a> 213</li> 214<li class=' depth0 ' data-depth='0' data-path='2024'> 215<a rel="noopener noreferrer" href="/club/club-history-1">Club History</a> 216</li> 217<li class=' depth0 ' data-depth='0' data-path='2025'> 218<a rel="noopener noreferrer" href="/club/sailing-area-marks">Sailing Area & Marks</a> 219</li> 220<li class=' depth0 ' data-depth='0' data-path='2026'> 221<a rel="noopener noreferrer" href="/club/boat-park-and-winter-storage">Boat Park and Winter Storage</a> 222</li> 223<li class=' depth0 ' data-depth='0' data-path='2027'> 224<a rel="noopener noreferrer" href="/club/duties">Duties</a> 225</li> 226<li class=' depth0 ' data-depth='0' data-path='2028'> 227<a rel="noopener noreferrer" href="/club/policies">Policies</a> 228</li> 229<li class=' depth0 ' data-depth='0' data-path='2029'> 230<a rel="noopener noreferrer" href="/club/environment">Environment</a> 231</li> 232<li class=' depth0 ' data-depth='0' data-path='2030'> 233<a rel="noopener noreferrer" href="/club/bar-and-clubhouse">Bar and Clubhouse</a> 234</li> 235<li class=' depth1 ' data-depth='1' data-path='203031'> 236<a rel="noopener noreferrer" href="/bar-and-clubhouse/special-events">Special Events</a> 237</li> 238</ul> 239</div> 240</li> 241<li class=' non-burger depth0 popdown' data-depth='0' data-index='3'> 242<a href="#" onclick="toggle_menu( 3 ); return false;">Boating</a> 243<div class='popup-menu' id='menu3' style='display:none;min-width:539px;'>
243<script> 244 function descendant_selector( path ) { return $('li[data-path^='+path+']').not('li[data-path='+path+']') } 245 function child_selector( path ) { var depth = $('li[data-path='+path+']').data('depth'); return $('li[data-path^='+path+'].depth'+(depth+1)).not('li[data-path='+path+']') } 246 247 function toggle_descendants( path ) { descendant_selector( path ).toggle() } 248 function toggle_children( path ) { child_selector( path ).toggle() } 249 250 function hide_descendants( path ) { descendant_selector( path ).hide() } 251 function hide_children( path ) { child_selector( path ).hide() } 252 253 function show_descendants( path ) { descendant_selector( path ).show() } 254 function show_children( path ) { child_selector( path ).show() } 255 256 function handle_toggle_click( path ) { 257 // (if) any children visible (then) hide all descendents (else) show children 258 if (child_selector( path ).filter(':visible').length) { 259 hide_descendants( path ); 260 } else { 261 hide_descendants( path ); 262 show_children( path ); 263 } 264 } 265 266 function string_chop( str, size ) { 267 if (str == null) return []; 268 str = String(str); 269 size = ~~size; 270 return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; 271 } 272 273 function expose_menu_item( path, fragment_size ) { 274 // Show parents and siblings of the given path 275 var parts = string_chop( path, fragment_size ); 276 var partial = '' 277 278 for (var i=0;i<parts.length;i++) { 279 partial += parts[i]; 280 $('li[data-path='+partial+']').show(); 281 show_children( partial ); 282 } 283 } 284</script>
284 285<ul class='menu'> 286<li class=' depth0 ' data-depth='0' data-path='4041'> 287<a rel="noopener noreferrer" href="/sailing/youth-sailing">Youth Sailing</a> 288</li> 289<li class=' depth1 ' data-depth='1' data-path='404143'> 290<a rel="noopener noreferrer" href="/youth-sailing/youth-race-">Youth Race </a> 291</li> 292<li class=' depth1 ' data-depth='1' data-path='404144'> 293<a rel="noopener noreferrer" href="/youth-sailing/youth-sail">Youth Sail</a> 294</li> 295<li class=' depth1 ' data-depth='1' data-path='404145'> 296<a rel="noopener noreferrer" href="/youth-sailing/pirates-and-privateers">Pirates and Privateers</a> 297</li> 298<li class=' depth0 ' data-depth='0' data-path='4046'> 299<a rel="noopener noreferrer" href="/sailing/simply-powerboating">Powerboating</a> 300</li> 301<li class=' depth0 ' data-depth='0' data-path='4047'> 302<a rel="noopener noreferrer" href="/sailing/catamaran-fleets-at-ndyc-">Catamaran Fleets at NDYC </a> 303</li> 304<li class=' depth0 ' data-depth='0' data-path='4049'> 305<a rel="noopener noreferrer" href="/sailing/motor-boating-">Motor boating </a> 306</li> 307<li class=' depth0 ' data-depth='0' data-path='4050'> 308<a rel="noopener noreferrer" href="/sailing/cruisers">Cruisers</a> 309</li> 310<li class=' depth0 ' data-depth='0' data-path='4052'> 311<a rel="noopener noreferrer" href="/sailing/club-dinghies-rigging-videos">Club Dinghies - Rigging Videos</a> 312</li> 313<li class=' depth0 ' data-depth='0' data-path='4055'> 314<a rel="noopener noreferrer" href="/sailing/womens-sailing">Women's Sailing</a> 315</li> 316<li class=' depth0 ' data-depth='0' data-path='4056'> 317<a rel="noopener noreferrer" href="/sailing/club-boats-use-and-booking-information">Club Boats Use and Booking information</a> 318</li> 319<li class=' depth0 ' data-depth='0' data-path='4057'> 320<a rel="noopener noreferrer" href="/sailing/follow-on-sailing">Recreational Sailing (FOS and Just Sail)</a> 321</li> 322<li class=' depth0 ' data-depth='0' data-path='4058'> 323<a rel="noopener noreferrer" href="/sailing/racing">Racing</a> 324</li> 325<li class=' depth0 ' data-depth='0' data-path='4059'> 326<a rel="noopener noreferrer" href="/sailing/safety-boat-helm-and-crew-aide-memoire">Safety Boat Helm and Crew Aide Memoire</a> 327</li> 328<li class=' depth0 ' data-depth='0' data-path='4060'> 329<a rel="noopener noreferrer" href="/sailing/bca-blaze-western-championship-2026-25-26-april">Open Meetings</a> 330</li> 331<li class=' depth1 ' data-depth='1' data-path='406061'> 332<a rel="noopener noreferrer" href="/open-meetings/bca-blaze-western-championship-2026-25-26-april">BCA Blaze Western Championship 2026, 25 26 April</a> 333</li> 334<li class=' depth1 ' data-depth='1' data-path='406062'> 335<a rel="noopener noreferrer" href="/open-meetings/dart-15-sport-mode-national-championships-2026">Dart 15 Sport Mode National Championships 2026</a> 336</li> 337<li class=' depth1 ' data-depth='1' data-path='406063'> 338<a rel="noopener noreferrer" href="/open-meetings/open-week-2026">Open Week 2026 2nd - 8th August </a> 339</li> 340</ul> 341</div> 342</li> 343<li class=' non-burger depth0 ' data-depth='0'> 344<a rel="noopener noreferrer" href="/events">Calendar</a> 345</li> 346<li class=' non-burger depth0 ' data-depth='0'> 347<a rel="noopener noreferrer" href="/news">News</a> 348</li> 349<li class=' non-burger depth0 popdown' data-depth='0' data-index='1'> 350<a href="#" onclick="toggle_menu_with_click( 1, "/page/race-results-1" ); return false;">Halsail results</a> 351<div class='popup-menu' id='menu1' style='display:none;min-width:165px;'>
351<script> 352 function descendant_selector( path ) { return $('li[data-path^='+path+']').not('li[data-path='+path+']') } 353 function child_selector( path ) { var depth = $('li[data-path='+path+']').data('depth'); return $('li[data-path^='+path+'].depth'+(depth+1)).not('li[data-path='+path+']') } 354 355 function toggle_descendants( path ) { descendant_selector( path ).toggle() } 356 function toggle_children( path ) { child_selector( path ).toggle() } 357 358 function hide_descendants( path ) { descendant_selector( path ).hide() } 359 function hide_children( path ) { child_selector( path ).hide() } 360 361 function show_descendants( path ) { descendant_selector( path ).show() } 362 function show_children( path ) { child_selector( path ).show() } 363 364 function handle_toggle_click( path ) { 365 // (if) any children visible (then) hide all descendents (else) show children 366 if (child_selector( path ).filter(':visible').length) { 367 hide_descendants( path ); 368 } else { 369 hide_descendants( path ); 370 show_children( path ); 371 } 372 } 373 374 function string_chop( str, size ) { 375 if (str == null) return []; 376 str = String(str); 377 size = ~~size; 378 return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; 379 } 380 381 function expose_menu_item( path, fragment_size ) { 382 // Show parents and siblings of the given path 383 var parts = string_chop( path, fragment_size ); 384 var partial = '' 385 386 for (var i=0;i<parts.length;i++) { 387 partial += parts[i]; 388 $('li[data-path='+partial+']').show(); 389 show_children( partial ); 390 } 391 } 392</script>
392 393<ul class='menu'> 394<li class='only-mobile depth0 ' data-depth='0'> 395<a rel="noopener noreferrer" href="/page/race-results-1">Halsail results</a> 396</li> 397</ul> 398</div> 399</li> 400<li class=' non-burger depth0 popdown' data-depth='0' data-index='4'> 401<a href="#" onclick="toggle_menu_with_click( 4, "/page/training-1" ); return false;">Training</a> 402<div class='popup-menu' id='menu4' style='display:none;min-width:297px;'>
402<script> 403 function descendant_selector( path ) { return $('li[data-path^='+path+']').not('li[data-path='+path+']') } 404 function child_selector( path ) { var depth = $('li[data-path='+path+']').data('depth'); return $('li[data-path^='+path+'].depth'+(depth+1)).not('li[data-path='+path+']') } 405 406 function toggle_descendants( path ) { descendant_selector( path ).toggle() } 407 function toggle_children( path ) { child_selector( path ).toggle() } 408 409 function hide_descendants( path ) { descendant_selector( path ).hide() } 410 function hide_children( path ) { child_selector( path ).hide() } 411 412 function show_descendants( path ) { descendant_selector( path ).show() } 413 function show_children( path ) { child_selector( path ).show() } 414 415 function handle_toggle_click( path ) { 416 // (if) any children visible (then) hide all descendents (else) show children 417 if (child_selector( path ).filter(':visible').length) { 418 hide_descendants( path ); 419 } else { 420 hide_descendants( path ); 421 show_children( path ); 422 } 423 } 424 425 function string_chop( str, size ) { 426 if (str == null) return []; 427 str = String(str); 428 size = ~~size; 429 return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; 430 } 431 432 function expose_menu_item( path, fragment_size ) { 433 // Show parents and siblings of the given path 434 var parts = string_chop( path, fragment_size ); 435 var partial = '' 436 437 for (var i=0;i<parts.length;i++) { 438 partial += parts[i]; 439 $('li[data-path='+partial+']').show(); 440 show_children( partial ); 441 } 442 } 443</script>
443 444<ul class='menu'> 445<li class='only-mobile depth0 ' data-depth='0'> 446<a rel="noopener noreferrer" href="/page/training-1">Training</a> 447</li> 448<li class=' depth0 ' data-depth='0' data-path='7577'> 449<a rel="noopener noreferrer" href="/training-1/dingy-sailing-courses">Dinghy Sailing Courses</a> 450</li> 451<li class=' depth0 ' data-depth='0' data-path='7578'> 452<a rel="noopener noreferrer" href="/training-1/youth-training-cadets">Youth Training (Cadets)</a> 453</li> 454<li class=' depth0 ' data-depth='0' data-path='7580'> 455<a rel="noopener noreferrer" href="/training-1/power-boat-training">Power Boat Training</a> 456</li> 457<li class=' depth0 ' data-depth='0' data-path='7582'> 458<a rel="noopener noreferrer" href="/training-1/instructor-pages">Instructor Pages</a> 459</li> 460<li class=' depth1 ' data-depth='1' data-path='758284'> 461<a rel="noopener noreferrer" href="/instructor-pages/instructor-page-">How to become an Instructor</a> 462</li> 463</ul> 464</div> 465</li> 466<li class=' non-burger depth0 ' data-depth='0'> 467<a rel="noopener noreferrer" href="/booking">Book Online </a> 468</li> 469<li class=' non-burger depth0 on popdown' data-depth='0' data-index='0'> 470<a href="#" onclick="toggle_menu( 0 ); return false;">Shop</a> 471<div class='popup-menu' id='menu0' style='display:none;min-width:33px;'>
471<script> 472 function descendant_selector( path ) { return $('li[data-path^='+path+']').not('li[data-path='+path+']') } 473 function child_selector( path ) { var depth = $('li[data-path='+path+']').data('depth'); return $('li[data-path^='+path+'].depth'+(depth+1)).not('li[data-path='+path+']') } 474 475 function toggle_descendants( path ) { descendant_selector( path ).toggle() } 476 function toggle_children( path ) { child_selector( path ).toggle() } 477 478 function hide_descendants( path ) { descendant_selector( path ).hide() } 479 function hide_children( path ) { child_selector( path ).hide() } 480 481 function show_descendants( path ) { descendant_selector( path ).show() } 482 function show_children( path ) { child_selector( path ).show() } 483 484 function handle_toggle_click( path ) { 485 // (if) any children visible (then) hide all descendents (else) show children 486 if (child_selector( path ).filter(':visible').length) { 487 hide_descendants( path ); 488 } else { 489 hide_descendants( path ); 490 show_children( path ); 491 } 492 } 493 494 function string_chop( str, size ) { 495 if (str == null) return []; 496 str = String(str); 497 size = ~~size; 498 return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; 499 } 500 501 function expose_menu_item( path, fragment_size ) { 502 // Show parents and siblings of the given path 503 var parts = string_chop( path, fragment_size ); 504 var partial = '' 505 506 for (var i=0;i<parts.length;i++) { 507 partial += parts[i]; 508 $('li[data-path='+partial+']').show(); 509 show_children( partial ); 510 } 511 } 512</script>
512 513<ul class='menu'> 514<li class=' depth0 on ' data-depth='0'> 515<a rel="noopener noreferrer" href="/shop">All</a> 516</li> 517</ul> 518</div> 519</li> 520<li class=' non-burger depth0 popdown' data-depth='0' data-index='5'> 521<a href="#" onclick="toggle_menu( 5 ); return false;">Safeguarding</a> 522<div class='popup-menu' id='menu5' style='display:none;min-width:726px;'>
522<script> 523 function descendant_selector( path ) { return $('li[data-path^='+path+']').not('li[data-path='+path+']') } 524 function child_selector( path ) { var depth = $('li[data-path='+path+']').data('depth'); return $('li[data-path^='+path+'].depth'+(depth+1)).not('li[data-path='+path+']') } 525 526 function toggle_descendants( path ) { descendant_selector( path ).toggle() } 527 function toggle_children( path ) { child_selector( path ).toggle() } 528 529 function hide_descendants( path ) { descendant_selector( path ).hide() } 530 function hide_children( path ) { child_selector( path ).hide() } 531 532 function show_descendants( path ) { descendant_selector( path ).show() } 533 function show_children( path ) { child_selector( path ).show() } 534 535 function handle_toggle_click( path ) { 536 // (if) any children visible (then) hide all descendents (else) show children 537 if (child_selector( path ).filter(':visible').length) { 538 hide_descendants( path ); 539 } else { 540 hide_descendants( path ); 541 show_children( path ); 542 } 543 } 544 545 function string_chop( str, size ) { 546 if (str == null) return []; 547 str = String(str); 548 size = ~~size; 549 return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; 550 } 551 552 function expose_menu_item( path, fragment_size ) { 553 // Show parents and siblings of the given path 554 var parts = string_chop( path, fragment_size ); 555 var partial = '' 556 557 for (var i=0;i<parts.length;i++) { 558 partial += parts[i]; 559 $('li[data-path='+partial+']').show(); 560 show_children( partial ); 561 } 562 } 563</script>
563 564<ul class='menu'> 565<li class=' depth0 ' data-depth='0' data-path='8586'> 566<a rel="noopener noreferrer" href="/safeguarding/welfare-safeguarding-1">Raise a concern: Welfare & Safeguarding</a> 567</li> 568<li class=' depth1 ' data-depth='1' data-path='858687'> 569<a rel="noopener noreferrer" href="/welfare-safeguarding-1/website-online-safety-and-messaging-apps">Welfare & Safeguarding: Website & Online Safety and Messaging Apps</a> 570</li> 571</ul> 572</div> 573</li> 574<li class=' non-burger depth0 ' data-depth='0'> 575<a rel="noopener noreferrer" href="/links">Links</a> 576</li> 577<li class=' non-burger depth0 ' data-depth='0'> 578<a rel="noopener noreferrer" href="/contact">Contact</a> 579</li> 580</ul> 581</div> 582</div>
583<script> 584 function toggle_burger() { 585 $('.non-burger').toggleClass( 'show' ); 586 } 587</script>
587 588<style> 589 .count { 590 float:right; 591 display:inline-block; 592 background:#888; 593 color:white; 594 font-size:10px; 595 padding:0 3px; 596 border-radius:2px; 597 position:relative; 598 top:2px; 599 } 600</style> 601</div> 602 603 604<div class='with-secondary ' id='page'> 605<div class='inner'> 606 607 608<div class='' id='secondary' style='display:none'> 609 610</div> 611 612<div id='primary'> 613<style> 614 #problems a { color:white; font-weight:bold; } 615</style> 616 617 618 619 620
621<script src='/cms-packages/jquery-appear/0.3.6/jquery.appear.js'></script>
621 622<style> 623 a.cart-add, 624 ul.gridded li a.cart-add { display:inline-block; padding:2px 4px 2px 4px; background:#45bc43; color:white; font-size:11px; margin:3px; border-radius:2px; font-family:arial; box-shadow:1px 1px 1px rgba(0,0,0,0.25); } 625 li:hover a.cart-add, 626 ul.gridded li:hover a.cart-add { color:white; } 627 a.cart-add:hover, 628 ul.gridded li a.cart-add:hover { color:white; box-shadow:none; position:relative; top:1px; left:1px; } 629 ul.gridded input.quantity { width:4em; text-align:center; } 630</style>
631<script> 632 function decrement_quantity( dom ) { 633 var input = $(dom).siblings('input'); 634 var value = parseInt( input.val() ); 635 if (value > 1) { 636 value -= 1; 637 } 638 input.val( value ); 639 } 640 function increment_quantity( dom ) { 641 var input = $(dom).siblings('input'); 642 var value = parseInt( input.val() ); 643 value += 1; 644 input.val( value ); 645 } 646</script>
646 647 648<style> 649 a.name.alt { overflow:auto; color:#BBB; font-size:11px; } 650 li:hover a.name.alt { color:#888; } 651 ul.gridded li a.name.alt:hover span { text-decoration:none !important; } 652 span.alt-name { float:left; } 653 span.alt-index { float:right; } 654</style> 655<h1 class='portal'>Latest</h1> 656<ul class='grid-size-4 gridded' id='products'><li class='stale'> 657<div> 658<div class='aspect-ratio-box'> 659<div class='aspect-ratio-box-inside'> 660<div class='flexbox-centering'><a href="/product/rya-log-book-">Missing image</a></div> 661</div> 662</div> 663<br> 664<a class="name" href="/product/rya-log-book-">RYA Log book </a> 665<div class='extra'> 666<span class='price'>£9.00</span> 667<br> 668<form class="inline" action="/do_cart_add" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="QrgQiCat90TJo+2PokqZIf9F2r+YaCFQjAb0Tja7lpXKzi+Rrz15MdEkcPy0OJK/qVfGVCm72m/KU7oZw/Vduw==" /> 669<input type="hidden" name="return" id="return" value="/shop" /> 670<input type="hidden" name="product_id" id="product_id" value="239005" /> 671<input type="hidden" name="price_id" id="price_id" value="29147" /> 672<input type="hidden" name="variant_option_id" id="variant_option_id" /> 673<input type="hidden" name="secondary_variant_option_id" id="secondary_variant_option_id" /> 674<span class='quantity-box'><span><a class="quantity-dec" href="#" onclick="decrement_quantity( this ); return false;">-</a><input type="text" name="quantity" id="quantity" value="1" class="quantity-val" /><a class="quantity-inc" href="#" onclick="increment_quantity( this ); return false;">+</a></span><a class="button quantity-add" href="#" onclick="$(this).closest('form').submit();; return false;">Add<span> to basket</span></a></span> 675</form> 676 677</div> 678</div> 679</li> 680<li class='stale'> 681<div> 682<a href="/product/7-day-membership"><img src="https://boxstuff-development-thumbnails.s3.amazonaws.com/1207427_400.0x400f.jpg" alt="1207427 400.0x400f" /></a> 683<br> 684<a class="name" href="/product/7-day-membership">Temporary Family Membership (7 day)</a> 685<div class='extra'> 686Family 687<span class='price'>£44.00</span> 688<br> 689<form class="inline" action="/do_cart_add" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="osYvAap5mb3EWfgyVwOaOukov2OphIKY/VotiNC5IqwqsBAYI+kXyNzeZUFBcZGkvzqjiBhXeae7D2PfJffpgg==" /> 690<input type="hidden" name="return" id="return" value="/shop" /> 691<input type="hidden" name="product_id" id="product_id" value="16319" /> 692<input type="hidden" name="price_id" id="price_id" value="21377" /> 693<input type="hidden" name="variant_option_id" id="variant_option_id" /> 694<input type="hidden" name="secondary_variant_option_id" id="secondary_variant_option_id" /> 695<span class='quantity-box'><span><a class="quantity-dec" href="#" onclick="decrement_quantity( this ); return false;">-</a><input type="text" name="quantity" id="quantity" value="1" class="quantity-val" /><a class="quantity-inc" href="#" onclick="increment_quantity( this ); return false;">+</a></span><a class="button quantity-add" href="#" onclick="$(this).closest('form').submit();; return false;">Add<span> to basket</span></a></span> 696</form> 697 698</div> 699</div> 700</li> 701<li class='stale'> 702<div> 703<a href="/product/2-day-membership"><img src="https://boxstuff-development-thumbnails.s3.amazonaws.com/1207425_400.0x400f.jpg" alt="1207425 400.0x400f" /></a> 704<br> 705<a class="name" href="/product/2-day-membership">Temporary Individual Membership (7 day)</a> 706<div class='extra'> 707Temporary Individual 708<span class='price'>£33.00</span> 709<br> 710<form class="inline" action="/do_cart_add" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="ojD7j3TJqyGu7DXY0l7OfkP5JGywsLCrrapJi9djUpEqRsSW/VklVLZrqKvELMXgFes4hwFjS5Tr/wfcIi2Zvw==" /> 711<input type="hidden" name="return" id="return" value="/shop" /> 712<input type="hidden" name="product_id" id="product_id" value="16311" /> 713<input type="hidden" name="price_id" id="price_id" value="21367" /> 714<input type="hidden" name="variant_option_id" id="variant_option_id" /> 715<input type="hidden" name="secondary_variant_option_id" id="secondary_variant_option_id" /> 716<span class='quantity-box'><span><a class="quantity-dec" href="#" onclick="decrement_quantity( this ); return false;">-</a><input type="text" name="quantity" id="quantity" value="1" class="quantity-val" /><a class="quantity-inc" href="#" onclick="increment_quantity( this ); return false;">+</a></span><a class="button quantity-add" href="#" onclick="$(this).closest('form').submit();; return false;">Add<span> to basket</span></a></span> 717</form> 718 719</div> 720</div> 721</li> 722<li class='stale'> 723<div> 724<a href="/product/club-burgee"><img src="https://boxstuff-development-thumbnails.s3.amazonaws.com/1153995_400.0x400f.jpg" alt="1153995 400.0x400f" /></a> 725<br> 726<a class="name" href="/product/club-burgee">Club Burgee</a> 727<div class='extra'> 728<span class='price'>£29.99</span> 729<br> 730<form class="inline" action="/do_cart_add" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="9WcBYcuoZ2gXfVnroj94HKEGsJYzbEAmGwoCTXiAT6R9ET54QjjpHQ/6xJi0TXOC9xSsfYK/uxldX0wajc6Eig==" /> 731<input type="hidden" name="return" id="return" value="/shop" /> 732<input type="hidden" name="product_id" id="product_id" value="15883" /> 733<input type="hidden" name="price_id" id="price_id" value="20877" /> 734<input type="hidden" name="variant_option_id" id="variant_option_id" /> 735<input type="hidden" name="secondary_variant_option_id" id="secondary_variant_option_id" /> 736<span class='quantity-box'><span><a class="quantity-dec" href="#" onclick="decrement_quantity( this ); return false;">-</a><input type="text" name="quantity" id="quantity" value="1" class="quantity-val" /><a class="quantity-inc" href="#" onclick="increment_quantity( this ); return false;">+</a></span><a class="button quantity-add" href="#" onclick="$(this).closest('form').submit();; return false;">Add<span> to basket</span></a></span> 737</form> 738 739</div> 740</div> 741</li> 742<li class='stale'> 743<div> 744<a href="/product/membership-card"><img src="https://boxstuff-development-thumbnails.s3.amazonaws.com/1122347_400.0x400f.jpg" alt="1122347 400.0x400f" /></a> 745<br> 746<a class="name" href="/product/membership-card">Barrier pass Card</a> 747<div class='extra'> 748<span class='price'>£10.00</span> 749<br> 750<form class="inline" action="/do_cart_add" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="lqLkPloobRtFKPkiZsFkdZwMjVngt+MrKAHHcTozPxQe1Nsn07jjbl2vZFFws2/ryh6RslFkGBRuVIkmz330Og==" /> 751<input type="hidden" name="return" id="return" value="/shop" /> 752<input type="hidden" name="product_id" id="product_id" value="15725" /> 753<input type="hidden" name="price_id" id="price_id" value="20879" /> 754<input type="hidden" name="variant_option_id" id="variant_option_id" /> 755<input type="hidden" name="secondary_variant_option_id" id="secondary_variant_option_id" /> 756<span class='quantity-box'><span><a class="quantity-dec" href="#" onclick="decrement_quantity( this ); return false;">-</a><input type="text" name="quantity" id="quantity" value="1" class="quantity-val" /><a class="quantity-inc" href="#" onclick="increment_quantity( this ); return false;">+</a></span><a class="button quantity-add" href="#" onclick="$(this).closest('form').submit();; return false;">Add<span> to basket</span></a></span> 757</form> 758 759</div> 760</div> 761</li> 762</ul> 763<div id='more'> 764<a href="#" onclick="load_more(); return false;">More...</a> 765<span style='display:none'>Loading...</span> 766</div>
767<script> 768 var next_page = 2; 769 var loading = false; 770 var dotter = null; 771 function fade_in(index) { 772 $(this).hide().delay(100*index).fadeIn(300).addClass('stale'); 773 } 774 function products_loaded( data ) { 775 next_page += 1; 776 stop_loading_more(); 777 $('#products').append( data ) 778 equally_high_with_padding( '#products li' ); 779 if ($('#products li:not(.stale)').length==0) { 780 no_more(); 781 } 782 $('#products li:not(.stale)').each(fade_in); 783 } 784 function do_dotter() { 785 $('#more span').append('.'); 786 } 787 function start_dotter() { 788 $('#more span').text('Loading...'); 789 dotter = setInterval( do_dotter, 200 ) 790 } 791 function stop_dotter() { 792 clearInterval( dotter ); 793 } 794 function start_loading_more() { 795 loading = true; 796 start_dotter(); 797 $('#more > *').toggle() 798 } 799 function stop_loading_more() { 800 loading = false; 801 stop_dotter(); 802 $('#more > *').toggle() 803 } 804 function load_more() { 805 if (!loading) { 806 start_loading_more(); 807 $.get( '/products', { force_enable: null, page_size: 12, order: 'latest', page: next_page, search: '', tag: '', return: '/shop' }, products_loaded ) 808 } 809 } 810 function no_more() { 811 $('#more').remove(); 812 } 813 $(function(){ 814 $('#more').appear(); 815 $('#more').on('appear',load_more); 816 }) 817 818 //equally_high_with_padding( '.products li' ); 819</script>
819 820 821<style> 822 #base-paging { text-align:left; } 823 #base-paging a:first-child, #base-paging span:first-child { } 824 #base-paging a:last-child, #base-paging span:last-child { float:right; } 825</style> 826<div id='base-paging'> 827</div> 828</div> 829<div style='clear:both;'></div> 830</div> 831</div> 832 833 834 835 836<div id='footer'> 837<div class='inner'> 838<table> 839<tr> 840<td class='cols2'> 841<h2>Site</h2>
842<script> 843 function descendant_selector( path ) { return $('li[data-path^='+path+']').not('li[data-path='+path+']') } 844 function child_selector( path ) { var depth = $('li[data-path='+path+']').data('depth'); return $('li[data-path^='+path+'].depth'+(depth+1)).not('li[data-path='+path+']') } 845 846 function toggle_descendants( path ) { descendant_selector( path ).toggle() } 847 function toggle_children( path ) { child_selector( path ).toggle() } 848 849 function hide_descendants( path ) { descendant_selector( path ).hide() } 850 function hide_children( path ) { child_selector( path ).hide() } 851 852 function show_descendants( path ) { descendant_selector( path ).show() } 853 function show_children( path ) { child_selector( path ).show() } 854 855 function handle_toggle_click( path ) { 856 // (if) any children visible (then) hide all descendents (else) show children 857 if (child_selector( path ).filter(':visible').length) { 858 hide_descendants( path ); 859 } else { 860 hide_descendants( path ); 861 show_children( path ); 862 } 863 } 864 865 function string_chop( str, size ) { 866 if (str == null) return []; 867 str = String(str); 868 size = ~~size; 869 return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; 870 } 871 872 function expose_menu_item( path, fragment_size ) { 873 // Show parents and siblings of the given path 874 var parts = string_chop( path, fragment_size ); 875 var partial = '' 876 877 for (var i=0;i<parts.length;i++) { 878 partial += parts[i]; 879 $('li[data-path='+partial+']').show(); 880 show_children( partial ); 881 } 882 } 883</script>
883 884<ul class='menu'> 885<li class=' depth0 ' data-depth='0'> 886<a rel="noopener noreferrer" href="/">Home</a> 887</li> 888<li class=' depth0 ' data-depth='0'> 889<a rel="noopener noreferrer" href="/events">Calendar</a> 890</li> 891<li class=' depth0 ' data-depth='0'> 892<a rel="noopener noreferrer" href="/news">News</a> 893</li> 894<li class=' depth0 ' data-depth='0'> 895<a rel="noopener noreferrer" href="/booking">Book Online </a> 896</li> 897<li class=' depth0 on ' data-depth='0'> 898<a rel="noopener noreferrer" href="/shop">Shop</a> 899</li> 900<li class=' depth0 ' data-depth='0'> 901<a rel="noopener noreferrer" href="/classifieds">Classifieds</a> 902</li> 903<li class=' depth0 ' data-depth='0'> 904<a rel="noopener noreferrer" href="/links">Links</a> 905</li> 906<li class=' depth0 ' data-depth='0'> 907<a rel="noopener noreferrer" href="/contact">Contact</a> 908</li> 909</ul> 910 911</td> 912<td class='cols2'> 913<h2>Contact details</h2> 914<p>Marine Parade<br />Instow<br />Bideford<br />Devon<br />EX39 4HW<br />UK</p> 915<p> 916Phone : 01271 861390 917<br> 918Email : <a href="mailto:[email protected]">[email protected]</a> 919</p> 920<p><a href="/contact#map">View on map</a></p> 921</td> 922</tr> 923</table> 924</div> 925</div> 926 927 928<div id='base'> 929<div class='inner'> 930<span id='base-credit'>© 2026 North Devon Yacht Club</span> 931<span id='base-right'>powered by <a target="_blank" rel="noopener noreferrer" href="http://www.sailingclubmanager.com">Sailing Club Manager</a></span> 932</div> 933</div> 934
935<script>setup_sticky_menu();</script>
935 936 937</body> 938</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.