PageSourceSearch

https://rebecca-miller.com/a/js.ajs

js rebecca-miller.com collected 2026-10-02 21:25:27 UTC 16,928 bytes, 551 lines download raw bytes

1/*-------------------------------------------------------
2   Javascript for 3465
3   Design Engine v4.0 - (Default)
4-------------------------------------------------------*/
5
6function site_url(uri)
7{
8	return base_url+uri
9}
10
11
12function showCaption() {
13	$('.bg_caption').css("display", "block");
14	$('#background').addClass( 'showCaption' );
15	$('#caption').html('<a href="#" onclick="hideCaption()"><i class="fa fa-camera"></i></a>');
16}
17function hideCaption() {
18	$('.bg_caption').hide();
19	$('#background').removeClass( 'showCaption' );
20	$('#caption').html('<a href="#" onclick="showCaption()"><i class="fa fa-camera"></i></a>');
21}
22
23$(document).ready(function()
24{
25
26    $('.fb-share').click(function(e) {
27        e.preventDefault();
28        window.open($(this).attr('href'), 'fbShareWindow', 'height=450, width=550, top=' + ($(window).height() / 2 - 275) + ', left=' + ($(window).width() / 2 - 225) + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0');
29        return false;
30    });
31
32	$("#popup-modal").fadeIn(500);
33	$("#popup-modal-full").fadeIn(500);
34		
35	$('a[data-toggle=modal]').click(function(e) {
36		e.preventDefault();
37	  $("#" + $(this).data("target")).fadeIn(500);
38	})
39	
40	$('.modal-close').click(function (e) {
41		e.preventDefault();
42		$('.modal').fadeOut(500);
43	});
44
45	$('#popup-modal-full').click(function (e) {
46		e.preventDefault();
47		$('.modal').fadeOut(500);
48	});
49	
50	var url = window.location.href;
51	if(url.indexOf('#watch') != -1) {
52    	$('#watch-modal').fadeIn(500);
53	}
54		
55	$(document).keyup(function(ev){
56		if(ev.keyCode == 27)
57			$('.modal').fadeOut(500);
58	});
59
60	$('a[data-toggle=dropdown]').click(function(e) {
61		e.preventDefault();
62	  $("#" + $(this).data("target")).slideToggle(100);
63	})
64		
65	var width = $(".square").width();
66	$('.square').css('height', width);
67
68	// for the window resize
69	$(window).resize(function() {
70	    var width = $(".square").width();
71	    $('.square').css('height', width);
72	});
73
74	var width = $(".sixteenNine").width()/16;
75	$('.sixteenNine').css('height', width*9);
76
77	// for the window resize
78	$(window).resize(function() {
79	    var width = $(".sixteenNine").width()/16;
80	    $('.sixteenNine').css('height', width*9);
81	});
82
83	// Video background proportions are handled by CSS (.vimeo_bg_iframe rules in _shared.php).
84		
85	$('a.switch').on('click', function(e) {
86	e.preventDefault();
87	var body = $('body');
88	if(body.hasClass('menuOn')) {
89		var offset = -parseInt(body.css('top'));
90		body.removeClass('menuOn').css('top', 0).scrollTop(offset);
91	} else {
92		body.css('top', -window.pageYOffset+'px').addClass('menuOn');
93		}
94	});
95		
96	/* Slider */
97	
98	var settings = { time: 7000, pausefor: 1000 };
99	
100	settings.slides = $(".slideshow li");
101	settings.timer = setInterval(nextSlide, settings.time);
102	settings.timeout = null;
103	settings.current = 0;
104
105	settings.slides.eq(0).addClass("current");
106	settings.slides.eq(1).addClass("next");
107
108	var n = 0;	
109
110	settings.slides.each(function(){
111		var slide = this,
112			img = $(slide).find("img"),
113			sh = slide.offsetHeight;
114		
115		img.on("load", function(){
116			var tih = event.target.height,
117				dy =  ((sh-tih)/2);
118				if(tih>sh) {
119					img.css({"margin-top": dy+"px"});
120					}
121			});
122
123		$(slide).addClass("slide");
124		$(slide).attr("id", "slide-" + n);
125		n++;
126	});
127			
128    	 
129	function nextSlide() {
130
131		settings.slides.removeClass("current next prev");
132
133		if(settings.current+1 < settings.slides.length){
134			settings.current++;
135		} else { settings.current = 0; }
136		
137		settings.slides.eq(settings.current).addClass("current");
138		settings.slides.eq(settings.current+1).addClass("next");
139		if(!settings.slides.filter("next").length>0){
140			settings.slides.eq(0).addClass("next");
141		}
142		
143		settings.slides.eq(settings.current-1).addClass("prev");
144
145	}
146
147
148	$('form.signup label[for]+input[type="text"]')
149	.wrap('<div class=\"hover-wrap\" style=\"position:relative;float:left\"><\/div>')
150	.focus(function(){$(this).prev().hide();})
151	.blur(function(){if ( !this.value ) $(this).prev().show()})
152	.each(function(){$(this).before( $(this).parent().prev() );
153	if ( this.value ) $(this).prev().hide();});
154	
155	
156	/* if($("table.screenings").length>0){
157		var table = $("table.screenings"),
158			rows = table.find("tr");
159			
160		rows.each(function(){
161			$(this).find("td:last-child").append('<a href="#more" class="watch-More btn btn-small"><i class="fa fa-caret-down" aria-hidden="true"></i> Details</a>');
162			$(this).find("a[href=#more]").click(function(){
163				var row = $(this).parent("td").parent("tr"),
164					screening = row.data("screening");
165					
166					if(row.next(".details").length<1){
167					
168						row.after('<tr class="details"><td colspan="4"></td></tr>');
169						details = row.next().find("td");
170					
171						$.ajax({
172							  url: "/screenings/ajax_details/"+screening,
173							  context: document.body
174							}).done(function(response) {
175							  details.html(response);
176							});
177						
178						$(this).html("<i class='fa fa-caret-up'></i> Hide");
179						
180					} else {
181						if($(this).text().toLowerCase().indexOf("hide") !== -1){
182							details = row.next(".details");
183							details.hide();
184							$(this).html("<i class='fa fa-caret-down'></i> Details");
185						}
186					}
187				
188				});
189		});
190	} */
191	
192	$(function() { 
193
194		$('.masonry').masonry({
195		  itemSelector: 'li',
196		});
197
198		// Mobile Nav switcher
199		$('a.switch').on('click', function(e) { 
200			e.preventDefault();
201			var body = $('body');
202			if(body.hasClass('showNav')) {
203				var offset = -parseInt(body.css('top'));
204				body.removeClass('showNav').css('top', 0).scrollTop(offset);
205			} else {
206				body.css('top', -window.pageYOffset+'px').addClass('showNav');
207			}
208		});
209
210		// Contact Form
211		$('.site-contact-form select[name="reason"]').on('change', function(e) {
212			// Redirect to screening request page
213			if($(this).val() == 'request_screening'){
214				var host = $(this).data('host');
215				window.location.replace(host + "screenings/organise_a_screening");
216			}
217		});
218
219	});
220
221});
222
223var user_profile = {
224	initialized: false,
225	id: '#user_profile', //i.e. #audience_segment_control
226	auth_id: '',
227
228	// Initialize class
229	init: function(){
230		var self = this;
231		if(!this.initialized){
232			self.init_triggers();
233			self.initialized = true;
234		}
235		return self;
236	},
237
238	// Initialize triggers
239	init_triggers: function(){
240		var self = this;
241
242		// Authorize btn
243		$(self.id).on('click', 'a[data-action="authorize"]', function(e){
244			self.authorize($(this).data('provider'));
245			return false;
246		});
247		// Deauthorize btn
248		$(self.id).on('click', 'a[data-action="deauthorize"]', function(e){
249			self.deauthorize($(this).data('provider'), false);
250			return false;
251		});
252		// Deauthorize and logout btn
253		$(self.id).on('click', 'a[data-action="deauthorize-logout"]', function(e){
254			self.deauthorize($(this).data('provider'), true);
255			return false;
256		});
257		// Logout btn
258		$(self.id).on('click', 'a[data-action="logout"]', function(e){
259			self.logout();
260			return false;
261		});
262		// Login btn
263		$(self.id).on('click', 'a[data-action="login-open"]', function(e){
264			self.open('.login');
265			return false;
266		});
267		// Login form
268		$(self.id).on('submit', '#user_login_form', function(e){
269			self.login();
270			return false;
271		});
272		// Signup btn
273		$(self.id).on('click', 'a[data-action="signup-open"]', function(e){
274			self.open('.signup', {height: 480});
275			return false;
276		});
277
278	},
279
280	// Check for authorization
281	checkAuth: function(provider, sid){
282		var self = this;
283		var url = '/users/checkAuth/'+provider;
284		if(sid) url = url+'?sid='+self.auth_id;
285		
286		$.ajax({
287			dataType: 'json',
288			url: url,
289			cache: false,
290			success: function(result)
291			{
292				if (result) self.authSuccess(provider, result);
293				else self.authFail(provider);
294			},
295			error:function(xhr, ajaxOptions, thrownError)
296			{
297				trace('ERROR: '+thrownError);
298				trace('STATUS: '+xhr.status);
299			}
300		});
301	},
302
303	// Authorize a provider
304	authorize: function(provider){
305		var self = this;
306		self.auth_id = Math.random().toString(36).substr(2, 16);
307		url = '/users/authorize/'+provider+'?sid='+self.auth_id;
308		window.user_profile = self;
309		installPopup = window.open(url, 'authorize', 'width=600,height=600');
310		
311		var pollTimer = window.setInterval(function() {
312			if (installPopup.closed !== false) { // !== is required for compatibility with Opera
313				window.clearInterval(pollTimer);
314				self.checkAuth(provider, self.auth_id);
315			}
316		}, 200);
317	},
318
319	// Executed on authorization success
320	authSuccess: function(provider, result){
321		var self = this;
322
323		if(result.email.search(/@assemble-vimeo_user.com/i) == -1){
324			location.reload(); // Reload page
325		} else{ 
326			// New vimeo connect. Prompt user for email
327			var screen = $('.user_profile_view .update', self.id);
328			$.ajax({
329				url: '/users/profile_ajax', 
330 				//dataType: 'json', 
331				success: function(result){ 
332					screen.html(result);
333					self.open('.update');
334				},
335				error:function(xhr, ajaxOptions, thrownError)
336				{
337					trace('ERROR: '+thrownError);
338					trace('STATUS: '+xhr.status);
339				}		
340			})
341			
342		}		
343	},
344
345	// Executed on authorization fail
346	authFail: function(provider){
347		var self = this;
348		//console.log("Auth Failed!");
349		$('#user_login_form .usr_msg').html("Sorry, your account was not authorized.");
350	},
351
352	// Display a message to user.
353	userMsg: function(msg){
354		var self = this;
355		$('.user_profile_msg', self.id).html('<span class="txt">' + msg + '</span>');
356		$('.user_profile_msg .txt', self.id).delay(4000).fadeOut('slow');
357	},
358
359	// Deauthorizes a provider
360	deauthorize: function(provider, logout){
361		var url = '/users/deauthorize/'+provider;
362		if(logout)
363			url += '?logout=1'
364		$.ajax({
365			url: url,
366			success: function()
367			{
368				//setPluginNotInstalled(provider);
369				location.reload(); // Reload page
370			},
371			error:function(xhr, ajaxOptions, thrownError)
372			{
373				trace('ERROR: '+thrownError);
374				trace('STATUS: '+xhr.status);
375			}
376		});
377	},
378
379	// Update user info
380	update: function(){
381		$.ajax({
382			url: '/users/profile_ajax/',
383			data: { // serialize doesn't work with shadowbox
384				'email': $('#user_update_form input[name="email"]').last().val(),
385				'first_name': $('#user_update_form input[name="first_name"]').last().val()
386			},
387			type: 'POST',
388			success: function(result)
389			{
390				if(result == 'saved')
391					location.reload(); // Reload page
392				else
393					$('.user_profile_screen', self.id).html(result);
394			},
395			error:function(xhr, ajaxOptions, thrownError)
396			{
397				trace('ERROR: '+thrownError);
398				trace('STATUS: '+xhr.status);
399			}
400		});
401	},
402
403	// Logs the user out
404	logout: function(){
405		$.ajax({
406			url: '/users/logout/',
407			success: function()
408			{
409				location.reload(); // Reload page
410			},
411			error:function(xhr, ajaxOptions, thrownError)
412			{
413				trace('ERROR: '+thrownError);
414				trace('STATUS: '+xhr.status);
415			}
416		});
417	},
418
419	// Opens a screen
420	open: function(screenClass, extraParams){
421		var self = this;
422		var html = $('.user_profile_view ' + screenClass, self.id).html();
423        var params = $.extend({}, extraParams);
424
425		// If box is already open
426		if(Shadowbox.isOpen()){
427			$('.user_profile_screen').html(html);
428		} else {
429			html = '<div class="user_profile_screen">' + html + '</div>';
430			Shadowbox.open({
431				content: html,
432				player: "html",
433				height: params.height || 400,
434				width: params.width || 600
435			});
436		}
437	},
438
439	// Closes a screen
440	close: function(screenClass){
441		var self = this;
442		$('.user_profile_view ' + screenClass, self.id).slideUp();
443	},
444
vendor: 4,567 bytes, lines 445-536
445	// Login form submit
446	login: function(){
447		var self = this;
448		$('#user_login_form .usr_msg').addClass('loading').html('');
449		$.ajax({
450			url: '/users/login/',
451			type: 'POST',
452			dataType: 'json',
453			data: { // serialize doesn't work with shadowbox
454				'email': $('#user_login_form input[name="email"]').last().val(),
455				'password': $('#user_login_form input[name="password"]').last().val()
456			},
457			success: function(result)
458			{
459				if (result){ 
460					location.reload(); // Reload page
461				} else {
462					$('#user_login_form .usr_msg').removeClass('loading').html("Sorry, that user or password was incorrect.");
463				}
464			},
465			error:function(xhr, ajaxOptions, thrownError)
466			{
467				trace('ERROR: '+thrownError);
468				trace('STATUS: '+xhr.status);
469			}
470		});
471	},
472
473	// Signup form submit
474	signup: function(){
475		var self = this;
476		$('#user_signup_form .usr_msg').addClass('loading').html('');
477		$.ajax({
478			url: '/users/signup/',
479			type: 'POST',
480			dataType: 'json',
481			data: { // serialize doesn't work with shadowbox
482				'first_name': $('#user_signup_form input[name="first_name"]').last().val(),
483                'email': $('#user_signup_form input[name="email"]').last().val(),
484				'password': $('#user_signup_form input[name="password"]').last().val(),
485				'username': $('#user_signup_form input[name="username"]').last().val(),
486				'humanVerification': $('#user_signup_form input[name="humanVerification"]').last().val(),
487			},
488			success: function(data)
489			{
490				if (data.result){ 
491					location.reload(); // Reload page
492				} else {
493					$('#user_signup_form .usr_msg').removeClass('loading').html(data.msg);
494				}
495			},
496			error:function(xhr, ajaxOptions, thrownError)
497			{
498				trace('ERROR: '+thrownError);
499				trace('STATUS: '+xhr.status);
500			}
501		});
502	},
503
504	// Login form submit
505	forgot: function(){
506		var self = this;
507		$('#user_forgot_form .forgot_usr_msg').empty().addClass('loading');
508		var url = '/users/forgot/?email=' + $('#user_forgot_form input[name="email"]').last().val();
509		$.ajax({
510			url: url,
511			type: 'GET',
512			dataType: 'json',
513			success: function(result)
514			{
515				if (result){ 
516					$('#user_forgot_form .forgot_usr_msg').removeClass('loading').html("Please check your email for password reset instructions.");
517				} else {
518					$('#user_forgot_form .forgot_usr_msg').removeClass('loading').html("Sorry, there is no user with that email.");
519				}
520			},
521			error:function(xhr, ajaxOptions, thrownError)
522			{
523				trace('ERROR: '+thrownError);
524				trace('STATUS: '+xhr.status);
525			}
526		});
527	},
528
529};
530
531/* Sticky-kit v1.1.2 | WTFPL | Leaf Corcoran 2015 | http://leafo.net */
532
533(function(){var b,f;b=this.jQuery||window.jQuery;f=b(window);b.fn.stick_in_parent=function(d){var A,w,J,n,B,K,p,q,k,E,t;null==d&&(d={});t=d.sticky_class;B=d.inner_scrolling;E=d.recalc_every;k=d.parent;q=d.offset_top;p=d.spacer;w=d.bottoming;null==q&&(q=0);null==k&&(k=void 0);null==B&&(B=!0);null==t&&(t="is_stuck");A=b(document);null==w&&(w=!0);J=function(a,d,n,C,F,u,r,G){var v,H,m,D,I,c,g,x,y,z,h,l;if(!a.data("sticky_kit")){a.data("sticky_kit",!0);I=A.height();g=a.parent();null!=k&&(g=g.closest(k));
534if(!g.length)throw"failed to find stick parent";v=m=!1;(h=null!=p?p&&a.closest(p):b("<div />"))&&h.css("position",a.css("position"));x=function(){var c,f,e;if(!G&&(I=A.height(),c=parseInt(g.css("border-top-width"),10),f=parseInt(g.css("padding-top"),10),d=parseInt(g.css("padding-bottom"),10),n=g.offset().top+c+f,C=g.height(),m&&(v=m=!1,null==p&&(a.insertAfter(h),h.detach()),a.css({position:"",top:"",width:"",bottom:""}).removeClass(t),e=!0),F=a.offset().top-(parseInt(a.css("margin-top"),10)||0)-q,
535u=a.outerHeight(!0),r=a.css("float"),h&&h.css({width:a.outerWidth(!0),height:u,display:a.css("display"),"vertical-align":a.css("vertical-align"),"float":r}),e))return l()};x();if(u!==C)return D=void 0,c=q,z=E,l=function(){var b,l,e,k;if(!G&&(e=!1,null!=z&&(--z,0>=z&&(z=E,x(),e=!0)),e||A.height()===I||x(),e=f.scrollTop(),null!=D&&(l=e-D),D=e,m?(w&&(k=e+u+c>C+n,v&&!k&&(v=!1,a.css({position:"fixed",bottom:"",top:c}).trigger("sticky_kit:unbottom"))),e<F&&(m=!1,c=q,null==p&&("left"!==r&&"right"!==r||a.insertAfter(h),
536h.detach()),b={position:"",width:"",top:""},a.css(b).removeClass(t).trigger("sticky_kit:unstick")),B&&(b=f.height(),u+q>b&&!v&&(c-=l,c=Math.max(b-u,c),c=Math.min(q,c),m&&a.css({top:c+"px"})))):e>F&&(m=!0,b={position:"fixed",top:c},b.width="border-box"===a.css("box-sizing")?a.outerWidth()+"px":a.width()+"px",a.css(b).addClass(t),null==p&&(a.after(h),"left"!==r&&"right"!==r||h.append(a)),a.trigger("sticky_kit:stick")),m&&w&&(null==k&&(k=e+u+c>
536C+n),!v&&k)))return v=!0,"static"===g.css("position")&&g.css({position:"relative"}),
537a.css({position:"absolute",bottom:d,top:"auto"}).trigger("sticky_kit:bottom")},y=function(){x();return l()},H=function(){G=!0;f.off("touchmove",l);f.off("scroll",l);f.off("resize",y);b(document.body).off("sticky_kit:recalc",y);a.off("sticky_kit:detach",H);a.removeData("sticky_kit");a.css({position:"",bottom:"",top:"",width:""});g.position("position","");if(m)return null==p&&("left"!==r&&"right"!==r||a.insertAfter(h),h.remove()),a.removeClass(t)},f.on("touchmove",l),f.on("scroll",l),f.on("resize",
538y),b(document.body).on("sticky_kit:recalc",y),a.on("sticky_kit:detach",H),setTimeout(l,0)}};n=0;for(K=this.length;n<K;n++)d=this[n],J(b(d));return this}}).call(this);
539
540$(".sticky").stick_in_parent({recalc_every: 1});
541
542$('.sticky')
543.on('sticky_kit:bottom', function(e) {
544    $(this).parent().css('position', 'static');
545})
546.on('sticky_kit:unbottom', function(e) {
547    $(this).parent().css('position', 'relative');
548})
549	
550	
551	

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.