4 <!-- Place banner here -->
5 <iframe src=
"//static.libreplanet.org/nosvn/banners/2019fundraiser-fall/" width=
"100%" height=
"150px" scrolling=
"no"
6 style=
"overflow: hidden; margin: 0; border: 0 none; display: block;">
9 <!-- Place modal window here -->
11 <!-- begin fsf-modal-window-elem campaign element -->
12 <link type=
"text/css" rel=
"stylesheet" href=
"https://static.fsf.org/nosvn/fonts/fa/css/font-awesome.min.css">
14 #fsf-modal-window-elem-container div {
15 -webkit-box-sizing: border-box;
16 -moz-box-sizing: border-box;
17 box-sizing: border-box;
20 @media screen and (min-width:
700px) {
22 #fsf-modal-window-elem-outer-v-center {
28 #fsf-modal-window-elem-inner-v-center {
30 vertical-align: middle;
33 #fsf-modal-window-elem {
39 #fsf-modal-window-elem-right-column {
45 #fsf-modal-window-elem-left-column {
51 #fsf-modal-window-elem-text {
56 @media screen and (max-width:
699px) {
58 #fsf-modal-window-elem {
60 -ms-box-orient: horizontal;
65 display: -webkit-flex;
68 -webkit-flex-flow: row wrap;
72 #fsf-modal-window-elem {
80 #fsf-modal-window-elem-right-column {
85 #fsf-modal-window-elem-left-column {
90 #fsf-modal-window-elem-text {
95 @media screen and (max-width:
360px) {
97 font-size:
25px !important;
101 #fsf-modal-window-elem-container {
109 background-color: rgba(
0,
0,
0,
0.8);
114 #fsf-modal-window-elem a, a:active, a:focus {
119 #fsf-modal-window-elem {
125 border-color: #ff00ff;
127 box-shadow:
0px
0px
10px #
111111;
128 background-color: #
19003a;
131 #fsf-modal-window-elem-header {
135 #fsf-modal-window-elem-header h2 {
136 font-family: sans-serif,
"Helvetica",Arial;
140 text-shadow:
0px
0px
8px #
00378c;
141 padding-bottom:
20px;
147 #fsf-modal-window-elem-close-button {
157 #fsf-modal-window-elem-close-button:hover {
161 #fsf-modal-window-elem-right-column {
163 -webkit-user-select: none;
164 -moz-user-select: none;
165 -ms-user-select: none;
169 #fsf-modal-window-elem-buttons div {
171 line-height:
53.333px;
177 #fsf-modal-window-elem-buttons {
180 #fsf-modal-window-elem-buttons a {
186 text-decoration: none;
187 font-family: sans-serif,
"Helvetica",Arial;
191 #fsf-modal-window-elem-maybe-later {
196 #fsf-modal-window-elem-maybe-later a {
199 text-decoration: none;
202 font-family: sans-serif,
"Helvetica",Arial;
206 #fsf-modal-window-elem-text {
209 #fsf-modal-window-elem-text a {
212 text-decoration: none;
215 #fsf-modal-window-elem-text a:hover {
219 #fsf-modal-window-elem-text a:focus {
223 #fsf-modal-window-elem-text a:active {
227 #fsf-modal-window-elem-text p {
228 font-family: sans-serif,
"Helvetica",Arial;
231 margin:
0px
0px
10px
0px;
234 text-shadow:
0px
0px
8px #
4600ba;
237 <div id=
"fsf-modal-window-elem-container" style=
"display: none;">
238 <div id=
"fsf-modal-window-elem-outer-v-center">
239 <div id=
"fsf-modal-window-elem-inner-v-center">
240 <div id=
"fsf-modal-window-elem">
241 <div id=
"fsf-modal-window-elem-header">
242 <div id=
"fsf-modal-window-elem-close-button" onclick=
"//fsfModalWindowElemDontShowForAWhile();">
243 <i class=
"fa fa-close"></i>
245 <h2>Join us and make an impact!
</h2>
247 <div id=
"fsf-modal-window-elem-left-column">
248 <div id=
"fsf-modal-window-elem-text">
252 Our associate members are the heart of the FSF's commitment to a society where software respects our freedom and dignity. Every individual that takes a stand will help us reach our goal to welcome
600 new free software advocates by December
31st.
256 <p><span id=
"fsf-modal-window-text-link"><a href=
"https://www.fsf.org/appeal?pk_campaign=frfall2019&pk_kwd=learn-more&pk_source=modal">READ MORE
</a> |
<a href=
"https://my.fsf.org/join?pk_campaign=frfall2019&pk_source=modal2">JOIN
</a></span></p>
260 <div id=
"fsf-modal-window-elem-right-column">
261 <div id=
"fsf-modal-window-elem-buttons" style=
"border-radius: 20px; box-shadow: 0px 0px 5px #0c2b2b;">
262 <div style=
"background-color:#ff00ff; border-top-right-radius: 20px; border-top-left-radius: 20px;">
263 <a style=
"text-shadow: 0px 0px 8px #b300b3;" href=
"https://my.fsf.org/join?pk_campaign=frfall2019&pk_source=modal" onclick=
"//fsfModalWindowElemFollowedLink();"><i class=
"fa fa-check-circle"> </i>Join
</a>
266 <div style=
"background-color:#930093">
267 <a style=
"text-shadow: 0px 0px 8px #460046;" href=
"https://my.fsf.org/renew?pk_campaign=frfall2019&pk_source=modal" onclick=
"//fsfModalWindowElemFollowedLink();"><i class=
"fa fa-refresh"></i> Renew
</a>
270 <div style=
"background-color:#42009a; border-bottom-right-radius: 20px; border-bottom-left-radius: 20px; margin-bottom: 2px">
271 <a style=
"text-shadow: 0px 0px 8px #22004e;" href=
"https://my.fsf.org/donate?pk_campaign=frfall2019&pk_source=modal" onclick=
"//fsfModalWindowElemFollowedLink();"><i class=
"fa fa-money"></i> Donate
</a>
275 <div id="fsf-modal-window-elem-maybe-later">
276 <a onclick="//fsfModalWindowElemMaybeLater();">maybe later</a>
283 <script type=
"text/javascript">
284 // @license magnet:?xt=urn:btih:
1f739d935676111cfff4b4693e3816e664797050&dn=gpl-
3.0.txt GPL-
3.0
286 // licensed GPLv3-or-later by Andrew Engelbrecht
288 var startTime, endTime, switchTextTime;
290 startTime = new Date('
2019-
11-
18T04:
00:
00Z');
291 switchTextTime = new Date('
2019-
12-
12T04:
00:
00Z');
292 endTime = new Date('
2020-
01-
01T04:
00:
00Z');
294 // possibly switch the text that is displayed in the modal window, depending
295 // upon the current date.
296 function fsfModalWindowElemMaybeSwitchText () {
301 if (now.getTime() < switchTextTime.getTime()) {
302 return; // don't switch the dbd text
306 document.getElementById(
"fsf-modal-window-elem-text").innerHTML =' \
308 <p>Our associate members are the heart of the FSF\'s commitment to a society where software respects our freedom and dignity. Every individual that takes a stand will help us reach our goal to welcome
600 new free software advocates by December
31st.
</p> \
310 <p><span id=
"fsf-modal-window-text-link"><a href=
"https://www.fsf.org/appeal?pk_campaign=frfall2019&pk_kwd=learn-more&pk_source=modal">READ MORE
</a> |
<a href=
"https://my.fsf.org/join?pk_campaign=frfall2019&pk_source=modal2">JOIN
</a></span></p>';
313 // show fsf-modal-window-elem if it hasn't been previously closed by
314 // the user, nor recently hit
"maybe later",
315 // and the campaign is still happening
316 function fsfModalWindowElemMaybeShow () {
318 var pattern, noShowFsfModalWindowElementP, now;
321 // if (now.getTime() < startTime.getTime() || now.getTime()
> endTime.getTime()) {
322 // return; // don't show the fsf-modal-window-elem
325 // see if cookie says not to show element
326 pattern = /showFsfFall2019FundraiserModalWindowElementP\s*=\s*false/;
327 noShowFsfModalWindowElementP = pattern.test(document.cookie);
329 //// uncomment here to enable modal window hiding
330 if (!noShowFsfModalWindowElementP) {
331 setTimeout(function () {
332 // display the element
333 document.getElementById(
"fsf-modal-window-elem-container").style.
display=
"block";
338 // call this first to set the proper text
339 fsfModalWindowElemMaybeSwitchText();
340 // call this right away to avoid flicker
341 fsfModalWindowElemMaybeShow();
344 // get the time `plusDays` in the future.
345 // can be a fraction.
346 function daysInFuture (plusDays) {
350 future = new Date(now.getTime() + Math.floor(
1000 *
60 *
60 *
24 * plusDays));
351 return future.toGMTString();
354 // hide the fsf-modal-window-elem
355 function fsfModalWindowElemHide () {
356 document.getElementById(
"fsf-modal-window-elem-container").style.
display=
"none";
358 // optionally hide elem and set a cookie to keep the fsf-modal-window-elem hidden for the next `forDays`.
359 function fsfModalWindowElemDontShowForDays (forDays, hideNow) {
360 if (hideNow === true) {
361 fsfModalWindowElemHide();
363 //document.cookie =
"showFsfFall2019FundraiserModalWindowElementP=false; path=/; domain=.fsf.org; expires=" + daysInFuture(forDays);
364 document.cookie =
"showFsfFall2019FundraiserModalWindowElementP=false; path=/; expires=" + daysInFuture(forDays);
367 // hide the element from now to two weeks after closing it
368 function fsfModalWindowElemDontShowForAWhile () {
369 fsfModalWindowElemDontShowForDays(
14, true);
371 // hide the element from now to past the date of the campaign
372 //function fsfModalWindowElemDontShowAgain () {
373 // fsfModalWindowElemDontShowForDays(
120, true);
375 // don't show the element for a while
376 //function fsfModalWindowElemMaybeLater () {
377 // fsfModalWindowElemDontShowForDays(
1, true);
379 // keep the element visible for now, but don't show it for a while
380 function fsfModalWindowElemFollowedLink () {
381 fsfModalWindowElemDontShowForDays(
14, false);
384 // close popup if user clicks trasparent part
385 document.getElementById(
"fsf-modal-window-elem-container").addEventListener(
"click", function(event){
386 fsfModalWindowElemDontShowForAWhile();
388 // don't close popup if clicking non-trasparent part (with the text and buttons)
389 document.getElementById(
"fsf-modal-window-elem").addEventListener(
"click", function(event){
390 event.stopPropagation();
392 // close popup if user clicks X icon
393 document.getElementById(
"fsf-modal-window-elem-close-button").addEventListener(
"click", function(event){
394 fsfModalWindowElemDontShowForAWhile();
396 //// close popup if user clicks maybe-later div
397 //document.getElementById(
"fsf-modal-window-elem-maybe-later").addEventListener(
"click", function(event){
398 // fsfModalWindowElemMaybeLater();
400 // disable popup if user clicks one of the main buttons
401 document.getElementById(
"fsf-modal-window-elem-buttons").addEventListener(
"click", function(event){
402 fsfModalWindowElemFollowedLink();
404 // disable popup if user clicks one of the
"Read more" link
405 document.getElementById(
"fsf-modal-window-text-link").addEventListener(
"click", function(event){
406 fsfModalWindowElemFollowedLink();
408 // close popup if user presses escape key
409 window.addEventListener(
"keydown", function (event) {
412 fsfModalWindowElemDontShowForAWhile();
422 <!-- end fsf-modal-window-elem campaign element -->
424 <div id=
"wrapper"> <!-- start of wrapper -->
425 <div class=
"lp-banner hidden-xs"> <!--start of lp banner -->
426 <div class=
"container"> <!-- start of container -->
428 <div class=
"lp-head"> <!-- start of lp header -->
429 <div class=
"lp-logo col-sm-3 col-xs-5">
431 <img src=
"/2020/assets/img/logo.svg"
432 class=
"img-responsive"
433 alt=
"[ LibrePlanet 2020 ]" />
436 <div class=
"lp-date-place col-sm-5 col-xs-2">
437 <!-- Heads up! When updating this date and place information,
438 remember to update it in the small
439 screen navbar too (see below) -->
440 <p><br><strong>Boston area
<br />
441 March
14-
15,
2020</strong></p>
443 <!-- #top-right-desktop start -->
444 <!--#include virtual="/2020/includes/register-now.html"-->
445 <!-- #top-right-desktop end -->
446 <!-- #top-right-desktop start -->
447 <!--#include virtual="/2020/includes/join-list.html"-->
448 <!-- #top-right-desktop end -->
449 </div><!-- end of lp header -->
452 </div> <!-- end of header container -->
453 </div> <!-- end of lp banner -->
455 <!-- start nav for small screens -->
456 <nav class=
"navbar navbar-default visible-xs">
457 <div class=
"container-fluid">
458 <!-- Brand and toggle get grouped for better mobile display -->
459 <div class=
"navbar-header">
460 <button type=
"button" class=
"navbar-toggle collapsed" data-toggle=
"collapse"
461 data-target=
"#lp-navbar-collapse" aria-expanded=
"false">
462 <span class=
"sr-only">Toggle navigation
</span>
463 <span class=
"icon-bar"></span>
464 <span class=
"icon-bar"></span>
465 <span class=
"icon-bar"></span>
467 <a class=
"navbar-brand" href=
"/2020/">
468 <img src=
"/2020/assets/img/logo.svg"
469 style=
"max-width: 100px"
470 class=
"img-responsive"
471 alt=
"[ LibrePlanet 2020 ]" />
473 <p class=
"navbar-text">
474 <!-- Heads up! When updating date place, remember to
475 update it in the lp banner too (see above) -->
476 Boston area
<br />March
14-
15,
2020
480 <div class=
"collapse navbar-collapse" id=
"lp-navbar-collapse">
482 <ul class=
"nav navbar-nav">
483 <!--#include virtual="/2020/includes/nav-list-1.html"-->
486 <ul class=
"nav navbar-nav">
487 <!--#include virtual="/2020/includes/nav-list-2.html"-->
489 </div><!-- navbar-collapse end -->
490 </div><!-- navbar container-fluid end -->
492 <!-- end nav for small screens -->