86 lines
3.8 KiB
JavaScript
86 lines
3.8 KiB
JavaScript
var $j = jQuery.noConflict();
|
|
|
|
$j(document).ready(function() {
|
|
// hijack a link with class "hijax" to show its content in a lightbox instead
|
|
// allows for ajaxy presentation of things like download links in a way that
|
|
// degrades gracefully for non-js users
|
|
|
|
$j("#js-page-wrap, #footer").on("click", "a.hijax", function(event) {
|
|
event.preventDefault();
|
|
var work_page = $j(this).attr("href").split("download")[0];
|
|
var isDownload =$j(this).attr("href").indexOf("download");
|
|
var vars = $j(this).attr("href").split("next=");
|
|
|
|
$j("#lightbox").load($j(this).attr("href") + " #lightbox_content", function() {
|
|
// centering divs of dynamic width: shockingly hard. make sure lightbox is centered on load.
|
|
var hijaxWidth = $j('#about_expandable').width() + 28;
|
|
var windowWidth = $j(document).width();
|
|
var marginWidth = (windowWidth - hijaxWidth)/2;
|
|
$j('#about_expandable').css({'margin-left': marginWidth, 'margin-right': marginWidth});
|
|
|
|
// position div vertically relative to top of viewport, to ensure visibility
|
|
// regardless of where on the page the user clicked to activate it
|
|
var marginTop = window.pageYOffset;
|
|
$j('#about_expandable').css({'margin-top': marginTop});
|
|
|
|
if (isDownload !== -1) {
|
|
$j.getScript('/static/js/download_page.js');
|
|
if(typeof(Dropbox) != "undefined"){
|
|
Dropbox._dropinsjs_loaded=false;
|
|
}
|
|
$j.getScript('https://www.dropbox.com/static/api/2/dropins.js');
|
|
$j.cookie('next', work_page, {path: '/'});
|
|
}
|
|
else {
|
|
//need to push next cookie for sign-in links
|
|
|
|
if (vars.length>1){
|
|
next=vars[1];
|
|
if(next!='') {
|
|
next = next.replace(/[\x22\x27\x3c\x3e]/g,'');
|
|
$j.cookie('next', next, {path: '/'});
|
|
}
|
|
}
|
|
}
|
|
// fade-out rest of page elements on expand
|
|
$j('#feedback, #js-page-wrap, #footer').css({"opacity": "0.07"});
|
|
$j('#about_expandable').css({'position': 'absolute'});
|
|
$j('#about_expandable').fadeTo("slow", 1);
|
|
|
|
// if we're on a supporter page, personalize our about box
|
|
// by writing the supporter's name in
|
|
if ($j(location).attr('pathname').slice(0,11) == '/supporter/') {
|
|
var ungluer = $j(location).attr('pathname').slice(11, -1);
|
|
|
|
if (ungluer != null) {
|
|
// span.ungluer doesn't exist until the ajax call so we
|
|
// can't bind to the DOM on document ready; need to use
|
|
// the ajaxComplete event
|
|
$j('#lightbox').ajaxComplete(function() {
|
|
$j('#lightbox span.ungluer').replaceWith(ungluer);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
// fade-in normal page elements on collapse
|
|
$j('#about_collapser').on("click", function(){
|
|
$j('#js-topsection, .launch_top, .preview, #main-container, #js-rightcol, #js-header, #js-page-wrap, #footer, #feedback').fadeTo("slow", 1);
|
|
$j('#js-header a').css({"cursor": "pointer"});
|
|
$j('#about_expandable').css({"display": "none"});
|
|
});
|
|
|
|
// make drop-down menu happen when they click on their name
|
|
$j('#authenticated').click(function(){
|
|
$j('#user_menu').toggle();
|
|
$j(this).toggleClass('highlight');
|
|
$j('#welcome i').toggleClass('fa-chevron-down');
|
|
$j('#welcome i').toggleClass('fa-chevron-up');
|
|
});
|
|
// but suppress it if they're clicking on the badge link to the notifications page
|
|
$j('#i_haz_notifications_badge').click(function() {
|
|
event.stopPropagation();
|
|
});
|
|
});
|