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.