PageSourceSearch

https://ndyc.org/shop

html ndyc.org collected 2026-10-02 23:38:55 UTC 38,050 bytes, 938 lines download raw bytes

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="&#x2713;" />
51&nbsp;
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 &amp; Membership</a></div>
78<div><a href="/portal?uix_click=uid_payment">Payments &amp; 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 &amp; 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;">&#9776; 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, &quot;/page/club&quot; ); 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&#39; 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 &amp; 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&#39;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, &quot;/page/race-results-1&quot; ); 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, &quot;/page/training-1&quot; ); 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 &amp; 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 &amp; Safeguarding: Website &amp; 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'>&pound;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="&#x2713;" /><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(&#39;form&#39;).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'>&pound;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="&#x2713;" /><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(&#39;form&#39;).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'>&pound;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="&#x2713;" /><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(&#39;form&#39;).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'>&pound;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="&#x2713;" /><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(&#39;form&#39;).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'>&pound;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="&#x2713;" /><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(&#39;form&#39;).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'>&copy; 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.