PageSourceSearch

https://www.jamesmccauley.com/

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