PageSourceSearch

https://www.mattlutton.com/index

html mattlutton.com collected 2026-09-29 08:21:31 UTC 53,355 bytes, 1,035 lines download raw bytes

1<!DOCTYPE html>
2<!--
3### Powered by the PhotoShelter Beam platform
4### http://photoshelter.com/beam
5### (c) 2013 PhotoShelter, Inc.
6-->
7
8<!--[if IE 9]> <html dir="ltr" lang="en-US" class="no-js lt-ie10 can-click"> <![endif]-->
9<!--[if !IE]> --> <html dir="ltr" lang="en-US" class="no-js can-click"> <!--<![endif]-->
10
11<head>
12<meta charset="utf-8">
13<link rel="dns-prefetch" href="//css.c.photoshelter.com/">
14<link rel="dns-prefetch" href="//js.c.photoshelter.com/">
15<link rel="dns-prefetch" href="//cdn.c.photoshelter.com/">
16<title>Matt Lutton - Photographer</title>
17<meta name="description" content="" />
18<meta property="og:description" content="" />
19<meta property="og:title" content="Matt Lutton - Photographer" />
20<meta property="og:type" content="website" />
21<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
22<meta name="apple-mobile-web-app-capable" content="yes" />
23<meta name="apple-mobile-web-app-status-bar-style" content="black" />
24<link rel="canonical" href="https://www.mattlutton.com/index/" /><style>
25
26.loading-c2, .loading-bar {
27	-webkit-box-sizing: border-box;
28	-moz-box-sizing: border-box;
29	box-sizing: border-box;
30}
31.loading-c2 {
32	position: fixed;
33	top: 0;
34	left: 0;
35	width: 100vw;
36	height: 100vh;
37	text-align: center;
38}
39.loading-c2&:before {
40	content: '';
41	margin: 0 0 0 -4px;
42	height: 100%;
43	vertical-align: middle;
44	display: inline-block;
45}
46.bar-holder {
47	width: 80%;
48	margin: 0 auto;
49	max-width: 1100px;
50	vertical-align: middle;
51	position: relative;
52	display: inline-block;
53	height: 2px;
54}
55.loading-bar {
56	will-change: true;
57	width: 100%;
58	height: 100%;
59	background: rgba(64, 64, 64, 0.4);
60	-webkit-animation: loading 4s linear infinite;
61	-moz-animation: loading 4s linear infinite;
62	-o-animation: loading 4s linear infinite;
63	animation: loading 4s linear infinite;
64}
65@-webkit-keyframes loading {
66	0%   { transform: translate3d(-100%,0,0); }
67	100% { transform: translate3d(100%,0,0); }
68}
69@-moz-keyframes loading {
70	0%   { transform: translate3d(-100%,0,0); }
71	100% { transform: translate3d(100%,0,0); }
72}
73@-o-keyframes loading {
74	0%   { transform: translate3d(-100%,0,0); }
75	100% { transform: translate3d(100%,0,0); }
76}
77@keyframes loading {
78	0%   { transform: translate3d(-100%,0,0); }
79	100% { transform: translate3d(100%,0,0); }
80}
81
82</style>
83<link rel="stylesheet" type="text/css" href="https://www.mattlutton.com/css/cssCfg/scss=%252fasset%252fc2%252fapp%252fcss%252fbase.scss/label=luttonm/theme=Theme7/ts=1645396096/rev=1788533357">
84<link rel="stylesheet" type="text/css" href="https://www.mattlutton.com/css/cssCfg/scss=asset%252fc2%252ftheme%252fTheme7%252fcss%252fstyles.scss/label=luttonm/theme=Theme7/ts=1645396096/rev=1788533357">
85
86<!--[if lt IE 9]>
87<script type="text/javascript">
88
89(function(a,b){
90	var m, rl = "/gallery-list";
91	if (parseInt(a.appVersion.split('MSIE')[1]) < 9 ) {
92		//special case forward to user content page
93		m = /#!\/(p|contact|about)($|\/.+)/g.exec(b.href);
94		if (m) rl = m[0].slice('#!'.length);
95		b.replace(rl);
96	}
97})(navigator,location);
98
99</script>
99
100<![endif]-->
101
102<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
vendor: 1 bytes, line 102
102
103<script type="text/javascript">
104
105if (typeof window.jQuery !== 'function') {
106	var src = 'js/jquery/jquery-1.8.2.min.js';
107	document.write('
107<script src="' + src + '">\x3C/script>');
108}
109
110</script>
110
111
112<script type="text/javascript" src="https://www.mattlutton.com/js/APP/1788533357/modernizr/modernizr-custom-2.8.3.js,polyfils/raf.js,polyfils/custom-event.js"></script>
112
113
114
115<script type="text/javascript" src="https://www.mattlutton.com/js/APP/1788533357/2.0/lib/O_O.js,lib/O_O.lib.Util.js,app/O_O.app.Visualizer.js"></script>
115
116
117
118	
118<script id='Content_main' type='text/template'>
119<div class='wContent'>
120	<%= content.content %>
121</div>
122</script>
122
123
124<script id='Content_editor' type='text/template'>
125	<p class="note">
126	Edit your text directly on the page.
127	<!-- Click the edit button below to toggle between editing and previewing.<br>-->
128	<br>
129	Don't forget to hit "Save" when you're done!
130	</p>
131	
132	<!-- <button class="togglePreview">Preview</button> -->
133	<div class="body">
134		<form class="customForm">
135			<div class="row typeText" data-group="default">
136				<label>Page Title</label>
137				<input type="text" name="page_title" value="<%- unescape(ptitle) %>" placeholder="">
138			</div>
139			<div class="row typeTextarea" data-group="default">
140				<label>Meta Description</label>
141				<textarea name="meta_description"><%= cmeta %></textarea>
142			</div>
143		</form>
144	</div>
145</script>
145
146
147	
147<script id='ContactForm_editor' type='text/template'>
148<div>Send Button Text: <input name="sendText" type="text" value="<%= sendText %>" /></div>
149<div>Use Captcha: <select name="f_captcha"><option value="1">Yes</option><option value="0">No</option></select></div>
150</script>
150
151
152<script id='ContactForm_main' type='text/template'>
153<%= recaptcha_script_line %>
154<form>
155<div class="singles">
156	<div class="name">
157		<label>Name</label>
158		<input type="text" rel="Full Name" <% if (f_placeholder) { %> placeholder="Name" <% } %> value="" name="name" required>
159		<span class="status"> 
160			<span class="valid"><span class="indicator"></span></span>
161			<span class="invalid"><span class="indicator"></span>Please enter your name.</span>
162			<span class="indicator"></span>
163		</span>
164	</div>
165	<div class="email">
166		<label>Email</label>
167		<input type="email" rel="Email Address" <% if (f_placeholder) { %> placeholder="Email" <% } %>  value="" name="email" required>
168		<span class="status"> 
169			<span class="valid"><span class="indicator"></span></span>
170			<span class="invalid"><span class="indicator"></span>Please enter a valid email address.</span>
171			<span class="indicator"></span>
172		</span>
173	</div>
174	<div class="phone">
175		<label>Phone</label>
176		<input type="phone" rel="Phone Number" <% if (f_placeholder) { %> placeholder="Phone" <% } %>  value="" name="phone">
177		<!--span class="status"> 
178			<span class="valid"><span class="indicator"></span></span>
179			<span class="invalid"><span class="indicator"></span>Please enter a valid phone number.</span>
180			<span class="indicator"></span>
181		</span-->
182	</div>
183</div>
184	<div class="note">
185		<label>Note</label>
186		<textarea name="msg" <% if (f_placeholder) { %> placeholder="Note" <% } %> required></textarea>
187		<span class="status"> 
188			<span class="valid"><span class="indicator"></span></span>
189			<span class="invalid"><span class="indicator"></span>Don&apos;t forget your message!</span>
190			<span class="indicator"></span>
191		</span>
192	</div>
193	<% if (recaptcha_key && recaptcha_version === 2) { %>
194		<div id="recaptcha-container" class="g-recaptcha" data-theme="<%= recaptcha_theme %>" data-sitekey="<%= recaptcha_key %>"></div>
195	<% } %>
196
197	<div class="submit">
198		<label></label><button data-act="send" class="send"><%= sendText.substr(0,20) %></button>
199	</div>
200
201	<div>
202		<label></label><span class="sending">sending...</span>
203	</div>
204</form>
205
206<div class="sent">
207	Message sent!  Thanks for your interest.
208</div>
209</script>
209
210
211	
211<script id='GalleryNav_main' type='text/template'>
212	<ul class="<%= (typeof cfg.f_galleriesSize !== 'undefined') ? cfg.f_galleriesSize : '' %><%= (typeof cfg.rowCount !== 'undefined' && objA.length > cfg.rowCount) ? ' rows' : ' row' %>"></ul>
213</script>
213
214
215<script id='GalleryNav_item' type='text/template'>
216	<li>
217		<a href="<%= url %>" data-id="<%= id %>" title="<%- name %>">
218			<% if (key_src) { %>
219				<% if (imageType === 'bkg') { %>
220					<div class="img" style="background-image:url(<%= key_src %>);"></div>
221				<% } else { %>
222					<img src="<%= key_src %>" />
223				<% } %>
224			<% } else { %>
225			<%- name %>
226			<% } %>
227		</a>
228
229		<% if (id.charAt(0) === 'C') { %>
230			<button class="clc-close">Collapse Menu</button>
231			<ul class="clc"></ul>
232		<% } %>
233	</li>
234</script>
234
235
236	
236<script id='Nav_main' type='text/template'>
237<ul class='navTop'></ul>
238</script>
238
239
240<script id='Nav_links' type='text/template'>
241<% for (var i=0; i<links.length; i++) {
242	var link = links[i];
243
244	if (O_O.isset(link.children)) { %><li class="<%= link.className %>">
245		<span><%- link.name %></span>
246		<div>
247			<ul>
248				<%= tpl('links', {links: link.children}) %>
249			</ul>
250		</div></li><% } else { %><%= tpl('link', {text: link.name, url: link.url, className: link.className, target: link.target, dataId: link['data-id']}) %><% } %><% } %>
251</script>
251
252
253<script id='Nav_link' type='text/template'><li class='<%= className %>'><a href='<%= url %>' data-id='<%= dataId %>' <% if (O_O.isset(target)) { %>target="<%= target %>"<% } %>><%- text %></a></li></script>
253
254
255<script id='Nav_editor' type='text/template'>
256<h2>Visible Navigation Items</h2>
257<div class="add-nav-element">
258	<ul>
259		<li><button data-act="showCreateMenu" class="add">ADD TO NAVIGATION</button></li>
260		<li><button class="" data-act="addPage">Page</button></li>
261		<li><button class="" data-act="addLink">Link</button></li>
262		<li><button class="" data-act="addGroup">Menu</button></li>
263	</ul>
264</div>
265
266<ul class="objectList active"></ul>
267
268<p class="note clear">Click and drag to reorder your site&apos;s navigation.</p>
269
270<h2>Hidden Navigation Items</h2>
271<ul class="objectList inactive"></ul>
272</script>
272
273
274<script id='Nav_editLinks' type='text/template'>
275<%
276 var emptyMap = {
277	menu: 'Nothing in this menu yet! Drag items here to fill the menu.',
278	hidden: 'No hidden navigation items.',
279	visible: 'No navigation items.'
280};
281 for (var i=0; i<links.length; i++) {
282	var link = links[i];
283	%><%= tpl('linkEdit',link) %>
284<% } %>
285<li class="sortable-empty note"><%= emptyMap[type] %></li>
286</script>
286
287
288<script id='Nav_linkEdit' type='text/template'>
289	<li class="row draggable<% if (type == 'dynamic' || type == 'group') { %> noNest<% } %> <%= type %>" data-id="<%= id %>">
290		<span class="dragHandle"></span>
291		<button class="edit" data-act="editItem"></button>
292		<% if (type != 'fixed' && type != 'dynamic') { %><button class="del" data-act="delItem"></button><% } %>
293		<%- name %>
294		
295		<% if(O_O.isset(arguments[0].children)){ %>
296			<ul style='' class='links'>
297				<%= tpl('editLinks', {links: children, type: 'menu'}) %>
298			</ul>
299		<% } %>
300	</li>
301</script>
301
302
303	<!-- for gplus share -->
304<script src="https://apis.google.com/js/platform.js" async defer></script>
304
305
306<script id='SocialShare_main' type='text/template'>
307<ul class="share-options">
308	<li><a target="_blank" href="#" class="facebook" title="Facebook">
309		<span>Facebook</span></a></li>
310	<li><a target="_blank" href="#" class="twitter" title="Twitter">
311		<span>Twitter</span></a>
312	</li>
313	<li><a href="#" title="More" class="less-more">More</a></li>
314</ul>
315<a href="#" class="share" title="Share This">x</a>
316</script>
316
317
318<script id='SocialShare_editor' type='text/template'>
319Text: <input name="text" type="text" value="<%= text %>" />
320</script>
320
321
322	
322<script id='StaticImage_editor' type='text/template'>
323<div class="row"><label>Image URL:</label><input name="url" type="text" value="<%= url %>" /></div>
324</script>
324
325
326	
326<script id='VimeoPlayer_editor' type='text/template'>
327Video Url: <input name="video_url" type="text" value="<%= video_url %>" />
328</script>
328
329
330<script id='VimeoPlayer_main' type='text/template'>
331	<div class="modalVideo modal hide" tabindex="-1" role="dialog" aria-hidden="true">
332	</div>
333</script>
333
334
335<script id='VimeoPlayer_modalContent' type='text/template'>
336		<div class="modal-header">
337			<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
338		</div>
339		<div class="modal-body">
340			<div class="video">
341				<%= embed %>
342			</div>
343			<div class="info">
344				<h3><%= video.title %></h3>
345				<% if(video.description) { %>
346					<p><%= video.description %></p>
347				<% } %>
348			</div>
349			<div class="meta">
350				<span class="upload_date"><%= O_O.date.strFmt(video.upload_date, "%e %b %Y") %></span>
351				<div class="duration">
352					<%= Math.floor(video.duration / 60) %>:<% if(video.duration % 60<10) { %>0<% } %><%= video.duration % 60%>
353				</div>
354			</div>
355		</div>
356</script>
356
357
358	
358<script id='VimeoPlaylist_playlist' type='text/template'>
359<% if (videos.length) { %>
360	<ul>
361	<% for (var i=0; i<videos.length; i++) {
362		var video = videos[i];
363		 %><li data-idx="<%= i %>">
364				<div class="holder">
365					<div class="vimeo_thumb">
366						<img src="<%=  video.thumbnail_large %>">
367					</div>
368					<div class="info">
369						<h4><%= video.title %></h4>
370						<p><%= video.description %></p>
371					</div>
372					<div class="meta">
373						<span class="upload_date"><%= O_O.date.strFmt(video.upload_date, "%e %b %Y") %></span>
374						<div class="duration">
375							<%= Math.floor(video.duration / 60) %>:<% if(video.duration % 60<10) { %>0<% } %><%= video.duration % 60%>
376						</div>
377					</div>
378				</div>
379			</li><% } %>
380	</ul>
381<% } else { %>
382	(no videos)
383<% } %>
384</script>
384
385
386<script id='VimeoPlaylist_loading' type='text/template'>
387</script>
387
388
389<script id='VimeoPlaylist_error' type='text/template'>
390(<%= message %>)
391</script>
391
392	
392<script id='Logo_logoText' type='text/template'>
393	<a href="/index" class="text" title="<%- text %>"><%- text %></a>
394</script>
394
395
396<script id='Logo_logoImage' type='text/template'>
397	<a href="/index" title="<%- text %>" style="background-image:url(<%= src %>);height:<%= height %>px;width:<%= width %>px;" class="logo"><%- text %></a>
398</script>
398
399
400<script id='Logo_editor' type='text/template'>
401	<div class="row">
402		<label>Type:</label>
403		text <input name="type" type="radio" value="text" <%= (type == 'text') && 'checked' %>/> or image <input name="type" type="radio" value="image" <%= (type == 'image') && 'checked' %> />
404	</div>
405	<div class="textCfg">
406		<div class="row"><label>Text:</label><input name="text" type="text" value="<%= text %>" /></div>
407		<div class="row"><label>Color:</label><input name="color" type="color" value="<%= color %>" /></div>
408	</div>
409	<div class="imageCfg row">
410		<button class="edit" data-type="edit"></button>
411		<p class="key" style="display:inline">Image:</p>
412		<span class="objPreview" data-obj-type="GalleryImage" >
413			<input type="hidden"  data-type="GalleryImage" name="image" value="<%- image %>" />
414		</span>
415	</div>
416</script>
416
417
418	
418<script id='Instagram_auth_link' type='text/template'>
419<div class="row" style="padding-top: 0; margin-top: 0;">
420	<p class="widgetTip"><em><%=msg%></em></p>
421	<button class='button-secondary auth-link' style="display: block;" onClick='javascript:window.open("<%=url%>", "Authorizing Instagram", "resizable,scrollbars,status,height=500,width=500")'>
422		Authorize with Instagram
423	</button>
424	<p class="widgetTip" style="padding:0;">You may need to disable any popup blockers.</p>
425</div>
426</script>
426
427
428<script id='Instagram_main' type='text/template'>
429<div class='main<% if (!list) { %> grid<% } %>'>
430</div>
431</script>
431
432
433<script id='Instagram_auth_form' type='text/template'>
434	<div class="row" style="display:none">
435		<input type="hidden" name="token" value="<%= token %>" /><br/>
436	</div>
437	<div class="row typeSelect" data-group="">
438		<label>Images per page</label>
439		<select name="limit" tabindex="-1">
440			<option value="8">8</option>
441			<option value="16">16</option>
442			<option value="24">24</option>
443			<option value="32">32</option>
444		</select>
445		<div class="ps-select">
446			<div class="list">
447				<ul>
448				<li>
449					<button type="button" tabindex="-1" data-title="8" data-value="8" data-act="selectBox">
450						8
451					</button>
452				</li>
453				<li>
454					<button type="button" tabindex="-1" data-title="16" data-value="16" data-act="selectBox">
455						16
456					</button>
457				</li>
458				<li>
459					<button type="button" tabindex="-1" data-title="24" data-value="24" data-act="selectBox">
460						24
461					</button>
462				</li>
463				<li>
464					<button type="button" tabindex="-1" data-title="32" data-value="32" data-act="selectBox">
465						32
466					</button>
467				</li>
468				</ul>
469			</div>
470		</div>
471	</div>
472	<div class="row typeCheckbox">
473		<input type="hidden" value="f_displayList" <% if (cfg.f_displayList === 'true' || cfg.f_displayList === 't') { %>checked<% } %> name="f_displayList" id="f_displayList">
474	</div>
475	<div class="row typeCheckbox">
476		<input type="hidden" value="displayLikes" <% if (cfg.displayLikes === 'true' || cfg.displayLikes === 't') { %>checked<% } %> name="displayLikes" id="displayLikes">
477	</div>
478	<div class="row typeCheckbox">
479		<input type="checkbox" value="displayCaption" <% if (cfg.displayCaption === 'true' || cfg.displayCaption === 't') { %>checked<% } %> name="displayCaption" id="displayCaption">
480		<label for="displayCaption">Caption</label>
481	</div>
482	<div class="row" style="margin-bottom: 0; padding-bottom: 0;">
483		<p class='status' style="margin-bottom: 0; padding-bottom: 0;"></p>
484	</div>
485</script>
485
486
487<script id='Instagram_item' type='text/template'>
488<div class='item'>
489	<a href="<%=link%>" target="_blank">
490		<img src="<%=url%>" width="<%=width%>" height="<%=height%>"/>
491	</a>
492	<% if (caption !== '') { %>
493	<p class='caption'><%=caption%></p>
494	<% } %>
495</div>
496</script>
496
497
498<script id='Instagram_video' type='text/template'>
499	<div class='video'>
500			<video width="90%" height="90%" preload="metadata" controls>
501				<source src="<%=url%>" type="video/mp4">
502			</video>
503		<% if (caption !== '') { %>
504		<p class='caption'><%=caption%></p>
505		<% } %>
506	</div>
507	</script>
507
508
509<script id='Instagram_pagination' type='text/template'>
510<div class='pagination_prev'>
511	<a class='prev'>Previous page</a>
512</div>
513<div class='pagination_next'>
514	<a class='next'>Next page</a>
515</div>
516</script>
516
517	
517<script id='BlogReader_main' type='text/template'>
518<div class="controls"></div>
519<div class="main">
520<div class="loading-c2"><div class="bar-holder"><div class="loading-bar"></div></div></div>
521</div>
522<div class="controls"></div>
523</script>
523
524
525<script id='BlogReader_controls' type='text/template'>
526<% if (typeof curPage !== 'undefined') { %>
527	<% if (prevPage !== '') { %>
528		<a href='<%= O_O.lib.Util.makePath('blog', [prevPage]) %>' class='prev' title="Previous"><%= config.f_previous_text %></a>
529	<% } %>
530	<% if (nextPage !== '' && nextPage > curPage) { %>
531		<a href='<%= O_O.lib.Util.makePath('blog', [nextPage]) %>' class='next' title="Next"><%= config.f_next_text %></a>
532	<% } %>
533<% } %>
534</script>
534
535
536<script id='BlogReader_textpost' type='text/template'>
537<div class="textpost">
538	<h3><a href="<%= link %>" target="_blank"><%= title %></a></h3>
539	<% if (date) { %>
540		<p class="date"><%= date %></p>
541	<% } %>
542	<div class='body'><%= body %></div>
543</div>
544</script>
544
545
546<script id='BlogReader_photopost' type='text/template'>
547<div class="photopost">
548	<div class='body'>
549		<% for (var i = 0, ct = photos.length; i < ct; i++) {
550			var photo = photos[i]; %>
551			<img src="<%= photo.alt_sizes[0].url %>"/>
552		<% } %>
553	</div>
554	<%= caption %>
555	<% if (date) { %>
556		<p class="date"><%= date %></p>
557	<% } %>
558</div>
559</script>
559
560
561<script id='BlogReader_linkpost' type='text/template'>
562<div class="linkpost">
563	<a href="<%= linkUrl %>" target="_blank"><%= title %></a>
564	<div class='body'><%= desc %></p>
565</div>
566</script>
566
567
568<script id='BlogReader_quotepost' type='text/template'>
569<div class="linkpost">
570	<%= source %>
571	<div class='body'><%= text %></p>
572</div>
573</script>
573
574
575<script id='BlogReader_videopost' type='text/template'>
576	<div class="photopost videopost">
577		<div class='body'>
578			<%= video %>
579		</div>
580		<%= caption %>
581		<% if (date) { %>
582			<p class="date"><%= date %></p>
583		<% } %>
584	</div>
585</script>
585
586
587	<!-- for gplus share -->
588<script src="https://apis.google.com/js/platform.js" async defer></script>
588
589
590<script id='ShareUrl_main' type='text/template'>
591<% if (typeof f_innerScroll !== 'undefined' && f_innerScroll) { %>
592<div class="content">
593<%}%>
594<div class="su-holder">
595<div class="su-content">
596	<% if (typeof f_closeable !== 'undefined' && f_closeable) { %>
597		<button class="close">Close</button>
598	<% } %>
599	<h1>Share this <%= f_shareWhat %></h1>
600	<form>
601		<label>Link</label>
602		<input class="link" type=text value=""
603			id="copyURL" />
604		<button title="Copy Link" data-clipboard-target="copyURL">Copy Link</button>
605	</form>
606	<form>
607		<label>Email</label>
608		<input class="email" type=email placeholder="Enter an email address" id="emailURL"/>
609		<button title="Share Via Email" class="shareEmail">Share Via Email</button>
610	</form>
611	<% if (typeof f_embedable !== 'undefined' && f_embedable) { %>
612	<form>
613		<label>Embed</label>
614		<input class="embed" type=text value="<iframe src='http://www.thisurl.com' width='800' height='600' />"
615			id="copyEmbed" />
616		<button title="Copy Embed Code" data-clipboard-target="copyEmbed">Copy Embed Code</button>
617	</form>
618	<% } %>
619		<ul class='share-options'>
620			<li><a target="_blank" href="#" class="pinterest" title="Pinterest"><span>Pinterest</span></a></li>
621			<li><a target="_blank" href="#" class="facebook" title="Facebook"><span>Facebook</span></a></li>
622			<li><a target="_blank" href="#" class="twitter" title="Twitter"><span>Twitter</span></a></li>
623		</ul>
624</div>
625</div>
626<% if (typeof f_innerScroll !== 'undefined' && f_innerScroll) { %>
627</div>
628<%}%>
629
630</script>
630
631
632	
632<script id='BuyMenu_main' type='text/template'>
633<% if (typeof config.f_innerScroll !== 'undefined' && config.f_innerScroll) { %>
634<div class="content">
635<%}%>
636<div class="su-holder">
637<div class="su-content">
638	<% if (typeof config.f_closeable !== 'undefined' && config.f_closeable) { %>
639		<button class="close">Close</button>
640	<% } %>
641	<h1>Buy this <%= config.buyWhat %></h1>
642	<ul class="buy-options">
643	<% if (typeof pricing !== 'undefined' && pricing.length > 0) { %>
644		<% if(!!find('PR', pricing)) { %>
645	    <li><a href="#" class="pr" title="Print/product">Print/product</a></li>
646	    <% } %>
647		<% if(!!find('BND', pricing)) { %>
648	    <li><a href="#" class="bnd" title="Image package">Image package</a></li>
649	    <% } %>
650		<% if(!!find('PU', pricing)) { %>
651	    <li><a href="#" class="pu" title="Personal use download">Personal use download</a></li>
652	    <% } %>
653		<% if(!!find('RM', pricing)) { %>
654	    <li><a href="#" class="rm" title="Rights-managed license">Rights-managed license</a></li>
655	    <% } %>
656		<% if(!!find('RF', pricing)) { %>
657	    <li><a href="#" class="rf" title="Royalty-free license">Royalty-free license</a></li>
658	    <% } %>
659		<% if(cart > 0) { %>
660	    <li class="cart-link"><a href="/cart" class="cart" title="View your cart"><span>View your cart</span></a></li>
661	    <% } %>
662	<% } %>
663	</ul>
664</div>
665</div>
666<% if (typeof config.f_innerScroll !== 'undefined' && config.f_innerScroll) { %>
667</div>
668<%}%>
669</script>
669
670	
670<script id='ThumbStrip_main' type='text/template'>
671</script>
671
672
673<script id='ThumbStrip_images' type='text/template'>
674<div class="content
675            scrollable-h
676            <% if (typeof config.display !== 'undefined') { %><%= config.display %><% } %>
677            <% if (typeof hzCfg !== 'undefined' && hzCfg !== null) { %><%= hzCfg.spacing %>-padding<% } %>">
678<% if (typeof hzCfg !== 'undefined' && hzCfg !== null) { %>
679    <%= tpl('gal_info', {gallery: gallery, config: hzCfg}) %>
680<% } %>
681<% if (config.rows !== 1) { %><div class="holder"><% } %>
682<% for (var i = 0, l = images.length; i < l; i++) { %>
683<% if (config.display === 'large') { %>
684    <section data-index="<%= images[i].id %>" class="img">
685<% } else { %>
686    <button data-index="<%= images[i].id %>" class="img">
687<% } %>
688<% var width = Math.round(images[i].screen_width_max / images[i].screen_height_max * height); %>
689        <div class="scaler<% if (typeof hzCfg !== 'undefined' && hzCfg !== null && width < 200) { %> narrow<% } %>" style="height: <%= height %>px; width: <%= width %>px;" data-index="<%= images[i].id %>">
690            <% if (config.display === 'large' && typeof hzCfg !== 'undefined' && hzCfg !== null && hzCfg.f_i_info !== 'n') { %>
691                <%= tpl('img_info', {img: images[i], config: hzCfg}) %>
692            <% } %>
693        </div>
694<% if (config.display === 'large') { %>
695    </section>
696<% } else { %>
697    </button>
698<% } %>
699<% } %>
700<% if (config.rows !== 1) { %></div><% } %>
701</div>
702</script>
702
703
704<script id="ThumbStrip_img" type="text/template">
705<img src="<%= img.src %>" data-src="<%= img.src %>"/>
706</script>
706
707
708<script id="ThumbStrip_img_info" type="text/template">
709<div class="buttons<% if (config.f_i_info === 't') { %> open force<% } %>">
710    <% if ((config.f_i_title === 't' && (img.name || img.headline || img.title || img.file_name)) ||
711            (config.f_i_caption === 't' && (img.description || img.caption))) { %>
712    <div class="info">
713        <div class="content">
714        <% if (config.f_i_title === 't' && (img.name || img.headline || img.title || img.file_name)) { %><strong><%- img.name || img.headline || img.title || img.file_name %></strong><% } %><% if (config.f_i_caption === 't' && (img.description || img.caption)) { %> <p><%- img.description || img.caption %></p><% } %>
715        </div>
716    </div>
717    <% } %>
718    <% var buttons = 0;
719    buttons += (config.f_i_archive === 't') ? 1 : 0;
720    buttons += (config.f_i_social === 't') ? 1 : 0;
721    buttons += (config.f_i_buy === 't') ? 1 : 0;
722    buttons += ((config.f_i_title === 't' && (img.name || img.headline || img.title || img.file_name)) ||
723        (config.f_i_caption === 't' && (img.description || img.caption))) ? 2 : 0; %>
724    <% if (buttons > 1 && (config.f_i_archive === 't' || config.f_i_social === 't' || config.f_i_buy === 't' ||
725        (config.f_i_title === 't' && (img.name || img.headline || img.title || img.file_name)) ||
726            (config.f_i_caption === 't' && (img.description || img.caption)))) { %>
727    <div class="more" data-act="more"></div>
728    <% } %>
729    <% if (config.f_i_archive === 't') { %>
730    <div class="archive<% if (buttons === 1) { %> single<% } %>" data-act="archive"></div>
731    <% } %>
732    <% if (config.f_i_social === 't') { %>
733    <div class="social<% if (buttons === 1) { %> single<% } %>" data-act="social"></div>
734    <% } %>
735    <% if (config.f_i_buy === 't' && img.pricing && img.pricing.length) { %>
736    <div class="buy<% if (buttons === 1) { %> single<% } %>" data-act="buy"></div>
737    <% } %>
738</div>
739</script>
739
740
741<script id="ThumbStrip_gal_info" type="text/template">
742<div class="gallery-info<% if (config.f_g_info === 't') { %> on<% } %>">
743<div class="scroll">
744<div class="content">
745    <h1><%- gallery.name %></h1>
746    <p><%= gallery.description %></p>
747</div>
748</div>
749</div>
750</script>
750
751
752	
752<script id='ViewToggle_main' type='text/template'>
753    <button class="size thumb <% if (config.thumbsFirst === 't') { %>on<% } %>" title="Small Image View"></button>
754    <button class="size large <% if (config.thumbsFirst === 'f') { %>on<% } %>" title="Large Image View"></button>
755    <% if (config.f_fullscreen === 't') { %>
756    	<button class="fs" title="Fullscreen View"></button>
757	<% } %>
758	<button class="prev" title="Previous"></button>
759	<button class="next" title="Next"></button>
760    <button class="prev-full" title="Previous"></button>
761    <button class="next-full" title="Next"></button>
762</script>
762
763
764	
764<script id='SocialFollow_main' type='text/template'>
765<%
766if (f_edit && linkA.length === 0) {
767	%>
768<%= tpl('placeholder', {}) %>
769
770<% } else { %>
771
772<div class='follow-wrapper'>
773<ul class='follow-options'>
774<%
775var link;
776for (var i=0; i<linkA.length; i++) {
777	link = linkA[i];
778%>
779	<li>
780		<a target='_blank' class=<%= link.service %> href=<%= link.url %>></a>
781	</li>
782<% } %>
783</ul>
784</div>
785
786<% } %>
787</script>
787
788
789<script id='SocialFollow_placeholder' type='text/template'>
790<div class='follow-wrapper placeholder edit-widget-border'>
791<ul class='follow-options'>
792	<li><a class='twitter'></a></li>
793	<li><a class='facebook'></a></li>
794	<li><a class='instagram'></a></li>
795</ul>
796</div>
797</script>
797
798
799<script id='SocialFollow_editor' type='text/template'>
800	<p class='widgetTip'>
801		Enter your info in the text fields below, and we&#039;ll do the rest.
802		<a target="_blank" href="https://support.photoshelter.com/hc/en-us/articles/204837820">Learn more &#187;</a>
803	</p>
804
805	<ul class='objectList'></ul>
806
807	<div class='widgetTip'>
808		Click and drag to reorder your social follow buttons.
809	</div>
810</script>
810
811
812<script id='SocialFollow_editUsernames' type='text/template'>
813<%
814for (var i=0; i<socialDataA.length; i++) {
815	var socialItem = socialDataA[i];
816%><%= tpl('editUsername', socialItem) %>
817<% } %>
818</script>
818
819
820<script id='SocialFollow_editUsername' type='text/template'>
821	<li class='row draggable sortable external' data-service=<%= service %>>
822		<span class='dragHandle'></span>
823		<span><%= label %></span>
824		<input name=<%= service %> type='text' value='<%= username %>' placeholder='<%= placeholder %>' />
825	</li>
826</script>
826
827
828
829
830<script type="text/javascript">
831var C2_CFG = {"theme":"Theme7","themeCfg":"{\"name\":\"Theme7\",\"version\":\"1.1.0\",\"requires\":{\"models\":[\"Collection\",\"Content\",\"Gallery\",\"Image\",\"Generic\"],\"widgets\":[[\"Content\",\"1.1\"],[\"ContactForm\",\"1.0\"],[\"GalleryNav\",\"1.1.1\"],[\"Nav\",\"1.1\"],[\"SocialShare\",\"1.0\"],[\"StaticImage\",\"1.0\"],[\"VimeoPlayer\",\"1.0\"],[\"VimeoPlaylist\",\"1.0\"],[\"Logo\",\"1.1\"],[\"Instagram\",\"1.2\"],[\"BlogReader\",\"1.0\"],[\"ShareUrl\",\"1.1\"],[\"BuyMenu\",\"1.0\"],[\"ThumbStrip\",\"1.0\"],[\"ViewToggle\",\"1.0\"],[\"SocialFollow\",\"1.0.0\"]]},\"resources\":{\"fonts\":{\"abril\":{\"family\":\"Abril Fatface\",\"alternate\":\"serif\",\"vendor_tag\":\"Abril+Fatface\"},\"arial\":{\"family\":\"Arial\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"\"},\"arvo\":{\"family\":\"Arvo\",\"alternate\":\"serif\",\"vendor_tag\":\"Arvo\"},\"badScript\":{\"family\":\"Bad Script\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"Bad+Script\"},\"berkshire\":{\"family\":\"Berkshire Swash\",\"alternate\":\"serif\",\"vendor_tag\":\"Berkshire+Swash\"},\"cabin\":{\"family\":\"Cabin\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"Cabin\"},\"domine\":{\"family\":\"Domine\",\"alternate\":\"serif\",\"vendor_tag\":\"Domine\"},\"droidSans\":{\"family\":\"Droid Sans\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"Droid+Sans\"},\"gentium\":{\"family\":\"Gentium Basic\",\"alternate\":\"serif\",\"vendor_tag\":\"Gentium+Basic\"},\"georgia\":{\"family\":\"Georgia\",\"alternate\":\"serif\",\"vendor_tag\":\"\"},\"helvetica\":{\"family\":\"Helvetica\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"\"},\"josefin\":{\"family\":\"Josefin Sans\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"Josefin+Sans: 600\"},\"kreon\":{\"family\":\"Kreon\",\"alternate\":\"serif\",\"vendor_tag\":\"Kreon\"},\"lato\":{\"family\":\"Lato\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"Lato\"},\"libre\":{\"family\":\"Libre Baskerville\",\"alternate\":\"serif\",\"vendor_tag\":\"Libre+Baskerville\"},\"merriweather\":{\"family\":\"Merriweather\",\"alternate\":\"serif\",\"vendor_tag\":\"Merriweather\"},\"open\":{\"family\":\"Open Sans\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"Open+Sans\"},\"oswald\":{\"family\":\"Oswald\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"Oswald\"},\"pacifico\":{\"family\":\"Pacifico\",\"alternate\":\"serif\",\"vendor_tag\":\"Pacifico\"},\"palatino\":{\"family\":\"Palatino\",\"alternate\":\"serif\",\"vendor_tag\":\"\"},\"playfair\":{\"family\":\"Playfair Display\",\"alternate\":\"serif\",\"vendor_tag\":\"Playfair+Display\"},\"ptSans\":{\"family\":\"PT Sans\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"PT+Sans\"},\"ptSansNarrow\":{\"family\":\"PT Sans Narrow\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"PT+Sans+Narrow\"},\"ptSerif\":{\"family\":\"PTSerif\",\"alternate\":\"serif\",\"vendor_tag\":\"PT+Serif\"},\"quicksand\":{\"family\":\"Quicksand\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"Quicksand\"},\"raleway\":{\"family\":\"Raleway\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"Raleway\"},\"sanchez\":{\"family\":\"Sanchez\",\"alternate\":\"serif\",\"vendor_tag\":\"Sanchez\"},\"timeNewRoman\":{\"family\":\"Times New Roman\",\"alternate\":\"serif\",\"vendor_tag\":\"\"},\"verdana\":{\"family\":\"Verdana\",\"alternate\":\"sans-serif\",\"vendor_tag\":\"\"}},\"color_set\":[{\"name\":\"Light: Bold\",\"values\":{\"colorBkg\":\"#f4f4f4\",\"colorFrg\":\"#ffffff\",\"colorBrand\":\"#db0000\",\"colorNav\":\"#7b7b7b\",\"colorBody\":\"#1d1d1d\",\"colorLink\":\"#db0000\"}},{\"name\":\"Light: Classic\",\"values\":{\"colorBkg\":\"#f6f6f6\",\"colorFrg\":\"#ffffff\",\"colorBrand\":\"#444444\",\"colorNav\":\"#8e8e8e\",\"colorBody\":\"#5f5f5f\",\"colorLink\":\"#6babd7\"}},{\"name\":\"Dark: Bold\",\"values\":{\"colorBkg\":\"#191919\",\"colorFrg\":\"#000000\",\"colorBrand\":\"#e80000\",\"colorNav\":\"#acacac\",\"colorBody\":\"#e3e3e3\",\"colorLink\":\"#e80000\"}},{\"name\":\"Dark: Classic\",\"values\":{\"colorBkg\":\"#191919\",\"colorFrg\":\"#000000\",\"colorBrand\":\"#e8e8e8\",\"colorNav\":\"#acacac\",\"colorBody\":\"#cacaca\",\"colorLink\":\"#839fd2\"}}],\"font_set\":[{\"name\":\"Classic 1\",\"values\":{\"font_1\":\"open\",\"font_2\":\"open\",\"font_3\":\"gentium\"}},{\"name\":\"Classic 2\",\"values\":{\"font_1\":\"quicksand\",\"font_2\":\"quicksand\",\"font_3\":\"ptSerif\"}},{\"name\":\"Classic 3\",\"values\":{\"font_1\":\"playfair\",\"font_2\":\"gentium\",\"font_3\":\"gentium\"}},{\"name\":\"Modern 1\",\"values\":{\"font_1\":\"open\",\"font_2\":\"open\",\"font_3\":\"open\"}},{\"name\":\"Modern 2\",\"values\":{\"font_1\":\"oswald\",\"font_2\":\"oswald\",\"font_3\":\"lato\"}},{\"name\":\"Modern 3\",\"values\":{\"font_1\":\"raleway\",\"font_2\":\"raleway\",\"font_3\":\"lato\"}},{\"name\":\"Funky 1\",\"values\":{\"font_1\":\"arvo\",\"font_2\":\"arvo\",\"font_3\":\"arvo\"}},{\"name\":\"Funky 2\",\"values\":{\"font_1\":\"pacifico\",\"font_2\":\"lato\",\"font_3\":\"lato\"}},{\"name\":\"Funky 3\",\"values\":{\"font_1\":\"badScript\",\"font_2\":\"badScript\",\"font_3\":\"ptSans\"}}]},\"start\":\"index\",\"colorBkg\":\"#213340\",\"colorFrg\":\"#333f48\",\"colorBrand\":\"#3176a5\",\"colorNav\":\"#8e8e8e\",\"colorBody\":\"#ffffff\",\"colorLink\":\"#6babd7\",\"font_1\":\"raleway\",\"font_2\":\"raleway\",\"font_3\":\"ptSansNarrow\",\"last_modified\":\"2022-02-20 22:28:16 GMT\",\"color_set\":\"custom\",\"font_set\":\"custom\",\"modes\":{\"global\":{\"user_hidden\":true,\"widgets\":[{\"widget\":\"Logo\",\"widgetName\":\"Logo\",\"widgetDesc\":\"Your site name, displayed using text or a logo image\",\"type\":\"text\",\"f_force_menu_button\":\"h\",\"text\":\"\",\"image\":null,\"image_f_retina\":\"t\",\"image_orig_enable\":\"t\",\"image_width\":2040,\"image_height\"
831:2040,\"image_file_exts\":[\"gif\",\"jpeg\",\"jpg\",\"png\"],\"image_f_wm_disable\":\"t\",\"image_f_sec_ignore\":\"t\",\"image_max_size\":2040,\"propOverload\":null},{\"widget\":\"GalleryNav\",\"widgetName\":\"Featured Work\",\"widgetDesc\":\"Galleries displayed in your portfolio\",\"f_viewAll\":false,\"minDisplay\":2,\"fixed\":false,\"f_dynamicLoad\":false,\"f_galleriesSize\":\"large\",\"dataSource\":\"user\",\"destinationMode\":\"index\",\"userLinks\":[{\"type\":\"Gallery\",\"id\":\"G00002oBGTDxlpkk\"},{\"type\":\"Gallery\",\"id\":\"G0000QVIXTEF9g20\"},{\"type\":\"Gallery\",\"id\":\"G0000aLp4xzoNVts\"},{\"type\":\"Gallery\",\"id\":\"G0000aG8H7kz2i38\"},{\"type\":\"Gallery\",\"id\":\"G0000tuuxndnlisk\"},{\"type\":\"Gallery\",\"id\":\"G00004QLSTLSf8qo\"}],\"recent\":[\"\",\"\"],\"image\":false,\"imageType\":\"thumb\",\"f_count\":4,\"rowCount\":3,\"propOverload\":{\"dataSource\":{\"map\":{\"recent\":\"Recently updated galleries\",\"user\":\"Specific galleries\"}},\"userLinks\":{\"inpEdit\":\"\",\"allowed\":[\"Gallery\"]},\"recent\":{\"inpEdit\":\"\"}},\"delegate\":{\"Gallery\":[{\"mode\":\"index\",\"ordinal\":0}]}},{\"widget\":\"Nav\",\"widgetName\":\"Navigation\",\"widgetDesc\":\"Links used to traverse your site\",\"f_archive_not_nested\":false,\"links\":[{\"name\":\"Projects\",\"type\":\"fixed\",\"url_fragment\":\"index\",\"className\":\"index\",\"f_hidden\":false,\"id\":\"-0\",\"act\":\"edit\"},{\"type\":\"page\",\"name\":\"Books\",\"url_fragment\":\"-\",\"cls\":\"p\",\"f_hidden\":false,\"id\":\"-1\",\"page_title\":\"\",\"act\":\"edit\"},{\"name\":\"Bio \\\/ CV\",\"type\":\"fixed\",\"url_fragment\":\"about\",\"className\":\"about\",\"f_hidden\":false,\"id\":\"-2\",\"act\":\"edit\"},{\"name\":\"Archive\",\"type\":\"dynamic\",\"url_fragment\":\"archive\",\"className\":\"archive\",\"f_hidden\":false,\"id\":\"-3\",\"act\":\"edit\"},{\"type\":\"external\",\"f_hidden\":true,\"name\":\"Newsletter\",\"url\":\"http:\\\/\\\/eepurl.com\\\/r31IX\",\"url_fragment\":\"\",\"target\":\"_blank\",\"act\":\"add\",\"id\":\"-4\"},{\"name\":\"Video\",\"type\":\"fixed\",\"url_fragment\":\"video\",\"className\":\"video\",\"f_hidden\":true,\"id\":\"-5\"},{\"type\":\"fixed\",\"name\":\"Blog\",\"url_fragment\":\"blog\",\"cls\":\"blog\",\"f_hidden\":true,\"id\":\"-6\"},{\"name\":\"Contact\",\"type\":\"fixed\",\"url_fragment\":\"contact\",\"className\":\"contact\",\"f_hidden\":true,\"id\":\"-7\",\"act\":\"edit\"},{\"type\":\"fixed\",\"name\":\"Instagram\",\"url_fragment\":\"instagram\",\"cls\":\"instagram\",\"f_hidden\":true,\"id\":\"-8\"},{\"type\":\"page\",\"name\":\"Books\",\"url_fragment\":\"p\",\"cls\":\"p\",\"f_hidden\":true,\"id\":\"-9\"}],\"propOverload\":null},{\"widget\":\"Content\",\"widgetName\":\"Content Area\",\"widgetDesc\":\"Text or custom content to display on this page\",\"contentTuple\":{\"type\":\"c2_page\",\"category\":\"contact\",\"subcategory\":\"contact22\"},\"f_hash_tuple\":false,\"hashTupleBase\":{\"type\":\"c2_page\",\"category\":\"arbpage\",\"subcategory\":null},\"defaultContent\":{\"content\":\"<p>[contact info goes here]<\\\/p>\"},\"propOverload\":null},{\"widget\":\"SocialFollow\",\"widgetName\":\"Social Follow\",\"widgetDesc\":\"Generates social follow icons for your site\",\"twitter\":\"mattlutton\",\"facebook\":\"luttonm\",\"instagram\":\"mattlutton\",\"linkedin\":\"\",\"vimeo\":\"\",\"tumblr\":\"\",\"pinterest\":\"\",\"googlePlus\":\"\",\"fiveHPx\":\"\",\"services\":[\"twitter\",\"facebook\",\"instagram\",\"vimeo\",\"linkedin\",\"tumblr\",\"pinterest\",\"googlePlus\",\"fiveHPx\"]}]},\"index\":{\"definition\":\"Index\",\"modeName\":\"Index\",\"title\":\"Matt Lutton - Photographer\",\"meta_description\":\"\",\"widgets\":[],\"sets\":{\"gallerySingleImage\":[{\"widget\":\"ViewToggle\",\"widgetName\":\"Image Display\",\"widgetDesc\":\"Options for how your images are displayed to the viewer\",\"thumbsFirst\":\"f\",\"spacing\":\"small\",\"f_g_info\":\"f\",\"f_i_info\":\"f\",\"f_i_title\":\"f\",\"f_i_caption\":\"t\",\"f_i_archive\":\"f\",\"f_i_social\":\"f\",\"f_i_buy\":\"t\",\"f_fullscreen\":\"t\",\"delegate\":{\"Thumbs\":[{\"mode\":\"index\",\"ordinal\":1},{\"mode\":\"index\",\"ordinal\":2}],\"GalleryMeta\":[{\"mode\":\"index\",\"ordinal\":1},{\"mode\":\"index\",\"ordinal\":2}],\"State\":[{\"mode\":\"index\",\"ordinal\":1},{\"mode\":\"index\",\"ordinal\":2}]}},{\"widget\":\"ThumbStrip\",\"widgetName\":\"Thumbnail Image Horizontal Viewer\",\"widgetDesc\":\"Displays thumbnail images in a horizontally scrollable pane.\",\"f_editable\":false,\"delegate\":{\"JumpTo\":[{\"mode\":\"index\",\"ordinal\":0}],\"Controls\":[{\"mode\":\"index\",\"ordinal\":0}]},\"rows\":-1,\"display\":\"thumb\",\"loadThresh\":1,\"f_innerScroll\":false,\"scrollOutside\":false,\"focusAlign\":\"center\"},{\"widget\":\"ThumbStrip\",\"widgetName\":\"Thumbnail Image Horizontal Viewer\",\"widgetDesc\":\"Displays thumbnail images in a horizontally scrollable pane.\",\"f_editable\":false,\"delegate\":{\"Share\":[{\"mode\":\"index\",\"ordinal\":3}],\"Buy\":[{\"mode\":\"index\",\"ordinal\":4}],\"ImageMeta\":[{\"mode\":\"index\",\"ordinal\":4}],\"Controls\":[{\"mode\":\"index\",\"ordinal\":0}]},\"rows\":1,\"display\":\"large\",\"loadThresh\":3,\"f_innerScroll\":false,\"scrollOutside\":false,\"focusAlign\":\"center\"},{\"widget\":\"ShareUrl\",\"widgetName\":\"Post to Social Networks\",\"widgetDesc\":\"Links for easy social sharing of your content\",\"f_editable\":false,\"f_innerScroll\":false,\"f_embedable\":false,\"f_closeable\":true,\"f_shareWhat\":\"image\"},{\"widget\":\"BuyMenu\",\"widgetName\":\"Buy\\\/License Menu\",\"widgetDesc\":\"Links for easy social sharing of your content\",\"f_editable\":false,\"f_innerScroll\":false,\"buyWhat\":\"image\",\"f_closeable\":true}]}},\"about\":{\"title\":\"Matt Lutton - Bio\\\/CV\",\"meta_description\":\"\",\"widgets\":[{\"widget\":\"Content\",\"widgetName\":\"Content Area\",\"widgetDesc\":\"Text or custom content to display on this page\",\"contentTuple\":{\"type\":\"c2_page\",\"category\":\"about\",\"subcategory\":\"about\"},\"f_hash_tuple\":false,\"hashTupleBase\":{\"type\":\"c2_page\",\"category\":\"arbpage\",\"subcategory\":null},\"defaultContent\":{\"content\":\"<h1 class=\\\"title\\\">About Me<\\\/h1>Bio information to be entered here.\"},\"propOverload\":null},{\"widget\":\"StaticImage\",\"widgetName\":\"Image\",\"widgetDesc\":\"An image to display on this page\",\"
831image\":[{\"type\":\"GalleryImage\",\"image_id\":\"I00005j58.zoF3WM\",\"gallery_id\":\"G000098zfYuAQDKM\",\"collection_id\":\"\"}],\"image_width\":600,\"image_height\":400,\"image_f_wm_disable\":\"t\",\"image_f_sec_ignore\":\"t\",\"image_max_size\":null}]},\"contact\":{\"definition\":\"Contact\",\"title\":\"Contact\",\"meta_description\":\"\",\"widgets\":[{\"widget\":\"Content\",\"widgetName\":\"Content Area\",\"widgetDesc\":\"Text or custom content to display on this page\",\"contentTuple\":{\"type\":\"c2_page\",\"category\":\"contact\",\"subcategory\":\"contact\"},\"f_hash_tuple\":false,\"hashTupleBase\":{\"type\":\"c2_page\",\"category\":\"arbpage\",\"subcategory\":null},\"defaultContent\":{\"content\":\"<h1 class=\\\"title\\\">Contact Info<\\\/h1><p>[contact info goes here]<\\\/p>\"},\"propOverload\":null},{\"widget\":\"ContactForm\",\"widgetName\":\"Contact Form\",\"widgetDesc\":\"Form to allow visitors to send messages directly to you\",\"sendText\":\"Send\",\"f_captcha\":false,\"f_placeholder\":true}]},\"p\":{\"title\":\"Books by Matt Lutton\",\"meta_description\":\"Books by Matt Lutton\",\"modeName\":\"Custom Page\",\"user_hidden\":true,\"widgets\":[{\"widget\":\"Content\",\"widgetName\":\"Content Area\",\"widgetDesc\":\"Text or custom content to display on this page\",\"contentTuple\":null,\"f_hash_tuple\":true,\"hashTupleBase\":{\"type\":\"c2_page\",\"category\":\"arbpage\",\"subcategory\":null},\"defaultContent\":null,\"propOverload\":null}]},\"video\":{\"title\":\"Videos\",\"meta_description\":\"\",\"widgets\":[{\"widget\":\"Content\",\"widgetName\":\"Content Area\",\"widgetDesc\":\"Text or custom content to display on this page\",\"contentTuple\":{\"type\":\"c2_page\",\"category\":\"video\",\"subcategory\":\"intro\"},\"f_hash_tuple\":false,\"hashTupleBase\":{\"type\":\"c2_page\",\"category\":\"arbpage\",\"subcategory\":null},\"defaultContent\":{\"content\":\"<h1 class=\\\"title\\\">Videos<\\\/h1>A selection of videos.\"},\"propOverload\":null},{\"widget\":\"VimeoPlayer\",\"widgetName\":\"Vimeo Player\",\"widgetDesc\":\"A Vimeo video player\",\"f_dialog\":true,\"style\":null},{\"widget\":\"VimeoPlaylist\",\"widgetName\":\"Vimeo Feed\",\"widgetDesc\":\"A list of videos from a Vimeo account\\\/album\",\"list_type\":\"vimeo_user\",\"vimeo_user\":\"\",\"vimeo_album\":\"\"}]},\"blog\":{\"modeName\":\"Blog\",\"definition\":\"Blog\",\"title\":\"Blog\",\"meta_description\":\"\",\"widgets\":[{\"widget\":\"BlogReader\",\"widgetName\":\"Blog Feed\",\"widgetDesc\":\"Displays posts from an external blog\",\"type\":\"tumblr\",\"blogger_url\":null,\"blogger_limit\":1,\"tumblr_url\":null,\"tumblr_limit\":5,\"wordpress_url\":null,\"wordpress_feedUrl\":null,\"f_previous_text\":\"Previous\",\"f_next_text\":\"Next\"},{\"widget\":\"Content\",\"widgetName\":\"Content Area\",\"widgetDesc\":\"Text or custom content to display on this page\",\"contentTuple\":{\"type\":\"c2_page\",\"category\":\"blog\",\"subcategory\":\"intro\"},\"f_hash_tuple\":false,\"hashTupleBase\":{\"type\":\"c2_page\",\"category\":\"arbpage\",\"subcategory\":null},\"defaultContent\":{\"content\":\"<h1>Blog<\\\/h1>\"},\"propOverload\":null}]},\"instagram\":{\"definition\":\"Instagram\",\"modeName\":\"Instagram\",\"title\":\"Instagram\",\"meta_description\":\"\",\"widgets\":[{\"widget\":\"Instagram\",\"widgetName\":\"Instagram\",\"widgetDesc\":\"A feed of photos from an Instagram account\",\"token\":null,\"limit\":\"16\",\"f_displayList\":\"t\",\"displayLikes\":\"t\",\"displayCaption\":\"t\"},{\"widget\":\"Content\",\"widgetName\":\"Content Area\",\"widgetDesc\":\"Text or custom content to display on this page\",\"contentTuple\":{\"type\":\"c2_page\",\"category\":\"instagram\",\"subcategory\":\"intro\"},\"f_hash_tuple\":false,\"hashTupleBase\":{\"type\":\"c2_page\",\"category\":\"arbpage\",\"subcategory\":null},\"defaultContent\":{\"content\":\"<h1 class=\\\"title\\\">Instagram<\\\/h1>\"},\"propOverload\":null}]}}}","customEnv":{"id":"U0000IbfP.g7cn4g","name":"Matt Lutton","label":"luttonm","theme":"Theme7","theme_name":"Horizon","curhost":"www.mattlutton.com","host":"www.mattlutton.com","host_ps":"luttonm.photoshelter.com","url":"https:\/\/www.mattlutton.com","url_ps":"https:\/\/luttonm.photoshelter.com","api_key":"PS631731c7","api_key_v4":"WbCFNtLJzS4","site_cfg":{"SC_ID":"SC000fwvd95N_zpE","SC_ORG_ID":null,"SC_USER_ID":"U0000IbfP.g7cn4g","SC_SITE_NAME":"Matt Lutton - Photographer","SC_CNAME":"www.mattlutton.com","SC_THEME":"Theme7","SC_THEME_C1":"","SC_THEME_C2":"Theme7","SC_IMG_NO_MASK":"f","SC_GA_ID":"UA-7692909-1","SC_HTML_HEAD":"","SC_HTML_FOOTER":"","SC_SSL_PREF":"t","SC_RECAPTCHA_KEY":null,"FID_O":"U0000IbfP.g7cn4g","CUSTOM_VERSION":"2.0"},"ctd":{"CTD_PRC_PRF_TYPE":"Downloads","CTD_F_CART":"f","CTD_F_LBX":"f","CTD_F_DOWNLOAD":"t","CTD_F_SOCIAL":"t","CTD_THM_FIT_CLC_GAL":"fit","CTD_THM_FIT_IMG":"fit","CTD_PPG_THM":"50","CTD_PPG_GAL":"","CTD_LOGO_URL":"","CTD_SITE_URL":"","CTD_BLOG_URL":"http:\/\/www.dvafoto.com","CTD_TXT_FOOTER":"All images and text (c) Matt Lutton 2005-2010. All rights reserved.","CTD_NAV_GAL":"t","CTD_NAV_SEARCH":"t","CTD_NAV_LBX":"f","CTD_NAV_CART":"f","CTD_NAV_USR":"t","CTD_NAV_ABOUT":"t","CTD_NAV_CONTACT":"f","CTD_NAV_PAGE1":"f","CTD_NAV_PAGE2":"f","CTD_NAV_PORTFOLIO":"t","CTD_LBL_PAGE1":"","CTD_LBL_PAGE2":"","D_ID":"D000004aQZb.JvB0","librisSSO":false},"site_name":"Matt Lutton - Photographer","f_preview":false,"f_custom_basic":false,"referral_url":"https:\/\/www.photoshelter.com\/referral\/U0000IbfP.g7cn4g\/user","isDevDomain":false,"isCustomHost":true,"server"
831:{"web":"http:\/\/www.photoshelter.com","ul":"https:\/\/www.mattlutton.com","ul-cdn":"https:\/\/www.mattlutton.com","img":"https:\/\/www.mattlutton.com","img-mem":"https:\/\/www.mattlutton.com","vid":"https:\/\/www.mattlutton.com","vid-mem":"https:\/\/www.mattlutton.com","js":"https:\/\/www.mattlutton.com","css":"https:\/\/www.mattlutton.com","mkt":"https:\/\/www.mattlutton.com","sec":"https:\/\/www.mattlutton.com","library":"https:\/\/www.mattlutton.com"},"js_include_rev":1788533357,"favicon_url":null,"favicon_mime":null,"hasWorkspace":false,"hasDesignTemplates":false,"hasPrintuiDrafts":false,"isWhitelabel":false,"hasInvitedUserGalCover":true,"usrHasCnameFeature":true,"hasPortalSearchConfiguration":true,"hasContainersInSearchFlag":true,"hasUsableNetAssistive":false,"hasTrimVideoOnDL":false,"hasCropImageOnDL":true,"hasPdfPreview":false,"hasMagicSearch":false,"defaultToLumen":true,"f_owner":false}};
832var C2_OPT = {"f_edit":false,"f_debug":false};
833var appBaseDir = false;
834var customMdCfg = null;
835var apiKey = 'PS631731c7';
836var apiKeyV4  = 'g5YWwvzrEKo';
837var CSRF_TOKEN = '';
838var hasWorkspace = false;
839var hasDesignTemplates = false;
840var hasPrintuiDrafts = false;
841var orgTFAReq = false;
842var isWhiteLabel =  false;
843var seachBatchDownloadLimit = 250;
844var portalSearchConfiguration = false;
845var hasContainersInSearchFlag = false;
846var hasUsableNetAssistive = false;
847var themeCfg = JSON.parse(C2_CFG.themeCfg);
848var homepageDisplaySetting = themeCfg.portalHomepageDisplay;
849var homepageSearchSetting = themeCfg.portalHomepageSearchRedirectSettings;
850var homepageSearchTerm = themeCfg.portalHomepageSearchRedirectTerm;
851var hasTrimVideoOnDL = false;
852var hasCropImageOnDL = false;
853var hasPdfPreview = false;
854var hasMagicSearch = false;
855var defaultToLumen = false;
856
857
858PSGA = window.PSGA || {};
859var librisPortalAppConfig = {
860	ctd_config: C2_CFG.customEnv.ctd, 
861	custom_metadata: customMdCfg,
862	license_expiration: {
863		librisHasLicenseExpDate: C2_CFG.customEnv.librisHasLicenseExpDate,
864		librisLicenseExpDays: C2_CFG.customEnv.librisLicenseExpDays
865	}
866	,
867	hasWorkspace: hasWorkspace,
868	hasDesignTemplates: hasDesignTemplates,
869	hasPrintuiDrafts: hasPrintuiDrafts,
870	featuredPlayer: true,
871	videoCaptions: true,
872	hasUsableNetAssistive: hasUsableNetAssistive,
873	hasContainersInSearch: hasContainersInSearchFlag,
874	portalSearchConfiguration:portalSearchConfiguration,
875	homepageDisplaySetting: homepageDisplaySetting,
876	...(homepageDisplaySetting==="searchPage" && {homepageSearchSetting: homepageSearchSetting}),
877	...(homepageSearchSetting==="term" && {homepageSearchTerm: homepageSearchTerm}),
878	site_name: C2_CFG.customEnv.name,
879	hasTrimVideoOnDL: hasTrimVideoOnDL,
880	hasCropImageOnDL: hasCropImageOnDL,
881	hasPdfPreview: hasPdfPreview,
882	hasMagicSearch: hasMagicSearch,
883	defaultToLumen: defaultToLumen,
884	showMagicSearch: hasMagicSearch && C2_CFG.customEnv.ctd.CTD_F_MS_SEARCH !== 'f',
885};
886
887(function($) { // map ps$ to $ // TODO: remove once ps$ is deprecated
888	var bootBeam = function () {
889		$(function() { // equivalent to $.ready()
890			O_O.mm.oNew(O_O.app.Visualizer, 'c2', C2_CFG, C2_OPT);
891		});
892	};
893
894	window.LibrisPortalApp = { 
895		bootBeam: bootBeam,
896		appBaseDir: appBaseDir,
897		PSGA: PSGA,
898		apiKeyV4: apiKeyV4,
899		apiKey: apiKey,
900		librisPortalAppConfig: librisPortalAppConfig,
901		isWhiteLabel: isWhiteLabel
902	}
903		
904
905	
906				bootBeam();
907		
908}(ps$));
909
910</script>
910
911
912
913</head>
914<body>
915<!--[if lte IE 9]>
916    <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
917<![endif]-->
918
919<div id="c2" class="  nav-logo-prep"></div>
920
921<div id="fb-root"></div>
922<div class="loading-c2 site">
923 <div class="bar-holder">
924  <div class="loading-bar"></div>
925 </div>
926</div>
927
928<noscript>
929	<div class="message">It looks like JavaScript is disabled in your browser. Please enable JavaScript and reload this page.</div>
930</noscript>
vendor: 66 bytes, lines 930-933
930
931
932
933<script async src="https://www.googletagmanager.com/gtag/js?id=
933G-JEEVL2L8S5
vendor: 12 bytes, line 933
933"></script>
934<script>
935
936  
vendor: 134 bytes, lines 936-940
936window.dataLayer = window.dataLayer || [];
937  function gtag(){dataLayer.push(arguments);}
938  gtag('js', new Date());
939
940  gtag('config', '
940G-JEEVL2L8S5
vendor: 6 bytes, lines 940-941
940');
941  
941gtag('config', 'UA-7692909-1');
942</script>
942
943
944<script>
945(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
946(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
947m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
948})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
949PSGA = window.PSGA || {};
950PSGA.initGa = function(uaid, name) {
951    ga('create', uaid, 'auto', {'name': name});
952};
953PSGA.distributor = function(request, args) {
954    return function() {
955        var trackers = ga.getAll();
956        for (var i = 0, ct = trackers.length; i < ct; i++) {
957            var tracker = trackers[i];
958            if ((args[0] === 'pageview' ||
959                    args[0].hitType === 'pageview') ||
960                tracker.get('name') !== 'user') {
961                    tracker[request].apply(tracker, args);
962                }
963        }
964    }
965};
966PSGA.distributeToGaTrackers = function() {
967    const args = [].slice.call(arguments);
968        request = args.shift();
969    ga(PSGA.distributor(request, args));
970
971    //Convert legacy requests and send to GA4
972    if (request === 'send' && args && args[0]) {
973      const legacyHitData = args[0];
974      //handle legacy events, usually from polymer apps
975      if (legacyHitData.hitType === 'event' && legacyHitData.eventAction) {
976        const eventObj = {
977          event_category: legacyHitData.eventCategory,
978          event_type: 'legacy',
979          ...(legacyHitData.eventValue && { event_value: legacyHitData.eventValue }),
980          ...(legacyHitData.eventLabel && { event_value: legacyHitData.eventLabel })
981        }
982        gtag('event', legacyHitData.eventAction, eventObj);
983      }
984    }
985};
986PSGA.sendGaEvent = function(category, action) {
987    this.distributeToGaTrackers('send', {
988      'hitType': 'event',
989      'eventCategory': category,
990      'eventAction': action
991    });
992};
993
994
995var uaid = 'UA-3783380-24';
996var dimensions = {};
997PSGA.initGa(uaid, 'ps');
998uaid = 'UA-3783380-16';
999PSGA.initGa(uaid, 'c2');
1000dimensions.dimension1 = 'U0000IbfP.g7cn4g';
1001dimensions.dimension2 = 'Visitor';
1002dimensions.dimension3 = 'Theme7';
1003
1004PSGA.initDynamicGA = PSGA.initDynamicGA || [];
1005PSGA.initDynamicGA.forEach(function(gaData) {
1006    PSGA.initGa(gaData.uaid, gaData.name);
1007});
1008
1009ga('set', 'transport', 'beacon');
1010if (Object.keys(dimensions).length) PSGA.distributeToGaTrackers('set',dimensions);
1011</script>
1011
1012
1013
1014<!-- Google Tag Manager Data Layer Construction -->
1015<script>
1016	if (!window.PSGTMDataLayer) PSGTMDataLayer = [];
1017	PSGTMDataLayer.push({"ACCOUNT_TYPE":"core","IS_PORTAL":false,"SITE_OWNER_ID":"U0000IbfP.g7cn4g"});
1018</script>
1018
1019
1020<!-- Google Tag Manager -->
vendor: 62 bytes, lines 1020-1021
1020
1021<noscript><iframe src="//www.googletagmanager.com/ns.html?id=
1021GTM-NT5Z57
vendor: 83 bytes, lines 1021-1022
1021"
1022height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1023<script>
vendor: 328 bytes, lines 1023-1028
1023(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push(
1024{'gtm.start': new Date().getTime(),event:'gtm.js'}
1025);var f=d.getElementsByTagName(s)[0],
1026j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
1027'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
1028})(window,document,'script','PSGTMDataLayer','
1028GTM-NT5Z57
vendor: 3 bytes, line 1028
1028');
1028</script>
1028
1029<!-- End Google Tag Manager -->
1030
1031
1032<script type="text/javascript" src="https://www.mattlutton.com/js/APP/1788533357/logFrame.js"></script>
1032
1033
1034</body>
1035</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.