PageSourceSearch

https://asteroidmission.org/wp-content/themes/osiris/public_assets/js/app.js?ver=7.1

js asteroidmission.org collected 2026-09-24 17:41:18 UTC 258,250 bytes, 7,424 lines download raw bytes

1(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2module.exports = (function() {
3    var api = {
4        page: function(url, title) {
5            title = title || '';
6
7            ga('send', 'pageview', {
8                'page': url,
9                'title': title
10            });
11        },
12        social: function(network, action, target) {
13            ga('send', {
14                'hitType': 'social',
15                'socialNetwork': network,
16                'socialAction': action,
17                'socialTarget': target
18            });
19        },
20        event: function(category, action, label, value) {
21            value = value || 0;
22            ga('send', {
23                'hitType': 'event',
24                'eventCategory': category,
25                'eventAction': action,
26                'eventLabel': label,
27                'eventValue': value
28            });
29        }
30    };
31
32    api.init = function() {
33
34    };
35
36    api.init();
37
38    return api;
39})();
40},{}],2:[function(require,module,exports){
41module.exports = (function() {
42    var api = {};
43
44    api.prepAnimatedBtn = function($btn) {
45        var $helper = $btn.find('.btn-helper').first(),
46                x = $helper.width(),
47                y = $helper.height() + 1,
48                halfX = x / 2,
49                hidingClip = 'rect(0, ' + halfX + 'px, ' + y + 'px, ' + halfX + 'px)',
50                showingClip = 'rect(0, ' + x + 'px, ' + y + 'px, 0)';
51        $helper.css({clip: hidingClip});
52        $btn.on('mouseenter focus', function() {
53            $helper.css({clip: showingClip});
54        }).on('mouseleave blur', function() {
55            $helper.css({clip: hidingClip});
56        });
57    }
58
59    api.init = function() {
60        $('.btn').each(function() {
61            api.prepAnimatedBtn($(this));
62        });
63    }
64
65    api.init()
66
67    return api;
68})();
69},{}],3:[function(require,module,exports){
70var analytics = require('./analytics');
71
72
73module.exports = (function() {
74    var api = {};
75    
76    api.clearForm = function () {
77        var $form = $('#contact');
78        
79        if ($form.length === 0)
80            return;
81        
82        $form.find('#contact-name').val('');
83        $form.find('#contact-email').val('');
84        $form.find('#contact-message').val('');
85        $form.find('#contact-submit').prop('disabled', false);
86    }
87
88    api.init = function() {
89        var $form = $('#contact');
90        
91        $form.find('.form-fields').css({
92            'max-height': $form.height() + 200
93        });
94        
95        if ($form.length === 0)
96            return;
97
98        if(typeof grecaptcha == "object" && $('#contact-recaptcha').length)
99        {
100            grecaptcha.render('contact-recaptcha', {
101              'sitekey' : '6LdytwUTAAAAAPW3vjNF0Ny1xHw19lhRWdv9QV0m'
102            });            
103        }
104
105
106        $form.submit(function (e) {
107            e.preventDefault();
108            
109            analytics.event('form', 'submitting', 'contact-us-form');
110            
111            $form.find('#contact-submit').prop('disabled', true);
112            
113            var data = {
114                wp_form_id: $form.find('#contact-form-id').val(),
115                contact_name: $form.find('#contact-name').val(),
116                contact_email: $form.find('#contact-email').val(),
117                contact_filter: $form.find('#contact-filter').val(),
118                contact_message: $form.find('#contact-message').val(),
119                'g-recaptcha-response': $form.find('#g-recaptcha-response').val(),
120                ajax: true
121            }
122            
123            $.post('/', data).success(function (response) {
124                if (response.success == 'true')
125                {
126                    $form.addClass('m-success');
127                    api.clearForm();
128                    analytics.event('form', 'submited', 'contact-us-form');
129                }
130                else
131                {
132                    alert('An error occured, Please try again later.');
133                    $form.find('#contact-submit').prop('disabled', false);
134                    analytics.event('form', 'error', 'contact-us-form');
135                }
136                
137            }).fail(function () {
138                alert('An error occured, Please try again later.');
139                $form.find('#contact-submit').prop('disabled', false);
140                analytics.event('form', 'error', 'contact-us-form');
141            });
142            
143            return false;
144        });
145    }
146
147    api.init();
148
149    return api;
150})();
151
152},{"./analytics":1}],4:[function(require,module,exports){
153var analytics = require('./analytics');
154
155module.exports = (function() {
156    var api = {
157        resizeDownloads: function(){
158          var curmax = 0;
159          var curid = 0;
160          $('.downloads-list').each(function(){
161            curmax = 0;
162            curid = $(this).attr('id');
163            var items = $(this).find('li').each(function(){
164              if($(this).outerHeight() > curmax)
165              {
166                curmax = $(this).outerHeight();
167              }
168            });
169            $('#' + curid + ' li').css({minHeight: curmax});
170          });
171        },
172        init: function () {
173            $('.media-row').each(function(){
174                if($(this).find('li').length > 4)
175                {
176                    var id = $(this).attr('id');
177                    $('#' + id + '-more').fadeIn();
178                }
179            });
180
181            $(document).unbind('click.seeallmedia').on('click.seeallmedia', '.see-all', function(e){
182              e.preventDefault();
183              
184              var mrow = $(this).data('mrow');
185
186              if($(this).hasClass('active'))
187              {
188                $('#mrow-' + mrow).find('.over-4').fadeOut();
189                $(this).removeClass('active').text("See All");
190              }
191              else
192              {
193                var cpos = $(this).offset().top;
194                $('html,body').animate({scrollTop: cpos + 200}, 200, function(){
195                    var total = $('#mrow-' + mrow + ' .over-4').length;
196                    $.each($('#mrow-' + mrow).find('.over-4'), function(i,v){
197                        setTimeout(function(){
198                            $(v).fadeIn(500);
199                        }, i * 100);
200                    });
201
202                    setTimeout(function(){
203                      api.resizeDownloads();
204                    }, total * 100);                   
205                });
206                $(this).addClass('active').text("See Less"); 
207              }
208            });
209
210            $(document).unbind('click.downloadfilters').on('click.downloadfilters', '.download-filters', function(e){
211              e.preventDefault();
212              
213              var id = $(this).data('id');
214
215              $('html,body').animate({scrollTop: $('#' + id).offset().top - 50}, 200);
216
217              analytics.event('button', 'Download Filter', id);
218
219            });
220
221            $(document).unbind('click.downloadloadmore').on('click.downloadloadmore', '.downloads-load-more a', function(e){
222              e.preventDefault();
223              
224              var elem = $(this);
225              var cat = elem.data('cat');
226              var index = elem.data('index');
227              var parent = elem.parent();
228
229              $.ajax({
230                type : "post",
231                dataType : "html",
232                url : ajaxurl,
233                data : {action: "load_more_downloads", cat:cat, index:index}
234              }).always(function(data){
235                parent.fadeOut(500, function(){
236                  parent.remove();
237                  $('#mrow-' + cat).append(data);
238
239                  $.each($('#mrow-' + cat).find('.over-4'), function(i,v){
240                    setTimeout(function(){
241                        $(v).fadeIn(500);
242                    }, i * 100);
243                  });
244                });
245              }); 
246
247              analytics.event('button', 'Load more downloads', 'Category: ' + cat);
248
249            });
250
251            $(document).unbind('click.filedownload').on('click.filedownload', '.media-download .pdf', function(e){
252              var url = $(this).attr('href');
253              analytics.event('button', 'View Download File', url);
254            });
255
256            $(document).unbind('click.gallerybox').on('click.gallerybox', '.gallery-box', function(e){
257              var id = $(this).data('id');
258              var name = $(this).data('name');
259              $('#home-title').find('text').text(name);
260              $('.gallery-box').slideUp();
261              $('#gallery-' + id).show();
262              $('html,body').animate({scrollTop:0}, 500);
263              window.curgallery = id;
264              window.location.hash = name.toLowerCase().replace(' ', '-');
265              setTimeout(api.resizeDownloads, 1000);
266            });
267
268            $(document).unbind('click.closegallery').on('click.closegallery', '.close-gallery', function(e){
269              $(this).parent().fadeOut();
270              $('.gallery-box').slideDown();
271              $('#home-title').find('text').text('Galleries');
272              window.curgallery = null;
273              window.location.hash = '';
274            });
275
276            $(document).unbind('click.prevgallery').on('click.prevgallery', '.prev-gallery', function(e){
277              $(this).parent().fadeOut(500, function(){
278                var id = window.curgallery;
279                var nid = $('#gallery-' + id).prev().prev();
280                var title = '';
281
282                if($('#gallery-' + id).prev().prev().length === 0)
283                {
284                  nid = $('.gallery-content').last().data('id');
285                  title = $('.gallery-content').last().data('name');
286                }
287                else
288                {
289                  nid = $('#gallery-' + id).prev().prev().data('id');
290                  title = $('#gallery-' + id).prev().prev().data('name');
291                }
292
293                $('#gallery-' + nid).fadeIn();
294                $('html,body').animate({scrollTop:0}, 500);
295
296                $('#home-title').find('text').text(title);
297                $('#mobile-title').text(title);
298                window.curgallery = nid;
299                window.location.hash = title.toLowerCase().replace(' ', '-');
300              });
301              $('.gallery-box').slideUp();
302
303            });
304
305            $(document).unbind('click.nextgallery').on('click.nextgallery', '.next-gallery', function(e){
306              $(this).parent().fadeOut(500, function(){
307                var id = window.curgallery;
308                var nid = $('#gallery-' + id).next();
309                var title = '';
310
311                if($('#gallery-' + id).next().length === 0)
312                {
313                  nid = $('.gallery-content').first().data('id');
314                  title = $('.gallery-content').first().data('name');
315                }
316                else
317                {
318                  nid = $('#gallery-' + id).next().data('id');
319                  title = $('#gallery-' + id).next().data('name');
320                }
321
322                $('#gallery-' + nid).fadeIn();
323                $('html,body').animate({scrollTop:0}, 500);
324
325                $('#home-title').find('text').text(title);
326                $('#mobile-title').text(title);
327                window.curgallery = nid;
328                window.location.hash = title.toLowerCase().replace(' ', '-');
329              });
330              $('.gallery-box').slideUp();
331
332            });
333
334            $(document).unbind('click.imagepopup').on('click.imagepopup', '.gallery-item .image', function(e){
335              e.preventDefault();
336              e.stopPropagation();
337              var url = $(this).attr('href');
338              var caption = $(this).data('caption');
339              if(caption != '')
340              {
341                caption = '<div class="popup-caption">' + caption + '</div>';
342              }
343
344              $.magnificPopup.open({
345                items: {
346                  src: '<div class="imageWrapper"><img src="' + url + '" />' + caption + '</div>',
347                  type: 'inline'
348                }
349              });
350
351              analytics.event('button', 'View Download Image', url);
352
353                return false;
354            });
355
356            $(document).unbind('click.videopopup').on('click.videopopup', '.gallery-item .video', function(e){
357              e.preventDefault();
358              var url = $(this).attr('href'), vid;
359     
360              if(url.indexOf('embed') > -1)
361              {
362                vid = url.split('/');
363                vid = vid.pop();
364              }
365              else
366              {
367                vid = url.split('v=');
368                vid = vid.pop();
369              }
370
371              //$('.video-popup').html('<iframe width="560" height="315" src="https://www.youtube.com/embed/' + vid + '" frameborder="0" allowfullscreen></iframe>').magnificPopup({type:'inline'});
372
373              $.magnificPopup.open({
374                items: {
375                  src: '<div class="videoWrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/' + vid + '" frameborder="0" allowfullscreen></iframe></div>',
376                  type: 'inline'
377                }
378              });
379
380              analytics.event('button', 'Video Watched', vid);
381            });
382
383            $(window).on('resize', api.resizeDownloads);
384
385            if(window.location.hash)
386            {
387              var hash = window.location.hash.split('#')[1];
388              if(hash.indexOf('-') > -1)
389              {
390                hash = hash.replace('-', ' ');
391              }
392
393              if(hash == 'asteroidalphabet')
394              {
395                hash = 'asteroid alphabet';
396              }
397
398              $('.gallery-content').each(function(){
399                if($(this).data('name').toLowerCase() == hash)
400                {
401                  var id = $(this).data('id');
402                  var name = $(this).data('name');
403                  $('#home-title').find('text').text(name);
404                  $('.gallery-box').slideUp();
405                  $('#gallery-' + id).show();
406                  $('html,body').animate({scrollTop:0}, 500);
407                  window.curgallery = id;
408                }
409              });
410            }
411        }
412    };
413
414    api.init();
415
416    return api;
417})();
418},{"./analytics":1}],5:[function(require,module,exports){
419module.exports = (function() {
420    var api = {
421        isLoggedIn: false
422    };
423
424    api.scope = ['public_profile', 'email'];
425
426    api.check = function() {
427        FB.getLoginStatus(function(response) {
428            if (response.status === 'connected') {
429                api.isLoggedIn = true;
430
431                //check permissions
432                FB.api('/me/permissions', function(response) {
433                    var available = [];
434                    for(var i in response.data) {
435                        if (response.data[i].status == "granted") {
436                            available.push(response.data[i].permission);
437                        }
438                    }
439
440                    var intersection = available.filter(function(n) {
441                        return api.scope.indexOf(n) > -1;
442                    });
443
444                    //prompt login if not all required permissions are filled
445                    if (intersection.length !== api.scope.length)
446                    {
447                        api.login();
448                    }
449                });
450            } else {
451                api.isLoggedIn = false;
452            }
453        });
454    };
455
456    api.login = function(success, fail) {
457        success = success || function() {
458            console.log('User logged in.');
459        };
460        fail = fail || function() {
461            console.log('User cancelled login or did not fully authorize.');
462        };
463
464        FB.login(function(response) {
465            if (response.authResponse) {
466                api.isLoggedIn = false;
467                success();
468            } else {
469                fail();
470            }
471        }, {scope: api.scope.join(',')});
472    };
473
474    api.call = function(success, fail) {
475        success = success || function() {
476            console.log('Success.');
477        };
478        fail = fail || function() {
479            console.log('Fail.');
480        };
481
482        if (api.isLoggedIn) {
483            success();
484        } else {
485            api.login(success, fail);
486        }
487    };
488
489    api.wallPost = function(data, callback) {
490        callback = callback || function (r) {};
491        var def = {
492            method: 'feed',
493            link: '',
494            caption: '',
495            picture: '',
496            description: ''
497        }
498        
499        data = $.extend({}, def, data);
500        
501        FB.ui(data, callback);
502    }
503
504    return api;
505})();
506
507},{}],6:[function(require,module,exports){
508module.exports = (function() {
509    var api = {};
510
511    api.init = function () {
512        var $fancybordersHeader = $('.fancyborder-header');
513        // requires inlineSVG, 3d transforms (for horizontal flipping),
514        // and shouldn't be mobile
515        if (!$fancybordersHeader.length || !Modernizr.inlinesvg || !Modernizr.csstransforms3d || window.isMobile())
516            return;
517
518        // get the fancyborder SVG
519        var svgAsset = $.get(assetsDir + '/images/fancyborder.svg');
520        var svgReady = $.Deferred();
521        svgAsset.done(function(data) {
522            // once it's got,
523            // put the svg in all its places,
524            // and indicate that it's ready to be animated
525            var $svg = $(data).find('svg').first();
526            $('.fancyborder-c').append($svg);
527            svgReady.resolve();
528        });
529
530        function drawFancyBorders($el) {
531            var $bds = $el.find('.fancyborder-c');
532            // is-on class starts the animations
533            $bds.addClass('is-on');
534            setTimeout(function() {
535                // animate the hairs
536                $bds.each(function() {
537                    $(this).find('.blp-hair').each(function(i) {
538                        $(this).css({
539                            'animation': 'hairs 3s linear ' + (i * 0.15) + 's infinite'
540                        });
541                    });
542                });
543            }, 1500);
544        }
545
546        svgReady.done(function() {
547            // set an interval checking for whether the fancyborderHeader is in view,
548            // and if it is, draw it and clear the interval
549            $fancybordersHeader.each(function() {
550                var $el = $(this);
551                var top = $el.offset().top + 50;
552                var bdInterval = setInterval(function() {
553                    if (window.$win.scrollTop() + window.$win.height() > top) {
554                        clearInterval(bdInterval);
555                        drawFancyBorders($el);
556                    }
557                }, 100);
558            });
559        });
560    }
561    
562    api.init();
563
564    return api;
565})();
566
567},{}],7:[function(require,module,exports){
568module.exports = (function() {
569    var api = {};
570
571    api.sizeTitle = function() {
572
573        var $title = $('.page-title').first();
574        if (!$title.length || !Modernizr.inlinesvg)
575            return;
576
577        var titleTextArray = $title.text().split(' '),
578                originalTitle = $title.data('original-title') || $title.text(),
579                titleText = originalTitle,
580                twoLined = $title.hasClass('m-two-lines');
581
582        $title.data('original-title', originalTitle);
583
584        if (twoLined) {
585            var splitText = titleText.split(' ');
586            titleText = '<tspan>' + splitText[0] + ' ' + splitText[1] + '</tspan>';
587            titleText += '<tspan>' + splitText[2] + '</tspan>';
588        }
589
590        var $svg = $('<svg class="fancytitle-svg">\
591        <defs>\
592          <radialGradient id="title-gradient" cx="0" cy="130%" r="0"            gradientTransform="translate(0,0.275) scale(1,0.45)" gradientUnits="userSpaceOnUse">\
593            <animate attributeName="cx" attributeType="XML" begin="0s" dur="12s" values="-1200;1200;-1200" repeatCount="indefinite" fill="freeze"/>\
594            <stop offset="0" style="stop-color:#FFFFFF"/>\
595            <stop offset="1" style="stop-color:#889CA2"/>\
596          </radialGradient>\
597        </defs>\
598        <text class="fancytitle-text" fill="url(#title-gradient)" text-anchor="middle">' + titleText + '</text>\
599      </svg>').css({display: 'block'});
600
601        var $svgContainer = $('<div />').addClass('fancytitle-c')
602                .append($svg);
603
604        var isSvged = $title.data('is-svged') == 'true',
605                isTwoLines = false,
606                $svgText = $svg.find('text').first(),
607                $svgGradient = $svg.find('radialGradient').first(),
608                $svgGradientAnimation = $svgGradient.find('animate').first();
609
610        // if we're at movile size return, not insert SVG.
611        // if we've resized to mobile and with a current SVG, remove it.
612        if (window.isMobile()) {
613            if (isSvged) {
614                $title.empty()
615                        .text(originalTitle)
616                        .attr('style', '');
617                isSvged = false;
618                $title.data('is-svged', 'false');
619            }
620            return;
621        }
622
623        // size the SVG
624        var tY = $title.height(),
625                svgX = $title.width(),
626                svgY = tY;// + parseInt($title.css('padding-top'), 10); removed for reverse animation
627
628        $svg.attr('width', svgX)
629                .attr('height', svgY);
630        $svgGradient
631                .attr('r', svgX * 1.2);
632        $svgText.attr('x', svgX / 2)
633                .attr('y', svgY - 16); // magic number
634        var animateValues = [
635            -svgX / 2,
636            svgX + (svgX / 2),
637            -svgX / 2
638        ].join(';');
639        $svgGradientAnimation.attr('values', animateValues);
640
641        if (twoLined) {
642            var $tspans = $svgText.find('tspan');
643            $($tspans[0])
644                    .attr('x', svgX / 2)
645                    .attr('y', svgY - 16 - 72); // more magic
646            $($tspans[1])
647                    .attr('x', svgX / 2)
648                    .attr('y', svgY - 16);
649        }
650
651        // refresh and re animate
652        $title.empty()
653                .css({'padding-top': 0})
654                .append($svgContainer);
655        isSvged = true;
656        $title.data('is-svged', 'true');
657
658    }
659    // do it initially
660    api.sizeTitle();
661    // TODO: deboucne this
662    $win.on('resize', api.sizeTitle);
663
664    return api;
665})();
666
667},{}],8:[function(require,module,exports){
668var popup = require('./popup');
669
670module.exports = (function() {
671    var api = {
672        isLoggedIn: false
673    };
674
675    api.check = function() {
676        gapi.auth.authorize({
677            client_id: GOOGLE_CLIENT_ID,
678            scope: ['https://www.googleapis.com/auth/plus.login', 'email'],
679            immediate: true
680        }, function(response) {
681            api.isLoggedIn = response.status.signed_in;
682        });
683    };
684
685    api.login = function(success, fail) {
686        success = success || function() {
687            console.log('User logged in.');
688        };
689        fail = fail || function() {
690            console.log('User cancelled login or did not fully authorize.');
691        };
692
693        gapi.auth.authorize({
694            client_id: GOOGLE_CLIENT_ID,
695            immediate: false,
696            scope: ['https://www.googleapis.com/auth/plus.login', 'email'],
697        }, function (response) {
698            if (response.status.signed_in)
699            {
700                api.isLoggedIn = true;
701                success();
702            }
703            else
704            {
705                fail();
706            }
707        });
708    };
709
710    api.call = function(success, fail) {
711        success = success || function() {
712            console.log('Success.');
713        };
714        fail = fail || function() {
715            console.log('Fail.');
716        };
717
718        if (api.isLoggedIn) {
719            success();
720        } else {
721            api.login(success, fail);
722        }
723    };
724
725    api.wallPost = function(data, callback) {
726        callback = callback || function(r) {
727        };
728
729        var window = popup.window('https://plus.google.com/share?url=' + data.url, 'google-popup');
730    }
731
732    return api;
733})();
734
735},{"./popup":16}],9:[function(require,module,exports){
736var analytics = require('./analytics');
737
738module.exports = (function() {
739    var api = {};
740
741    //link hijacking
742    var $footer = $('#footer'),
743            $fadeArea = $('#site-body'),
744            $title = $('title'),
745            $doc = $(document),
746            transitioning = false,
747            ajaxCache = {};
748
749
750    var $defaultLoader = $('<div id="loader"><svg viewBox="0 0 300 300">' +
751            '<rect id="loader-square-1" class="loader-square loader-primary" x="50" y="50" width="100" height="100"/>' +
752            '<rect id="loader-square-2" class="loader-square loader-secondary" x="150" y="50" width="100" height="100"/>' +
753            '<rect id="loader-square-3" class="loader-square loader-secondary" x="50" y="150" width="100" height="100"/>' +
754            '<rect id="loader-square-4" class="loader-square loader-primary" x="150" y="150" width="100" height="100"/>' +
755            '<circle id="loader-circle-1" class="loader-circle loader-secondary" r="40" cy="100" cx="100"/>' +
756            '<circle id="loader-circle-2" class="loader-circle loader-primary" r="40" cy="100" cx="200"/>' +
757            '<circle id="loader-circle-3" class="loader-circle loader-primary" r="40" cy="200" cx="100"/>' +
758            '<circle id="loader-circle-4" class="loader-circle loader-secondary" r="40" cy="200" cx="200"/>' +
759            '</svg></div>');
760
761    function hrefToKey(href) {
762        // changes / and - to _ to create acceptable object keys
763        return href.replace(/[\/-]/g, '_');
764    }
765
766    var hijackerDefaults = {
767        element: 'site-body main',
768        transitionIn: function(callback) {
769            $fadeArea.velocity({opacity: 1}, callback);
770        },
771        transitionOut: function(callback) {
772            $fadeArea.velocity({opacity: 0}, callback);
773        },
774        $loader: $defaultLoader
775    };
776
777    function createPageObj(htmlStr, element) {
778        return {
779            html: $($.parseHTML(htmlStr.match(/<body[^>]*>([\s\S.]*)<\/body>/i)[0])).find('#' + element).html(),
780            title: htmlStr.match(/<title[^>]*>([\s\S.]*)<\/title>/i)[1],
781            nav: '#' + $($.parseHTML(htmlStr.match(/<body[^>]*>([\s\S.]*)<\/body>/i)[0])).find('.current_page_item, .current-menu-item').attr('id')
782        };
783    }
784
785    /**
786     * presumes that internal links are just `/path/to/file`, no protocol
787     */
788
789
790    function changePage(href, options) {
791        // options
792        // - scrollTo
793        // - noPushState
794        // - transitionIn
795        // - transitionOut
796        options = $.extend({}, hijackerDefaults, options);
797
798        // `href` is where we're getting our content;
799        // `noPushState` means this is happening because of a popstate event,
800        // so the browser is already changing the URL;
801        // `scrollTo` is a position to scroll to (again, needed by popstate triggers)
802
803        // if we are already transitioning, ignore the click
804        // AT SOME POINT WE MAY WANT TO CHANGE THIS SO THAT THERE IS A QUEUE?
805        if (transitioning)
806            return;
807
808        // save scroll position before anything changes,
809        // to pass to history state for back button
810        var currentPos = $doc.scrollTop(),
811                // if popstate happens (back button) prepare
812                // to return to a prior scroll position
813                scrollTarget = options.scrollTo || 0,
814                // create cacheKey now, for use later
815                nextCacheKey = hrefToKey(href),
816                currentCacheKey = hrefToKey(window.location.pathname);
817
818        function initNewPage(page) {
819            // given a new page object (attributes of `title` and `html`),
820            // change the content, change the url, etc. -- make it happen
821
822            if (!options.noPushState) {
823                var pathname = window.location.pathname;
824                // save scroll position for back button
825                window.history.replaceState({url: pathname, position: currentPos}, null, pathname);
826                // change URL with pushState
827                window.history.pushState({url: href, position: 0}, '', href);
828            }
829
830            // change the main element
831            $('#' + options.element).html(page.html);
832
833            // change the title
834            $title.text(page.title);
835
836            // get in position
837            $doc.off('.freezeScroll');
838            setTimeout(function() {
839                // DON'T KNOW WHY THIS TIMEOUT IS NECESSARY
840                $doc.scrollTop(scrollTarget);
841            }, 40);
842
843            // indicate that we're done
844            transitioning = false;
845
846            // run any page-specific script
847            $(document).trigger('runPageScriptsPlease');
848
849            // call the callback
850            options.transitionIn();
851
852            //update main nav
853            $('.current_page_item,.current-menu-item').removeClass('current-menu-item current_page_item');
854            $(page.nav).addClass('current-menu-item current_page_item');
855        }
856
857        // set state to prevent overlapping attempts
858        transitioning = true;
859
860        // transition out ...
861        options.transitionOut(function() {
862
863            // let any listeners know that we're changing
864            // $doc.trigger('page-change', { target: href });
865
866            // if the page has already loaded and been cached,
867            // intialize it from the cache
868            if (ajaxCache[nextCacheKey]) {
869                initNewPage(ajaxCache[nextCacheKey]);
870                return;
871            }
872
873            // if a little time passes, add the loader
874            options.$loader.hide();
875            var loaderActive = false;
876            var loaderTimeout = setTimeout(function() {
877                loaderActive = true;
878                if (options.element === 'main') {
879                    $fadeArea.before(options.$loader);
880                    options.$loader.add('body').height($(window).height());
881                }
882                options.$loader.velocity('fadeIn');
883            }, 500);
884//console.log(href);
885            // fetch the content, then cache and initialize
886
887            if(href.indexOf('/mission') > -1 && (window.isMobile() || window.iOS))
888            {
889                $('.site-header').addClass('fixed');
890                href = '/mission/mission-mobile/';      
891            }
892            else
893            {
894                $('.site-header').removeClass('fixed');
895            }
896
897
898            $.get(href)
899                    // on failure go to 404
900                    .fail(function() {
901                        transitioning = false;
902                        changePage('/four-oh-four');
903                        return;
904                    })
905                    // on success ...
906                    .done(function(data) {
907
908                        // THIS TIMEOUT IS TEMPORARY FOR DEBUGGING
909                        // setTimeout(function() {
910
911                        // create object
912                        var page = createPageObj(data, options.element);
913
914                        //report to google analytics
915                        analytics.page(href, page.title);
916
917                        // remove the loader
918                        clearTimeout(loaderTimeout);
919                        if (loaderActive) {
920                            options.$loader.velocity('fadeOut', function() {
921                                $('body').height('auto');
922                                options.$loader.remove();
923                                loaderActive = false;
924                                // initialize the page
925                                initNewPage(page);
926                                // and cache it
927                                ajaxCache[nextCacheKey] = page;
928                            });
929                        } else {
930                            initNewPage(page);
931                            ajaxCache[nextCacheKey] = page;
932                        }
933
934                        // }, 2000);
935                    });
936        });
937    }
938
939
940    function hijackLink(e) {
941        // called by a jquery click event,
942        // so `e` = event and `this` = clicked element
943
944        var link = e.currentTarget,
945                href = $(link).attr('href'),
946                options = $.extend({}, hijackerDefaults, e.data);
947
948        if (!/^\/|#/g.test(href)) {
949            //return true;
950        }
951
952        // Middle click, cmd click, and ctrl click should open
953        // links in a new tab as normal. (code from PJAX, https://github.com/defunkt/jquery-pjax)
954        if (e.which > 1 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey)
955            return;
956
957        // prevent default link behavior
958        e.preventDefault();
959
960        if (href.substr(0, 1) === '#') {
961            // if it's a hash, scroll to the target element
962            var $target = (href.length > 1) ? $(href) : $('body');
963            $target.velocity('scroll', {duration: 150, easing: 'linear'});
964        } else if (href !== window.location.pathname.replace(/\/$/, '')) {
965            // otherwise, if it's pointing to a different page, go there.
966            changePage(href, options);
967        }
968
969    }
970
971    // RIGHT NOW WE'RE JUST NOT BOTHERING TO FIX BROWSER-BACK-BOUNCING
972
973    // THIS WAS A NON-WEBKIT SOLUTION TO BROWSER-BACK-BOUNCING
974    // THAT WE CAN IMPLEMENT IF WE NEED TO ...
975    //
976    // var scrollPosition, allowScroll, currentUrl;
977    // // currentUrl will need to be set by changePage
978    // $(window).on('scroll', function(e) {
979    //   if (document.location.pathname !== currentUrl) {
980    //     $(window).scrollTop(scrollPosition);
981    //   } else {
982    //     scrollPosition = $doc.scrollTop();
983    //   }
984    // });
985
986    // assigning popstate listener for back and forward buttons
987    window.onpopstate = function(event) {
988        // iOS (iPad simulator at least) seems to fire the popstate event
989        // on initial page load, with a null `event.state`
990        // -- so in that case we don't need to do anything
991        if (event.state) {
992
993            // don't allow window to scroll away (via back functionality)
994            // (does not work for non-webkit, which seems to move the position before
995            // firing this event -- see above)
996            var pos = $doc.scrollTop();
997            $doc.on('scroll.freezeScroll', function() {
998                $doc.scrollTop(pos);
999            });
1000
1001            changePage(window.location.pathname, {
1002                noPushState: true,
1003                scrollTo: event.state.position
1004            });
1005        }
1006    };
1007
1008    api.changePage = changePage;
1009    api.hijackLink = hijackLink;
1010
1011    return api;
1012})();
1013},{"./analytics":1}],10:[function(require,module,exports){
1014/*jshint multistr: true */
1015
1016$ = jQuery.noConflict();
1017jQuery(document).ready(function($) {
1018    window.$win = $(window);
1019    window.$doc = $(document);
1020    window.isMobile = function() {
1021        return matchMedia('only screen and (max-width: 48em)').matches;
1022    };
1023    window.iOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
1024    window.ie = function() {
1025        var myNav = navigator.userAgent.toLowerCase();
1026        return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
1027    };
1028
1029    if(window.iOS)
1030        $('body').addClass('ios');
1031
1032    $('select').selectize({});
1033
1034    $(document).on('click', '.download-file', function(e){
1035        e.preventDefault();
1036        window.open(
1037          $(this).data('file'),
1038          '_blank' 
1039        );
1040    });
1041
1042    var mobileNav = require('./mobile-nav'),
1043            hijackJummpLinks = require('./hijack-jump-links'),
1044            pageScripts = require('./page-scripts'),
1045            buttonAnimations = require('./button-animation'),
1046            qaSubmission = require('./qa-submission'),
1047            readMore = require('./read-more'),
1048            fancyBorder = require('./fancy-border'),
1049            fancyTitle = require('./fancy-title'),
1050            qaAccordion = require('./qa-accordion'),
1051            team = require('./team'),
1052            mission = require('./mission'),
1053            facebok = require('./facebook'),
1054            google = require('./google'),
1055            contact = require('./contact'),
1056            targetAsteroids = require('./target-asteroids'),
1057            msgBennu = require('./msg-bennu'),
1058            newsletter = require('./newsletter'),
1059            analytics = require('./analytics'),
1060            socialMedia = require('./social-media');
1061
1062    $.ajaxSetup({cache: true});
1063
1064    //load Facebook SDK
1065    $.getScript('//connect.facebook.net/en_US/sdk.js', function() {
1066        FB.init({
1067            appId: FB_APP_ID,
1068            xfbml: true,
1069            version: 'v2.0'
1070        });
1071
1072        facebok.check();
1073    });
1074
1075    window.googleSDKReady = function() {
1076        google.check();
1077    }
1078
1079    //load Google SDK
1080    $.getScript('https://apis.google.com/js/client:plusone.js?onload=googleSDKReady');
1081
1082    $(document).on('click', "a[href^='/'], a[href^='#']", function(e) {
1083
1084        if ($(this).data('pass') || window.isMobile() || window.iOS || window.ie() != false)
1085            return true;
1086
1087        hijackJummpLinks.hijackLink(e);
1088    });
1089
1090    if($('#timer').length)
1091    {
1092        clearInterval(window.timeinterval);
1093        
1094        var deadline = '9/22/2017 10:26:00 UTC-0700';
1095
1096        if($('#timer').data('date').length)
1097        {
1098            deadline = $('#timer').data('date');
1099        }
1100
1101        $.getScript('/wp-content/themes/osiris/public_assets/js/countdown.js', function() {
1102
1103            window.timeinterval = setInterval(function(){
1104                var cd = countdown(null, Date.parse(deadline), countdown.DAYS);
1105                var t = cd.value;
1106
1107                var seconds = Math.floor( (t/1000) % 60 );
1108                var minutes = Math.floor( (t/1000/60) % 60 );
1109                var days = Math.floor( t/(1000*60*60*24) );
1110                var hours = Math.floor( (t/(1000*60*60)) % 24 ); // factor daylight savings
1111
1112                if(seconds < 0)
1113                seconds = 0;
1114
1115                if(minutes < 0)
1116                minutes = 0;
1117
1118                if(hours < 0)
1119                hours = 0;
1120
1121                if(days < 0)
1122                days = 0;
1123
1124                $('#timer .t-days').text(days < 100 ? ('0' + days).slice(-2) : days);
1125                $('#timer .t-hours').text(('0' + hours).slice(-2));
1126                $('#timer .t-minutes').text(('0' + minutes).slice(-2));
1127                $('#timer .t-seconds').text(('0' + seconds).slice(-2));
1128
1129                if(t.total<=0){
1130                  clearInterval(window.timeinterval);
1131                }
1132            },1000);
1133        });
1134    }
1135
1136
1137    window.homescroll = {
1138        w:0,
1139        pos:0,
1140        max: 2000,
1141        bpos:-50,
1142        rs: null,
1143        init: function(){
1144            homescroll.w = $(window).width();
1145            $(window).on('scroll', homescroll.scroll);
1146            $(window).on('resize', function(){
1147                homescroll.rs = setTimeout(homescroll.scroll, 10);
1148            });
1149            $('#home-osiris-craft').css({top:0, width: homescroll.w  > 754 ? 300 : 192, height: homescroll.w  > 754 ? 252 : 176});
1150            $('#home-bennu-surface').css({bottom:'-50px'});
1151            homescroll.max = $(window).height() * 2;
1152            homescroll.bpos = -50;
1153        },
1154        scroll: function(){
1155            homescroll.w = $(window).width();
1156            homescroll.pos = $(window).scrollTop();
1157            //console.log(homescroll.pos);
1158
1159            if(homescroll.pos > 0 && homescroll.pos < homescroll.max)
1160            {
1161                homescroll.bpos = -50 + (100 * ((homescroll.pos / homescroll.max)));
1162                if(homescroll.bpos > 0)
1163                    homescroll.bpos = 0;
1164
1165                $('#home-osiris-craft').css({top:(homescroll.w  > 754 ? 210 : 20) * (homescroll.pos / homescroll.max) + 'px', left: (homescroll.w  > 754 ? 30 : 20) + ((homescroll.w  > 754 ? 20 : 10) * ((homescroll.pos / homescroll.max))) + '%',width: (homescroll.w  > 754 ? 300 : 120) + ((homescroll.w  > 754 ? 400 : 192) * ((homescroll.pos / homescroll.max))) + 'px', height: (homescroll.w  > 754 ? 252 : 116) + ((homescroll.w  > 754 ? 352 : 176) * ((homescroll.pos / homescroll.max))) + 'px'});
1166                $('#home-bennu-surface').css({bottom:homescroll.bpos + 'px'});
1167            }
1168        }
1169    };
1170
1171    if($('#home-craft').length)
1172    {
1173        homescroll.init();
1174    }
1175
1176    //hide preload images
1177    $('.js-preload-image').hide();
1178
1179    $('#menu-item-292 a').attr('target', '_blank');
1180
1181});
1182
1183
1184
1185window.propagateChildEvent = function(event, arg) {
1186    $(document).trigger(event, arg);
1187}
1188},{"./analytics":1,"./button-animation":2,"./contact":3,"./facebook":5,"./fancy-border":6,"./fancy-title":7,"./google":8,"./hijack-jump-links":9,"./mission":11,"./mobile-nav":12,"./msg-bennu":13,"./newsletter":14,"./page-scripts":15,"./qa-accordion":17,"./qa-submission":18,"./read-more":19,"./social-media":20,"./target-asteroids":21,"./team":22}],11:[function(require,module,exports){
1189if(window.location.hash)
1190{
1191  $('.loading-screen h1, .loading-content').html('<br><br>');
1192}
1193
1194module.exports = (function() {
1195    var api = {};
1196    var h = $(window).height();
1197    var w = $(window).width();
1198    var mode = 'full';  
1199    window.videos = [];
1200    window.capsule_live_queue = null;
1201    window.hasMissionLoaded = false;
1202    window.video_url = "//" + document.location.hostname + "/videos/";
1203
1204    var headerh = $('.site-header').outerHeight();
1205    var launchOffset = h / 3;
1206    if(h > 650)
1207      launchOffset = h / 2;
1208
1209    if($('main').hasClass('mission-mobile'))
1210    {
1211      h -= $('.mobile-jump').outerHeight(); 
1212      $('.site-header').addClass('fixed');     
1213    }
1214
1215
1216    $('#atlas-launch').hide();
1217    $('#m1').css({minHeight: h});
1218
1219    window.missionInit = function()
1220    {
1221      $('#site-footer, #subscribe-c').slideUp(500);
1222      $('body').addClass('page-id-30');
1223      $('#site-body').css({height:$(window).height()});
1224      var base_url = "/wp-content/themes/osiris/public_assets/";
1225
1226      var preload = [
1227      "images/stars.gif",
1228      "images/atlas/nose-left-lg.png", 
1229      "images/atlas/nose-right-lg.png", 
1230      "images/atlas/osiris.png",
1231      "images/atlas/connector3-lg.png",
1232      "images/atlas/stage2-lg.png",
1233      "images/atlas/connector2-lg.png",
1234      "images/atlas/connector2-back-lg.png",
1235      "images/atlas/connector1-lg.png",
1236      "images/atlas/connector1-back-lg.png",
1237      "images/atlas/stage1-lg.png",
1238      "images/atlas/booster-lg.png",
1239      "images/atlas/thruster-lg.png",
1240      "images/atlas/grid-bg.gif",
1241      "images/atlas/cutaway.png",
1242      "images/atlas/line/leftnose.png",
1243      "images/atlas/line/rightnose.png",
1244      "images/atlas/line/osr.png",
1245      "images/atlas/line/stage2.png",
1246      "images/atlas/line/coupling.png",
1247      "images/atlas/line/stage1.png",
1248      "images/atlas/line/booster.png",
1249      "images/atlas/line/flame.png",
1250      "images/scroll-arrows.png",
1251      "images/atlas/line/clouds.gif",
1252      "images/atlas/line/tower.gif",
1253      "images/atlas/line/launch-tower.gif",
1254      "images/large-earth.png",
1255      "images/osiris-cruise.png",
1256      "images/space.gif",
1257      "images/osiris-tilt.png",
1258      "images/bennu.png",
1259      "images/osiris-arm.png",
1260      "images/osiris-leaving.png",
1261      "images/surface-line.png",
1262      "images/surface-arm.png",
1263      "images/surface-arm-vacuum.png",
1264      "images/capsule-line.png",
1265      "images/capsule-parachute.png",
1266      "images/capsule_ground.jpg",
1267      "images/tag.png"
1268      ];
1269
1270      if(!window.hasMissionLoaded)
1271      {
1272        //console.log('loading');
1273        var promises = [];
1274        for (var i = 0; i < preload.length; i++) {
1275            (function(url, promise) {
1276                var img = new Image();
1277                img.onload = function() {
1278                  promise.resolve();
1279                  $('#loading-percent').text(i * (100 / preload.length) );
1280                };
1281                img.src = base_url + url;
1282            })(preload[i], promises[i] = $.Deferred());
1283        }
1284        $.when.apply($, promises).done(function() {
1285
1286          window.hasMissionLoaded = true;
1287
1288          launchScreen();            
1289          
1290        });
1291      }
1292      else
1293      {
1294        //console.log('already loaded');
1295        launchScreen();
1296      }
1297
1298    }
1299
1300window.launchScreen = function(){
1301  
1302  if(window.location.href.indexOf('/mission') > -1 && (window.isMobile() || window.iOS))
1303  {
1304    window.location.href = '/mission/mission-mobile/';      
1305  }
1306
1307  $('#mission-loading').fadeOut();
1308
1309  if(window.location.hash)
1310  {
1311    window.launchSite();
1312  }
1313  else
1314  {
1315    $('#launch-mission-button').fadeIn();
1316
1317    $(document).unbind('click.lmb').on('click.lmb', '#launch-mission-button', function(e){
1318      e.preventDefault();
1319      window.launchSite();
1320    });
1321  }
1322}
1323
1324window.launchSite = function()
1325{
1326  //console.log('launching site', window.isMobile(), window.iOS);
1327
1328  $('#atlas-launch').show();
1329  if((!window.isMobile() && !window.iOS))
1330  {
1331    //console.log('going full');
1332    $('#timeline').hide();
1333
1334    var atlas = {
1335      state: 'full',
1336      pieces: {
1337          //sample piece structure. written dynamically
1338          noseleft: {
1339            w:0, // current w
1340            h:0,
1341            x:0,
1342            y:0,
1343            ow:0, //original width
1344            oh:0,
1345            ol:0,
1346            oy:0,
1347            sw:0, // scaled width
1348            sh:0,
1349            sx:0,
1350            sy:0,
1351            xx:0, //expanded x
1352            xy:0
1353          },
1354          noseright:{},
1355          osiris:{},
1356          connector3:{},
1357          stage2:{},
1358          connector2:{},
1359          connector2back:{},
1360          connector1:{},
1361          connector1back:{},
1362          stage1:{},
1363          booster:{},
1364          thruster:{}
1365      },
1366      lines:{
1367        noseleft:{
1368          w:0,
1369          h:0,
1370          x:0,
1371          y:0,
1372          sw:0,
1373          sh:0,
1374          sx:0,
1375          sy:0
1376        },
1377        noseright:{},
1378        osiris:{},
1379        stage2:{},
1380        coupling:{},
1381        stage1:{},
1382        booster:{}
1383      },
1384      init: function(){
1385
1386        stopVideos();
1387        clearTimeout(window.capsule_live_queue);
1388
1389        //mode setting
1390        var offleft,offright,factwidth, lfw;
1391        if(mode == 'full')
1392        {
1393          factwidth = '40%';
1394          offright = '50%';
1395          offleft = '50%';
1396          lfw = 640;
1397        }
1398        else if(mode == 'medium')
1399        {
1400          factwidth = '55%';
1401          offright = '30%';
1402          offleft = '70%';
1403          lfw = 540;
1404
1405        }
1406        else
1407        {
1408          factwidth = '55%';
1409          offright = '30%';
1410          offleft = '70%';
1411          lfw = 500;
1412
1413        }
1414
1415        $('#atlas-breakaway, #atlas-cutaway').css({left: offleft});
1416        $('.fact, #cutaway-facts').css({width: factwidth});
1417        $('#atlas-height').css({right: offright});
1418
1419        $('#line-ground').hide();
1420        $('#launch-fact1').removeClass('is-on').css({zIndex:-1, opacity:0, width:lfw});
1421        $('#atlas-lines').css({
1422          position:'absolute', 
1423          left:offleft, 
1424          top:100,
1425          '-webkit-transform': 'rotate(0deg)',
1426          '-moz-transform': 'rotate(0deg)',
1427          '-ms-transform': 'rotate(0deg)',
1428          '-o-transform': 'rotate(0deg)',
1429          'transform': 'rotate(0deg)',
1430          'zoom': 1
1431        });
1432        $('#atlas-lines dic').css({
1433          '-webkit-transform': 'rotate(0deg)',
1434          '-moz-transform': 'rotate(0deg)',
1435          '-ms-transform': 'rotate(0deg)',
1436          '-o-transform': 'rotate(0deg)',
1437          'transform': 'rotate(0deg)',
1438          'zoom': 1
1439        });
1440
1441        $('#atlas-launch .grad').css({bottom:-200, opacity:0});
1442        $('#atlas-launch').css({height: '100%', top:'0'});
1443        $('.plus').removeClass('active');
1444
1445        $('#launch-notes, #blastoff').css('display', 'block');
1446        atlas.state = 'line'; 
1447
1448        $('#atl-nose-left').css({width:atlas.lines.noseleft.w, height:atlas.lines.noseleft.h, top:atlas.lines.noseleft.y, left:atlas.lines.noseleft.x});
1449        $('#atl-nose-right').css({width:atlas.lines.noseright.w, height:atlas.lines.noseright.h, top:atlas.lines.noseright.y, left:atlas.lines.noseright.x});
1450        $('#atl-osiris').css({width:atlas.lines.osiris.w, height:atlas.lines.osiris.h, top:atlas.lines.osiris.y, left:atlas.lines.osiris.x});
1451        $('#atl-stage2').css({width:atlas.lines.stage2.w, height:atlas.lines.stage2.h, top:atlas.lines.stage2.y, left:atlas.lines.stage2.x});
1452        $('#atl-coupling').css({width:atlas.lines.coupling.w, height:atlas.lines.coupling.h, top:atlas.lines.coupling.y, left:atlas.lines.coupling.x});
1453        $('#atl-stage1').css({width:atlas.lines.stage1.w, height:atlas.lines.stage1.h, top:atlas.lines.stage1.y, left:atlas.lines.stage1.x});
1454        $('#atl-booster').css({width:atlas.lines.booster.w, height:atlas.lines.booster.h, top:atlas.lines.booster.y, left:atlas.lines.booster.x});      
1455
1456        forceTimeline("September", "8", "2016");
1457        $('#timeline').fadeOut();
1458        $('#atlas-cruise, #arrival, #sample, #return, #collection, #atlas-scaled, #m-atlas').fadeOut();
1459      }
1460    };
1461
1462    var cruise = {
1463      videos: {
1464        w:600,
1465        h:380,
1466        m2: {
1467          w:800,
1468          h:507,
1469          y:-30
1470        },
1471        m3: {
1472          w:800,
1473          h:507,
1474          y:-30
1475        }
1476      },
1477      earth: {
1478        stage1: {
1479          w: 2000,
1480          h: 2000,
1481          x: -1000,
1482          y: -1000,
1483          tw: 2200,
1484          th: 2200,
1485          tx: -1100,
1486          ty: -1100,
1487          tw2:2800, 
1488          th2:2800,
1489          ty2: -1800,
1490          tx2: -2000
1491        },
1492        stage2:{
1493          tw: 1400,
1494          th: 1400,
1495          tx: -600,
1496          ty: -300
1497        }
1498      },
1499      init: function(){
1500        stopVideos();
1501        forceTimeline("September", "8", "2016");
1502        clearTimeout(window.capsule_live_queue);
1503
1504        $('#timeline').fadeIn();
1505
1506        $('#m1-video').css({width:'100%', left:0, top:0});
1507        $('#launch-fact5').removeClass('is-on').animate({opacity: 0}, 500);
1508        $('#m-atlas, #atlas-launch, #arrival, #sample, #return, #collection, #atlas-scaled, #launch-notes').fadeOut();
1509
1510        $('#cruise-info').css({width:'50%', left:'-55%'});
1511        $('#cruise-grad').css({width:'25%'});
1512        $('#cruise-content').css({left:0});
1513        $('#cruise-info-1').show();
1514        $('#cruise-info-2').hide();
1515        $('#cruise-bennu, #m1-bennu-ios').css({width:0, height:0, top:140, left:100});
1516        $('#cruise-osiris').css({width:590, height:295, top:900, left:200, opacity:0});
1517        $('#cruise-earth').css({width:cruise.earth.stage1.w, height:cruise.earth.stage1.h, top:cruise.earth.stage1.y, left:cruise.earth.stage1.x, opacity:0});
1518        $('#cruise-space').css('opacity', 0);
1519        $('#cruise-arrow').css('opacity', 0);
1520        $('#atlas-cruise video').removeClass('active');
1521        $('.btn').removeClass('is-on').animate({opacity:0, zIndex:-1}, 500);
1522        $('.video-text .hide').hide();
1523      }
1524    };
1525
1526    var arrival = {
1527      init: function(){
1528        stopVideos();
1529        forceTimeline("December", "3", "2018");
1530        clearTimeout(window.capsule_live_queue);
1531
1532        $('#timeline').fadeIn();
1533        try {
1534            $('#arrival-approach-video').get(0).currentTime = 0;
1535        } catch(error) {
1536            if (error.code === 11) { 
1537                
1538            }
1539        }
1540        $('#arrival-info, #arrival-grad').removeClass('right');
1541
1542        $('#arrival-info').css({right:'-55%'});
1543        $('#spec-close-box, .spec').hide();
1544
1545        $('#launch-fact5').removeClass('is-on').animate({opacity: 0}, 500);
1546        $('#m-atlas, #atlas-launch, #atlas-cruise, #sample, #return, #collection, #atlas-scaled, #launch-notes').fadeOut();
1547
1548        $('#atlas-cruise').fadeOut();
1549        $('#atlas-launchprep').fadeOut();
1550        $('#arrival-approach-bennu, #arrival-approach-osiris').css({opacity:1});
1551        $('#arrival-bennu, #arrival-osiris, #arrival-space').css({opacity:0});
1552        $('#arrival-bennu').css({top: h - 300});
1553        $('#inspect, #sensor-note').hide();
1554        $('.inspect-sensor').removeClass('active');
1555        $('#arrival-info').css({width:'50%', left:'-55%'});
1556
1557        $('#arrival-info-specs .spec').css({height: h * .76});
1558        $('#arrival-space').css({backgroundPosition: '0 0'});
1559
1560        $('#arrival-grad').css({width:'25%'});
1561        $('#arrival-content').css({left:0});
1562        $('#arrival-info-1').show();
1563        $('#arrival-1-next, #arrival-2-next, #arrival-3-next, #arrival-info-2, #arrival-info-3').hide();
1564        $('#arrival-osiris').css('background-position', '0 0');
1565        $('#arrival-spec-next, #arrival-1-next2, #arrival-2-next2, #arrival-3-next2, .arrival-fact-box').removeClass('is-on').animate({opacity:0, zIndex:-1}, 500);
1566
1567        $('#arrival-approach video').removeClass('active').css({width:0, height:0});
1568        $('.video-text .hide').hide();
1569        $('.btn').removeClass('is-on').animate({opacity:0, zIndex:-1}, 500);
1570      }
1571    };
1572
1573    var sample = {
1574      init: function(){
1575        stopVideos();
1576        forceTimeline("September", "10", "2019");
1577        clearTimeout(window.capsule_live_queue);
1578
1579
1580        var bleft, btop;
1581        if(mode == 'full')
1582        {
1583          bleft = .3;
1584          btop = .5;
1585        }
1586        else if(mode == 'medium')
1587        {
1588          bleft = .2;
1589          btop = .8;
1590        }
1591        else
1592        {
1593          bleft = .2;
1594          btop = .8;
1595        }
1596
1597        $('#timeline').fadeIn();
1598        $('#sample-surface').hide();
1599        $('#sample-info, #sample-grad').removeClass('right');
1600        $('#sample-1-next, #sample-2-next2, #sample-3-next2, #sample-4-next2, #acquisition-sim, #acquisition-next').css({opacity:0, zIndex:-1});
1601        $('#m-atlas, #atlas-launch, #atlas-cruise, #return, #collection, #atlas-scaled, #launch-notes').fadeOut();
1602        $('#sample-info').css({left:'-105%', padding:'0', opacity:1});
1603        $('#sample-grad').css({width:'25%'});
1604        $('#sample-content').css({left:0});
1605        $('#sample-bennu').css({width:915, height:824, top:-h * btop, left: w * bleft});
1606        $('#sample-osiris').css({backgroundPosition: '0 0', width:100, height:249, top:h * .7, left
1606:w * .55}).removeClass('arm').removeClass('return');
1607        $('.video-text .hide').hide();
1608        $('.btn').removeClass('is-on').animate({opacity:0, zIndex:-1}, 500);
1609      }
1610    };
1611
1612    var osreturn = {
1613      init: function(){
1614        stopVideos();
1615        forceTimeline("March", "3", "2021");
1616        clearTimeout(window.capsule_live_queue);
1617
1618      var bennuleft, osirisleft;
1619        if(mode == 'full')
1620        {
1621          bennuleft = 0;
1622          osirisleft = w * .45;
1623        }
1624        else if(mode == 'medium')
1625        {
1626          bennuleft = -w * .1;
1627          osirisleft = w * .55;
1628        }
1629        else
1630        {
1631          bennuleft = -w * .1;
1632          osirisleft = w * .55;
1633        }
1634
1635        $('#timeline').fadeIn();
1636
1637        $('#m-atlas, #atlas-launch, #atlas-cruise, #collection, #atlas-scaled, #launch-notes').fadeOut(500, function(){
1638            $('#sample').fadeOut(1000);
1639        });
1640
1641        $('#return-info').stop().css({width:'50%', left:'-55%'});
1642        $('#return-grad').stop().css({width:'25%'});
1643        $('#return-content').stop().css({left:0});
1644        $('#return-bennu').stop().css({width:915, height:824, top:0, left: bennuleft, display:'block'});
1645        $('#return-osiris').stop().css({width:48, height:27, top:h / 3, left: osirisleft, display:'block', opacity:1, backgroundPosition: '0 0'});
1646        $('#return-earth').stop().css({width:100, height:100, top:400, left:800, zIndex:-1});
1647        $('#return-space').css({opacity:1, backgroundPositionX: '0 0'});
1648        $('#return-1').css({opacity:0, zIndex:-1}).removeClass('is-on');
1649
1650        $('#cloud4').stop().css({top:1000});
1651        $('#cloud5').stop().css({top:1000});
1652        $('#cloud6').stop().css({top:1000});
1653        $('#return-capsule').stop().css({width:294, height:229, top:140, left:700, zIndex:-1, opacity:0});
1654        $('#return-ground').stop().css({top:'100%', zIndex:-1}).show();
1655        $('#capsule-parachute').stop().css({zIndex:-1, opacity:0});
1656
1657        $('#return-info-1').show();
1658        $('#return-info-2, #return-info-3').hide();
1659        try {
1660            $('#r1-video').get(0).currentTime = 0;
1661        } catch(error) {
1662            if (error.code === 11) { 
1663                
1664            }
1665        }
1666
1667        $('#return-1-next2, #return-2-next2, #return-3-next2, #freefall-next').css({opacity:0, zIndex:-1,}).removeClass('is-on');
1668        $('.video-text .hide').hide();
1669        $('.btn').removeClass('is-on').animate({opacity:0, zIndex:-1}, 500);
1670
1671      }
1672    };
1673
1674    var collection = {
1675        init: function(){
1676            stopVideos();
1677            forceTimeline("September", "24", "2023");
1678            clearTimeout(window.capsule_live_queue);
1679
1680            $('#collection-capsule-live img').removeClass('active').css({opacity:0});
1681            $('#collection-capsule-live img').first().addClass('active');
1682
1683            $('#collection-info').stop().css({width:'50%', left:'-55%'});
1684            $('#collection-grad').stop().css({width:'25%'});
1685            $('#collection-content').stop().css({left:0});
1686            $('#collection-info-1, #collection-capsule-live').show();
1687            $('#collection-info-2, #collection-form').hide();
1688            try {
1689                $('#c1-video').get(0).currentTime = 0;
1690            } catch(error) {
1691                if (error.code === 11) { 
1692                    
1693                }
1694            }
1695            $('#collection-next, #collection-next2, #collection-form-box').css({opacity:0, zIndex:-1,}).removeClass('is-on'); 
1696            $('#collection-bennu, #collection-earth, #collection-space, #collection-capsule').css({opacity:0, zIndex:-1}); 
1697            $('.video-text .hide').hide(); 
1698            $('.btn').removeClass('is-on').animate({opacity:0, zIndex:-1}, 500);         
1699        }
1700    };
1701
1702    window.kf1 = 50;
1703    window.kf2 = 4000;
1704    window.kf3 = 8000;
1705    window.kf4 = 12000;
1706    window.kf5 = 16000;
1707    window.kf6 = 18000;
1708    window.interrupt = false;
1709
1710
1711    function resizeMission(){
1712      h = $(window).height();
1713      $('.full-page').css({height: h + 'px'});
1714
1715      if(w > 1280)
1716      {
1717        mode = 'full';
1718      }
1719      else if(w <= 1280 && w > 1024)
1720      {
1721        mode = 'medium';
1722      }
1723      else if(w <= 1024)
1724      {
1725        mode = 'small';
1726      }
1727
1728      if(window.iOS)
1729        mode = 'medium';
1730    }
1731
1732    /****** mission page (keep at bottom) ******/
1733
1734    function setStage()
1735    {
1736        var speed = 1000;
1737      
1738        //mode setting
1739        var offleft, t1, t2, lp, lt;
1740        if(mode == 'full')
1741        {
1742          t1 = '58%';
1743          t2 = '75%';
1744          lt = '66%';
1745          lp = '66%';
1746          offleft = '50%';
1747        }
1748        else if(mode == 'medium')
1749        {
1750          t1 = '55%';
1751          t2 = '78%';
1752          lt = '64%';
1753          lp = '64%';
1754          offleft = '70%';
1755        }
1756        else
1757        {
1758          t1 = '55%';
1759          t2 = '78%';
1760          lt = '64%';
1761          lp = '64%';
1762          offleft = '70%';
1763        }
1764
1765        $('#tower1').css({left:t1});
1766        $('#tower2').css({left:t2});
1767        $('#launch-tower').css({left:lt});
1768        $('#launchpad').css({left:lp});
1769      
1770        $('#timeline').fadeIn();
1771
1772        $('#atlas-launch .grad').css({bottom:0, opacity:0});
1773        $('#atlas-launch').css('display', 'block');
1774        $('#atlas-lines').css({left: offleft});
1775        atlas.state = 'line';
1776        $('#atlas-lines').css({position:'fixed'});
1777        $('#atlas-launch').css('height', '20000px');
1778        $('#atlas-lines').animate({left:'70%', top:launchOffset}, speed, function(){
1779          $('#expand').fadeOut(500);
1780          $('#atlas-launchprep').fadeOut(500);
1781          $('#atlas-scale').fadeOut(500);
1782          $('#line-ground').css({top: launchOffset + 320}).fadeIn(500);
1783          $('#launch-notes').css('display', 'block');
1784          $('#launch-fact1').addClass('is-on').css('opacity', 1);
1785          $('#blastoff').css({opacity:1,zIndex:100}).fadeIn(500);
1786        });
1787
1788        $('#atl-nose-left').animate({width:atlas.lines.noseleft.sw, height:atlas.lines.noseleft.sh, top:atlas.lines.noseleft.sy, left:atlas.lines.noseleft.sx}, speed);
1789        $('#atl-nose-right').animate({width:atlas.lines.noseright.sw, height:atlas.lines.noseright.sh, top:atlas.lines.noseright.sy, left:atlas.lines.noseright.sx}, speed);
1790        $('#atl-osiris').animate({width:atlas.lines.osiris.sw, height:atlas.lines.osiris.sh, top:atlas.lines.osiris.sy, left:atlas.lines.osiris.sx}, speed);
1791        $('#atl-stage2').animate({width:atlas.lines.stage2.sw, height:atlas.lines.stage2.sh, top:atlas.lines.stage2.sy, left:atlas.lines.stage2.sx}, speed);
1792        $('#atl-coupling').animate({width:atlas.lines.coupling.sw, height:atlas.lines.coupling.sh, top:atlas.lines.coupling.sy, left:atlas.lines.coupling.sx}, speed);
1793        $('#atl-stage1').animate({width:atlas.lines.stage1.sw, height:atlas.lines.stage1.sh, top:atlas.lines.stage1.sy, left
1793:atlas.lines.stage1.sx}, speed);
1794        $('#atl-booster').animate({width:atlas.lines.booster.sw, height:atlas.lines.booster.sh, top:atlas.lines.booster.sy, left:atlas.lines.booster.sx}, speed);
1795      
1796        setTimeout(function(){
1797          $('#atlas-launch .grad').animate({bottom:-60, opacity:0}, 500);
1798          $('#atlas-scaled').fadeOut(500);
1799          $('#show-scale').fadeIn(500);
1800        }, speed * .8);
1801
1802        $('#cutaway-facts').removeClass('is-on');
1803    }
1804
1805    function showAtlas()
1806    {
1807      atlas.init();
1808      $('#atlas-launch').css({top:0}).fadeIn(1000);
1809      $('#m-atlas').hide();
1810      $('#atlas-scale').hide();
1811      setStage();
1812    }
1813
1814    function spreadAtlas()
1815    {
1816      var speed = 1200;
1817
1818      $('#at-nose-left').animate({left: atlas.pieces.noseleft.xx}, speed);
1819      $('#at-nose-right').animate({left: atlas.pieces.noseright.xx}, speed);
1820      $('#at-connector3').animate({top: atlas.pieces.connector3.xy}, speed);
1821      $('#at-stage2').animate({top: atlas.pieces.stage2.xy}, speed);
1822      $('#at-connector2').animate({top: atlas.pieces.connector2.xy}, speed);
1823      $('#at-connector2-back').animate({top: atlas.pieces.connector2back.xy}, speed);
1824      $('#at-connector1').animate({top: atlas.pieces.connector1.xy}, speed);
1825      $('#at-connector1-back').animate({top: atlas.pieces.connector1back.xy}, speed);
1826      $('#at-stage1').animate({top: atlas.pieces.stage1.xy}, speed);
1827      $('#at-booster').animate({top: atlas.pieces.booster.xy, left: atlas.pieces.booster.xx}, speed);
1828      $('#at-thruster').animate({top: atlas.pieces.thruster.xy}, speed, function(){
1829        $('.plus').addClass('active');
1830        $('#at-nose-left').click();
1831      });
1832      $('#expand-model').stop().fadeOut(500, function(){
1833        $('#collapse').fadeIn(500);
1834      });
1835    }
1836
1837    function collapseAtlas(callback)
1838    {
1839      var speed = 1200;
1840
1841      $('.plus').removeClass('active');
1842      $('.fact').removeClass('is-on').addClass('hidden');
1843      $('#at-nose-left').animate({left: atlas.pieces.noseleft.ox}, speed);
1844      $('#at-nose-right').animate({left: atlas.pieces.noseright.ox}, speed);
1845      $('#at-connector3').animate({top: atlas.pieces.connector3.oy}, speed);
1846      $('#at-stage2').animate({top: atlas.pieces.stage2.oy}, speed);
1847      $('#at-connector2').animate({top: atlas.pieces.connector2.oy}, speed);
1848      $('#at-connector2-back').animate({top: atlas.pieces.connector2back.oy}, speed);
1849      $('#at-connector1').animate({top: atlas.pieces.connector1.oy}, speed);
1850      $('#at-connector1-back').animate({top: atlas.pieces.connector1back.oy}, speed);
1851      $('#at-stage1').animate({top: atlas.pieces.stage1.oy}, speed);
1852      $('#at-booster').animate({top: atlas.pieces.booster.oy, left: atlas.pieces.booster.ox}, speed);
1853      $('#at-thruster').animate({top: atlas.pieces.thruster.oy}, speed);
1854      $('#collapse').fadeOut(500, function(){
1855        $('#expand-model').fadeIn(500);
1856      });
1857
1858      if(callback)
1859      {
1860        setTimeout(function(){callback();}, speed);
1861      }
1862    }
1863
1864    function collapseAndScaleAtlas(callback)
1865    {
1866      var speed = 1200;
1867
1868      $('.plus').removeClass('active');
1869      $('.fact').removeClass('is-on').addClass('hidden');
1870      $('#at-nose-left').animate({left: atlas.pieces.noseleft.ox}, speed);
1871      $('#at-nose-right').animate({left: atlas.pieces.noseright.ox}, speed);
1872      $('#at-connector3').animate({top: atlas.pieces.connector3.oy}, speed);
1873      $('#at-stage2').animate({top: atlas.pieces.stage2.oy}, speed);
1874      $('#at-connector2').animate({top: atlas.pieces.connector2.oy}, speed);
1875      $('#at-connector2-back').animate({top: atlas.pieces.connector2back.oy}, speed);
1876      $('#at-connector1').animate({top: atlas.pieces.connector1.oy}, speed);
1877      $('#at-connector1-back').animate({top: atlas.pieces.connector1back.oy}, speed);
1878      $('#at-stage1').animate({top: atlas.pieces.stage1.oy}, speed);
1879      $('#at-booster').animate({top: atlas.pieces.booster.oy, left: atlas.pieces.booster.ox}, speed);
1880      $('#at-thruster').animate({top: atlas.pieces.thruster.oy}, speed, function(){
1881            scaleObject($('#at-nose-left'), atlas.pieces.noseleft, 'scaled', speed);
1882            scaleObject($('#at-nose-right'), atlas.pieces.noseright, 'scaled', speed);
1883            scaleObject($('#at-osiris'), atlas.pieces.osiris, 'scaled', speed);
1884            scaleObject($('#at-connector3'), atlas.pieces.connector3, 'scaled', speed);
1885            scaleObject($('#at-stage2'), atlas.pieces.stage2, 'scaled', speed);
1886            scaleObject($('#at-connector2'), atlas.pieces.connector2, 'scaled', speed);
1887            scaleObject($('#at-connector2-back'), atlas.pieces.connector2back, 'scaled', speed);
1888            scaleObject($('#at-connector1'), atlas.pieces.connector1, 'scaled', speed);
1889            scaleObject($('#at-connector1-back'), atlas.pieces.connector1back, 'scaled', speed);
1890            scaleObject($('#at-stage1'), atlas.pieces.stage1, 'scaled', speed);
1891            scaleObject($('#at-booster'), atlas.pieces.booster, 'scaled', speed);
1892            scaleObject($('#at-thruster'), atlas.pieces.thruster, 'scaled', speed);
1893          if(callback)
1894          {
1895            setTimeout(function(){callback();}, speed);
1896          }
1897        });
1898      $('#collapse').fadeOut(500);
1899
1900
1901    }
1902
1903    function showSpread(){
1904      var speed = 1000;
1905
1906      $('.plus').removeClass('active');
1907      $('.fact').removeClass('is-on').addClass('hidden');
1908      $('#expand-model').hide();
1909      $('#m-atlas').fadeIn(speed, function(){ 
1910        scaleObject($('#at-nose-left'), atlas.pieces.noseleft, 'original', speed);
1911        scaleObject($('#at-nose-right'), atlas.pieces.noseright, 'original', speed);
1912        scaleObject($('#at-osiris'), atlas.pieces.osiris, 'original', speed);
1913        scaleObject($('#at-connector3'), atlas.pieces.connector3, 'original', speed);
1914        scaleObject($('#at-stage2'), atlas.pieces.stage2, 'original', speed);
1915        scaleObject($('#at-connector2'), atlas.pieces.connector2, 'original', speed);
1916        scaleObject($('#at-connector2-back'), atlas.pieces.connector2back, 'original', speed);
1917        scaleObject($('#at-connector1'), atlas.pieces.connector1, 'original', speed);
1918        scaleObject($('#at-connector1-back'), atlas.pieces.connector1back, 'original', speed);
1919        scaleObject($('#at-stage1'), atlas.pieces.stage1, 'original', speed);
1920        scaleObject($('#at-booster'), atlas.pieces.booster, 'original', speed);
1921        scaleObject($('#at-thruster'), atlas.pieces.thruster, 'original', speed);
1922
1923        setTimeout(function(){
1924          spreadAtlas();  
1925          $('#atlas-scale').fadeIn(500);       
1926        }, speed);
1927      }); 
1928      atlas.state = 'full';  
1929      $('#cutaway-facts').removeClass('is-on');
1930      $('#atlas-launchprep').fadeOut(500);
1931      $('#atlas-scaled').fadeOut(500);
1932    }
1933
1934    function showScale()
1935    {
1936      var speed = 1000;
1937      $('#atlas-height, .plus').removeClass('active');
1938      $('#atlas-height span').hide();
1939
1940      $('#m-atlas').animate({scrollTop: 0}, 500, function(){
1941        scaleObject($('#at-nose-left'), atlas.pieces.noseleft, 'scaled', speed);
1942        scaleObject($('#at-nose-right'), atlas.pieces.noseright, 'scaled', speed);
1943        scaleObject($('#at-osiris'), atlas.pieces.osiris, 'scaled', speed);
1944        scaleObject($('#at-connector3'), atlas.pieces.connector3, 'scaled', speed);
1945        scaleObject($('#at-stage2'), atlas.pieces.stage2, 'scaled', speed);
1946        scaleObject($('#at-connector2'), atlas.pieces.connector2, 'scaled', speed);
1947        scaleObject($('#at-connector2-back'), atlas.pieces.connector2back, 'scaled', speed);
1948        scaleObject($('#at-connector1'), atlas.pieces.connector1, 'scaled', speed);
1949        scaleObject($('#at-connector1-back'), atlas.pieces.connector1back, 'scaled', speed);
1950        scaleObject($('#at-stage1'), atlas.pieces.stage1, 'scaled', speed);
1951        scaleObject($('#at-booster'), atlas.pieces.booster, 'scaled', speed);
1952        scaleObject($('#at-thruster'), atlas.pieces.thruster, 'scaled', speed);
1953
1954        setTimeout(function(){
1955          $('#m-atlas').fadeOut(speed);
1956        }, speed);
1957
1958        $('#atlas-scaled').delay(speed * .8).fadeIn(speed, function(){
1959          $('#cutaway-facts').css({zIndex:300, opacity:1}).addClass('is-on');
1960          $('#atlas-launchprep').fadeIn(500);
1961          $('#collapse').fadeOut(500);
1962          $('#atlas-scale').fadeOut(500);
1963          $('#expand').fadeIn(500);
1964
1965          setTimeout(function(){
1966            $('#atlas-height').addClass('active');
1967          }, 1000);
1968          setTimeout(function(){
1969            $('#atlas-height span').fadeIn();
1970          }, 1600);
1971
1972          atlas.state = 'scaled';
1973        });      
1974      });
1975    }
1976
1977    function backToScale(){
1978
1979        var speed = 1000;
1980        var scrollSpeed = 1000 * ($(window).scrollTop() / 10000);
1981      
1982        scaleObject($('#at-nose-left'), atlas.pieces.noseleft, 'scaled', speed);
1983        scaleObject($('#at-nose-right'), atlas.pieces.noseright, 'scaled', speed);
1984        scaleObject($('#at-osiris'), atlas.pieces.osiris, 'scaled', speed);
1985        scaleObject($('#at-connector3'), atlas.pieces.connector3, 'scaled', speed);
1986        scaleObject($('#at-stage2'), atlas.pieces.stage2, 'scaled', speed);
1987        scaleObject($('#at-connector2'), atlas.pieces.connector2, 'scaled', speed);
1988        scaleObject($('#at-connector2-back'), atlas.pieces.connector2back, 'scaled', speed);
1989        scaleObject($('#at-connector1'), atlas.pieces.connector1, 'scaled', speed);
1990        scaleObject($('#at-connector1-back'), atlas.pieces.connector1back, 'scaled', speed);
1991        scaleObject($('#at-stage1'), atlas.pieces.stage1, 'scaled', speed);
1992        scaleObject($('#at-booster'), atlas.pieces.booster, 'scaled', speed);
1993        scaleObject($('#at-thruster'), atlas.pieces.thruster, 'scaled', speed);
1994
1995        //mode setting
1996        var offleft;
1997        if(mode == 'full')
1998        {
1999          offleft = '50%';
2000        }
2001        else if(mode == 'medium')
2002        {
2003          offleft = '70%';
2004        }
2005        else
2006        {
2007          offleft = '70%';
2008        }
2009
2010        $('html,body').animate({scrollTop: 0}, scrollSpeed, function(){
2011          $('#line-ground').fadeOut(500);
2012          $('#launch-fact1').removeClass('is-on').css({zIndex:-1, opacity:0});
2013          $('#atlas-lines').animate({left:offleft, top:100}, speed, function(){
2014            $('#atlas-launch .grad').css({bottom:0, opacity:1});
2015            $('#atlas-lines').css({position:'absolute'});
2016            $('#atlas-launch').css('height', '100%').animate({top:'-100%'}, speed);
2017            //$('#atlas-scaled').fadeIn(500);
2018            $('#launch-notes').css('display', 'none');
2019            $('#expand-model').hide();
2020
2021
2022              $('#m-atlas').fadeIn(speed); 
2023              atlas.state = 'full';  
2024              $('#cutaway-facts').removeClass('is-on');
2025              $('#atlas-launchprep').fadeOut(500);
2026              $('#atlas-scaled').fadeOut(500);
2027              $('.plus').removeClass('active');
2028
2029          }).animate({top: h + 100}, speed, function(){
2030                scaleObject($('#at-nose-left'), atlas.pieces.noseleft, 'original', speed);
2031                scaleObject($('#at-nose-right'), atlas.pieces.noseright, 'original', speed);
2032                scaleObject($('#at-osiris'), atlas.pieces.osiris, 'original', speed);
2033                scaleObject($('#at-connector3'), atlas.pieces.connector3, 'original', speed);
2034                scaleObject($('#at-stage2'), atlas.pieces.stage2, 'original', speed);
2035                scaleObject($('#at-connector2'), atlas.pieces.connector2, 'original', speed);
2036                scaleObject($('#at-connector2-back'), atlas.pieces.connector2back, 'original', speed);
2037                scaleObject($('#at-connector1'), atlas.pieces.connector1, 'original', speed);
2038                scaleObject($('#at-connector1-back'), atlas.pieces.connector1back, 'original', speed);
2039                scaleObject($('#at-stage1'), atlas.pieces.stage1, 'original', speed);
2040                scaleObject($('#at-booster'), atlas.pieces.booster, 'original', speed);
2041                scaleObject($('#at-thruster'), atlas.pieces.thruster, 'original', speed);
2042
2043                setTimeout(function(){
2044    
2045                  $('#at-nose-left').stop().animate({left: atlas.pieces.noseleft.xx}, speed);
2046                  $('#at-nose-right').stop().animate({left: atlas.pieces.noseright.xx}, speed);
2047                  $('#at-connector3').stop().animate({top: atlas.pieces.connector3.xy}, speed);
2048                  $('#at-stage2').stop().animate({top: atlas.pieces.stage2.xy}, speed);
2049                  $('#at-connector2').stop().animate({top: atlas.pieces.connector2.xy}, speed);
2050                  $('#at-connector2-back').stop().animate({top: atlas.pieces.connector2back.xy}, speed);
2051                  $('#at-connector1').stop().animate({top: atlas.pieces.connector1.xy}, speed);
2052                  $('#at-connector1-back').stop().animate({top: atlas.pieces.connector1back.xy}, speed);
2053                  $('#at-stage1').stop().animate({top: atlas.pieces.stage1.xy}, speed);
2054                  $('#at-booster').stop().animate({top: atlas.pieces.booster.xy, left: atlas.pieces.booster.xx}, speed);
2055                  $('#at-thruster').stop().animate({top: atlas.pieces.thruster.xy}, speed, function(){
2056                    $('.plus').stop().addClass('active');
2057                  });
2058                  $('#collapse').fadeIn(500);
2059                  $('#atlas-scale').fadeIn(500);  
2060                  $('#atlas-launch-process').fadeIn(500);   
2061                }, 2000);
2062          });
2063
2064          $('#atl-nose-left').animate({width:atlas.lines.noseleft.w, height:atlas.lines.noseleft.h, top:atlas.lines.noseleft.y, left:atlas.lines.noseleft.x}, speed);
2065          $('#atl-nose-right').animate({width:atlas.lines.noseright.w, height:atlas.lines.noseright.h, top:atlas.lines.noseright.y, left:atlas.lines.noseright.x}, speed);
2066          $('#atl-osiris').animate({width:atlas.lines.osiris.w, height:atlas.lines.osiris.h, top:atlas.lines.osiris.y, left:atlas.lines.osiris.x}, speed);
2067          $('#atl-stage2').animate({width:atlas.lines.stage2.w, height:atlas.lines.stage2.h, top:atlas.lines.stage2.y, left:atlas.lines.stage2.x}, speed);
2068          $('#atl-coupling').animate({width:atlas.lines.coupling.w, height:atlas.lines.coupling.h, top:atlas.lines.coupling.y, left:atlas.lines.coupling.x}, speed);
2069          $('#atl-stage1').animate({width:atlas.lines.stage1.w, height:atlas.lines.stage1.h, top:atlas.lines.stage1.y, left:atlas.lines.stage1.x}, speed);
2070          $('#atl-booster').animate({width:atlas.lines.booster.w, height:atlas.lines.booster.h, top:atlas.lines.booster.y, left:atlas.lines.booster.x}, speed);
2071        });
2072    }
2073
2074    function prepLaunch()
2075    {
2076        var speed = 1000;
2077      
2078        //mode setting
2079        var offleft, t1, t2, lp, lt;
2080        if(mode == 'full')
2081        {
2082          t1 = '58%';
2083          t2 = '75%';
2084          lt = '66%';
2085          lp = '66%';
2086          offleft = '50%';
2087        }
2088        else if(mode == 'medium')
2089        {
2090          t1 = '55%';
2091          t2 = '78%';
2092          lt = '64%';
2093          lp = '64%';
2094          offleft = '70%';
2095        }
2096        else
2097        {
2098          t1 = '55%';
2099          t2 = '78%';
2100          lt = '64%';
2101          lp = '64%';
2102          offleft = '70%';
2103        }
2104
2105        $('#tower1').css({left:t1});
2106        $('#tower2').css({left:t2});
2107        $('#launch-tower').css({left:lt});
2108        $('#launchpad').css({left:lp});
2109      
2110        $('#timeline').fadeIn();
2111
2112        $('html, body').animate({scrollTop: 0}, 100);
2113
2114        $('#atlas-launch .grad').css({bottom:0, opacity:1});
2115        $('#atlas-launch').css('display', 'block').animate({top:0}, speed);
2116        $('#atlas-lines').css({left: offleft}).animate({top:100}, speed, function(){
2117          atlas.state = 'line';
2118          $('#atlas-lines').css({position:'fixed'});
2119          $('#atlas-launch').css('height', '20000px');
2120          $('#atlas-lines').animate({left:'70%', top:launchOffset}, speed, function(){
2121            $('#expand').fadeOut(500);
2122            $('#atlas-launchprep').fadeOut(500);
2123            $('#atlas-scale').fadeIn(500);
2124            $('#line-ground').css({top: launchOffset + 320}).fadeIn(500);
2125            $('#launch-notes').css('display', 'block');
2126            $('#launch-fact1').addClass('is-on').css('opacity', 1);
2127          });
2128
2129          $('#atl-nose-left').animate({width:atlas.lines.noseleft.sw, height:atlas.lines.noseleft.sh, top:atlas.lines.noseleft.sy, left:atlas.lines.noseleft.sx}, speed);
2130          $('#atl-nose-right').animate({width:atlas.lines.noseright.sw, height:atlas.lines.noseright.sh, top:atlas.lines.noseright.sy, left:atlas.lines.noseright.sx}, speed);
2131          $('#atl-osiris').animate({width:atlas.lines.osiris.sw, height:atlas.lines.osiris.sh, top:atlas.lines.osiris.sy, left:atlas.lines.osiris.sx}, speed);
2132          $('#atl-stage2').animate({width:atlas.lines.stage2.sw, height:atlas.lines.stage2.sh, top:atlas.lines.stage2.sy, left:atlas.lines.stage2.sx}, speed);
2133          $('#atl-coupling').animate({width:atlas.lines.coupling.sw, height:atlas.lines.coupling.sh, top:atlas.lines.coupling.sy, left:atlas.lines.coupling.sx}, speed);
2134          $('#atl-stage1').animate({width:atlas.lines.stage1.sw, height:atlas.lines.stage1.sh, top:atlas.lines.stage1.sy, left
2134:atlas.lines.stage1.sx}, speed);
2135          $('#atl-booster').animate({width:atlas.lines.booster.sw, height:atlas.lines.booster.sh, top:atlas.lines.booster.sy, left:atlas.lines.booster.sx}, speed);
2136        });
2137        setTimeout(function(){
2138          $('#atlas-launch .grad').animate({bottom:-60, opacity:0}, 500);
2139          $('#atlas-scaled').fadeOut(500);
2140          $('#show-scale').fadeIn(500);
2141        }, speed * .8);
2142
2143        $('#cutaway-facts').removeClass('is-on');
2144    }
2145
2146    function returnLaunch()
2147    {
2148      var speed = 1000;
2149      setTimeline("September", "8", "2016");
2150
2151      $('#atlas-launch, #launch-notes, #atlas-scale').fadeIn(speed);
2152      $('#atlas-cruise, #atlas-launchprep').fadeOut(speed, function(){
2153        atlas.state = 'line';
2154        $('html, body').animate({scrollTop: 18000}, 100);
2155      });
2156    }
2157
2158    function showCruise()
2159    {
2160      var speed = 1000;
2161      setTimeline("September", "8", "2016");
2162
2163      cruise.init();
2164
2165      try {
2166          $('#m1-video').get(0).currentTime = 0;
2167      } catch(error) {
2168          if (error.code === 11) { 
2169              
2170          }
2171      }
2172
2173
2174
2175      $('#m1-video').show();
2176      $('#atlas-cruise').fadeIn(speed, function(){
2177        if(!window.iOS)
2178        {
2179          if(!$('#m1-video').data('events'))
2180            $('#m1-video').get(0).addEventListener('ended', closeM1, false);
2181
2182          $('#m1-video').get(0).play();          
2183        }
2184        else
2185        {
2186          getVideo('m1-video');
2187        }
2188
2189      });
2190      atlas.state = 'cruise';
2191    }
2192
2193    function closeM1()
2194    {
2195      if(cruise.running == 'm1')
2196        return false;
2197
2198      cruise.running = 'm1';
2199
2200      //$('#c-m1-video video').remove();
2201
2202      var radius, eoffset;
2203      if(mode == 'full')
2204      {
2205        radius = 800;
2206        eoffset = cruise.earth.stage1.tx;
2207      }
2208      else if(mode == 'medium')
2209      {
2210        radius = 500;
2211        eoffset = -1600;
2212      }
2213      else
2214      {
2215        radius = 400;
2216        eoffset = -1600;
2217      } 
2218
2219      var speed = 3000;
2220      var arc_params = {
2221          center: [w / 3, h / 2.4],  
2222          radius: radius,    
2223          start: 30,
2224          end: 100,
2225          dir: 1
2226      };
2227      $('#m1-video').fadeOut(500);
2228      $('#cruise-earth').animate({opacity:1, left:eoffset, top: cruise.earth.stage1.ty, width:cruise.earth.stage1.tw, height:cruise.earth.stage1.th}, speed, 'linear', function(){
2229        $('#cruise-earth').animate({width:cruise.earth.stage1.tw2, height:cruise.earth.stage1.th2, top: cruise.earth.stage1.ty2, left:cruise.earth.stage1.tx2, opacity:0}, speed);
2230        $('#cruise-space').animate({opacity:1}, 4000);
2231      });
2232      $('#mnav-inner-progress').animate({width: '16%'}, speed, function(){
2233        $('#mission-nav-cruise-so').addClass('active current');
2234      });
2235
2236      $('#cruise-osiris').animate({opacity:1, path : new $.path.arc(arc_params), width: 56, height:28}, speed, function(){
2237        
2238        try {
2239            $('#m2-video').get(0).currentTime = 0;
2240        } catch(error) {
2241            if (error.code === 11) { 
2242                
2243            }
2244        }
2245
2246        $('#cruise-info-1 p, #m2-video').css('display', 'none');
2247        $('#cruise-grad').css({width:'15%'}).animate({width:0}, 700);
2248        $('#cruise-info').animate({left:0}, 500, function(){
2249          $('#cruise-info-1 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
2250              $('#cruise-info-1 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
2251               
2252                  if(window.iOS)
2253                  {
2254                    getVideo('m2-video');
2255                  }
2256                  else
2257                  {
2258
2259                    var video = $('<video>').addClass('story-video').attr('id', 'm2-video');
2260                    var src1 = $('<source>').attr('src', window.video_url + 'outbound_cruise.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
2261                    var src2 = $('<source>').attr('src', window.video_url + 'outbound_cruise.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
2262
2263                    video.append(src1).append(src2);
2264
2265                    $('#c-m2-video').html(video);
2266
2267                    $('#m2-video').fadeIn(500, function(){
2268
2269                      $('#m2-video').get(0).play();    
2270
2271                      if(!$('#m2-video').data('events'))
2272                      {
2273                        $('#m2-video').get(0).addEventListener('ended', function(){
2274                            $('#cruise-1-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
2275                              $(this).addClass('is-on');
2276                            });     
2277                          }, false);                     
2278                      }
2279
2280                      cruise.running = false;
2281
2282                    });               
2283                  }
2284
2285                  ga('send', 'event', 'button', 'click', 'Mission Panel', 'Cruise - Outbound Cruise');
2286
2287                  $('#cruise-info-1 p').fadeIn(500);
2288                  $('#cruise-1-next').fadeIn();         
2289                                   
2290              });
2291          });
2292        });
2293
2294      });
2295    }
2296
2297    function moveToM3()
2298    {
2299      if(cruise.running == 'm3')
2300        return false;
2301
2302      cruise.running = 'm3';
2303
2304      /* set initial defaults for magic jump */
2305      var eoffset;
2306      if(mode == 'full')
2307      {
2308        eoffset = cruise.earth.stage1.tx;
2309      }
2310      else if(mode == 'medium')
2311      {
2312        eoffset = -1600;
2313      }
2314      else
2315      {
2316        eoffset = -1600;
2317      } 
2318      if(parseInt($('#cruise-earth').css('left')) != eoffset)
2319        $('#cruise-earth').css({width:cruise.earth.stage1.tw2, height:cruise.earth.stage1.th2, top: cruise.earth.stage1.ty2, left:cruise.earth.stage1.tx2, opacity:1});
2320      $('#cruise-space').css({opacity:1});
2321      $('#cruise-osiris').css({opacity:1, width: 56, height:28});
2322      if(parseInt($('#cruise-osiris').css('top')) > h / 2)
2323        $('#cruise-osiris').css('left', w * .8);
2324      $('#cruise-bennu, #m1-bennu-ios').css({width:0, height:0, top:140, left:100});
2325
2326      $('.mission-subnav-button').removeClass('current');
2327      //$('#c-m2-video video').remove();
2328      
2329      setTimeline("September", "22", "2017");
2330
2331      $('#cruise-1-next').fadeOut();
2332      $('#cruise-content').animate({left: 0}, 500);
2333      $('#cruise-info').animate({left:'-55%'}, 500, function(){
2334        try {
2335            $('#m2-video').get(0).currentTime = 0;
2336        } catch(error) {
2337            if (error.code === 11) { 
2338                
2339            }
2340        }
2341        $('#mnav-inner-progress').animate({width: '21%'}, 5000, function(){
2342          $('#mission-nav-cruise-ga').addClass('active current');
2343        });
2344        $('#cruise-earth').stop().css({width:0, height:0, left:w / 2, top:140, opacity:1}).delay(1000).animate({width:cruise.earth.stage2.tw, height:cruise.earth.stage2.th, left
2344:cruise.earth.stage2.tx, top: cruise.earth.stage2.ty}, 5000, function(){
2345
2346          try {
2347              $('#m3-video').get(0).currentTime = 0;
2348          } catch(error) {
2349              if (error.code === 11) { 
2350                  
2351              }
2352          }
2353          $('#cruise-info-1').hide();
2354          $('#cruise-info-2').show();
2355          $('#cruise-info-2 p, #m3-video').css('display', 'none');
2356          $('#cruise-grad').css({width:'15%'}).animate({width:0}, 700);
2357          $('#cruise-content').animate({left: '50%'}, 500);
2358          $('#cruise-info').animate({left:0}, 500, function(){
2359            
2360            $('#cruise-info-2 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
2361                $('#cruise-info-2 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
2362
2363                  if(window.iOS)
2364                  {
2365                    getVideo('m3-video');
2366                  }
2367                  else
2368                  {
2369
2370                    var video = $('<video>').addClass('story-video').attr('id', 'm3-video');
2371                    var src1 = $('<source>').attr('src', window.video_url + 'gravity-assist.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
2372                    var src2 = $('<source>').attr('src', window.video_url + 'gravity-assist.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
2373                    video.append(src1).append(src2);
2374
2375                    $('#c-m3-video').html(video);
2376
2377                    $('#m3-video').fadeIn(500, function(){
2378                      $('#m3-video').get(0).play();    
2379
2380                      if(!$('#m3-video').data('events'))
2381                      {
2382                        $('#m3-video').get(0).addEventListener('ended', function(){
2383                            $('#cruise-2-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
2384                              $(this).addClass('is-on');
2385                            });     
2386                          }, false);                   
2387                      }
2388
2389                      cruise.running = false;
2390
2391                    });                
2392                  }
2393
2394                  ga('send', 'event', 'button', 'click', 'Mission Panel', 'Cruise - Gravity Assist');
2395
2396                  $('#cruise-info-2 p').fadeIn(500);
2397                  $('#cruise-2-next').fadeIn();         
2398                                         
2399                });
2400            });
2401          });
2402
2403        });
2404        $('#cruise-osiris').animate({width:594, height:295, top:300}, 5000);
2405      });
2406
2407
2408    }
2409
2410    function moveToM4()
2411    {
2412      setTimeline("September", "22", "2018");
2413      $('.mission-subnav-button').removeClass('current');
2414      //$('#c-m3-video video').remove();
2415      
2416      $('#cruise-2-next').fadeOut();
2417      $('#cruise-content').animate({left: 0}, 500);
2418      $('#cruise-info').animate({left:'-55%'}, 500, function(){
2419
2420
2421        $('#mnav-inner-progress').animate({width: '27%'}, 5000, function(){
2422          $('#mission-nav-arrival').click();
2423        });
2424        $('#cruise-space').animate({opacity:0}
2424, 1000);
2425        $('#cruise-earth').animate({width: 2000, height:2000, top:-600, left:-1500, opacity:0}, 2000);
2426        $('#cruise-osiris').animate({width:756, height:375, top:500, left:w - 400}, 4000);
2427        if(window.iOS)
2428        {
2429          $('#m1-bennu-ios').css('opacity', 1).delay(1000).animate({width:915, height:824}, 6000);
2430        }
2431        else
2432        {
2433          var video = $('<video>').addClass('story-video').attr('id', 'cruise-bennu').attr('loop', 'true');
2434          var src1 = $('<source>').attr('src', window.video_url + 'bennu-rotation.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
2435          var src2 = $('<source>').attr('src', window.video_url + 'bennu-rotation.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
2436          video.append(src1).append(src2);
2437
2438          $('#c-cruise-bennu').html(video);
2439          $('#cruise-bennu').css('opacity', 1).delay(1000).animate({width:1200, height:1200, top:-300}, 6000);
2440          $('#cruise-bennu').get(0).play();
2441        }
2442      });
2443    }
2444
2445    function showArrival()
2446    {
2447      arrival.init();
2448      var speed = 1000;
2449      setTimeline("December", "3", "2018");
2450
2451      $('.mission-subnav-button').removeClass('current');
2452
2453      if(!iOS)
2454      {
2455        var video = $('<video>').addClass('story-video').attr('id', 'arrival-approach-video');
2456        var src1 = $('<source>').attr('src', window.video_url + 'approach.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
2457        var src2 = $('<source>').attr('src', window.video_url + 'approach.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
2458        video.append(src1).append(src2);
2459
2460        $('#c-arrival-approach-video').html(video);
2461
2462        $('#arrival-approach-video').css({width:'100%', height:'auto'}).get(0).play();
2463
2464        if(!$('#arrival-approach-video').data('events'))
2465        {
2466          $('#arrival-approach-video').get(0).addEventListener('ended', showA1, false);              
2467        }
2468      }
2469      else
2470      {
2471        getVideo('arrival-approach-video'); 
2472      }
2473
2474      $('#arrival').fadeIn(speed);
2475      setTimeout(function(){
2476        $('#mnav-inner-progress').stop().animate({width: '32%'}, 4000);
2477      }, 1000);
2478      atlas.state = 'arrival';
2479    }
2480
2481    function showA1()
2482    {
2483        if(arrival.running == 'a1')
2484          return false;
2485
2486        arrival.running = 'a1';
2487        //$('#c-arrival-approach-video video').remove();
2488        $('.mission-subnav-button').removeClass('current');
2489
2490        try {
2491            $('#a1-video').get(0).currentTime = 0;
2492        } catch(error) {
2493            if (error.code === 11) { 
2494                
2495            }
2496        }
2497        $('#arrival-info-1 p, #a1-video').css('display', 'none');
2498        $('#arrival-grad').css({width:'15%'}).animate({width:0}, 700);
2499        $('#arrival-info').css({width:'100%', left: '-100%', padding:0}).animate({left:0}, 500, function(){
2500          $('#arrival-info-1 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
2501              $('#arrival-info-1 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
2502
2503                if(window.iOS)
2504                {
2505                  getVideo('a1-video');
2506                }
2507                else
2508                {
2509                  /* v1 was approaching_bennu.mp4 */
2510                  var video = $('<video>').addClass('story-video').attr('id', 'a1-video');
2511                  var src1 = $('<source>').attr('src', window.video_url + 'approach-v2.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
2512                  var src2 = $('<source>').attr('src', window.video_url + 'approach-v2.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
2513                  video.append(src1).append(src2);
2514
2515                  $('#c-a1-video').html(video);
2516
2517                  $('#a1-video').fadeIn(500, function(){
2518                    $('#a1-video').get(0).play();    
2519
2520                    if(!$('#a1-video').data('events'))
2521                    {
2522                      $('#a1-video').get(0).addEventListener('ended', function(){
2523                          $('#arrival-1-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
2524                            $(this).addClass('is-on');
2525                          });     
2526                        }, false);                  
2527                    }
2528
2529                    arrival.running = false;
2530
2531                  });               
2532                }
2533
2534                ga('send', 'event', 'button', 'click', 'Mission Panel', 'Approach - Approaching Bennu');
2535
2536                $('#arrival-info-1 p').fadeIn(500); 
2537                $('#arrival-1-next').fadeIn();     
2538                   
2539              });
2540          });
2541        });  
2542    }
2543
2544    function moveToA2()
2545    {
2546      if(arrival.running == 'a2')
2547        return false;
2548
2549      arrival.running = 'a2';
2550
2551
2552      //$('#c-a1-video video').remove();
2553      $('.mission-subnav-button').removeClass('current');
2554      $('#mission-nav-arrival-sb').addClass('active current');
2555
2556      var bleft;
2557      if(mode == 'full')
2558      {
2559        bleft = .2
2560      }
2561      else if(mode == 'medium')
2562      {
2563        bleft = .1;
2564      }
2565      else
2566      {
2567        bleft = .1;
2568      } 
2569
2570      $('#arrival-1-next').fadeOut();
2571      $('#arrival-1-next2').removeClass('is-on').animate({height:0}, 500);
2572      $('#arrival-2-next2').removeClass('is-on').css({height:0});
2573      $('#arrival-content').animate({left: 0}, 500);
2574      $('#arrival-info').fadeOut(500, function(){
2575        $('#arrival-info').css({width:'50%', left:'-55%', padding: '70px 20px', display:'block'});
2576        //$('#arrival-approach-bennu, #arrival-approach-osiris').animate({opacity:0}
2576, 500);
2577        $('#arrival-space').animate({opacity:1}, 1000);
2578        //$('#arrival-bennu').css({width:150, height:150, left:$('#arrival-approach-bennu').css('left'), top:$('#arrival-approach-bennu').css('top')}).animate({width:1200, height:1127, top:-800, left:w * bleft, opacity:1}, 2500);
2579        //$('#arrival-osiris').css({width:25, height:25, left:$('#arrival-approach-osiris').css('left'), top:$('#arrival-approach-osiris').css('top')}).animate({width:400, height:400, top:'40%', left:w * .4, opacity:1}, 2500, function(){
2580        $('#arrival-bennu').css({width:150, height:135, left:w * .4, top:h * .8}).animate({width:1200, height:1081, top:-800, left:w * bleft, opacity:1}, 2500);
2581        $('#arrival-osiris').css({width:25, height:62, left:w * .3, top:h * .85}).animate({width:281, height:700, top:'40%', left:w * .4, opacity:1}, 2500, function(){
2582          
2583            $('#arrival-info-1').css('display', 'none');
2584            $('#arrival-info-2').css('display', 'block');
2585
2586            setTimeline("September", "10", "2019");
2587            try {
2588                $('#a2-video').get(0).currentTime = 0;
2589            } catch(error) {
2590                if (error.code === 11) { 
2591                    
2592                }
2593            }
2594            $('#arrival-info-2 p, #a2-video').css('display', 'none');
2595            $('#arrival-grad').css({width:'15%'}).animate({width:0}, 700);
2596            $('#mnav-inner-progress').stop().animate({width: '37%'}, 1000);
2597            $('#arrival-info').css({width:'100%', left:'-100%', padding:0}).animate({left:0}, 500, function(){
2598              $('#arrival-info-2 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
2599                  $('#arrival-info-2 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
2600
2601                    if(window.iOS)
2602                    {
2603                      getVideo('a2-video');
2604                    }
2605                    else
2606                    {
2607                      /* v1 was sensors.mp4 */
2608                      var video = $('<video>').addClass('story-video').attr('id', 'a2-video');
2609                      var src1 = $('<source>').attr('src', window.video_url + 'survey.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
2610                      var src2 = $('<source>').attr('src', window.video_url + 'survey.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
2611                      video.append(src1).append(src2);
2612
2613                      $('#c-a2-video').html(video);
2614
2615                      $('#a2-video').fadeIn(500, function(){
2616                        $('#a2-video').get(0).play();    
2617
2618                        if(!$('#a2-video').data('events'))
2619                        {
2620                          $('#a2-video').get(0).addEventListener('ended', function(){
2621                              $('#arrival-2-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
2622                                $(this).addClass('is-on');
2623                              });     
2624                            }, false);                  
2625                        }
2626
2627                        arrival.running = false;
2628
2629                      });                
2630                    }
2631
2632                    ga('send', 'event', 'button', 'click', 'Mission Panel', 'Approach - Surveying Bennu');
2633
2634                    $('#arrival-info-2 .hide').fadeIn(500); 
2635                    $('#arrival-2-next').fadeIn();   
2636                   
2637                  });
2638              });
2639            });
2640        });
2641      });
2642    }
2643
2644    function moveToSensors()
2645    {
2646      if(arrival.running == 'ms')
2647        return false;
2648
2649      arrival.running = 'ms';
2650      //$('#c-a2-video video').remove();
2651      $('.mission-subnav-button').removeClass('current');
2652      $('#mission-nav-arrival-ei').addClass('active current');
2653      
2654      $('#arrival-osiris').css({left:'50%', top:'50%', margin: '-350px 0 0 -100px'});
2655      $('#arrival-2-next').fadeOut();
2656      $('#arrival-2-next2').removeClass('is-on').animate({height:0}, 500);
2657      $('#inspect').fadeOut();
2658      $('.inspect-sensor').removeClass('active');
2659      $('#arrival-content').animate({left: 0}, 500);
2660      $('#arrival-info').fadeOut(500, function(){
2661        $('#arrival-info').addClass('right').css({width:'50%', left:'auto', right:'-55%', padding: '70px 20px', display:'block'});
2662        $('#arrival-grad').addClass('right');
2663
2664        animate($('#arrival-osiris'), 1, 700, 10, 'forward', null);
2665
2666        $('#arrival-bennu').animate({top:-1200}, 1000);
2667        $('#arrival-space').animate({backgroundPositionY:400}, 1000, function(){
2668          showInspect();
2669          setTimeout(function(){
2670            $('#inspect-ola').click();
2671            $('#sensor-note').fadeIn(500);
2672          }, 1200);
2673
2674          setTimeout(function(){
2675            $('#arrival-spec-next').css({opacity:1, zIndex:100}).addClass('is-on');
2676          }, 5000);
2677          arrival.running = false;
2678        });
2679
2680        ga('send', 'event', 'button', 'click', 'Mission Panel', 'Approach - Show Sensors');
2681
2682      });
2683    }
2684
2685    function showInspect()
2686    {
2687      $('#inspect').fadeIn(500, function(){
2688        $('.inspect-sensor').each(function(i, v){
2689          setTimeout(function(){
2690            $(v).addClass('active');
2691          }, i * 100);
2692        });
2693      });
2694    }
2695
2696    function moveOffSensors()
2697    {
2698      $('#sensor-note').fadeOut(500);
2699      $('#arrival-spec-next').removeClass('is-on').animate({opacity:0, zIndex:-1}, 500);
2700      $('.arrival-fact-box').removeClass('is-on').animate({opacity:0, zIndex:-1}, 500);
2701      $('#inspect').fadeOut();
2702      $('.inspect-sensor').removeClass('active').removeClass('selected');
2703      $('#arrival-space').animate({backgroundPositionY:0}, 1000);
2704      animate($('#arrival-osiris'), 10, 700, 10, 'reverse', moveToA3);
2705    }
2706
2707    function moveToA3()
2708    {
2709        $('.mission-subnav-button').removeClass('current');
2710      
2711        var bleft, btop;
2712        if(mode == 'full')
2713        {
2714          bleft = .3;
2715          btop = .5;
2716        }
2717        else if(mode == 'medium')
2718        {
2719          bleft = .2;
2720          btop = .8;
2721        }
2722        else
2723        {
2724          bleft = .2;
2725          btop = .8;
2726        }
2727
2728      $('#arrival-bennu').animate({width:915, height:824, top:-h * btop, left: w * bleft}, 1000);
2729      $('#arrival-osiris').css('background-position', '0 0').animate({margin:0, width:100, height:249, top:h * .7, left:w * .55}, 1100, function(){
2730
2731        $('#mission-nav-sample').click();
2732
2733      });        
2734    }
2735
2736    function showSample()
2737    {
2738      var speed = 1000;
2739      sample.init();
2740      setTimeline("July", "4", "2020");
2741      $('.mission-subnav-button').removeClass('current');
2742
2743      $('#sample-surface').hide();
2744      
2745
2746        var bleft, btop;
2747        if(mode == 'full')
2748        {
2749          bleft = .1;
2750          btop = .2;
2751        }
2752        else if(mode == 'medium')
2753        {
2754          bleft = .7;
2755          btop = .6;
2756        }
2757        else
2758        {
2759          bleft = .7;
2760          btop = .6;
2761        }
2762
2763      $('#arrival-info, #arrival-grad').removeClass('right');
2764      $('#sample').fadeIn(500, function(){
2765        $('#sample-osiris').animate({top:300}, {duration:2000, step:
2766          function(top){
2767            if(top > 520)
2768              $('#sample-osiris').css('left', '+=5');
2769            else if(top <= 520 && top > 480)
2770              $('#sample-osiris').css('left', '+=3');
2771            else if(top <= 480 && top > 400)
2772              $('#sample-osiris').css('left', '+=1');
2773            else if(top <= 400 && top > 350)
2774              $('#sample-osiris').css('left', '-=3');
2775            else if(top <= 350 && top > 300)
2776              $('#sample-osiris').css('left', '-=5');
2777          }
2778        });
2779        $('#sample-bennu').animate({width:1300, height:1171, top: -h * btop, left:-w * bleft}, 2000, function(){
2780
2781          $('#sample-1').css({opacity:1, zIndex:100}).addClass('is-on');
2782          setTimeout(function(){
2783            $('#sample-1-next').css({opacity: 1, zIndex:100}).addClass('is-on');
2784          }, 2000);
2785        });
2786      });
2787
2788    }
2789
2790    function moveToS2()
2791    {
2792      if(sample.running == 's2')
2793        return false;
2794
2795      sample.running = 's2';
2796
2797      $('.mission-subnav-button').removeClass('current');
2798      $('#mission-nav-sample-dt').addClass('active current');
2799
2800      $('#sample-surface').hide();
2801
2802      try {
2803          $('#s1-video').get(0).currentTime = 0;
2804      } catch(error) {
2805          if (error.code === 11) { 
2806              
2807          }
2808      }
2809      $('#mnav-inner-progress').stop().animate({width: '49%'}, 4000);
2810
2811      $('#sample-1, #sample-1-next').removeClass('is-on').animate({opacity:0}
2811, 500);
2812      $('#sample-content').animate({left: 0}, 500);
2813      $('#sample-info').animate({left:'-105%'}, 500, function(){
2814        $('#sample-osiris').animate({width:339, height:844, top:140, left: w * .55}, 1000);
2815        $('#sample-bennu').animate({width:2000, height:1801, left:-1200, top:-700}, 1000, function(){
2816
2817          $('#sample-info-1, #sample-info-3, #sample-info-4').hide();
2818          $('#sample-info-2').show();
2819          $("#sample-info, #sample-grad").addClass('right');
2820          $('#s1-video, #sample-info-2 p').css('display', 'none');
2821
2822          $('#sample-grad').css({width:'15%'}).animate({width:0}, 700);
2823          //$('#sample-content').animate({left: '-25%'}, 500);
2824          $('#sample-info').css({width: '100%', right:'-105%'}).animate({right:0}, 500, function(){
2825
2826            $('#sample-info-2 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
2827                $('#sample-info-2 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
2828
2829                  if(window.iOS)
2830                  {
2831                    getVideo('s1-video');
2832                  }
2833                  else
2834                  {
2835                    /* v1 was arm-deploy.mp4 */
2836                      var video = $('<video>').addClass('story-video').attr('id', 's1-video');
2837                      var src1 = $('<source>').attr('src', window.video_url + 'arm-deploy-v2.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
2838                      var src2 = $('<source>').attr('src', window.video_url + 'arm-deploy-v2.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
2839                      video.append(src1).append(src2);
2840
2841                      $('#c-s1-video').html(video);
2842
2843                      $('#s1-video').fadeIn(500, function(){
2844                        $('#s1-video').get(0).play();    
2845
2846                        if(!$('#s1-video').data('events'))
2847                        {
2848                          $('#s1-video').get(0).addEventListener('ended', function(){
2849                            $('#sample-2-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
2850                              $(this).addClass('is-on');
2851                            });   
2852                          }, false);                
2853                        }
2854
2855                        sample.running = false;
2856
2857                      });              
2858                  }
2859
2860                  ga('send', 'event', 'button', 'click', 'Mission Panel', 'Sample - Deploying TAGSAM');
2861
2862                  $('#sample-info-2 .hide').fadeIn(500); 
2863                  $('#sample-2-next').fadeIn();   
2864                   
2865                });
2866            });
2867
2868          });
2869
2870        });
2871      });
2872    }
2873
2874    function moveToS3()
2875    {
2876      //$('#c-s1-video video').remove();
2877      if(sample.running == 's3')
2878        return false;
2879
2880      sample.running = 's3';
2881
2882      $('.mission-subnav-button').removeClass('current');
2883      $('#mission-nav-sample-cs').addClass('active current');
2884
2885      $('#sample-surface').hide();
2886
2887      try {
2888          $('#s2-video-a').get(0).currentTime = 0;
2889      } catch(error) {
2890          if (error.code === 11) { 
2891              
2892          }
2893      }
2894
2895      $('#mnav-inner-progress').stop().animate({width: '54%'}, 4000);
2896
2897      var armleft;
2898        if(mode == 'full')
2899        {
2900          armleft = '50%';
2901        }
2902        else if(mode == 'medium')
2903        {
2904          armleft = '70%';
2905        }
2906        else
2907        {
2908          armleft = '70%';
2909        }
2910
2911        var shard, d, ml, border, speed, bottom, fd;
2912        for(var i = 0; i < 200; i ++)
2913        {
2914            shard = $('<div>').addClass('shard');
2915            $('#sample-surface').append(shard);
2916        }
2917
2918      $('#sample-2-next').fadeOut();
2919      $('#sample-left, #sample-right').css({height:0});
2920      $('#surface-arm, #surface-arm-vacuum, .shard').css({left: armleft});
2921      $('#surface-arm-vacuum').css({backgroundPosition: '0 0'}).hide();
2922      $('.surface-arm-door').css({
2923                        '-webkit-transform': 'rotate(0deg)',
2924                        '-moz-transform': 'rotate(0deg)',
2925                        '-ms-transform': 'rotate(0deg)',
2926                        '-o-transform': 'rotate(0deg)',
2927                        'transform': 'rotate(0deg)'
2928                      });
2929      $('#sample-2-next2').removeClass('is-on').animate({opacity:0}, 500);
2930      $('#sample-content').animate({left: 0}, 500);
2931      $('#sample-surface').show();
2932      $('#sample-info').animate({opacity:0}, 500, function(){
2933        $('#sample-info, #sample-grad').removeClass('right');
2934        //$('#sample-bennu').animate({width:2900, height:2723, left:-1200, top:-800, opacity:0}, 1000);
2935        //$('#sample-osiris').animate({width:339, height:332, top:240, left: w * .65, opacity:0}, 1000);
2936        $('#surface-arm').animate({bottom:163}, 1000, function(){
2937
2938            
2939
2940          setTimeout(function(){
2941            $('#surface-arm-vacuum').css({backgroundPosition: '0 0'}).fadeIn(500);
2942          }, 500);
2943
2944          setTimeout(function(){
2945            $('#surface-arm-vacuum').css({backgroundPosition: '0 -464px'});
2946            $('#sample-left, #sample-right').animate({height:54}, 1500);
2947          }, 1000);
2948
2949          setTimeout(function(){
2950            $('#surface-arm-vacuum').css({backgroundPosition: '0 -880px'});
2951            $({deg: 0}).animate({deg: 32}, {
2952                  duration: 500,
2953                  step: function(now) {
2954                      $('#surface-arm-door-left').css({
2955                        '-webkit-transform': 'rotate(' + now + 'deg)',
2956                        '-moz-transform': 'rotate(' + now + 'deg)',
2957                        '-ms-transform': 'rotate(' + now + 'deg)',
2958                        '-o-transform': 'rotate(' + now + 'deg)',
2959                        'transform': 'rotate(' + now + 'deg)'
2960                      });
2961                  }
2962              });
2963            $({deg: 0}).animate({deg: -32}, {
2964                  duration: 500,
2965                  step: function(now) {
2966                      $('#surface-arm-door-right').css({
2967                        '-webkit-transform': 'rotate(' + now + 'deg)',
2968                        '-moz-transform': 'rotate(' + now + 'deg)',
2969                        '-ms-transform': 'rotate(' + now + 'deg)',
2970                        '-o-transform': 'rotate(' + now + 'deg)',
2971                        'transform': 'rotate(' + now + 'deg)'
2972                      });
2973                  }
2974              });
2975          }, 1500);
2976
2977          setTimeout(function(){
2978            $('#surface-arm-vacuum').css({backgroundPosition: '0 -1296px'});
2979          }, 2000);
2980
2981          setTimeout(function(){
2982            $('#surface-arm-vacuum').fadeOut(1000);
2983            $({deg: 32}).animate({deg: 0}, {
2984                  duration: 500,
2985                  step: function(now) {
2986                      $('#surface-arm-door-left').css({
2987                        '-webkit-transform': 'rotate(' + now + 'deg)',
2988                        '-moz-transform': 'rotate(' + now + 'deg)',
2989                        '-ms-transform': 'rotate(' + now + 'deg)',
2990                        '-o-transform': 'rotate(' + now + 'deg)',
2991                        'transform': 'rotate(' + now + 'deg)'
2992                      });
2993                  }
2994              });
2995            $({deg: -32}).animate({deg: 0}, {
2996                  duration: 500,
2997                  step: function(now) {
2998                      $('#surface-arm-door-right').css({
2999                        '-webkit-transform': 'rotate(' + now + 'deg)',
3000                        '-moz-transform': 'rotate(' + now + 'deg)',
3001                        '-ms-transform': 'rotate(' + now + 'deg)',
3002                        '-o-transform': 'rotate(' + now + 'deg)',
3003                        'transform': 'rotate(' + now + 'deg)'
3004                      });
3005                  }
3006              });
3007          }, 4000);
3008
3009          $('#acquisition-sim').css({opacity:1, zIndex:500}).addClass('is-on');
3010
3011          ga('send', 'event', 'button', 'click', 'Mission Panel', 'Sample - Acquisition Simulator');
3012
3013          setTimeout(function(){
3014
3015            var video = $('<video>').addClass('story-video').attr('id', 's2-video-a');
3016            var src1 = $('<source>').attr('src', window.video_url + 'acquisition_sim.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
3017            var src2 = $('<source>').attr('src', window.video_url + 'acquisition_sim.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
3018            video.append(src1).append(src2);
3019
3020            $('#c-s2-video-a').html(video);
3021
3022            $('#s2-video-a').get(0).play();    
3023
3024          }, 500);
3025
3026          setTimeout(function(){
3027            $('#acquisition-next').css({opacity:1, zIndex:500}).addClass('is-on');
3028          }, 6000);
3029
3030          setTimeout(function(){
3031            $('.shard').each(function(i, v){
3032                d = Math.random() * (10 - 1) + 1;
3033                border = Math.random() * (20 - 5) + 5;
3034                ml = Math.random() * (300 - 5) + 5;
3035                speed = Math.random() * (5000 - 800) + 800;
3036                bottom = 150 + Math.random() * (300 - 100) + 100;
3037                fd = 360;
3038
3039                if(d < 5)
3040                {
3041                     ml *= -1;
3042                     fd = -360;               
3043                }
3044
3045
3046                $(this).css({marginLeft: ml, borderTop: border + "px solid #4693B6", borderLeft: border + "px solid transparent", borderRight:border + "px solid transparent"}).animate({
3047                    opacity:0,
3048                    marginLeft: ml * 1.8,
3049                    bottom: bottom
3050                }, speed, function(){
3051                    $(this).remove();
3052                });
3053
3054                $({deg: 0}).animate({deg: fd}, {
3055                      duration: speed,
3056                      step: function(now) {
3057                          $(v).css({
3058                            '-webkit-transform': 'rotate(' + now + 'deg)',
3059                            '-moz-transform': 'rotate(' + now + 'deg)',
3060                            '-ms-transform': 'rotate(' + now + 'deg)',
3061                            '-o-transform': 'rotate(' + now + 'deg)',
3062                            'transform': 'rotate(' + now + 'deg)'
3063                          });
3064                      }
3065                  });
3066            });
3067
3068          }, 5000);
3069
3070          sample.running = false;
3071
3072        }).delay(5000).animate({bottom:400}, 2000);
3073
3074      });
3075    }
3076
3077    function showAcquisition()
3078    {
3079      if(sample.running == 'sa')
3080        return false;
3081
3082      sample.running = 'sa';
3083
3084      $('.mission-subnav-button').removeClass('current');
3085      $('#mission-nav-sample-sa').addClass('active current');
3086
3087      try {
3088          $('#s2-video').get(0).currentTime = 0;
3089      } catch(error) {
3090          if (error.code === 11) { 
3091              
3092          }
3093      }
3094
3095      $('#mnav-inner-progress').stop().animate({width: '59%'}, 4000);
3096
3097      $('#sample-info-1, #sample-info-2, #sample-info-4').hide();
3098      $('#sample-info-3').show();
3099      $('#s2-video, #sample-info-3 p').css('display', 'none');
3100      $('#acquisition-sim, #acquisition-next').removeClass('is-on').animate({opacity:0}
3100, function(){
3101        $(this).css({zIndex:-1});
3102      });
3103      $('#sample-grad').css({width:'15%'}).animate({width:0}, 700);
3104      //$('#sample-content').animate({left: '25%'}, 500);
3105      $('#sample-info').css({opacity:1, left:'-105%', right:'auto', width: '100%'}).animate({left:0}, 500, function(){
3106
3107        $('#sample-info-3 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
3108            $('#sample-info-3 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
3109
3110              if(window.iOS)
3111              {
3112                getVideo('s2-video');
3113              }
3114              else
3115              {
3116                /* v1 is acquisition.mp4 */
3117                var video = $('<video>').addClass('story-video').attr('id', 's2-video');
3118                var src1 = $('<source>').attr('src', window.video_url + 'acquisition-v2.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
3119                var src2 = $('<source>').attr('src', window.video_url + 'acquisition-v2.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
3120                video.append(src1).append(src2);
3121
3122                $('#c-s2-video').html(video);
3123
3124                $('#s2-video').fadeIn(500, function(){
3125                  $('#s2-video').get(0).play();    
3126
3127                  if(!$('#s2-video').data('events'))
3128                  {
3129                    $('#s2-video').get(0).addEventListener('ended', function(){
3130                      $('#sample-3-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
3131                        $(this).addClass('is-on');
3132                      });   
3133                    }, false);             
3134                  }
3135
3136                  sample.running = false;
3137
3138                });                
3139              }
3140
3141              ga('send', 'event', 'button', 'click', 'Mission Panel', 'Sample - Show Acquisition');
3142
3143              $('#sample-info-3 .hide').fadeIn(500); 
3144              $('#sample-3-next').fadeIn();   
3145                  
3146            });
3147        });
3148
3149      });
3150    }
3151
3152    function moveToS4()
3153    {
3154      if(sample.running == 's4')
3155        return false;
3156
3157      sample.running = 's4';
3158
3159      //$('#c-s2-video video').remove();
3160      $('.mission-subnav-button').removeClass('current');
3161      $('#mission-nav-sample-ss').addClass('active current');
3162      
3163      $('#mnav-inner-progress').stop().animate({width: '64%'}, 4000);
3164      var osirisleft;
3165        if(mode == 'full')
3166        {
3167          osirisleft = w * .55;
3168        }
3169        else if(mode == 'medium')
3170        {
3171          osirisleft = w * .7;
3172        }
3173        else
3174        {
3175          osirisleft = w * .7;
3176        }
3177
3178      try {
3179          $('#s3-video').get(0).currentTime = 0;
3180      } catch(error) {
3181          if (error.code === 11) { 
3182              
3183          }
3184      }
3185      $('#sample-osiris').addClass('arm');
3186      $('#sample-3-next').fadeOut();
3187      $('#sample-surface').hide();
3188      $('#sample-osiris').css({
3189        width:66, 
3190        height:91,
3191        left: osirisleft,
3192        '-webkit-transform': 'rotate(-90deg)',
3193        '-moz-transform': 'rotate(-90deg)',
3194        '-ms-transform': 'rotate(-90deg)',
3195        '-o-transform': 'rotate(-90deg)',
3196        'transform': 'rotate(-90deg)',
3197        'zoom': 1,
3198        opacity:1
3199      });
3200      $('#sample-3-next2').removeClass('is-on').animate({opacity:0}, 500);
3201      $('#sample-content').animate({left: 0}, 500);
3202      $('#sample-info').animate({left:'-105%'}, 500, function(){
3203
3204        $({deg: -90}).animate({deg: 0}, {
3205              duration: 2000,
3206              step: function(now) {
3207                  $('#sample-osiris').css({
3208                    '-webkit-transform': 'rotate(' + now + 'deg)',
3209                    '-moz-transform': 'rotate(' + now + 'deg)',
3210                    '-ms-transform': 'rotate(' + now + 'deg)',
3211                    '-o-transform': 'rotate(' + now + 'deg)',
3212                    'transform': 'rotate(' + now + 'deg)'
3213                  });
3214              }
3215          });
3216
3217        $('#sample-bennu').animate({width:2000, height:1801, left:-1200, top:-700, opacity:1}, 1000, function(){
3218          $('#sample-bennu').animate({left:-1800}, 1000);
3219          $('#sample-osiris').animate({left: w / 3, top: 70, width:526, height: 800}, 1000, function(){
3220
3221
3222            $('#sample-info-1, #sample-info-2, #sample-info-3').hide();
3223            $('#sample-info-4').show();
3224            $('#s3-video, #sample-info-4 p').css('display', 'none');
3225
3226            $('#sample-grad').css({width:'15%'}).animate({width:0}, 700);
3227            //$('#sample-content').animate({left: '25%'}, 500);
3228            $('#sample-info').animate({left:0}, 500, function(){
3229
3230              $('#sample-info-4 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
3231                  $('#sample-info-4 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
3232
3233                    if(window.iOS)
3234                    {
3235                      getVideo('s3-video');
3236                    }
3237                    else
3238                    {
3239                      /* v1 was stowing.mp4 */
3240                      var video = $('<video>').addClass('story-video').attr('id', 's3-video');
3241                      var src1 = $('<source>').attr('src', window.video_url + 'stowing-v2.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
3242                      var src2 = $('<source>').attr('src', window.video_url + 'stowing-v2.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
3243                      video.append(src1).append(src2);
3244
3245                      $('#c-s3-video').html(video);
3246
3247                      $('#s3-video').fadeIn(500, function(){
3248                        $('#s3-video').get(0).play();    
3249
3250                        if(!$('#s3-video').data('events'))
3251                        {
3252                          $('#s3-video').get(0).addEventListener('ended', function(){
3253                            $('#sample-4-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
3254                              $(this).addClass('is-on');
3255                            });   
3256                          }, false);             
3257                        }
3258
3259                        sample.running = false;
3260
3261                      });              
3262                    }
3263
3264                    ga('send', 'event', 'button', 'click', 'Mission Panel', 'Sample - Stowing the Sample');
3265
3266                    $('#sample-info-4 .hide').fadeIn(500); 
3267                    $('#sample-4-next').fadeIn();  
3268                    setTimeline("July", "4", "2020"); 
3269                   
3270                  });
3271              });
3272
3273            });
3274
3275          });
3276        });
3277
3278      });
3279    }
3280
3281    function moveToS5()
3282    {
3283      //$('#c-s3-video video').remove();
3284      $('.mission-subnav-button').removeClass('current');
3285      
3286      var bennuleft, osirisleft;
3287        if(mode == 'full')
3288        {
3289          bennuleft = 0;
3290          osirisleft = w * .45;
3291        }
3292        else if(mode == 'medium')
3293        {
3294          bennuleft = -w * .1;
3295          osirisleft = w * .55;
3296        }
3297        else
3298        {
3299          bennuleft = -w * .1;
3300          osirisleft = w * .55;
3301        }
3302      $('#sample-osiris').css({width:600, height:338}).addClass('return').removeClass('arm');
3303      $('#sample-4-next').fadeOut();
3304      $('#sample-4-next2').removeClass('is-on').animate({opacity:0}
3304, 500);
3305      $('#sample-content').animate({left: 0}, 500);
3306      $('#sample-info').animate({left:'-105%'}, 500, function(){
3307        $('#sample-osiris').animate({width:48, height:27, top:h / 3, left: osirisleft}, 1000);
3308        $('#sample-bennu').animate({width:915, height:824, left:bennuleft, top:0}, 1000, function(){
3309          $('#mission-nav-return').click();
3310        });
3311
3312      });
3313    }
3314
3315    function showReturn()
3316    {
3317      osreturn.init();
3318      setTimeline("March", "3", "2021");
3319      $('.mission-subnav-button').removeClass('current');
3320      
3321      try {
3322          $('#r1-video').get(0).currentTime = 0;
3323      } catch(error) {
3324          if (error.code === 11) { 
3325              
3326          }
3327      }
3328      $('#return').fadeIn(500, function(){
3329        $('#return-osiris').animate({width:480, height:270, top:h * .4, left: w * .6}, 4000);
3330        $('#return-bennu').animate({width:100, height:90, top: 140, left: 120}, 4000, function(){
3331
3332          $('#r1-video, #return-info-1 p').css('display', 'none');
3333          $('#return-grad').css({width:'15%'}).animate({width:0}, 700);
3334          $('#return-info').animate({left:0}, 500, function(){
3335
3336            $('#return-info-1 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
3337                $('#return-info-1 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
3338
3339                  if(window.iOS)
3340                  {
3341                    getVideo('r1-video');
3342                  }
3343                  else
3344                  {
3345                    var video = $('<video>').addClass('story-video').attr('id', 'r1-video');
3346                    var src1 = $('<source>').attr('src', window.video_url + 'return-orbit.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
3347                    var src2 = $('<source>').attr('src', window.video_url + 'return-orbit.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
3348                    video.append(src1).append(src2);
3349
3350                    $('#c-r1-video').html(video);
3351
3352                    $('#r1-video').fadeIn(500, function(){
3353                      $('#r1-video').get(0).play();    
3354
3355                      if(!$('#r1-video').data('events'))
3356                      {
3357                        $('#r1-video').get(0).addEventListener('ended', function(){
3358                          $('#return-1-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
3359                            $(this).addClass('is-on');
3360                          });   
3361                        }, false);           
3362                      }
3363
3364                    });               
3365                  }
3366
3367                  ga('send', 'event', 'button', 'click', 'Mission Panel', 'Return - Return Orbit');
3368
3369                  $('#return-info-1 .hide').fadeIn(500); 
3370                  $('#return-1-next').fadeIn();  
3371                   
3372                });
3373            });
3374
3375          });
3376
3377        });
3378      });
3379    }
3380
3381    function moveToR1()
3382    {
3383
3384      if(osreturn.running == 'r1')
3385        return false;
3386
3387      osreturn.running = 'r1';
3388
3389      //$('#c-r1-video video').remove();
3390      $('.mission-subnav-button').removeClass('current');
3391      $('#mission-nav-return-se').addClass('active current');
3392      
3393      try {
3394          $('#r2-video').get(0).currentTime = 0;
3395      } catch(error) {
3396          if (error.code === 11) { 
3397              
3398          }
3399      }
3400
3401      $('#mnav-inner-progress').stop().animate({width: '76%'}, 4000);
3402
3403      $('#return-1-next').fadeOut();
3404      $('#return-content').animate({left: 0}, 500);
3405      $('#return-info').animate({left:'-105%'}, 500, function(){
3406
3407        $('#return-earth').css({top:h * .2, left: w + 200, opacity:1, zIndex:98}).animate({left: w * .6}, 2000);
3408        $('#return-space').animate({backgroundPositionX: -800}, 2000);
3409        $('#return-osiris').animate({left: w * .1}, 2000);
3410        animate($('#return-osiris'), 0, 270, 10, 'forward', null);
3411        $('#return-bennu').animate({left: -900}, 2000, function(){
3412          setTimeline("September", "24", "2023");
3413          $('#return-earth').animate({width:800, height:800, top: 0, left: w * .3}, 4000);
3414          $('#return-osiris').animate({left: 0}, 4000, function(){
3415
3416            $('#r2-video, #return-info-2 p').css('display', 'none');
3417            $('#return-info-1, #return-2-next').hide();
3418            $('#return-info-2').show();
3419
3420
3421            $('#return-grad').css({width:'15%'}).animate({width:0}, 700);
3422            //$('#return-content').animate({left:'50%'}, 500);
3423            $('#return-info').css({width:'100%', left:'-105%', padding:0}).animate({left:0}, 500, function(){
3424              $('#return-info-2 h2').css({top:'50%', opacity:0}
3424).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
3425                  $('#return-info-2 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
3426
3427                    if(window.iOS)
3428                    {
3429                      getVideo('r2-video');
3430                    }
3431                    else
3432                    {
3433                      var video = $('<video>').addClass('story-video').attr('id', 'r2-video');
3434                      var src1 = $('<source>').attr('src', window.video_url + 'return.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
3435                      var src2 = $('<source>').attr('src', window.video_url + 'return.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
3436                      video.append(src1).append(src2);
3437
3438                      $('#c-r2-video').html(video);
3439
3440                      $('#r2-video').fadeIn(500, function(){
3441                        $('#r2-video').get(0).play();    
3442
3443                        if(!$('#r2-video').data('events'))
3444                        {
3445                          $('#r2-video').get(0).addEventListener('ended', function(){
3446                            $('#return-2-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
3447                              $(this).addClass('is-on');
3448                            }); 
3449                          }, false);          
3450                        }
3451
3452                        osreturn.running = false;
3453
3454                      });               
3455                    }
3456
3457                    ga('send', 'event', 'button', 'click', 'Mission Panel', 'Return - Capsule Return');
3458
3459                    $('#return-info-2 .hide').fadeIn(500); 
3460                    $('#return-2-next').fadeIn();  
3461                  
3462                  });
3463              });
3464
3465            });
3466
3467          });
3468
3469        });
3470
3471
3472        
3473      });
3474    }
3475
3476    function returnEarth()
3477    {
3478      if(osreturn.running == 're')
3479        return false;
3480
3481      osreturn.running = 're';
3482
3483      $('.mission-subnav-button').removeClass('current');
3484      $('#mission-nav-return-re').addClass('active current');
3485
3486      $('#mnav-inner-progress').stop().animate({width: '82%'}, 4000);
3487
3488        //does this function need to be here?
3489        $('#return-earth').css({top:h * .2, left: w + 200, opacity:1, zIndex:98}).animate({left: w * .6}, 2000);
3490        $('#return-space').animate({backgroundPositionX: -800}, 2000);
3491        $('#return-osiris').animate({left: -400}, 2000);
3492        $('#return-bennu').animate({left: -900}, 2000, function(){
3493          setTimeline("September", "24", "2023");
3494          $('#return-earth').animate({width:800, height:800, top: 0, left: w * .3}, 4000);
3495          $('#return-osiris').animate({top: 0, left: -200}, 4000, function(){
3496
3497            $('#r2-video, #return-info-2 p').css('display', 'none');
3498            $('#return-info-1, #return-2-next').hide();
3499            $('#return-info-2').show();
3500
3501
3502            $('#return-grad').css({width:'15%'}).animate({width:0}, 700);
3503            //$('#return-content').animate({left:'50%'}, 500);
3504            $('#return-info').css({width:'100%', left:'-105%', padding:0}).animate({left:0}, 500, function(){
3505              $('#return-info-2 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
3506                  $('#return-info-2 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
3507
3508                      var video = $('<video>').addClass('story-video').attr('id', 'r2-video');
3509                      var src1 = $('<source>').attr('src', window.video_url + 'return.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
3510                      var src2 = $('<source>').attr('src', window.video_url + 'return.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
3511                      video.append(src1).append(src2);
3512
3513                      $('#c-r2-video').html(video);
3514
3515                      $('#r2-video').fadeIn(500, function(){
3516                        $('#r2-video').get(0).play();    
3517
3518                        if(!$('#r2-video').data('events'))
3519                        {
3520                          $('#r2-video').get(0).addEventListener('ended', function(){
3521                            $('#return-2-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
3522                              $(this).addClass('is-on');
3523                            }); 
3524                          }, false);          
3525                        }
3526
3527                        osreturn.running = false;
3528
3529                        $('#return-info-2 .hide').fadeIn();   
3530                        $('#return-2-next').fadeIn();  
3531
3532                      }); 
3533
3534                      ga('send', 'event', 'button', 'click', 'Mission Panel', 'Return - Capsule Return');
3535                   
3536                  });
3537              });
3538
3539            });
3540
3541          });
3542
3543        });
3544    }
3545
3546    function moveToR2()
3547    {
3548      if(osreturn.running == 'r2')
3549        return false;
3550
3551      osreturn.running = 'r2';      
3552      //$('#c-r2-video video').remove();
3553      $('.mission-subnav-button').removeClass('current');
3554      $('#mission-nav-return-re').addClass('active current');
3555       
3556      try {
3557          $('#r3-video').get(0).currentTime = 0;
3558      } catch(error) {
3559          if (error.code === 11) { 
3560              
3561          }
3562      }
3563
3564      $('#mnav-inner-progress').stop().animate({width: '82%'}, 4000);
3565
3566      var capsuleleft;
3567        if(mode == 'full')
3568        {
3569          capsuleleft = w * .6;
3570        }
3571        else if(mode == 'medium')
3572        {
3573          capsuleleft = w * .75;
3574        }
3575        else
3576        {
3577          capsuleleft = w * .75;
3578        }
3579
3580      $('#return-2-next').fadeOut();
3581      $('#return-content').animate({left: 0}, 500);
3582      $('#return-info').css({padding:'70px 20px'}).animate({left:'-105%'}, 500, function(){
3583
3584          $('#r3-video, #return-info-3 p').css('display', 'none');
3585          $('#return-info-1, #return-info-2').hide();
3586          $('#return-info-3').show();
3587
3588          $('#cloud4, #cloud5, #cloud6').css({opacity:1, zIndex:100, top:h + 500});
3589          $('#return-osiris').animate({left:-2000, top: h + 2000, opacity: 0}, 1000);
3590          $('#return-earth').animate({width:3000, height:3000, top: -1000, left: -1000, opacity:0}, 2000);
3591          $('#return-capsule').css({left:w, top:h * .1, zIndex:200}).animate({width:100, height:78, left:capsuleleft, top: h * .2, opacity:1}, 2000);
3592          $({deg: 90}).animate({deg: 60}, {
3593              duration: 2000,
3594              step: function(now) {
3595                  $('#return-capsule').css({
3596                    '-webkit-transform': 'rotate(' + now + 'deg)',
3597                    '-moz-transform': 'rotate(' + now + 'deg)',
3598                    '-ms-transform': 'rotate(' + now + 'deg)',
3599                    '-o-transform': 'rotate(' + now + 'deg)',
3600                    'transform': 'rotate(' + now + 'deg)'
3601                  });
3602              }
3603          });
3604          $('#return-space').animate({opacity:0}
3604, 2000, function(){
3605
3606            $('#return-grad').css({width:'15%'}).animate({width:0}, 700);
3607            $('#return-info').css({width:'50%'}).animate({left:0}, 500, function(){
3608              $('#return-info-3 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
3609                  $('#return-info-3 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
3610
3611                    if(window.iOS)
3612                    {
3613                      getVideo('r3-video');
3614                    }
3615                    else
3616                    {
3617                      var video = $('<video>').addClass('story-video').attr('id', 'r3-video').attr('loop', 'true');
3618                      var src1 = $('<source>').attr('src', window.video_url + 'reentry.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
3619                      var src2 = $('<source>').attr('src', window.video_url + 'reentry.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
3620                      video.append(src1).append(src2);
3621
3622                      $('#c-r3-video').html(video);
3623
3624                      $('#r3-video').fadeIn(500, function(){
3625                        $('#r3-video').get(0).play();    
3626                      });               
3627                    }
3628
3629                    ga('send', 'event', 'button', 'click', 'Mission Panel', 'Return - Re-entry');
3630                    osreturn.running = false;  
3631                    $('#return-info-3 .hide').fadeIn(500); 
3632                    $('#return-3-next').fadeIn(); 
3633                    setTimeout(function(){
3634                      $('#return-3-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
3635                        $(this).addClass('is-on');
3636                      }); 
3637                    }, 3000);
3638                  
3639                  });
3640              });
3641            });
3642
3643          });
3644      });
3645    }
3646
3647    function moveToR3()
3648    {
3649      if(osreturn.running == 'r3')
3650        return false;
3651
3652      osreturn.running = 'r3';  
3653
3654      //$('#c-r3-video video').remove();
3655      $('.mission-subnav-button').removeClass('current');
3656      $('#mission-nav-return-ff').addClass('active current');
3657      
3658      var capsuleleft;
3659        if(mode == 'full')
3660        {
3661          capsuleleft = w * .45;
3662        }
3663        else if(mode == 'medium')
3664        {
3665          capsuleleft = w * .65;
3666        }
3667        else
3668        {
3669          capsuleleft = w * .65;
3670        }
3671
3672        $('#mnav-inner-progress').stop().animate({width: '87.5%'}, 4000);
3673
3674      $('#return-3-next').fadeOut();
3675      $('#return-content').animate({left: 0}, 500);
3676      $('#return-info').animate({left:'-55%'}, 500, function(){
3677        setTimeout(function(){
3678          $('#capsule-parachute').animate({opacity:1}, 500);
3679        }, 4300);
3680        $('#cloud4').animate({top: -100}, 4000);
3681        $('#cloud5').animate({top: -100}, 3600);
3682        $('#cloud6').animate({top: -100}, 4100, function(){
3683          $('#cloud4').css({top: h + 400}).animate({top: h * .8}, 1000);
3684          $('#cloud5').css({top: h + 400}).animate({top: h * .7}, 1000);
3685          $('#cloud6').css({top: h + 400}).animate({top: h * .82}, 1000, function(){
3686            $('#cloud4').animate({top: -100}, 3000);
3687            $('#cloud5').animate({top: -100}, 2600);
3688            $('#cloud6').animate({top: -100}, 3100, function(){
3689              $('#return-capsule').animate({top: h * .4}, 2000, function(){
3690                $(this).animate({top: h * .8}, 2000);
3691              });
3692              $('#return-ground').css({zIndex:100, top: h + 100}).animate({top: h * .8}, 4000, function(){
3693                $('#capsule-parachute').animate({opacity:0}
3693, 500);
3694
3695                ga('send', 'event', 'button', 'click', 'Mission Panel', 'Return - Return Freefall');
3696
3697                $({deg: 0}).animate({deg: 120}, {
3698                    duration: 600,
3699                    step: function(now) {
3700                        $('#return-capsule').css({
3701                            '-webkit-transform': 'rotate(' + now + 'deg)',
3702                            '-moz-transform': 'rotate(' + now + 'deg)',
3703                            '-ms-transform': 'rotate(' + now + 'deg)',
3704                            '-o-transform': 'rotate(' + now + 'deg)',
3705                            'transform': 'rotate(' + now + 'deg)'
3706                        });
3707                    },
3708                    complete: function(){
3709                        $('#freefall-next').css({opacity:1, zIndex:500}).addClass('is-on');
3710                        osreturn.running = false; 
3711                    }
3712                }); 
3713              });
3714            });
3715          });
3716        });
3717        $('#return-capsule').animate({width:50, height:39, left:capsuleleft, top: h * .8}, 2000, function(){
3718          $('#return-1').css({opacity:1, zIndex:600}).addClass('is-on');
3719        });
3720        $({deg: 60}).animate({deg: 0}, {
3721            duration: 2000,
3722            step: function(now) {
3723                $('#return-capsule').css({
3724                    '-webkit-transform': 'rotate(' + now + 'deg)',
3725                    '-moz-transform': 'rotate(' + now + 'deg)',
3726                    '-ms-transform': 'rotate(' + now + 'deg)',
3727                    '-o-transform': 'rotate(' + now + 'deg)',
3728                    'transform': 'rotate(' + now + 'deg)'
3729                });
3730            }
3731        });
3732      });
3733    }
3734
3735    function returnOutro()
3736    {
3737        $('#return-ground').fadeOut(1000); 
3738        $('#return-capsule').animate({width:w * .5, height:h * .8, left:0, top: h * .1}, 1000, function(){
3739            $(this).animate({opacity:0}
3739, 500);
3740          showCollection();
3741        });        
3742    }
3743
3744    function showCollection()
3745    {
3746      if(osreturn.running == 'sc')
3747        return false;
3748
3749      osreturn.running = 'sc';  
3750
3751      collection.init();
3752      $('#timeline').fadeOut();
3753      $('.mission-subnav-button').removeClass('current');
3754      $('#mission-nav-return-oc').addClass('active current');
3755      
3756      try {
3757          $('#c1-video').get(0).currentTime = 0;
3758      } catch(error) {
3759          if (error.code === 11) { 
3760              
3761          }
3762      }
3763
3764      $('#mnav-inner-progress').stop().animate({width: '93%'}, 4000);
3765
3766      $('#collection-info').addClass('right').css({width:'50%', left:'auto', right:'-55%', padding: '70px 20px', display:'block'});
3767      $('#collection-grad').addClass('right');
3768
3769      $('#c1-video, #collection-info-1 p').css('display', 'none');
3770
3771      $('#collection').fadeIn(500, function(){
3772
3773          $('#collection-grad').css({width:'15%'}).animate({width:0}, 700);
3774          $('#collection-info').animate({right:0}, 500, function(){
3775
3776            $('#collection-info-1 h2').css({top:'50%', opacity:0}).animate({top:'45%', opacity:1}, 1200, 'linear', function(){
3777                $('#collection-info-1 h2').animate({top: '40%', opacity:0}, 1200, 'linear', function(){
3778
3779                  if(window.iOS)
3780                  {
3781                    getVideo('c1-video');
3782                  }
3783                  else
3784                  {
3785                    var video = $('<video>').addClass('story-video').attr('id', 'c1-video');
3786                    var src1 = $('<source>').attr('src', window.video_url + 'capsule_open.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
3787                    var src2 = $('<source>').attr('src', window.video_url + 'capsule_open.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
3788                    video.append(src1).append(src2);
3789
3790                    $('#c-c1-video').html(video);
3791
3792                    $('#c1-video').fadeIn(500, function(){
3793                      $('#c1-video').get(0).play();    
3794
3795                      if(!$('#c1-video').data('events'))
3796                      {
3797                        $('#c1-video').get(0).addEventListener('ended', function(){
3798                          $('#collection-next2').css({opacity:1, zIndex:100}).animate({height:60}, 500, function(){
3799                            $(this).addClass('is-on');
3800                          }); 
3801                        }, false);        
3802                      }
3803
3804                      osreturn.running = false;
3805
3806                    });              
3807                  }
3808
3809                  ga('send', 'event', 'button', 'click', 'Mission Panel', 'Collection - Opening the Capsule');
3810
3811                  $('#collection-info-1 .hide').fadeIn(500); 
3812                  $('#collection-1-next').fadeIn();  
3813                   
3814                });
3815            });
3816
3817            rotateEndImages();
3818
3819          });
3820      });
3821    }
3822
3823    function callToAction()
3824    {
3825      if(!$('#return').is(':visible'))
3826      {
3827        $('section, #launch-notes').hide();
3828        forceTimeline("September", "24", "2023");
3829
3830        atlas.state = 'return';
3831
3832        fullReset();
3833
3834        $('#return-info').css({width:'50%', left:'-55%'});
3835        $('#return-osiris').css({opacity:0});
3836        $('#return-bennu').css({display:'none'});
3837        $('#return-earth').css({opacity:0});
3838
3839
3840        $('#return-grad').stop().css({width:'25%'});
3841        $('#return-content').css({left:0});
3842        $('#return-space').css({opacity:0});
3843        $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
3844
3845        $('#cloud4').css({top:1000, opacity:1});
3846        $('#cloud5').css({top:1000, opacity:1});
3847        $('#cloud6').css({top:1000, opacity:1});
3848
3849        $('#return-capsule').css({opacity:0});
3850
3851        $('#return-ground').css({top:'100%', zIndex:-1}).hide();
3852        $('#capsule-parachute').css({zIndex:-1, opacity:0});
3853
3854        $('#return-info-3').show();
3855        $('#return-info-1, #return-info-2').hide();
3856        $('#collection, #collection-info').show();
3857        $('#return').show();
3858      }
3859      //$('#c-c1-video video').remove();
3860        
3861      var bennuwidth, bennuheight, bennutop, bennuleft, formheight, formtop;
3862        if(mode == 'full')
3863        {
3864          bennuwidth = 1500;
3865          bennuheight = 600;
3866          bennutop = 100;
3867          bennuleft = -200;
3868          formheight = .8;
3869          formtop = .1;
3870        }
3871        else if(mode == 'medium')
3872        {
3873          bennuwidth = 1000;
3874          bennuheight = 400;
3875          bennutop = 120;
3876          bennuleft = -200;
3877          formheight = .6;
3878          formtop = .2;
3879        }
3880        else
3881        {
3882          bennuwidth = 1000;
3883          bennuheight = 400;
3884          bennutop = 20;
3885          bennuleft = -250;
3886          formheight = .5;
3887          formtop = .2;
3888        }
3889
3890        $('#collection-capsule-live img').removeClass('active').animate({opacity:0}
3890, 500);
3891        clearTimeout(window.capsule_live_queue);
3892        $('#collection-info').animate({right:'-55%'}, 500, function(){
3893            $('#collection-capsule-live').fadeOut(500);
3894            $('#collection-capsule').css({zIndex:100, width:w * .5, height:h * .8, left:0, top: h * .1}).animate({opacity:1}, 500, function(){
3895              
3896                $('#collection-capsule').animate({width:120, height:100, opacity:0, top:h * .5, left: w * .5}, 1000, function(){
3897                    $('#collection-space').css({zIndex:1}).animate({opacity: 1}, 1000);
3898                    $('#collection-earth').css({width:4096, height: 4096, top: -1032, left: -1032, opacity:1, zIndex:100}).animate({width:100, height:100, top: h /2, left: w/2}, 2000, function(){
3899                      $('#collection-earth').animate({opacity:0}, 500);
3900
3901                      var video = $('<video>').addClass('story-video').attr('id', 'collection-bennu').attr('loop', 'true');
3902                      var src1 = $('<source>').attr('src', window.video_url + 'bennu-rotation.webm').attr('type', 'video/webm;codecs="vp8, vorbis"');
3903                      var src2 = $('<source>').attr('src', window.video_url + 'bennu-rotation.mp4').attr('type', 'video/mp4;codecs="avc1.42E01E, mp4a.40.2"');
3904                      video.append(src1).append(src2);
3905
3906                      $('#c-collection-bennu').html(video);
3907                      $('#collection-bennu').get(0).play();    
3908
3909                      $('#collection-space').css({zIndex:1}).animate({opacity: 0}, 1000);
3910                      $('#collection-bennu').css({width: bennuwidth, height: bennuheight, zIndex:200, top:bennutop, left: bennuleft}).animate({opacity:1}, 1000, function(){
3911                          $('#collection-form').show();
3912                          setTimeout(function(){
3913                           $('#collection-form-box').css({width:w * .5, height: h * formheight, top: h * formtop, right: 20, opacity:1, zIndex:400}).addClass('is-on');
3914                           $('#qa-link').animate({zIndex:1,opacity:1},500);                             
3915                          }, 500);
3916                      });
3917
3918                      ga('send', 'event', 'button', 'click', 'Mission Panel', 'Collection - Updates');
3919                    });
3920                });
3921
3922            });
3923        });
3924    }
3925
3926    function animate(elem, frame, height, total, dir, callback, speed)
3927    {
3928      elem.css('background-position', '0 -' + (frame * height) + 'px');
3929      if((dir == 'forward' && frame < total) || (dir == 'reverse' && frame > 1))
3930      {
3931        if(dir == 'forward')
3932          frame += 1;
3933        else
3934          frame -= 1;
3935
3936        if((dir == 'reverse' && frame > 1) || (dir == 'forward' && frame < total))
3937        {
3938          setTimeout(function(){
3939            animate(elem, frame, height, total, dir, callback);
3940          }, 70);   
3941        }     
3942      }
3943
3944      if((dir == 'reverse' && frame == 1) || (dir == 'forward' && frame == total))
3945      {
3946        if(callback)
3947        {
3948          callback();          
3949        }
3950      }
3951    }
3952
3953    function resetBurst()
3954    {
3955        $('.burst').css('background-position', '0 0');
3956    }
3957
3958    function stopVideos()
3959    {
3960      $('.story-video').each(function(){
3961        $(this).get(0).pause();
3962      });
3963    }
3964
3965    function rotateEndImages()
3966    {
3967      window.capsule_live_queue = setTimeout(function(){
3968
3969        var total = $('#collection-capsule-live img').length;
3970        var cur = $('#collection-capsule-live img.active');
3971        var next = cur.next();
3972
3973        if(!next.length)
3974        {
3975          next = $('#collection-capsule-live img').first();
3976        }
3977
3978        next.css({zIndex:101}).animate({opacity:1}, 1000, function(){
3979          cur.css({zIndex:99, opacity:0}).removeClass('active');
3980          $(this).css({zIndex:100}).addClass("active");
3981          rotateEndImages();
3982        });      
3983        
3984      }, 5000);
3985    }
3986
3987    function prepAnimatedBtn($btn) {
3988        var $helper = $btn.find('.btn-helper').first(),
3989                x = $helper.width(),
3990                y = $helper.height() + 1,
3991                halfX = x / 2,
3992                hidingClip = 'rect(0, ' + halfX + 'px, ' + y + 'px, ' + halfX + 'px)',
3993                showingClip = 'rect(0, ' + x + 'px, ' + y + 'px, 0)';
3994        $helper.css({clip: hidingClip});
3995        $btn.on('mouseenter focus', function() {
3996            $helper.css({clip: showingClip});
3997        }).on('mouseleave blur', function() {
3998            $helper.css({clip: hidingClip});
3999        });
4000    }
4001
4002    function setTimeline(month, day, year)
4003    {
4004      if(window.iOS)
4005      {
4006        forceTimeline(month, day, year);
4007        return;
4008      }
4009      //console.log("setting " + month + " " + day + ", " + year);
4010      $('#timeline').data("month", month).data("day", day).data("year", year);
4011      var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
4012      var days = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];
4013      var y = parseInt($('#timeline-year').text());
4014      var cy = y;
4015      var d = parseInt($('#timeline-day').text());
4016      var cm = $('#timeline-month').text();
4017      var st = false;
4018      var dst = false;
4019      var ct = 1;
4020      var v;
4021      var cycles = year - y;
4022      var spin = false;
4023
4024      var fin = [];
4025
4026      if(cycles > 0 || month != cm || day != d)
4027        spin = true;
4028
4029      if(!spin)
4030      {
4031        $('#timeline-month').text(month);
4032        $('#timeline-day').text(day);
4033        $('#timeline-year').text(year); 
4034      }
4035      else
4036      {
4037        for(var i = 0; i <= cycles; i ++)
4038        {
4039          for(var n = 0; n < months.length; n ++)
4040          {
4041            v = months[n];
4042            if(st)
4043            {
4044              for(var x = 0; x < days.length; x ++)
4045              {
4046                if(dst)
4047                {
4048                  fin.push([v,days[x],cy]);
4049                }
4050
4051                if(days[x] == day)
4052                {
4053                  dst = true;
4054                }
4055
4056                if(days[x] == day && v == month && i == cycles)
4057                {
4058                  dst = false;
4059                  break;
4060                }
4061              }
4062              
4063
4064              ct += 1;
4065            }
4066
4067            if(v == cm)
4068            {
4069              st = true;
4070            }
4071
4072            if(v == month && i == cycles)
4073            {
4074              st = false;
4075              break;
4076            }
4077          }
4078
4079          cy += 1;
4080
4081          if(i == cycles)
4082          {
4083            writeTimeline(fin.reverse());
4084          }
4085        }        
4086      }
4087    }
4088
4089    function writeTimeline(arr)
4090    {
4091      window.queue = setTimeout(function(){
4092        var str = arr.pop();
4093        if(typeof str != "undefined" && str.length > 0)
4094        {
4095          $('#timeline-month').text(str[0]);
4096          $('#timeline-day').text(str[1]);
4097          $('#timeline-year').text(str[2]); 
4098
4099          if(arr.length > 0)
4100            writeTimeline(arr);
4101        }
4102
4103      }, 10);
4104    }
4105
4106    function forceTimeline(month, day, year)
4107    {
4108      clearTimeout(window.queue);
4109      $('#timeline-month').text(month);
4110      $('#timeline-day').text(day);
4111      $('#timeline-year').text(year); 
4112    }
4113
4114    function scaleObject(elem, obj, method, speed){
4115      if(method == 'scaled')
4116        elem.animate({top: obj.sy, left: obj.sx, width: obj.sw, height: obj.sh}, speed);
4117      else if(method == 'original')
4118        elem.animate({top: obj.oy, left: obj.ox, width: obj.ow, height: obj.oh}, speed);
4119    }
4120
4121    function getVideo(vid)
4122    {
4123      var video;
4124      for(var i = 0; i < window.videos.length; i ++)
4125      {
4126        if(window.videos[i].id == vid)
4127        {
4128          video = window.videos[i].elem;
4129        }
4130      }
4131
4132      video.appendTo($('#c-' + vid));
4133      $('#' + vid).show();
4134    }
4135
4136    function blastoff(){
4137      var offset = $(window).scrollTop();
4138      var percent, degree, goal;
4139
4140      goal = offset / kf6;
4141      $('#mnav-inner-progress').css('width', (10 * goal) + '%');
4142
4143      if(offset < kf2)
4144      {
4145        $('#line-ground').css({top: launchOffset + 320 + offset});
4146      }
4147      if(offset > 0 && offset < kf2)
4148      {
4149        percent = (2000 - offset) / 4000;
4150        $('#atl-booster-flame').css('display', 'block');
4151        $('#atl-stage1-flame').css('display', 'block');
4152        $('#atl-stage2-flame').css('display', 'none');
4153
4154        $('#cloud1').css({top: -960 - (1200 * percent)});
4155        $('#cloud2').css({top: -930 - (400 * percent)});
4156        $('#cloud3').css({top: -1010 - (2000 * percent)});
4157        $('#cloud1a').css({top: -1630 - (1200 * percent)});
4158        $('#cloud2a').css({top: -1510 - (400 * percent)});
4159        $('#cloud3a').css({top: -1460 - (2000 * percent)});
4160        $('#cloud1b').css({top: -2250 - (1400 * percent)});
4161        $('#cloud2b').css({top: -2140 - (500 * percent)}
4161);
4162        $('#cloud3b').css({top: -2570 - (1700 * percent)});
4163      }
4164      else
4165      {
4166        $('#atl-booster-flame').css('display', 'none');
4167        $('#atl-stage1-flame').css('display', 'none'); 
4168        $('#line-ground').css({top: launchOffset + 320 + offset});      
4169      }
4170
4171      if(offset >= kf2)
4172      {
4173        $('#atl-stage1-flame').css('display', 'block');
4174        percent = (kf2 - offset) / (kf2 + 2000);
4175        degree = 90 * percent;
4176
4177        var adj = 50;
4178        if(adj < 1 || $(window).width() < 1290)
4179          adj = 0;
4180
4181        $('#atl-booster').css({
4182          'left': atlas.lines.booster.sx + (160 * percent) + 'px',
4183          'top': atlas.lines.booster.sy - (400 * percent) + 'px',
4184          '-webkit-transform': 'rotate(' + degree + 'deg)',
4185          '-moz-transform': 'rotate(' + degree + 'deg)',
4186          '-ms-transform': 'rotate(' + degree + 'deg)',
4187          '-o-transform': 'rotate(' + degree + 'deg)',
4188          'transform': 'rotate(' + degree + 'deg)',
4189          'zoom': 1
4190        });
4191      }
4192      else
4193      {
4194        $('#atl-booster').css({
4195          'left': atlas.lines.booster.sx,
4196          'top': atlas.lines.booster.sy,
4197          '-webkit-transform': 'rotate(0deg)',
4198          '-moz-transform': 'rotate(0deg)',
4199          '-ms-transform': 'rotate(0deg)',
4200          '-o-transform': 'rotate(0deg)',
4201          'transform': 'rotate(0deg)',
4202          'zoom': 1
4203        });
4204      }
4205
4206      if(offset >= kf3)
4207      {
4208        $('#atl-stage1-flame').css('display', 'none');
4209        $('#atl-stage2-flame').css('display', 'block');
4210
4211        percent = (kf3 - offset) / (kf3 + 2000);
4212        degree = 90 * percent;
4213        var deg2 = -26 * percent;
4214
4215        $('#atl-booster').css('display', 'none');
4216
4217        $('#atlas-lines').css({
4218          '-webkit-transform': 'rotate(' + deg2 + 'deg)',
4219          '-moz-transform': 'rotate(' + deg2 + 'deg)',
4220          '-ms-transform': 'rotate(' + deg2 + 'deg)',
4221          '-o-transform': 'rotate(' + deg2 + 'deg)',
4222          'transform': 'rotate(' + deg2 + 'deg)',
4223          'zoom': 1
4224        });
4225
4226        $('#atl-stage1').css({
4227          'top': atlas.lines.stage1.sy - (700 * percent) + 'px',
4228          'left': atlas.lines.stage1.sx - (200 * percent) + 'px',
4229          '-webkit-transform': 'rotate(' + degree + 'deg)',
4230          '-moz-transform': 'rotate(' + degree + 'deg)',
4231          '-ms-transform': 'rotate(' + degree + 'deg)',
4232          '-o-transform': 'rotate(' + degree + 'deg)',
4233          'transform': 'rotate(' + degree + 'deg)',
4234          'zoom': 1
4235        });
4236      }
4237      else
4238      {
4239        $('#atl-booster').css('display', 'block');
4240        $('#atl-stage2-flame').css('display', 'none');
4241
4242        $('#atlas-lines').css({
4243          '-webkit-transform': 'rotate(0deg)',
4244          '-moz-transform': 'rotate(0deg)',
4245          '-ms-transform': 'rotate(0deg)',
4246          '-o-transform': 'rotate(0deg)',
4247          'transform': 'rotate(0deg)',
4248          'zoom': 1
4249        });
4250
4251        $('#atl-stage1').css({
4252          'top': atlas.lines.stage1.sy,
4253          'left': atlas.lines.stage1.sx,
4254          '-webkit-transform': 'rotate(0deg)',
4255          '-moz-transform': 'rotate(0deg)',
4256          '-ms-transform': 'rotate(0deg)',
4257          '-o-transform': 'rotate(0deg)',
4258          'transform': 'rotate(0deg)',
4259          'zoom': 1
4260        });
4261        /*
4262        $('#atl-coupling').css({
4263          'top': atlas.lines.coupling.sy,
4264          'left': atlas.lines.coupling.sx,
4265          '-webkit-transform': 'rotate(0deg)',
4266          '-moz-transform': 'rotate(0deg)',
4267          '-ms-transform': 'rotate(0deg)',
4268          '-o-transform': 'rotate(0deg)',
4269          'transform': 'rotate(0deg)',
4270          'zoom': 1
4271        });*/
4272      }
4273
4274      if(offset >= kf4)
4275      {
4276        percent = (kf4 - offset) / (kf4 + 2000);
4277        degree = 140 * percent;
4278
4279        $('#atl-nose-left').css({
4280          'top': atlas.lines.noseleft.sy - (500 * percent),
4281          'left': atlas.lines.noseleft.sx + (500 * percent),
4282          '-webkit-transform': 'rotate(' + degree + 'deg)',
4283          '-moz-transform': 'rotate(' + degree + 'deg)',
4284          '-ms-transform': 'rotate(' + degree + 'deg)',
4285          '-o-transform': 'rotate(' + degree + 'deg)',
4286          'transform': 'rotate(' + degree + 'deg)',
4287          'zoom': 1,
4288          'opacity': 1 - percent
4289        });
4290        $('#atl-nose-right').css({
4291          'top': atlas.lines.noseright.sy - (500 * percent),
4292          'left': atlas.lines.noseright.sx - (500 * percent),
4293          '-webkit-transform': 'rotate(' + -degree + 'deg)',
4294          '-moz-transform': 'rotate(' + -degree + 'deg)',
4295          '-ms-transform': 'rotate(' + -degree + 'deg)',
4296          '-o-transform': 'rotate(' + -degree + 'deg)',
4297          'transform': 'rotate(' + -degree + 'deg)',
4298          'zoom': 1,
4299          'opacity': 1 - percent
4300        });
4301
4302        $('#bennu-line').css({
4303          top:-2050 - (1150 * percent),
4304          left: 450 + (1600 * percent)
4305        });
4306      }
4307      else
4308      {
4309        $('#atl-nose-left').css({
4310          'top': atlas.lines.noseleft.sy,
4311          'left': atlas.lines.noseleft.sx,
4312          '-webkit-transform': 'rotate(0deg)',
4313          '-moz-transform': 'rotate(0deg)',
4314          '-ms-transform': 'rotate(0deg)',
4315          '-o-transform': 'rotate(0deg)',
4316          'transform': 'rotate(0deg)',
4317          'zoom': 1,
4318          'opacity': 1
4319        });
4320        $('#atl-nose-right').css({
4321          'top': atlas.lines.noseright.sy,
4322          'left': atlas.lines.noseright.sx,
4323          '-webkit-transform': 'rotate(0deg)',
4324          '-moz-transform': 'rotate(0deg)',
4325          '-ms-transform': 'rotate(0deg)',
4326          '-o-transform': 'rotate(0deg)',
4327          'transform': 'rotate(0deg)',
4328          'zoom': 1,
4329          'opacity': 1
4330        });
4331        $('#bennu-line').css({
4332          top:-2050,
4333          left:450
4334        });
4335      }
4336
4337      if(offset >= kf5)
4338      {
4339
4340        $('#atl-stage2-flame').css('display', 'none');
4341
4342        percent = (kf5 - offset) / (kf5 + 2000);
4343        degree = 140 * percent;
4344
4345        $('#atl-stage2').css({
4346          'top': atlas.lines.stage2.sy - (500 * percent),
4347          'left': atlas.lines.stage2.sx + (500 * percent),
4348          '-webkit-transform': 'rotate(' + degree + 'deg)',
4349          '-moz-transform': 'rotate(' + degree + 'deg)',
4350          '-ms-transform': 'rotate(' + degree + 'deg)',
4351          '-o-transform': 'rotate(' + degree + 'deg)',
4352          'transform': 'rotate(' + degree + 'deg)',
4353          'zoom': 1,
4354          'opacity': 1 - percent
4355        });
4356      }
4357      else
4358      {
4359        //$('#atl-stage2-flame').css('display', 'block');
4360        $('#atl-stage2').css({
4361          'top': atlas.lines.stage2.sy,
4362          'left': atlas.lines.stage2.sx,
4363          '-webkit-transform': 'rotate(0deg)',
4364          '-moz-transform': 'rotate(0deg)',
4365          '-ms-transform': 'rotate(0deg)',
4366          '-o-transform': 'rotate(0deg)',
4367          'transform': 'rotate(0deg)',
4368          'zoom': 1,
4369          'opacity': 1 - percent
4370        });
4371      }
4372
4373      if(offset >= kf4 + 600 && offset < kf5)
4374      {
4375        $('#launch-fact-next-5').css({display:'block',zIndex:100,opacity:1}).addClass('is-on');
4376      }
4377      else if(offset > kf1)
4378      {
4379        if($('.launch-controls').is(':visible'))
4380        {
4381          $('.launch-controls').fadeOut(500);
4382        } 
4383      }
4384      else if(offset <= kf1)
4385      {
4386        if(!$('#lf-1').is(':visible'))
4387        {
4388          $('#lf-1').fadeIn(500, function(){
4389            $('#launch-fact-next-1').css({display:'block',zIndex:100,opacity:1}).addClass('is-on');
4390          });          
4391        }
4392
4393        if(!$('.launch-controls').is(':visible'))
4394        {
4395          $('.launch-controls').fadeIn(500);
4396        }
4397      }
4398
4399      if(offset > kf6)
4400      {
4401        $('#mission-nav-cruise').click();
4402      }
4403
4404    }
4405
4406
4407    function setAtlas(){
4408      atlas.pieces.noseleft = {
4409        w:$('#at-nose-left').width(),
4410        h:$('#at-nose-left').height(),
4411        x:$('#at-nose-left').css('left'),
4412        y:$('#at-nose-left').css('top'),
4413        ow:$('#at-nose-left').width(),
4414        oh:$('#at-nose-left').height(),
4415        ox:$('#at-nose-left').css('left'),
4416        oy:$('#at-nose-left').css('top'),
4417        sw:26,
4418        sh:127,
4419        sx:15,
4420        sy:-10,
4421        xx:$('#at-nose-left').width() * -1,
4422        xy:$('#at-nose-left').css('top')
4423      };
4424      atlas.pieces.noseright = {
4425        w:$('#at-nose-right').width(),
4426        h:$('#at-nose-right').height(),
4427        x:$('#at-nose-right').css('left'),
4428        y:$('#at-nose-right').css('top'),
4429        ow:$('#at-nose-right').width(),
4430        oh:$('#at-nose-right').height(),
4431        ox:$('#at-nose-right').css('left'),
4432        oy:$('#at-nose-right').css('top'),
4433        sw:24,
4434        sh:124,
4435        sx:37,
4436        sy:-7,
4437        xx:parseInt($('#at-nose-right').css('left')) + $('#at-nose-right').width(),
4438        xy:$('#at-nose-right').css('top')
4439      };
4440      atlas.pieces.osiris = {
4441        w:$('#at-osiris').width(),
4442        h:$('#at-osiris').height(),
4443        x:$('#at-osiris').css('left'),
4444        y:$('#at-osiris').css('top'),
4445        ow:$('#at-osiris').width(),
4446        oh:$('#at-osiris').height(),
4447        ox:$('#at-osiris').css('left'),
4448        oy:$('#at-osiris').css('top'),
4449        sw:20,
4450        sh:42,
4451        sx:27,
4452        sy:55,
4453        xx:$('#at-osiris').css('left'),
4454        xy:$('#at-osiris').css('top')
4455      };
4456      atlas.pieces.connector3 = {
4457        w:$('#at-connector3').width(),
4458        h:$('#at-connector3').height(),
4459        x:$('#at-connector3').css('left'),
4460        y:$('#at-connector3').css('top'),
4461        ow:$('#at-connector3').width(),
4462        oh:$('#at-connector3').height(),
4463        ox:$('#at-connector3').css('left'),
4464        oy:$('#at-connector3').css('top'),
4465        sw:15,
4466        sh:10,
4467        sx:30,
4468        sy:107,
4469        xx:$('#at-connector3').css('left'),
4470        xy:parseInt($('#at-connector3').css('top')) +  $('#at-connector3').height()
4471      };
4472      atlas.pieces.stage2 = {
4473        w:$('#at-stage2').width(),
4474        h:$('#at-stage2').height(),
4475        x:$('#at-stage2').css('left'),
4476        y:$('#at-stage2').css('top'),
4477        ow:$('#at-stage2').width(),
4478        oh:$('#at-stage2').height(),
4479        ox:$('#at-stage2').css('left'),
4480        oy:$('#at-stage2').css('top'),
4481        sw:32,
4482        sh:125,
4483        sx:22,
4484        sy:107,
4485        xx:$('#at-stage2').css('left'),
4486        xy:parseInt($('#at-stage2').css('top')) + $('#at-stage2').height() / 3
4487      };
4488      atlas.pieces.connector2 = {
4489        w:$('#at-connector2').width(),
4490        h:$('#at-connector2').height(),
4491        x:$('#at-connector2').css('left'),
4492        y:$('#at-connector2').css('top'),
4493        ow:$('#at-connector2').width(),
4494        oh:$('#at-connector2').height(),
4495        ox:$('#at-connector2').css('left'),
4496        oy:$('#at-connector2').css('top'),
4497        sw:31,
4498        sh:12,
4499        sx:23,
4500        sy:194,
4501        xx:$('#at-connector2').css('left'),
4502        xy:parseInt($('#at-connector2').css('top')) + ($('#at-stage2').height() / 2) + $('#at-connector2').height() + 15
4503      };
4504      atlas.pieces.connector2back = {
4505        w:$('#at-connector2-back').width(),
4506        h:$('#at-connector2-back').height(),
4507        x:$('#at-connector2-back').css('left'),
4508        y:$('#at-connector2-back').css('top'),
4509        ow:$('#at-connector2-back').width(),
4510        oh:$('#at-connector2-back').height(),
4511        ox:$('#at-connector2-back').css('left'),
4512        oy:$('#at-connector2-back').css('top'),
4513        sw:32,
4514        sh:8,
4515        sx:23,
4516        sy:188,
4517        xx:$('#at-connector2-back').css('left'),
4518        xy:parseInt($('#at-connector2-back').css('top')) + ($('#at-stage2').height() / 2) + $('#at-connector2-back').height() + 20
4519      };
4520      atlas.pieces.connector1 = {
4521        w:$('#at-connector1').width(),
4522        h:$('#at-connector1').height(),
4523        x:$('#at-connector1').css('left'),
4524        y:$('#at-connector1').css('top'),
4525        ow:$('#at-connector1').width(),
4526        oh:$('#at-connector1').height(),
4527        ox:$('#at-connector1').css('left'),
4528        oy:$('#at-connector1').css('top'),
4529        sw:42,
4530        sh:56,
4531        sx:17,
4532        sy:195,
4533        xx:$('#at-connector1').css('left'),
4534        xy:parseInt($('#at-connector1').css('top')) + $('#at-connector1').height() * 2
4535      };
4536      atlas.pieces.connector1back = {
4537        w:$('#at-connector1-back').width(),
4538        h:$('#at-connector1-back').height(),
4539        x:$('#at-connector1-back').css('left'),
4540        y:$('#at-connector1-back').css('top'),
4541        ow:$('#at-connector1-back').width(),
4542        oh:$('#at-connector1-back').height(),
4543        ox:$('#at-connector1-back').css('left'),
4544        oy:$('#at-connector1-back').css('top'),
4545        sw:34,
4546        sh:12,
4547        sx:20,
4548        sy:195,
4549        xx:$('#at-connector1-back').css('left'),
4550        xy:parseInt($('#at-connector1-back').css('top')) + $('#at-connector1').height() * 2 - 2
4551      };
4552      atlas.pieces.stage1 = {
4553        w:$('#at-stage1').width(),
4554        h:$('#at-stage1').height(),
4555        x:$('#at-stage1').css('left'),
4556        y:$('#at-stage1').css('top'),
4557        ow:$('#at-stage1').width(),
4558        oh:$('#at-stage1').height(),
4559        ox:$('#at-stage1').css('left'),
4560        oy:$('#at-stage1').css('top'),
4561        sw:40,
4562        sh:312,
4563        sx:17,
4564        sy:237,
4565        xx:$('#at-stage1').css('left'),
4566        xy:parseInt($('#at-stage1').css('top')) + $('#at-stage1').height() / 2
4567      };
4568      atlas.pieces.booster = {
4569        w:$('#at-booster').width(),
4570        h:$('#at-booster').height(),
4571        x:$('#at-booster').css('left'),
4572        y:$('#at-booster').css('top'),
4573        ow:$('#at-booster').width(),
4574        oh:$('#at-booster').height(),
4575        ox:$('#at-booster').css('left'),
4576        oy:$('#at-booster').css('top'),
4577        sw:17,
4578        sh:203,
4579        sx:0,
4580        sy:384,
4581        xx:parseInt($('#at-booster').css('left')) - $('#at-booster').width(),
4582        xy:parseInt($('#at-booster').css('top')) + $('#at-stage1').height() / 2
4583      };
4584      atlas.pieces.thruster = {
4585        w:$('#at-thruster').width(),
4586        h:$('#at-thruster').height(),
4587        x:$('#at-thruster').css('left'),
4588        y:$('#at-thruster').css('top'),
4589        ow:$('#at-thruster').width(),
4590        oh:$('#at-thruster').height(),
4591        ox:$('#at-thruster').css('left'),
4592        oy:$('#at-thruster').css('top'),
4593        sw:42,
4594        sh:65,
4595        sx:16,
4596        sy:525,
4597        xx:$('#at-thruster').css('left'),
4598        xy:parseInt($('#at-thruster').css('top')) + $('#at-stage1').height() * .6
4599      };
4600
4601      atlas.lines.noseleft = {
4602        w:$('#atl-nose-left').width(),
4603        h:$('#atl-nose-left').height(),
4604        x:$('#atl-nose-left').css('left'),
4605        y:$('#atl-nose-left').css('top'),
4606        sw:13,
4607        sh:57,
4608        sx:0,
4609        sy:-9
4610      };
4611      atlas.lines.noseright = {
4612        w:$('#atl-nose-right').width(),
4613        h:$('#atl-nose-right').height(),
4614        x:$('#atl-nose-right').css('left'),
4615        y:$('#atl-nose-right').css('top'),
4616        sw:13,
4617        sh:57,
4618        sx:12,
4619        sy:-9
4620      };
4621      atlas.lines.osiris = {
4622        w:$('#atl-osiris').width(),
4623        h:$('#atl-osiris').height(),
4624        x:$('#atl-osiris').css('left'),
4625        y:$('#atl-osiris').css('top'),
4626        sw:17,
4627        sh:15,
4628        sx:4,
4629        sy:29
4630      };
4631      atlas.lines.stage2 = {
4632        w:$('#atl-stage2').width(),
4633        h:$('#atl-stage2').height(),
4634        x:$('#atl-stage2').css('left'),
4635        y:$('#atl-stage2').css('top'),
4636        sw:25,
4637        sh:77,
4638        sx:0,
4639        sy:47
4640      };
4641      atlas.lines.coupling = {
4642        w:$('#atl-coupling').width(),
4643        h:$('#atl-coupling').height(),
4644        x:$('#atl-coupling').css('left'),
4645        y:$('#atl-coupling').css('top'),
4646        sw:23,
4647        sh:8,
4648        sx:1,
4649        sy:117
4650      };
4651      atlas.lines.stage1 = {
4652        w:$('#atl-stage1').width(),
4653        h:$('#atl-stage1').height(),
4654        x:$('#atl-stage1').css('left'),
4655        y:$('#atl-stage1').css('top'),
4656        sw:23,
4657        sh:176,
4658        sx:1,
4659        sy:117
4660      };
4661      atlas.lines.booster = {
4662        w:$('#atl-booster').width(),
4663        h:$('#atl-booster').height(),
4664        x:$('#atl-booster').css('left'),
4665        y:$('#atl-booster').css('top'),
4666        sw:15,
4667        sh:127,
4668        sx:-12,
4669        sy:164
4670      };
4671      atlas.lines.stage1flame = {
4672        sw:$('#atl-stage1-flame').width(),
4673        sh:$('#atl-stage1-flame').height(),
4674        sx:$('#atl-stage1-flame').css('left'),
4675        sy:$('#atl-stage1-flame').css('top')
4676      };
4677      atlas.lines.stage2flame = {
4678        sw:$('#atl-stage2-flame').width(),
4679        sh:$('#atl-stage2-flame').height(),
4680        sx:$('#atl-stage2-flame').css('left'),
4681        sy:$('#atl-stage2-flame').css('top')
4682      };
4683      atlas.lines.boosterflame = {
4684        sw:$('#atl-booster-flame').width(),
4685        sh:$('#atl-booster-flame').height(),
4686        sx:$('#atl-booster-flame').css('left'),
4687        sy:$('#atl-booster-flame').css('top')
4688      };
4689    }  
4690
4691    setAtlas();
4692    resizeMission();
4693
4694    if(window.iOS)
4695    {
4696      $('video').prop('controls', true);
4697      $('video').each(function(){
4698        var id = $(this).attr('id');
4699        window.videos.push({ id: id, elem: $(this).detach()});
4700      });
4701      $('html').addClass('ios');
4702    }
4703
4704    $(window).on('resize.mission', resizeMission);
4705    $('#atlas-lines').css('top', h + 100);
4706
4707    // quick jump
4708    if(window.location.hash)
4709    {
4710      $('#m-atlas, #atlas-scaled, #launch-notes, #atlas-launch').hide();
4711      $('#m1').fadeOut(1000, function(){
4712        var hash = window.location.hash.toLowerCase();
4713        switch(hash)
4714        {
4715          case '#cruise':
4716            $('#mission-nav-cruise').click();
4717            break;
4718          case '#entering-solar-orbit':
4719            $('#mission-nav-cruise-so').click();
4720            break;
4721          case '#gravity-assist':
4722            $('#mission-nav-cruise-ga').click();
4723            break;
4724          case '#arrival':
4725            $('#mission-nav-arrival').click();
4726            break;
4727          case '#surveying-bennu':
4728            $('#mission-nav-arrival-sb').click();
4729            break;
4730          case '#explore-instruments':
4731            $('#mission-nav-arrival-ei').click();
4732            break;
4733          case '#sample':
4734            $('#mission-nav-sample').click();
4735            break;
4736          case '#deploying-tagsam':
4737            $('#mission-nav-sample-dt').click();
4738            break;
4739          case '#contacting-the-surface':
4740            $('#mission-nav-sample-cs').click();
4741            break;
4742          case '#sample-acquisition':
4743            $('#mission-nav-sample-sa').click();
4744            break;
4745          case '#stowing-the-sample':
4746            $('#mission-nav-sample-ss').click();
4747            break;
4748          case '#return':
4749            $('#mission-nav-return').click();
4750            break;
4751          case '#separation-at-earth':
4752            $('#mission-nav-return-se').click();
4753            break;
4754          case '#re-entry':
4755            $('#mission-nav-return-re').click();
4756            break;
4757          case '#freefall':
4758            $('#mission-nav-return-ff').click();
4759            break;
4760          case '#opening-the-capsule':
4761            $('#mission-nav-return-oc').click();
4762            break;
4763          case '#finale':
4764            $('#mission-nav-finale').click();
4765            break;
4766          default:
4767            window.location = '/mission/';
4768            break;
4769        }
4770      });  
4771  
4772    }
4773    else
4774    {
4775       $('#m1').fadeOut(1000, function(){
4776        setStage();
4777        //setTimeout(spreadAtlas, 500);
4778        });     
4779    }
4780
4781    atlas.init();
4782
4783
4784
4785    $('#mission-nav').fadeIn(1000);
4786
4787    var resetRunning = false;
4788
4789    function fullReset()
4790    {
4791      if(!resetRunning)
4792      {
4793        //console.log('running');
4794        resetRunning = true;
4795        $('#arrival-spec-next').css({opacity:0, zIndex:-1}).removeClass('is-on');
4796        $('#arrival-info').css({right: 'auto', width:0}).removeClass('right');
4797        $('#arrival-info-specs').hide();
4798        $('.inspect-sensor').removeClass('active');
4799        $('.arrival-fact-box').css('opacity', 0);
4800        $('#sensor-note').hide();
4801
4802        $('#sample-info').removeClass('right').css({left:'-105%', right:'auto'}); 
4803        //$('#sample-surface').css('display', 'none');
4804        $('#acquisition-sim, #acquisition-next').css({opacity:0, zIndex:-1}).removeClass('is-on');
4805
4806        setTimeout(function(){
4807          resetRunning = false;
4808        }, 1000);
4809      }
4810    }
4811
4812    /*********** button listeners **********/
4813
4814    $(document).unbind('click.expand').on('click.expand', '#expand', function(e){
4815      e.preventDefault();
4816      if(atlas.state == 'scaled')
4817      {
4818        $('#atlas-scale').fadeIn(500);
4819        $('#collapse').fadeIn(500);
4820        $('#atlas-launchprep').fadeOut(500);
4821        showSpread();
4822      }
4823      else
4824        spreadAtlas();
4825    });
4826
4827    $(document).unbind('click.expandmodel').on('click.expandmodel', '#expand-model', function(e){
4828      e.preventDefault();
4829      if(atlas.state == 'scaled')
4830      {
4831        $('#atlas-scale').fadeIn(500);
4832        $('#collapse').fadeIn(500);
4833        $('#atlas-launchprep').fadeOut(500);
4834        showSpread();
4835      }
4836      else
4837        spreadAtlas();
4838    });
4839
4840    $(document).unbind('click.collapse').on('click.collapse', '#collapse', function(e){
4841      e.preventDefault();
4842//showCollection(); return;
4843
4844      if(atlas.state == 'scaled')
4845        return;
4846      
4847      collapseAtlas(null);
4848    });
4849    $(document).unbind('click.scale').on('click.scale', '#atlas-scale, #show-scale', function(e){
4850      e.preventDefault();
4851      if(atlas.state == 'line')
4852      {
4853        backToScale();
4854      }
4855      else
4856      {
4857        showScale();      
4858      }
4859
4860    });
4861    $(document).unbind('click.launchprep').on('click.launchprep', '#atlas-launchprep', function(e){
4862      e.preventDefault();
4863      if(atlas.state == 'cruise')
4864      {
4865        returnLaunch();
4866      }
4867      else
4868      {
4869        prepLaunch();      
4870      }
4871    });
4872
4873    $(document).unbind('click.launchprocess').on('click.launchpress', '#atlas-launch-process', function(e){
4874      e.preventDefault();
4875     
4876      collapseAndScaleAtlas(prepLaunch);      
4877      
4878    });
4879
4880    $(document).unbind('click.lfmore').on('click.lfmore', '#launch-fact-next-5', function(e){
4881      e.preventDefault();
4882
4883      $('#mission-nav-cruise').click();
4884    });
4885
4886    $(document).unbind('click.inspectsensor').on('click.inspectsensor', '.inspect-sensor', function(){
4887      var id = $(this).data('id');
4888      var name = $(this).data('name');
4889      $('.inspect-sensor').removeClass('selected');
4890      $(this).addClass('selected');
4891      $('#arrival-content').animate({left:0}, 500);
4892      $('#arrival-info').animate({right:'-55%'}, 500);
4893      $('.arrival-fact-box').removeClass('is-on').animate({opacity:0, zIndex:-1}, 500, function(){
4894        $('#arrival-fact-' + id).css({opacity:1, zIndex:100}).addClass('is-on');
4895      });
4896
4897      ga('send', 'event', 'button', 'click', 'Mission Sensor Inspected', name);
4898    });
4899
4900    $(document).unbind('mouseenter.inspectsensorme').on('mouseenter.inspectsensorme', '.inspect-sensor', function(){
4901      var id = $(this).data('id');
4902      $('.inspect-sensor-name').removeClass('selected');
4903      $('#inspect-sensor-name-' + id).addClass('selected');
4904    });
4905    $(document).unbind('mouseleave.inspectsensorml').on('mouseleave.inspectsensorml', '.inspect-sensor', function(){
4906      $('.inspect-sensor-name').removeClass('selected');
4907    });
4908
4909    $(document).unbind('click.arrivalfactbox').on('click.arrivalfactbox', '.arrival-fact-box a', function(e){
4910      e.preventDefault();
4911      var id = $(this).data('id');
4912      $('#arrival-info-1, #arrival-info-2, #arrival-info-3, #arrival-info-specs div').hide();
4913      $('#arrival-info-specs, #spec-' + id + ', #spec-' + id + ' p').show();
4914      $('#arrival-grad').css({width:'15%'}).animate({width:0}, 700);
4915      $('#arrival-content').animate({left:'-20%'}, 500);
4916      $('#arrival-info').css({width:'50%', right:'-55%'}).animate({right:0}, 500, function(){
4917        $('#spec-close-box').fadeIn();
4918      });
4919      $('#timeline').fadeOut();
4920      $('#sensor-note').fadeOut(500);
4921      $('.arrival-fact-box.is-on, #arrival-spec-next').animate({opacity:0}, 500);
4922    });
4923
4924    $(document).unbind('click.specclose').on('click.specclose', '#spec-close-box', function(){
4925      $('#arrival-content').animate({left:0}, 500);
4926      $('#arrival-info').animate({right:'-55%'}, 500);
4927      $(this).fadeOut();
4928      $('#timeline').fadeIn();
4929      $('.arrival-fact-box.is-on, #arrival-spec-next').animate({opacity:1}, 500);
4930      $('#sensor-note').fadeIn(500);
4931    })
4932
4933    /************* end button listeners ***********/
4934
4935    $(document).on('scroll', function(){
4936      if(atlas.state == 'line')
4937      {
4938        blastoff();
4939      }
4940    });
4941
4942    $(document).unbind('click.factoid').on('click.factoid', '.factoid', function(){
4943      if($(this).hasClass('on'))
4944      {
4945        $('.fact').removeClass('is-on').css('opacity', 0).removeClass('on').addClass('hidden');
4946        $('.plus').removeClass('on');
4947        var id = $(this).data('id');
4948        $('#fact' + id).css('opacity', 0).addClass('hidden');
4949        $('.factoid').removeClass('on');
4950      }
4951      else
4952      {
4953        $('.fact').removeClass('is-on');
4954        $('.plus').removeClass('on');
4955        var id = $(this).data('id');
4956        $('#fact' + id).css('opacity', 1).removeClass('hidden');
4957        $(this).addClass('on').find('.plus').addClass('on');
4958        setTimeout(function(){
4959          $('.fact').not('#fact' + id).addClass('hidden');
4960          $('#fact' + id).addClass('is-on');
4961        }, 100);
4962        
4963        ga('send', 'event', 'button', 'click', 'Mission Factoid', id);
4964      }
4965
4966    });
4967
4968    $(document).unbind('click.missionnav').on('click.missionnav', '.mission-nav-button', function(e){
4969      e.preventDefault();
4970
4971      if(!$(this).find('.dot').hasClass('current'))
4972      {
4973        var nw = parseInt($(this).data('w'));
4974        var nindex = parseInt($(this).data('index'));
4975
4976        $('.mission-nav-button .dot').removeClass('current');
4977        $(this).find('.dot').addClass('current');
4978
4979        $('.mission-nav-button .dot').each(function(i, v){
4980          if(i > nindex)
4981          {
4982            $(this).removeClass('active');
4983          }
4984          else
4985          {
4986            $(this).addClass('active');
4987          }
4988        });
4989
4990        animate($(this).find('.burst'), 1, 80, 12, 'forward', resetBurst);
4991
4992        if(nindex == 0)
4993        {
4994          ga('send', 'event', 'button', 'click', 'Mission Button', 'Launch');
4995          //reset mission
4996          $('#menu-item-58 a').click();
4997          //showAtlas();
4998        }
4999        else if(nindex == 1)
5000        {
5001          ga('send', 'event', 'button', 'click', 'Mission Button', 'Cruise');
5002          showCruise();
5003        }
5004        else if(nindex == 2)
5005        {
5006          ga('send', 'event', 'button', 'click', 'Mission Button', 'Arrival');
5007          showArrival();
5008        }
5009        else if(nindex == 3)
5010        {
5011          ga('send', 'event', 'button', 'click', 'Mission Button', 'Sample');
5012          showSample();
5013        }
5014        else if(nindex == 4)
5015        {
5016          ga('send', 'event', 'button', 'click', 'Mission Button', 'Return');
5017          showReturn();
5018        }
5019        else if(nindex == 5)
5020        {
5021          ga('send', 'event', 'button', 'click', 'Mission Button', 'Finale');
5022          callToAction();
5023        }
5024
5025        $('#mnav-inner-progress').stop().animate({width: nw + '%'}, 500);
5026      }
5027    });
5028
5029    $(document).unbind('mouseenter.missionsubnav').on('mouseenter.missionsubnav', '.mission-subnav-button', function(){
5030      var title = $(this).text();
5031      var w = parseFloat($(this).data('w')) - 2;
5032
5033      $('#mn-title').css({left: w + '%'}).text(title).addClass('active');
5034    });
5035
5036    $(document).unbind('mouseleave.missionsubnav').on('mouseleave.missionsubnav', '.mission-subnav-button', function(){
5037      $('#mn-title').removeClass('active');
5038    });    
5039
5040    $(document).unbind('click.missionsubnav').on('click.missionsubnav', '.mission-subnav-button', function(e){
5041      e.preventDefault();
5042
5043      if(!$(this).hasClass('current'))
5044      {
5045        var nw = parseFloat($(this).data('w'));
5046        var nindex = parseFloat($(this).data('index'));
5047
5048        $('.mission-subnav-button').removeClass('active').removeClass('current');
5049        $(this).addClass('active').addClass('current');
5050
5051        $('.mission-nav-button .dot').removeClass('current');
5052
5053        $('.mission-subnav-button').each(function(){
5054          var tindex = parseFloat($(this).data('index'));
5055          if(tindex > nindex)
5056          {
5057            $(this).removeClass('active');
5058          }
5059          else
5060          {
5061            $(this).addClass('active');
5062          }
5063        });
5064
5065
5066        $('.mission-nav-button .dot').each(function(i, v){
5067          if(i > nindex)
5068          {
5069            $(this).removeClass('active');
5070          }
5071          else
5072          {
5073            $(this).addClass('active');
5074          }
5075        });
5076
5077        $('#mnav-inner-progress').stop().animate({width: nw + '%'}, 500);
5078      
5079
5080        if(nindex == 1.1)
5081        {
5082          ga('send', 'event', 'button', 'click', 'Mission Button', 'Entering Solar Orbit');
5083          $('section, #launch-notes').fadeOut(500, function(){
5084            $('#atlas-cruise').fadeIn(500, function(){
5085              forceTimeline("September", "8", "2016");
5086
5087              cruise.init();
5088
5089              atlas.state = 'cruise';
5090              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5091
5092              closeM1();            
5093            });
5094          });
5095        }
5096        else if(nindex == 1.2)
5097        {
5098          ga('send', 'event', 'button', 'click', 'Mission Button', 'Gravity Assist');
5099          $('section, #launch-notes').fadeOut(500, function(){
5100            $('#atlas-cruise').fadeIn(500, function(){
5101              forceTimeline("September", "22", "2017");
5102    
5103              atlas.state = 'cruise';
5104              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5105
5106              moveToM3();         
5107            });
5108          });
5109        }
5110        else if(nindex == 2.1)
5111        {
5112          ga('send', 'event', 'button', 'click', 'Mission Button', 'Surveying Bennu');
5113          $('#black').fadeIn(500, function(){
5114              $('section, #launch-notes').hide();
5115              forceTimeline("December", "3", "2018");
5116              //arrival.init();
5117              atlas.state = 'arrival';
5118
5119              fullReset();
5120              $('#arrival-osiris').css({backgroundPosition:'0 0', opacity:1});
5121              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5122              $('#arrival').show();
5123              $('#black').delay(500).fadeOut(500, function(){
5124                moveToA2();         
5125              });              
5126          });
5127        }
5128        else if(nindex == 2.2)
5129        {
5130          ga('send', 'event', 'button', 'click', 'Mission Button', 'Explore Instruments');
5131
5132          $('#black').fadeIn(500, function(){
5133              $('section, #launch-notes').hide();
5134              forceTimeline("September", "10", "2019");
5135              //arrival.init();
5136              atlas.state = 'arrival';
5137
5138              fullReset();
5139
5140              var bleft;
5141              if(mode == 'full')
5142              {
5143                bleft = .2
5144              }
5145              else if(mode == 'medium')
5146              {
5147                bleft = .1;
5148              }
5149              else
5150              {
5151                bleft = .1;
5152              } 
5153
5154              $('#arrival-space').css({opacity:1});
5155              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5156              $('#arrival-bennu').css({width:1200, height:1081, top:-800, left:w * bleft, opacity:1});
5157              $('#arrival-osiris').css({width:281, height:700, top:'50%', left:'50%', opacity:1});
5158              $('.spec').css({maxHeight:h * .8});
5159
5160              $('#arrival').show();
5161              $('#black').delay(500).fadeOut(500, function(){
5162                moveToSensors();     
5163              });              
5164          });
5165        }
5166        else if(nindex == 3.1)
5167        {
5168          ga('send', 'event', 'button', 'click', 'Mission Button', 'Deploying TAGSAM');
5169
5170          $('#black').fadeIn(500, function(){
5171              $('section, #launch-notes').hide();
5172              forceTimeline("July", "4", "2020");
5173              //arrival.init();
5174              atlas.state = 'sample';
5175
5176              fullReset();
5177
5178              var bleft, btop;
5179              if(mode == 'full')
5180              {
5181                bleft = .3;
5182                btop = .5;
5183              }
5184              else if(mode == 'medium')
5185              {
5186                bleft = .2;
5187                btop = .8;
5188              }
5189              else
5190              {
5191                bleft = .2;
5192                btop = .8;
5193              }
5194              $('#sample-surface').hide();
5195              $('#sample-info, #sample-grad').removeClass('right');
5196              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5197              $('#sample-info').css({left:'-105%', padding:'0', opacity:1});
5198              $('#sample-grad').css({width:'25%'});
5199              $('#sample-content').css({left:0});
5200              $('#sample-bennu').css({width:915, height:824, top:-h * btop, left: w * bleft});
5201              $('#sample-osiris').css({backgroundPosition: '0 0', width:100, height:249, top:h * .7, left
5201:w * .55}).removeClass('arm').removeClass('return');
5202              $('.video-text .hide').hide();
5203
5204              $('#sample').show();
5205              $('#black').delay(500).fadeOut(500, function(){
5206                moveToS2();     
5207              });              
5208          });
5209        }
5210        else if(nindex == 3.2)
5211        {
5212          ga('send', 'event', 'button', 'click', 'Mission Button', 'Contacting the Surface');
5213
5214          $('#black').fadeIn(500, function(){
5215              $('section, #launch-notes').hide();
5216              forceTimeline("July", "4", "2020");
5217              //arrival.init();
5218              atlas.state = 'sample';
5219
5220              fullReset();
5221
5222              $('#sample').show();
5223              $('#black').delay(500).fadeOut(500, function(){
5224                moveToS3();     
5225              });              
5226          });
5227        }
5228        else if(nindex == 3.3)
5229        {
5230          ga('send', 'event', 'button', 'click', 'Mission Button', 'Sample Acquisition');
5231
5232          $('#black').fadeIn(500, function(){
5233              $('section, #launch-notes').hide();
5234              forceTimeline("July", "4", "2020");
5235              //arrival.init();
5236              atlas.state = 'sample';
5237
5238              fullReset();
5239
5240              $('#sample-surface').hide();
5241              $('#sample-info, #sample-grad').removeClass('right');
5242              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5243              $('#sample-content').css({left:0});
5244              $('#sample-bennu').css({opacity:0});
5245              $('#sample-osiris').css({opacity:0});
5246              $('.video-text .hide').hide();
5247
5248              $('#sample').show();
5249              $('#black').delay(500).fadeOut(500, function(){
5250                showAcquisition();     
5251              });              
5252          });
5253        }
5254        else if(nindex == 3.4)
5255        {
5256          ga('send', 'event', 'button', 'click', 'Mission Button', 'Stowing the Sample');
5257
5258          $('#black').fadeIn(500, function(){
5259              $('section, #launch-notes').hide();
5260              forceTimeline("July", "4", "2020");
5261              //arrival.init();
5262              atlas.state = 'sample';
5263
5264              fullReset();
5265
5266              var bleft, btop;
5267              if(mode == 'full')
5268              {
5269                bleft = .3;
5270                btop = .5;
5271              }
5272              else if(mode == 'medium')
5273              {
5274                bleft = .2;
5275                btop = .8;
5276              }
5277              else
5278              {
5279                bleft = .2;
5280                btop = .8;
5281              }
5282
5283              $('#sample-surface').hide();
5284              $('#sample-info, #sample-grad').removeClass('right');
5285              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5286              $('#sample-info').css({left:'-105%', width:'100%', padding:'0', opacity:1});
5287              $('#sample-grad').css({width:'25%'});
5288              $('#sample-content').css({left:0});
5289              $('#sample-bennu').css({width:915, height:824, top:-h * btop, left: w * bleft});
5290              $('#sample-osiris').css({backgroundPosition: '0 0', width:66, height:91, top:140, left:w * .55, opacity:1, 'transform': 'rotate(-90deg)'}).removeClass('return');
5291              $('.video-text .hide').hide();
5292
5293              $('#sample').show();
5294              $('#black').delay(500).fadeOut(500, function(){
5295                moveToS4();   
5296              });              
5297          });
5298        }
5299        else if(nindex == 4.1)
5300        {
5301          ga('send', 'event', 'button', 'click', 'Mission Button', 'Separation at Earth');
5302
5303          $('#black').fadeIn(500, function(){
5304              $('section, #launch-notes').hide();
5305              forceTimeline("September", "24", "2023");
5306              //arrival.init();
5307              atlas.state = 'return';
5308
5309              fullReset();
5310
5311              $('#return-info').css({width:'100%', left:'-105%'});
5312              $('#return-osiris').css({width:480, height:270, top:h * .4, left: w * .6, opacity:1, backgroundPosition: '0 0'});
5313              $('#return-bennu').css({width:100, height:90, top: 140, left: 120, display:'block'});
5314              $('#return-earth').css({width:100, height:100, top:400, left:800, opacity:1, zIndex:98});
5315
5316
5317              $('#return-grad').stop().css({width:'25%'});
5318              $('#return-content').css({left:0});
5319              $('#return-space').css({opacity:1, backgroundPositionX: '0 0'});
5320              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5321
5322              $('#cloud4').stop().css({top:1000});
5323              $('#cloud5').stop().css({top:1000});
5324              $('#cloud6').stop().css({top:1000});
5325              $('#return-capsule').stop().css({width:294, height:229, top:140, left:700, zIndex:-1, opacity:0}
5325);
5326              $('#return-ground').stop().css({top:'100%', zIndex:-1}).show();
5327              $('#capsule-parachute').stop().css({zIndex:-1, opacity:0});
5328
5329              $('#return-info-1').show();
5330              $('#return-info-2, #return-info-3').hide();
5331
5332              $('#return').show();
5333              $('#black').delay(500).fadeOut(500, function(){
5334                moveToR1();   
5335              });              
5336          });
5337        }
5338        else if(nindex == 4.2)
5339        {
5340          ga('send', 'event', 'button', 'click', 'Mission Button', 'Re-entry');
5341
5342          $('#black').fadeIn(500, function(){
5343              $('section, #launch-notes').hide();
5344              forceTimeline("September", "24", "2023");
5345              //arrival.init();
5346              atlas.state = 'return';
5347
5348              fullReset();
5349
5350              $('#return-info').css({width:'50%', left:'-55%'});
5351              $('#return-osiris').css({opacity:0});
5352              $('#return-bennu').css({display:'none'});
5353              $('#return-earth').css({opacity:0}
5353);
5354
5355
5356              $('#return-grad').stop().css({width:'25%'});
5357              $('#return-content').css({left:0});
5358              $('#return-space').css({opacity:0});
5359              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5360
5361              $('#cloud4').stop().css({top:1000});
5362              $('#cloud5').stop().css({top:1000});
5363              $('#cloud6').stop().css({top:1000});
5364              $('#return-capsule').stop().css({width:294, height:229, left:w * .8, top:h * .1, zIndex:200, opacity:1, 'transform': 'rotate(0deg)'});
5365              $('#return-ground').stop().css({top:'100%', zIndex:-1}).show();
5366              $('#capsule-parachute').stop().css({zIndex:-1, opacity:0});
5367
5368              $('#return-info-3').show();
5369              $('#return-info-1, #return-info-2').hide();
5370
5371              $('#return').show();
5372              $('#black').delay(500).fadeOut(500, function(){
5373                moveToR2();   
5374              });              
5375          });
5376        }
5377        else if(nindex == 4.3)
5378        {
5379          ga('send', 'event', 'button', 'click', 'Mission Button', 'Freefall');
5380
5381          $('#black').fadeIn(500, function(){
5382              $('section, #launch-notes').hide();
5383              forceTimeline("September", "24", "2023");
5384              //arrival.init();
5385              atlas.state = 'return';
5386
5387              fullReset();
5388
5389              var capsuleleft;
5390              if(mode == 'full')
5391              {
5392                capsuleleft = w * .45;
5393              }
5394              else if(mode == 'medium')
5395              {
5396                capsuleleft = w * .65;
5397              }
5398              else
5399              {
5400                capsuleleft = w * .65;
5401              }
5402              $('#return-info').css({width:'50%', left:'-55%'});
5403              $('#return-osiris').css({opacity:0});
5404              $('#return-bennu').css({display:'none'});
5405              $('#return-earth').css({opacity:0});
5406
5407
5408              $('#return-grad').stop().css({width:'25%'});
5409              $('#return-content').css({left:0});
5410              $('#return-space').css({opacity:0});
5411              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5412
5413              $('#cloud4').css({top:1000, opacity:1});
5414              $('#cloud5').css({top:1000, opacity:1});
5415              $('#cloud6').css({top:1000, opacity:1});
5416
5417              $('#return-capsule').css({top:h * .1, zIndex:200, width:100, height:78, left:capsuleleft, top: h * .2, opacity:1, 'transform': 'rotate(60deg)'});
5418
5419
5420              $('#return-ground').css({top:'100%', zIndex:-1}).show();
5421              $('#capsule-parachute').css({zIndex:-1, opacity:0});
5422
5423              $('#return-info-3').show();
5424              $('#return-info-1, #return-info-2').hide();
5425
5426              $('#return').show();
5427              $('#black').delay(500).fadeOut(500, function(){
5428                moveToR3();   
5429              });              
5430          });
5431        }
5432        else if(nindex == 4.4)
5433        {
5434          ga('send', 'event', 'button', 'click', 'Mission Button', 'Opening the Capsule');
5435
5436          $('#black').fadeIn(500, function(){
5437              $('section, #launch-notes').hide();
5438              forceTimeline("September", "24", "2023");
5439              //arrival.init();
5440              atlas.state = 'return';
5441
5442              fullReset();
5443
5444              $('#return-info').css({width:'50%', left:'-55%'});
5445              $('#return-osiris').css({opacity:0});
5446              $('#return-bennu').css({display:'none'});
5447              $('#return-earth').css({opacity:0});
5448
5449
5450              $('#return-grad').stop().css({width:'25%'});
5451              $('#return-content').css({left:0});
5452              $('#return-space').css({opacity:0});
5453              $('.btn').css({opacity:0, zIndex:-1}).removeClass('is-on');
5454
5455              $('#cloud4').css({top:1000, opacity:1});
5456              $('#cloud5').css({top:1000, opacity:1});
5457              $('#cloud6').css({top:1000, opacity:1});
5458
5459              $('#return-capsule').css({opacity:0});
5460
5461              $('#return-ground').css({top:'100%', zIndex:-1}).hide();
5462              $('#capsule-parachute').css({zIndex:-1, opacity:0}
5462);
5463
5464              $('#return-info-3').show();
5465              $('#return-info-1, #return-info-2').hide();
5466
5467              $('#return').show();
5468              $('#black').delay(500).fadeOut(500, function(){
5469                showCollection();  
5470              });              
5471          });
5472
5473        }
5474      }
5475
5476    });
5477
5478    $(document).unbind('click.video').on('click.video', 'video', function(){
5479      $(this).get(0).play();
5480    });
5481
5482    $(document).unbind('click.cruisenext').on('click.cruisenext', '#cruise-1-next, #cruise-1-next2', function(e){
5483      e.preventDefault();
5484      moveToM3();
5485    });
5486    $(document).unbind('click.cruisenext2').on('click.cruisenext2', '#cruise-2-next, #cruise-2-next2', function(e){
5487      e.preventDefault();
5488      moveToM4();
5489    });
5490    $(document).unbind('click.arrivalnext').on('click.arrivalnext', '#arrival-1-next, #arrival-1-next2', function(e){
5491      e.preventDefault();
5492      moveToA2();
5493    });
5494    $(document).unbind('click.arrivalnext2').on('click.arrivalnext2', '#arrival-2-next, #arrival-2-next2', function(e){
5495      e.preventDefault();
5496      moveToSensors();
5497    });
5498    $(document).unbind('click.arrivalspec').on('click.arrivalspec', '#arrival-spec-next', function(e){
5499      e.preventDefault();
5500      moveOffSensors();
5501    });
5502    $(document).unbind('click.sample1').on('click.sample1', '#sample-1-next', function(e){
5503      e.preventDefault();
5504      moveToS2();
5505    });
5506    $(document).unbind('click.sample2').on('click.sample2', '#sample-2-next, #sample-2-next2', function(e){
5507      e.preventDefault();
5508      moveToS3();
5509    });
5510    $(document).unbind('click.sample3').on('click.sample3', '#sample-3-next, #sample-3-next2', function(e){
5511      e.preventDefault();
5512      moveToS4();
5513    });
5514    $(document).unbind('click.sample4').on('click.sample4', '#sample-4-next, #sample-4-next2', function(e){
5515      e.preventDefault();
5516      moveToS5();
5517    });
5518    $(document).unbind('click.acquisitionnext').on('click.acquisitionnext', '#acquisition-next', function(e){
5519      e.preventDefault();
5520      showAcquisition();
5521    });
5522    $(document).unbind('click.returnnext').on('click.returnnext', '#return-1-next, #return-1-next2', function(e){
5523      e.preventDefault();
5524      moveToR1();
5525    });
5526    $(document).unbind('click.returnnext2').on('click.returnnext2', '#return-2-next, #return-2-next2', function(e){
5527      e.preventDefault();
5528      moveToR2();
5529    });
5530    $(document).unbind('click.returnnext3').on('click.returnnext3', '#return-3-next, #return-3-next2', function(e){
5531      e.preventDefault();
5532      moveToR3();
5533    });
5534    $(document).unbind('click.freefall').on('click.freefall', '#freefall-next', function(e){
5535      e.preventDefault();
5536      returnOutro();
5537    });
5538    $(document).unbind('click.collectionnext').on('click.collectionnext', '#collection-next2', function(e){
5539      e.preventDefault();
5540      $('#mission-nav-finale').click();
5541    });
5542    $(document).unbind('click.blastoff').on('click.blastoff', '#blastoff', function(e){
5543      e.preventDefault();
5544      $('html,body').animate({scrollTop: window.kf5}, 5000);
5545      $(this).fadeOut(500);
5546    });
5547
5548    setTimeline("September", "8", "2016");
5549
5550    $('.btn').each(function() {
5551      prepAnimatedBtn($(this));
5552    });
5553  }
5554  else
5555  {
5556    /*** Mission mobile js ****/
5557
5558    //console.log('mobile mission');
5559    var base_url = "/videos/";
5560    var mmqueue = null;
5561
5562    var m = {
5563      panel: 1,
5564      pane: 1,
5565      total_panes: 1,
5566      sections: {
5567        launch: {
5568          panel: 1,
5569          panes:1
5570        },
5571        cruise: {
5572          panel: 2,
5573          panes:1
5574        },
5575        arrival: {
5576          panel: 3,
5577          panes: 1
5578        },
5579        sample: {
5580          panel: 4,
5581          panes:1
5582        }, 
5583        ret:{
5584          panel: 5,
5585          panes: 1
5586        }, 
5587        collection:{
5588          panel: 6,
5589          panes: 1
5590        }
5591      }
5592    };
5593
5594    resizeMobileMission();
5595    $(window).on('resize.mobileMission', resizeMobileMission);
5596
5597    function resizeMobileMission()
5598    {
5599      $('html,body').css({overflow:'hidden'});
5600      w = $(window).width();
5601
5602      $('.slider').each(function(){
5603        $(this).css({width:w * $(this).find('.container-div').length});
5604      });
5605
5606      $('.container-div').css({width:w});
5607      $('html').css({overflow:'auto'});
5608      clearTimeout(mmqueue);
5609      mmqueue = setTimeout(function(){
5610
5611        if($.trim($('#video-container').html()).length)
5612          $('#video-container').animate({height:0, opacity:0}
5612, 500);
5613
5614        m.pane = 1;
5615
5616        $('.active .container-div').animate({marginLeft: 0}, 500, checkVideo);
5617      }, 500);  
5618    }
5619
5620
5621    function checkVideo()
5622    {
5623      var src1 = false;
5624      var src2 = false;
5625      var video_url = "//" + document.location.hostname + "/videos/";
5626      if(m.panel == 1)
5627      {
5628        ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Launch');
5629      }
5630      if(m.panel == 2)
5631      {
5632        if(m.pane == 1)
5633        {
5634          forceTimeline("September", "8", "2016");
5635          src1 = 'm1-unfold.webm';
5636          src2 = 'm1-unfold.mp4';
5637          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Cruise - Unfold');
5638        }
5639        else if(m.pane == 2)
5640        {
5641          src1 = 'outbound_cruise.webm';
5642          src2 = 'outbound_cruise.mp4';
5643          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Cruise - Outbound Cruise');
5644        }
5645        else if(m.pane == 3)
5646        {
5647          forceTimeline("September", "22", "2017");
5648          src1 = 'gravity-assist.webm';
5649          src2 = 'gravity-assist.mp4';
5650          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Cruise - Gravity Assist');
5651        }
5652      }
5653      else if(m.panel == 3)
5654      {
5655        if(m.pane == 1)
5656        {
5657          forceTimeline("December", "3", "2018");
5658          src1 = 'approaching_bennu.webm';
5659          src2 = 'approaching_bennu.mp4';
5660          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Approach - Approaching Bennu');
5661        }
5662        else if(m.pane == 2)
5663        {
5664          forceTimeline("September", "10", "2019");
5665          src1 = 'sensors.webm';
5666          src2 = 'sensors.mp4';
5667          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Approach - Surveying Bennu');
5668        }
5669        else if(m.pane == 3)
5670        {
5671          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Approach - Sensors');
5672        }
5673      }
5674      else if(m.panel == 4)
5675      {
5676        if(m.pane == 1)
5677        {
5678          forceTimeline("July", "4", "2020");
5679          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Sample - TAGSAM');
5680        }
5681        else if(m.pane == 2)
5682        {
5683          forceTimeline("July", "4", "2020");
5684          src1 = 'arm-deploy.webm';
5685          src2 = 'arm-deploy.mp4';
5686          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Sample - Deploying TAGSAM');
5687        }
5688        else if(m.pane == 3)
5689        {
5690          forceTimeline("July", "4", "2020");
5691          src1 = 'acquisition.webm';
5692          src2 = 'acquisition.mp4';
5693          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Sample - Sample acquisition');
5694        }
5695        else if(m.pane == 4)
5696        {
5697          forceTimeline("July", "4", "2020");
5698          src1 = 'stowing.webm';
5699          src2 = 'stowing.mp4';
5700          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Sample - Stowing the sample');
5701        }
5702      }
5703      else if(m.panel == 5)
5704      {
5705        if(m.pane == 1)
5706        {
5707          forceTimeline("March", "3", "2021");
5708          src1 = 'return-orbit.webm';
5709          src2 = 'return-orbit.mp4';
5710          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Return - Return orbit');
5711        }
5712        else if(m.pane == 2)
5713        {
5714          forceTimeline("September", "24", "2023");
5715          src1 = 'return.webm';
5716          src2 = 'return.mp4';
5717          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Return - Separation at Bennu');
5718        }
5719        else if(m.pane == 3)
5720        {
5721          forceTimeline("September", "24", "2023");
5722          src1 = 'reentry.webm';
5723          src2 = 'reentry.mp4';
5724          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Return - Re-entry');
5725        }
5726        else if(m.pane == 4)
5727        {
5728          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Return - Freefall');
5729        }
5730      }
5731      else if(m.panel == 6)
5732      {
5733        if(m.pane == 1)
5734        {
5735          src1 = 'capsule_open.webm';
5736          src2 = 'capsule_open.mp4';
5737          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Collection - Sample analysis');
5738        }
5739        else if(m.pane == 2)
5740        {
5741          ga('send', 'event', 'button', 'click', 'Mobile Mission Navigation', 'Collection - Get updates');
5742        }
5743      }
5744
5745      var source_html = '';
5746
5747      if(src1)
5748      {
5749        source_html += '<source src="' + video_url + src1 + '" type=\'video/webm;codecs="vp8, vorbis"\'/>';
5750      }
5751
5752      if(src2)
5753      {
5754        source_html += '<source src="' + video_url + src2 + '" type=\'video/mp4;codecs="avc1.42E01E, mp4a.40.2"\' />';
5755      }
5756
5757      if(source_html != '')
5758      {
5759        //$('#video-container').delay(700).html('<canvas width="600" height="300"></canvas><video controls autoplay>' + source_html + '</video>').animate({height:w * .55, opacity:1}, 500); 
5760
5761      }
5762
5763    }
5764
5765    $(document).unbind('click.accordion').on('click.accordion', 'ul.accordion li .expand', function(e){
5766      if($(this).parent().hasClass('active'))
5767      {
5768        $(this).parent().removeClass('active').find('.details').slide
5768Up(500);
5769      }
5770      else
5771      {
5772        $('ul.accordion li .expand').parent().removeClass('active').find('.details').slideUp(500);
5773        $(this).parent().addClass('active').find('.details').slideDown(500);
5774        
5775        var newtop = $(this).parent().prev().offset().top;
5776        var name = $(this).data('name');
5777
5778        ga('send', 'event', 'button', 'click', 'Mobile Mission Accordion', name);
5779
5780        setTimeout(function(){
5781          $('html,body').animate({scrollTop: newtop }, 500);   
5782        }, 500);    
5783      }
5784    });
5785
5786    $(document).unbind('click.prevlink').on('click.prevlink', '.prev-link', function(e){
5787      e.preventDefault();
5788      missionMobilePrev();
5789    });
5790
5791    $(document).unbind('click.nextlink').on('click.nextlink', '.next-link', function(e){
5792      e.preventDefault();
5793      missionMobileNext();
5794    });
5795
5796    $(document).unbind('click.mjump').on('click.mjump', '.mobile-jump a', function(e){
5797      e.preventDefault();
5798      var panel = $(this).data('panel');
5799      $('.mobile-jump li').removeClass('first');
5800      $(this).parent().addClass('first');
5801      missionJumpPoint(panel);
5802    });
5803
5804    function missionJumpPoint(panel){
5805      m.pane = 1;
5806      m.panel = panel;
5807
5808      $('.mission-mobile section').removeClass('active');
5809      $('.prev-link, .next-link, .mission-mobile section').fadeOut(500);
5810
5811      var $panel = $('section[data-panel="' + m.panel + '"]');
5812
5813      $panel.delay(700).fadeIn(500).addClass('active');
5814      $('.prev-link, .next-link').delay(1000).fadeIn(500);
5815      m.total_panes = $panel.find('.container-div').length;
5816      m.pane = m.total_panes;
5817
5818    }
5819
5820    function missionMobilePrev()
5821    {
5822      $('#video-container').animate({height:0, opacity:0},500);
5823      m.pane -= 1;
5824
5825      if(m.pane < 1)
5826      {
5827        if(m.panel == 1)
5828          return;
5829
5830        m.panel -= 1;
5831        $('.mobile-jump li').removeClass('first');
5832        $('.mobile-jump li a[data-panel="' + m.panel + '"]').parent().addClass('first');
5833        
5834        $('.mission-mobile section').removeClass('active');
5835        $('.prev-link, .next-link, .mission-mobile section').fadeOut(500);
5836
5837        var $panel = $('section[data-panel="' + m.panel + '"]');
5838
5839        $panel.delay(700).fadeIn(500).addClass('active');
5840        $('.prev-link, .next-link').delay(1000).fadeIn(500);
5841        m.total_panes = $panel.find('.container-div').length;
5842        m.pane = m.total_panes;
5843
5844        setTimeout(function(){
5845          $panel.find('.slider').css('margin-left', -w * (m.pane - 1));
5846        }, 700);
5847
5848        checkVideo();
5849           
5850      }
5851      else
5852      {
5853        $('html,body').animate({scrollTop: 0}, 500, function(){
5854          $('.active .slider').animate({marginLeft: -w * (m.pane - 1)}, 500, checkVideo);          
5855        });
5856
5857      }  
5858    }
5859
5860    function missionMobileNext()
5861    {
5862      $('#video-container').animate({height:0, opacity:0},500);
5863      m.pane += 1;
5864
5865      if(m.pane > m.total_panes)
5866      {
5867        if(m.panel == 6)
5868          return;
5869
5870        m.panel += 1;
5871        $('.mobile-jump li').removeClass('first');
5872        $('.mobile-jump li a[data-panel="' + m.panel + '"]').parent().addClass('first');
5873        
5874        $('.mission-mobile section').removeClass('active');
5875        $('.prev-link, .next-link, .mission-mobile section').fadeOut(500);
5876        setTimeout(function(){
5877          $('.container-div').css('margin-left', 0);
5878        }, 700);
5879
5880
5881        var $panel = $('section[data-panel="' + m.panel + '"]');
5882
5883        $panel.delay(700).fadeIn(500).addClass('active');
5884          var fade = $panel.find('.fade-in');
5885          fade.find('h1').css({marginTop: (h / 2) + 10, opacity:0}).animate({marginTop:(h / 2) - 10, opacity:1}, 3000, function(){
5886            fade.fadeOut(1000);
5887            $('.prev-link, .next-link').delay(1000).fadeIn(500);
5888            m.pane = 1;
5889            m.total_panes = $panel.find('.container-div').length;
5890
5891            checkVideo();
5892          });
5893          fade.show(); 
5894
5895          $panel.delay(700).fadeIn(500).addClass('active');         
5896      }
5897      else
5898      {
5899        $('html,body').animate({scrollTop: 0}, 500, function(){
5900          $('.active .slider').animate({marginLeft: -w * (m.pane - 1)}, 500, checkVideo);
5901        });
5902      }      
5903    }
5904  }
5905}
5906
5907  if(window.location.pathname == '/mission/mission-mobile/')
5908  {
5909    //window.isMobile = function(){return true;};
5910    $('main').addClass('mission-mobile');
5911    launchSite();
5912  }
5913
5914  if(window.location.pathname == '/mission/')
5915  {
5916    if(window.isMobile())
5917    {
5918      window.location = '/mission/mission-mobile/';
5919    }
5920
5921    missionInit();
5922  }
5923
5924  $(document).unbind('click.launchmobile').on('click.launchmobile', '#launch-mobile-mission-button', function(e){
5925    e.preventDefault();
5926    $('html,body').animate({scrollTop:0}, 500, function(){
5927      $('#m1').fadeOut();
5928      $('.mobile-jump').fadeIn();
5929    });
5930  });
5931
5932    /****** end mission page *******************/
5933
5934    return api;
5935})();
5936},{}],12:[function(require,module,exports){
5937module.exports = (function() {
5938    var api = {};
5939
5940    var isAvailable = false,
5941            isOpen = false,
5942            savedScrollPos = 0,
5943            fixedClass = 'is-fixed',
5944            activeClass = 'is-active',
5945            showingClass = 'is-showing-nav',
5946            xClass = 'is-x',
5947            $navbar = $('#navbar'),
5948            $navInner = $('#nav-inner'),
5949            $footer = $('#site-footer'),
5950            $subscribe = $('#subscribe-c'),
5951            $page = $('#page'),
5952            // overlay for fade site body
5953            $overlay = $('<div />').addClass('site-overlay fill')
5954            .prependTo($page),
5955            // insert nav button for mobile (CSS hides it on non-mobile)
5956            $navicon = $('<div class="navicon gradient-gray">\
5957              <div class="inv inv-line inv-line-1"></div>\
5958              <div class="inv inv-line inv-line-2"></div>\
5959              <div class="inv inv-tri inv-tri-1"></div>\
5960              <div class="inv inv-tri inv-tri-2"></div>\
5961              <div class="inv inv-tri inv-tri-3"></div>\
5962              <div class="inv inv-tri inv-tri-4"></div>\
5963            </div>'),
5964            $navBtn = $('<button />').addClass('mbl-nav-btn')
5965            .append($navicon)
5966            .insertAfter('#site-title'),
5967            // insert nav closer button
5968            $closer = $('<div />').addClass('navbar-closer')
5969            .text('close')
5970            .hide()
5971            .insertAfter($navBtn);
5972
5973    // initial check
5974    checkWidth();
5975
5976    // EVENTS
5977    $navBtn.on('click.nav', function() {
5978        if (isOpen) {
5979            close();
5980        } else {
5981            open();
5982        }
5983    });
5984    // TODO: debounce this
5985    $(window).on('resize.nav', checkWidth);
5986
5987    function setup() {
5988        // stick header to top
5989        $navbar.addClass(fixedClass);
5990
5991        // copy contents of footer into flyout
5992        $navInner.append($footer);
5993        $subscribe.appendTo($footer);
5994
5995        // set state
5996        isAvailable = true;
5997    }
5998
5999    function destroy() {
6000        // unstick header from top
6001        $navbar.removeClass(fixedClass);
6002
6003        // show the nav
6004        $navInner.add($page).attr('style', '');
6005        $overlay.add($closer).hide();
6006
6007        // put contents of footer back where they belong
6008        $page.append($subscribe, $footer);
6009
6010        // set state
6011        isOpen = false;
6012        isAvailable = false;
6013    }
6014
6015    function checkWidth() {
6016        var isFlyoutSize = window.isMobile();
6017
6018        if (!isAvailable && isFlyoutSize) {
6019            setup();
6020        } else if (isAvailable && !isFlyoutSize) {
6021            destroy();
6022        }
6023    }
6024
6025    function open() {
6026        // save the current scroll position so we can return
6027        // to it when nav closes
6028        savedScrollPos = window.$win.scrollTop();
6029
6030        // make sure the nav will open at the top of the
6031        // current viewport
6032        $navInner.css({top: savedScrollPos});
6033
6034        // set display, delay, then add animation class
6035        $navInner.show();
6036        $overlay.show();
6037        setTimeout(function() {
6038            // $navInner.addClass(activeClass);
6039            $page.addClass(showingClass);
6040        }, 40);
6041
6042        // after the animation (crudely just timed), do things
6043        setTimeout(function() {
6044            // fixed height of page to nav
6045            $page.css({
6046                height: $navInner.height() + $navbar.height(),
6047                overflow: 'hidden'
6048            });
6049
6050            // and put us at the top
6051            $navInner.css({top: 0});
6052            window.$win.scrollTop(0);
6053
6054            // then show the nav
6055            $navInner.addClass(activeClass);
6056            $closer.show();
6057        }, 300);
6058
6059        // change navicon
6060        $navicon.addClass(xClass);
6061
6062        // make closer work
6063        $closer.on('click.nav', close);
6064
6065        // set state
6066        isOpen = true;
6067    }
6068
6069    function close() {
6070        // basically just invert the open() actions
6071
6072        // hide the nav
6073        $navInner.removeClass(activeClass);
6074
6075        setTimeout(function() {
6076            $navInner.hide();
6077
6078            // revert scroll position and height
6079            $page.attr('style', '');
6080            window.$win.scrollTop(savedScrollPos);
6081        }, 300);
6082
6083        // show the body
6084        setTimeout(function() {
6085            $page.removeClass(showingClass);
6086        }, 340);
6087
6088        // display: none the overlay
6089        setTimeout(function() {
6090            $overlay.hide();
6091            $closer.hide();
6092        }, 640);
6093
6094        $navicon.removeClass(xClass);
6095        $closer.off('.nav');
6096
6097        // set state
6098        isOpen = false;
6099    }
6100
6101    api.setup = setup;
6102    api.destroy = destroy
6103
6104    return api;
6105})();
6106
6107
6108},{}],13:[function(require,module,exports){
6109var analytics = require('./analytics');
6110
6111module.exports = (function() {
6112    var api = {};
6113    
6114    api.init = function () {
6115        //register form
6116        $('#message-bennu').each(function () {
6117            var $form = $(this);
6118            
6119            $form.submit(function (e) {
6120                e.preventDefault();
6121                
6122                analytics.event('form', 'submitting', $form.attr('id'));
6123                
6124                $form.find('.form-submit').prop('disabled', true);
6125                
6126                var data = {
6127                    ajax: true
6128                }
6129
6130                var fData = $form.find( ":input" ).serializeArray();
6131                
6132                for(var i in fData){
6133                    data[fData[i].name] = fData[i].value
6134                }
6135                
6136                $.post('/', data).success(function (response) {
6137                    if (response.success)
6138                    {
6139                        if (response.data.cert_id === '00000000') 
6140                        {
6141                            $form.find('.error-message ul').html('<li>Duplicate entry.</li>');
6142                            $form.addClass('m-error');
6143                            $form.find('.form-submit').prop('disabled', false);
6144                            analytics.event('form', 'duplicate-entry', $form.attr('id'));
6145                        }
6146                        else
6147                        {
6148                            $form.addClass('m-success');
6149                            $form.removeClass('m-error');
6150                            $form.find('.success-message').append('<h3 class="f-center heading-3"><a target="_blank" href="' + response.data.cert_url + '">Click here to download your certificate</a></h3>');
6151                            analytics.event('form', 'submited', $form.attr('id'));
6152                        }
6153                    }
6154                    else
6155                    {
6156                        alert('An error occured, Please try again later.');
6157                        $form.find('.form-submit').prop('disabled', false);
6158                        analytics.event('form', 'error', $form.attr('id'));
6159                    }
6160                }).fail(function () {
6161                    alert('An error occured, Please try again later.');
6162                    $form.find('.form-submit').prop('disabled', false);
6163                    analytics.event('form', 'error', $form.attr('id'));
6164                });
6165                
6166                return false;
6167            });
6168        });
6169    };
6170
6171    api.init();
6172    
6173    return api;
6174})();
6175
6176},{"./analytics":1}],14:[function(require,module,exports){
6177var analytics = require('./analytics');
6178
6179module.exports = (function() {
6180    var api = {};
6181
6182    api.init = function() {
6183        var $form = $('#subscribe-form');
6184        
6185        $form.find('.form-fields').css({
6186            'max-height': $form.height()
6187        });
6188        
6189        if ($form.length === 0)
6190            return;
6191
6192        $form.submit(function (e) {
6193            e.preventDefault();
6194            
6195            analytics.event('form', 'submitting', 'newsletter-form');
6196            
6197            $form.find('#subscribe-input').prop('disabled', true);
6198            
6199            var data = {
6200                wp_form_id: 'WP_FORM_NEWSLETTER',
6201                contact_email: $form.find('#subscribe-input').val(),
6202                ajax: true
6203            }
6204            
6205            $.post('/', data).success(function (response) {
6206                if (response.success)
6207                {
6208                    $form.slideUp(500);
6209                    $('#subscribe-notice').addClass('m-success').text('Thank y
6209ou for subscribing. You will receive mission updates as they become available.');
6210                    analytics.event('form', 'submited', 'newsletter-form');
6211                }
6212                else
6213                {
6214                    alert('An error occured, Please try again later.');
6215                    $form.find('#subscribe-input').prop('disabled', false);
6216                    analytics.event('form', 'error', 'newsletter-form');
6217                }
6218                
6219            }).fail(function () {
6220                alert('An error occured, Please try again later.');
6221                $form.find('#subscribe-input').prop('disabled', false);
6222                analytics.event('form', 'error', 'newsletter-form');
6223            });
6224            
6225            return false;
6226        });
6227    }
6228
6229    api.init();
6230
6231    return api;
6232})();
6233
6234},{"./analytics":1}],15:[function(require,module,exports){
6235var fancyTitle = require('./fancy-title'),
6236    fancyBorder = require('./fancy-border'),
6237    team = require('./team'),
6238    qaSubmission = require('./qa-submission'),
6239    qaAccordion = require('./qa-accordion'),
6240    contact = require('./contact'),
6241    targetAsteroids = require('./target-asteroids'),
6242    buttonAnimations = require('./button-animation'),
6243    msgBennu = require('./msg-bennu'),
6244    newsletter = require('./newsletter'),
6245    socialMedia = require('./social-media'),
6246    downloads = require('./downloads');
6247
6248module.exports = (function() {
6249    var api = {};
6250
6251    function runPageScript() {
6252        $('.js-preload-image').hide();
6253        
6254        // make location.pathname match above naming convention
6255
6256        var page = window.location.pathname
6257                .replace(/^[\/]|[\/]$/g, '')
6258                .replace(/[\/-]/g, '_');
6259
6260        //Check 404
6261        if ($('#fourohfour').length) {
6262            page = 'four_oh_four';
6263            pages.four_oh_four();
6264        } else {
6265
6266            if (page.substr(0, 7) === 'mission')
6267            {
6268
6269                if(window.isMobile() || window.iOS)
6270                {
6271                    $('main').addClass('mission-mobile');
6272                    launchSite();
6273                }
6274                else
6275                {
6276                    $('#m1').css('height', $(window).height());
6277                    missionInit();
6278                }
6279
6280                
6281                // if using cf7 for the subscription...
6282                //jQuery.get('/wp-content/plugins/contact-form-7/includes/js/scripts.js', function(data) { eval(data); });
6283
6284            }
6285            else
6286            {
6287                $('body').removeClass('page-id-30');
6288                $('main').removeClass('mission-mobile').removeClass('mission').css({height:'auto'});
6289                $('#site-footer, #subscribe-c').slideDown(500);
6290                $('#site-body').css({height: 'auto'});
6291                $('.footer-section').slideDown(500);
6292            }
6293
6294            //Team page
6295            team.init();
6296            
6297            // Q&A Page
6298            if (page.substr(page.length - 2) === 'qa')
6299            {
6300                qaSubmission.init();
6301                qaAccordion.init();
6302            }
6303            
6304            //target asteroids FAQs
6305            if (page.substr(page.length - 4) === 'faqs')
6306            {
6307                qaAccordion.init();
6308            }
6309            console.log('page');
6310            if (page === '') {
6311                $('body').addClass('home');
6312            } else {
6313                $('body').removeClass('home');
6314
6315                if(window.location.pathname.indexOf('where-is-osiris-rex') > -1)
6316                {
6317                    $('body').addClass('page-id-480');
6318                }
6319                else
6320                {
6321                    $('body').removeClass('page-id-480');
6322                }
6323            }
6324            
6325            if($('#timer').length)
6326            {
6327                clearInterval(window.timeinterval);
6328                
6329                var deadline = '9/22/2017 10:26:00 UTC-0700';
6330
6331                if($('#timer').data('date').length)
6332                {
6333                    deadline = $('#timer').data('date');
6334                }
6335
6336                $.getScript('/wp-content/themes/osiris/public_assets/js/countdown.js', function() {
6337
6338                    window.timeinterval = setInterval(function(){
6339                        var cd = countdown(null, Date.parse(deadline), countdown.DAYS);
6340                        var t = cd.value;
6341
6342                        var seconds = Math.floor( (t/1000) % 60 );
6343                        var minutes = Math.floor( (t/1000/60) % 60 );
6344                        var days = Math.floor( t/(1000*60*60*24) );
6345                        var hours = Math.floor( (t/(1000*60*60)) % 24 ); // factor daylight savings
6346
6347                        if(seconds < 0)
6348                        seconds = 0;
6349
6350                        if(minutes < 0)
6351                        minutes = 0;
6352
6353                        if(hours < 0)
6354                        hours = 0;
6355
6356                        if(days < 0)
6357                        days = 0;
6358
6359                        $('#timer .t-days').text(days < 100 ? ('0' + days).slice(-2) : days);
6360                        $('#timer .t-hours').text(('0' + hours).slice(-2));
6361                        $('#timer .t-minutes').text(('0' + minutes).slice(-2));
6362                        $('#timer .t-seconds').text(('0' + seconds).slice(-2));
6363
6364                        if(t.total<=0){
6365                          clearInterval(window.timeinterval);
6366                        }
6367                    },1000);
6368                });
6369            }
6370
6371            if($('#home-craft').length)
6372            {
6373                homescroll.init();
6374            }
6375
6376            //contact form
6377            contact.init();
6378
6379            //newsletter form
6380            newsletter.init();
6381            
6382            //target ast. pages
6383            targetAsteroids.init();
6384            
6385            //messages to bennu
6386            msgBennu.init();
6387
6388            fancyTitle.sizeTitle();
6389            fancyBorder.init();
6390            buttonAnimations.init();
6391            socialMedia.init();
6392            downloads.init();
6393        }
6394
6395        $('select').selectize({});
6396    }
6397
6398    $(document).on('runPageScriptsPlease', function() {
6399        runPageScript();
6400    });
6401
6402    api.runPageScript = runPageScript;
6403
6404    return api;
6405})();
6406
6407},{"./button-animation":2,"./contact":3,"./downloads":4,"./fancy-border":6,"./fancy-title":7,"./msg-bennu":13,"./newsletter":14,"./qa-accordion":17,"./qa-submission":18,"./social-media":20,"./target-asteroids":21,"./team":22}],16:[function(require,module,exports){
6408module.exports = (function() {
6409    var api = {};
6410
6411    api.iframe = function(url, width, height, name, callback) {
6412        width = width || 575;
6413        height = height || 500;
6414        
6415        var $wrapper = $('<div class="popup-wrapper"></div>'),
6416                $iframe = $('<iframe>').attr('src', url).css({
6417                    width: width + 'px',
6418                    height: height + 'px',
6419                    'margin-left': -(width/2) + 'px',
6420                    'margin-top': -(height/2) + 'px'  
6421                }).appendTo($wrapper)
6422        
6423        $('body').append($wrapper);
6424        
6425        return $iframe;
6426    };
6427    
6428    api.window = function(url, name, width, height, callback) {
6429        width = width || 575;
6430        height = height || 500;
6431        
6432        var left = ($(window).width() - width) / 2,
6433                top = ($(window).height() - height) / 2,
6434                opts = 'status=1,width=' + width + ',height=' + height + ',top=' + top + ',left=' + left;
6435
6436        return window.open(url, name, opts);
6437    };
6438
6439    return api;
6440})();
6441},{}],17:[function(require,module,exports){
6442var buttonAnimations = require('./button-animation');
6443
6444module.exports = (function() {
6445    var api = {};
6446
6447    function openAnswer(e) {
6448        e.preventDefault();
6449
6450        var activeClass = 'is-active',
6451                $more = $(this),
6452                $answer = $more.closest('.qa-a'),
6453                $section = $answer.closest('.qa-section'),
6454                $summary = $answer.find('.qa-summary').first(),
6455                $full = $answer.find('.qa-full').first(),
6456                $head = $answer.parent().parent();
6457
6458        $('html,body').animate({scrollTop: $head.offset().top - 140});
6459
6460        function toggleAnswer(opening) {
6461
6462            function toggleMore(cb) {
6463                cb = cb || function() {
6464                };
6465                $more.fadeToggle(300, cb);
6466            }
6467
6468            function toggleFull(cb, slideSecond) {
6469                cb = cb || function() {
6470                };
6471                if (!$full.data('is-ready')) {
6472                    var $close = $('<p class="qa-close-c f-center"><button class="btn btn-close qa-close"><span class="btn-helper"></span></button></p>')
6473                            .on('click', function() {
6474                                toggleAnswer(false);
6475                            })
6476                            .appendTo($full);
6477                    var totalTime = 0,
6478                            offset = 150;
6479                    buttonAnimations.prepAnimatedBtn($close.find('.btn').first());
6480                    $full.find('p').each(function(i) {
6481                        $(this).css({transition: 'all 350ms ease-out ' + (i * offset) + 'ms'});
6482                        totalTime += offset;
6483                    });
6484                    $full.data('totalTime', totalTime);
6485                    $full.data('is-ready', true);
6486                }
6487                if (!slideSecond) {
6488                    $full.slideToggle(300, 'linear', function() {
6489                        $full.toggleClass(activeClass);
6490                        cb();
6491                    });
6492                } else {
6493                    $full.toggleClass(activeClass);
6494                    setTimeout(function() {
6495                        $full.slideToggle(300, 'linear', cb);
6496                    }, $full.data('totalTime'));
6497                }
6498            }
6499
6500            if (opening) {
6501                toggleMore(toggleFull);
6502            } else {
6503                toggleFull(toggleMore, true);
6504            }
6505        }
6506
6507        toggleAnswer(true);
6508
6509        return false;
6510    }
6511
6512    api.init = function() {
6513        var $moreLinks = $('.qa-more');
6514        if (!$moreLinks.length)
6515            return;
6516        
6517        $moreLinks.on('click', openAnswer);
6518    }
6519
6520    api.init();
6521
6522    return api;
6523})();
6524},{"./button-animation":2}],18:[function(require,module,exports){
6525var facebook = require('./facebook'),
6526        google = require('./google'),
6527        twitter = require('./twitter'),
6528        analytics = require('./analytics');
6529
6530module.exports = (function() {
6531    var api = {};
6532
6533    var source = {
6534        facebook: 'Facebook',
6535        twitter: 'Twitter',
6536        google: 'Google+',
6537        email: 'Email'
6538    }
6539
6540    api.init = function() {
6541        var $form = $('#ask-form'),
6542                $askEmailBtn = $('#ask-email-btn'),
6543                $askEmailName = $('#ask-email-name'),
6544                $askEmailEmail = $('#ask-email-email'),
6545                $askEmailForm = $('#ask-email-form'),
6546                activeClass = 'is-active';
6547
6548        api.fillForm = function(email, name, pic, source, button) {
6549            $form.find('#qa-email').val(email);
6550            $form.find('#qa-source').val(source);
6551            $form.find('#qa-pic').val(pic);
6552            $form.find('#qa-name').val(name);
6553
6554            $form.find('#ask-submit').prop('disabled', false);
6555
6556            $form.find('.footer-social-link').removeClass(activeClass);
6557            button.addClass(activeClass);
6558
6559            //show hide form based on the selection
6560            if (button.attr('id') === 'ask-email-btn')
6561            {
6562                $askEmailForm.removeClass('m-hidden');
6563            }
6564            else
6565            {
6566                $askEmailForm.addClass('m-hidden');
6567            }
6568        }
6569
6570        if(typeof grecaptcha == "object" && $('#qa-recaptcha').length)
6571        {
6572            grecaptcha.render('qa-recaptcha', {
6573              'sitekey' : '6LdytwUTAAAAAPW3vjNF0Ny1xHw19lhRWdv9QV0m'
6574            });
6575        }
6576        
6577        $askEmailBtn.on('click', function(e) {
6578
6579            var $this = $(this),
6580                    mbl = window.isMobile();
6581                    
6582            analytics.event('qa-ask-via', 'click', 'email');
6583
6584            emailFormFieldChanged();
6585
6586            if ($askEmailBtn.hasClass(activeClass)) {
6587                if (mbl) {
6588                    $('html,body').animate({scrollTop: $(this).offset().top - 48}, 'fast');
6589                    $askEmailName.focus();
6590                } else {
6591                    setTimeout(function() {
6592                        $askEmailName.focus();
6593                    }, 300);
6594                }
6595            } else {
6596                $askEmailBtn.blur();
6597            }
6598        });
6599
6600        var emailFormFieldChanged = function() {
6601            api.fillForm($askEmailEmail.val(), $askEmailName.val(), 'http://www.gravatar.com/avatar/' + md5($askEmailEmail.val()), 'Email', $askEmailBtn);
6602        }
6603        $askEmailName.change(emailFormFieldChanged);
6604        $askEmailEmail.change(emailFormFieldChanged);
6605
6606
6607        //Post with FB
6608        $('#ask-fb-btn').click(function(e) {
6609            e.preventDefault();
6610            
6611            analytics.event('qa-ask-via', 'click', 'facebook');
6612
6613            var $this = $(this);
6614
6615            //get user details
6616            facebook.call(function() {
6617                FB.api('/me', function(response) {
6618                    var name = response.name,
6619                        email = response.email || '[email protected]';
6620
6621                    //get user pic
6622                    FB.api('/me/picture', {type: 'normal'}, function(response) {
6623                        var pic = response.data.url;
6624
6625                        api.fillForm(email, name, pic, source.facebook, $this);
6626                    });
6627                })
6628            });
6629
6630            return false;
6631        });
6632
6633
6634        //Post with Google
6635        $('#ask-google-btn').click(function(e) {
6636            e.preventDefault();
6637            
6638            analytics.event('qa-ask-via', 'click', 'google+');
6639
6640            var $this = $(this);
6641
6642            //get user details
6643            google.call(function() {
6644                gapi.client.load('plus', 'v1', function() {
6645                    var request = gapi.client.plus.people.get({
6646                        'userId': 'me'
6647                    });
6648
6649                    request.execute(function(resp) {
6650                        api.fillForm(resp.emails[0].value, resp.displayName, resp.image.url, source.google, $this);
6651                    });
6652                });
6653            }, function() {
6654                $this.blur();
6655            });
6656
6657            return false;
6658        });
6659
6660        //Post with Twitter
6661        $('#ask-tw-btn').click(function(e) {
6662            e.preventDefault();
6663            
6664            analytics.event('qa-ask-via', 'click', 'twitter');
6665
6666            var $this = $(this);
6667
6668            //get user details
6669            twitter.call('twitter_api_get_user', function(resp) {
6670                api.fillForm('@' + resp.screen_name, resp.name, resp.profile_image_url_https, source.twitter, $this);
6671            });
6672
6673            return false;
6674        });
6675
6676        //Handle form submission
6677        $form.submit(function(e) {
6678            e.preventDefault();
6679
6680            var data = {
6681                wp_form_id: $form.find('#qa-form-id').val(),
6682                name: $form.find('#qa-name').val(),
6683                pic: $form.find('#qa-pic').val(),
6684                source: $form.find('#qa-source').val(),
6685                question: $form.find('#ask-message').val(),
6686                email: $form.find('#qa-email').val(),
6687                'g-recaptcha-response': $form.find('#g-recaptcha-response').val(),
6688                ajax: true
6689            }
6690
6691            //validations
6692            if (data.question === '') {
6693                alert('Please enter your question');
6694                return;
6695            }
6696
6697            analytics.event('form', 'submitting', 'qa-ask-question');
6698
6699            $.post('/', data).success(function(response) {
6700                if (response.success)
6701                {
6702                    $form.find('#qa-name').val('');
6703                    $form.find('#qa-pic').val('');
6704                    $form.find('#qa-source').val('');
6705                    $form.find('#ask-message').val('');
6706                    $form.find('.footer-social-link').removeClass(activeClass);
6707                    $askEmailForm.addClass('m-hidden');
6708                    $form.find('#ask-submit').prop('disabled', true);
6709                    $form.addClass('m-success');
6710
6711                    //share it on SM if possible
6712                    if (data.source === source.facebook)
6713                    {
6714                        facebook.wallPost({
6715                            caption: data.question,
6716                            link: window.location.href
6717                        });
6718                    }
6719                    else if (data.source === source.google)
6720                    {
6721                        google.wallPost({
6722                            url: window.location.href
6723                        });
6724                    }
6725                    else if (data.source === source.twitter)
6726                    {
6727                        twitter.wallPost({
6728                            message: data.question,
6729                            url: window.location.href
6730                        });
6731                    }
6732
6733                    analytics.event('form', 'submited', 'qa-ask-question');
6734                } else {
6735                    analytics.event('form', 'error', 'qa-ask-question');
6736                }
6737            }).fail(function() {
6738                alert('An error occured, Please try again later.');
6739                analytics.event('form', 'error', 'qa-ask-question');
6740            });
6741
6742            return false;
6743        });
6744    }
6745
6746    api.init();
6747
6748    return api;
6749})();
6750
6751},{"./analytics":1,"./facebook":5,"./google":8,"./twitter":23}],19:[function(require,module,exports){
6752/**
6753 * FURTHER READING SOURCE ORDER SHUFFLING
6754 * further reading goes above article footer,
6755 * and search goes after further reading
6756 */
6757module.exports = (function() {
6758    var api = {};
6759
6760    var $further = $('#article-further');
6761    if (!$further.length)
6762        return;
6763
6764    var isMoved = false,
6765            $articleFooter = $('#article-footer'),
6766            $search = $('#side-search'),
6767            $archive = $('#side-archive');
6768
6769    function moveFurther() {
6770        $further.insertBefore($articleFooter);
6771        $search.css({'margin-top': 0})
6772                .appendTo($further);
6773        isMoved = true;
6774    }
6775
6776    function returnFurther() {
6777        $further.insertAfter($articleFooter);
6778        $search.attr('style', '')
6779                .insertBefore($archive);
6780        isMoved = false;
6781    }
6782
6783    function checkWidth() {
6784        var mbl = window.isMobile();
6785        if (!isMoved && mbl) {
6786            moveFurther();
6787        } else if (isMoved && !mbl) {
6788            returnFurther();
6789        }
6790    }
6791
6792    checkWidth();
6793    // TODO: debounce this
6794    window.$win.on('resize.further', checkWidth);
6795
6796    return api;
6797})();
6798
6799},{}],20:[function(require,module,exports){
6800var facebook = require('./facebook'),
6801        google = require('./google'),
6802        twitter = require('./twitter'),
6803        analytics = require('./analytics');
6804
6805module.exports = (function() {
6806    var api = {
6807        init: function () {
6808            $('.share-url-twitter').click(function (e) {
6809                e.preventDefault();
6810                
6811                twitter.wallPost({
6812                    message: document.URL
6813                });
6814                
6815                analytics.social('twitter', 'share', document.URL);
6816                
6817                return false;
6818            });
6819            
6820            $('.share-url-facebook').click(function (e) {
6821                e.preventDefault();
6822                
6823                facebook.wallPost({
6824                    link: document.URL
6825                });
6826                
6827                analytics.social('facebook', 'share', document.URL);
6828                
6829                return false;
6830            });
6831        }
6832    };
6833
6834    api.init();
6835
6836    return api;
6837})();
6838},{"./analytics":1,"./facebook":5,"./google":8,"./twitter":23}],21:[function(require,module,exports){
6839var analytics = require('./analytics');
6840
6841module.exports = (function() {
6842    var api = {};
6843    
6844    api.init = function () {
6845
6846        if(typeof grecaptcha == "object" && $('#target-recaptcha').length)
6847        {
6848            grecaptcha.render('target-recaptcha', {
6849              'sitekey' : '6LdytwUTAAAAAPW3vjNF0Ny1xHw19lhRWdv9QV0m'
6850            });            
6851        }
6852
6853        if(typeof grecaptcha == "object" && $('#feedback-recaptcha').length)
6854        {
6855            grecaptcha.render('feedback-recaptcha', {
6856              'sitekey' : '6LdytwUTAAAAAPW3vjNF0Ny1xHw19lhRWdv9QV0m'
6857            });            
6858        }
6859
6860        //register form
6861        $('#ta-register-form, #ta-feedback-form').each(function () {
6862            var $form = $(this);
6863            
6864            $form.submit(function (e) {
6865                e.preventDefault();
6866                
6867                analytics.event('form', 'submitting', $form.attr('id'));
6868                
6869                $form.find('.form-submit').prop('disabled', true);
6870                
6871                var data = {
6872                    'g-recaptcha-response': $form.find('#g-recaptcha-response').val(),
6873                    ajax: true
6874                }
6875
6876                var fData = $form.find( ":input" ).serializeArray();
6877                
6878                for(var i in fData){
6879                    data[fData[i].name] = fData[i].value
6880                }
6881                
6882                $.post('/', data).success(function (response) {
6883                    if (response.success)
6884                    {
6885                        $form.addClass('m-success');
6886                        analytics.event('form', 'submited', $form.attr('id'));
6887                    }
6888                    else
6889                    {
6890                        alert('Anti-Spam is saying you\'re a robot! Try again.');
6891                        $form.find('.form-submit').prop('disabled', false);
6892                        analytics.event('form', 'error', $form.attr('id'));
6893                    }
6894                }).fail(function () {
6895                    alert('Uh oh! Something went wrong. Please try again.');
6896                    $form.find('.form-submit').prop('disabled', false);
6897                    analytics.event('form', 'error', $form.attr('id'));
6898                });
6899                
6900                return false;
6901            });
6902        });
6903    };
6904
6905    api.init();
6906    
6907    return api;
6908})();
6909},{"./analytics":1}],22:[function(require,module,exports){
6910var hijackJummpLinks = require('./hijack-jump-links');
6911
6912module.exports = (function() {
6913    var api = {
6914        mapLoaded: false
6915    };
6916
6917    
6918
6919    window.initialize = function() {
6920        api.renderMap();
6921    }
6922
6923    api.renderMap = function() {
6924
6925        if (!api.mapLoaded) {
6926            api.loadMap();
6927            return false;
6928        }
6929
6930        //address list
6931        var address = $.parseJSON($('#team-map-dataset').text());
6932
6933        //map style
6934        var styles = [
6935        ];
6936
6937        var styledMap = new google.maps.StyledMapType(styles, {name: "Default Style"});
6938        var geocoder = new google.maps.Geocoder();
6939        var mapOptions = {
6940            zoom: 10,
6941            center: new google.maps.LatLng(45.50, -98.35),
6942            mapTypeControlOptions: {
6943                mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style']
6944            }
6945        };
6946
6947        var map = new google.maps.Map(document.getElementById('team-map'), mapOptions);
6948
6949        map.mapTypes.set('map_style', styledMap);
6950        map.setMapTypeId('map_style');
6951
6952        //add markers
6953        var latlngbounds = new google.maps.LatLngBounds();
6954
6955        var opendInfoWindow = false;
6956
6957        for (var i in address) {
6958            var addressGeoLocation = new google.maps.LatLng(address[i].latitude, address[i].longitude);
6959            latlngbounds.extend(addressGeoLocation);
6960
6961            var infowindow = new google.maps.InfoWindow({
6962                content: '<h1>' + address[i].name + '</h1>'
6963            });
6964
6965            var marker = new google.maps.Marker({
6966                map: map,
6967                position: addressGeoLocation,
6968                title: address[i].name,
6969                animation: google.maps.Animation.DROP,
6970                infowindow: infowindow,
6971                organization: address[i].id * 1
6972            });
6973
6974            google.maps.event.addListener(marker, 'click', function(e) {
6975                if (opendInfoWindow !== false) {
6976                    opendInfoWindow.close();
6977                }
6978
6979                var infoWin = this.infowindow,
6980                title = this.title;
6981
6982                $.post('/', {
6983                    wp_form_id: 'WP_FORM_ORG_MEMBERS',
6984                    organization: this.organization,
6985                    ajax: true
6986                }).success(function(response) {
6987                    var c = '<h1>' + title + '</h1><ul style="max-height: 10em; overflow: auto">'
6988                    for (i in response.data) {
6989                        c += '<li>' + response.data[i].first + ' ' + response.data[i].last + '</li>';
6990                    }
6991                    
6992                    c += "</ul>";
6993                    
6994                    infoWin.setContent(c);
6995                })
6996
6997                opendInfoWindow = infoWin;
6998                opendInfoWindow.open(map, this);
6999            });
7000        }
7001
7002        map.fitBounds(latlngbounds);
7003    }
7004
7005    api.loadMap = function() {
7006
7007        function loadScript() {
7008            api.mapLoaded = true;
7009
7010            var script = document.createElement('script');
7011            script.type = 'text/javascript';
7012            script.src = 'https://maps.googleapis.com/maps/api/js?v=3&key=AIzaSyDCN48_k4V99susiCYy12bm53c5FGTLlL8&sensor=false&' + 'callback=initialize';
7013            document.body.appendChild(script);
7014        }
7015
7016        loadScript();
7017    };
7018
7019    api.init = function() {
7020        if ($('#page-team-page').length === 0)
7021            return;
7022
7023        //team list show hide details
7024        $('.js-member-details-toggle, .js-member-details-hide').click(function(e) {
7025            e.preventDefault();
7026
7027            $(this).parent().toggleClass('m-active');
7028
7029            return false;
7030        });
7031
7032        //render google team map if available
7033        if ($('#team-map').length > 0)
7034        {
7035            api.renderMap();
7036        }
7037
7038        $(document).unbind('click.teamhierarchy').on('click.teamhierarchy', '.team-hierarchy-open', function(e){
7039            e.preventDefault();
7040            $('.team-hierarchy-open, .team-hierarchy-list-wrapper').toggleClass('open');
7041        });
7042
7043        //form handling 
7044        $('#team-search').submit(function(e) {
7045            e.preventDefault();
7046            
7047            if ($(this).find('#thoughts-search').val() == '') {
7048                return false;
7049            }
7050            
7051            var url;
7052            if($('#team-search').attr('action') == '/team-list')
7053                url = '/team-list?search=' + $(this).find('#thoughts-search').val();
7054            else
7055                url = window.location.pathname + '?search=' + $(this).find('#thoughts-search').val();
7056            
7057            hijackJummpLinks.changePage(url);
7058
7059            return false;
7060        });
7061
7062        $('#team-search-organization').each(function(i, frm) {
7063            var $frm = $(frm);
7064
7065            $frm.find('select').change(function() {
7066
7067                var url;
7068                if($('#team-search-organization').attr('action') == '/team-list')
7069                    url = '/team-list?organization=' + $(this).val();
7070                else
7071                    url = window.location.pathname + '?organization=' + $(this).val();
7072                
7073                hijackJummpLinks.changePage(url);
7074            });
7075        });
7076
7077        $('#team-hierarchy-list').each(function () {
7078            var $container = $(this),
7079                $blocks = $container.find('.block');
7080
7081            $container.find('a').click(function (e){
7082                
7083
7084                $(this).parent().toggleClass('m-active');
7085
7086                $('#team-hierarchy').find('.' + $(this).attr('class').split(' ')[0]).trigger('sync');
7087            });
7088
7089            $container.find('a').on('sync', function (e){
7090                e.preventDefault();
7091
7092                $(this).parent().toggleClass('m-active');
7093                $(this).parent().trigger('click');
7094                
7095                return false;
7096            });
7097
7098            $blocks.click(function(e) {
7099                e.preventDefault();
7100
7101                var $this = $(this),
7102                    id = $this.data('id');
7103
7104                if(!$this.hasClass('m-main')) {
7105                    $this.addClass('m-main');
7106                } else {
7107                    return false;
7108                }
7109                
7110                $blocks.not($this)
7111                    .removeClass('m-main')
7112                    .find('.m-active')
7113                        .removeClass('m-active');
7114
7115                return false;
7116            });
7117
7118            $container.on('sync', function(e) {
7119                $blocks.removeClass('m-main m-faded m-connected')
7120                    .find('.m-active')
7121                        .removeClass('m-active');
7122            });
7123
7124            //$(".nano").nanoScroller();
7125        });
7126
7127        
7128        $('#team-hierarchy').each(function () {
7129            function _rand (min, max) {
7130                return Math.floor(Math.random() * (max - min) + min);
7131            }
7132
7133
7134            var $container = $(this),
7135                $blocks = $container.find('.block'),
7136                cW = $container.width(),
7137                cH = $(window).height(),
7138                rad = 0;
7139
7140            $container.height(cH)
7141
7142            var usedBlocks = [];
7143            
7144            $container.find('a').click(function (e){
7145                $(this).parent().toggleClass('m-active');
7146                $('#team-hierarchy-list').find('.' + $(this).attr('class').split(' ')[0]).trigger('sync');
7147            });
7148
7149            $container.find('a').on('sync', function (e){
7150                $(this).parent().toggleClass('m-active');
7151                $(this).parent().trigger('click');
7152            });
7153
7154            $blocks.click(function(e) {
7155                var $this = $(this),
7156                    id = $this.data('id');
7157
7158                //$('.nano').nanoScroller();
7159
7160                if(!$this.hasClass('m-main')) {
7161                    $this.addClass('m-main')
7162                        .css({
7163                            top: (cH - 400)/2 + 'px',
7164                            left: rad + 'px'
7165                        });
7166                } else {
7167                    return false;
7168                }
7169                
7170                $blocks.not($this)
7171                    .removeClass('m-main m-faded m-connected')
7172                    .addClass('m-faded')
7173                    .each(function () {
7174                        var $t = $(this);
7175
7176                        $t.css({
7177                            top: $t.data('y'),
7178                            left: $t.data('x')
7179                        })
7180                    })
7181                    .find('.m-active')
7182                        .removeClass('m-active');
7183
7184                var connections = $this.data('connected').toString().split(',');
7185
7186                for(var i in connections){
7187                    var cls = '.block-' + connections[i];
7188                    $container.find(cls).addClass('m-connected');
7189                }
7190
7191                $container.find('.line').addClass('m-faded').each(function (){
7192                    var $line = $(this),
7193                        cls = $line.attr('class');
7194
7195                        if (cls.indexOf('-' + id + '-') >= 0) {
7196                            $line.removeClass('m-faded')
7197                        }
7198                });
7199
7200                //fadein connected items
7201                $blocks.not($this);
7202
7203                var lineAdjustInterval = setInterval(function () {
7204                    _updateConnections();
7205                }, 10);
7206
7207                setTimeout(function () {
7208                    clearInterval(lineAdjustInterval);
7209                }, 1500);
7210            });
7211
7212            $container.click(function(e) {
7213                e.preventDefault();
7214
7215                if($(e.target).attr('id') == 'team-hierarchy' && $container.find('.block.m-main').length > 0){
7216                    $blocks.removeClass('m-main m-faded m-connected')
7217                    .each(function () {
7218                        var $t = $(this);
7219
7220                        $t.css({
7221                            top: $t.data('y'),
7222                            left: $t.data('x')
7223                        })
7224                    }).find('.m-active')
7225                        .removeClass('m-active');
7226
7227                    $container.find('.line').removeClass('m-main m-faded m-connected');
7228
7229                    var lineAdjustInterval = setInterval(function () {
7230                        _updateConnections();
7231                    }, 10);
7232
7233                    setTimeout(function () {
7234                        clearInterval(lineAdjustInterval);
7235                    }, 1500);
7236
7237                    $('#team-hierarchy-list').trigger('sync');
7238                }
7239
7240                return false;
7241            });
7242
7243            
7244
7245            function _connect(x1, y1, x2, y2, lineClass) {
7246                var length = Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
7247                var angle  = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
7248                var transform = 'rotate('+angle+'deg)';
7249
7250                var line = $('.' + lineClass).length > 0 ? $('.' + lineClass) : $('<div>');
7251
7252                line.appendTo($container)
7253                    .addClass('line ' + lineClass)
7254                    .css({
7255                        'position': 'absolute',
7256                        'transform': transform,
7257                        'left': x1 + 'px', 
7258                        'top': y1 + 'px',
7259                        'opacity': 1
7260                    })
7261                    .width(length)
7262                    .addClass('m-active');
7263
7264                return line;
7265            }
7266
7267
7268            function _arrange() {
7269                cW = $container.width();
7270                cH = $(window).height();
7271
7272                if(cW >= 1500)
7273                {
7274                    $('.team-hierarchy-list-wrapper, .team-hierarchy-open').addClass('open');
7275                }
7276
7277                $container.height(cH);
7278
7279                $container.find('.scrollable').css({
7280                    'height': cH * 0.5 + 'px'
7281                });
7282
7283                $('.team-hierarchy-list .nano').css({
7284                    'height': cH * 0.95 + 'px'
7285                });
7286
7287                //$('.nano').nanoScroller();
7288
7289
7290
7291                $('.line').css('opacity', 0);
7292
7293                //position initial mapitems
7294                //fill with a poligon points
7295                var polSize = $blocks.length,
7296                    size = {
7297                        width: (cW - 350) / 2,
7298                        height: (cH - 100) / 2
7299                    },
7300                    angle = 180 - ((180 * (polSize - 2)) / polSize);
7301
7302                rad = Math.min(size.width, size.height);
7303                    
7304                for(var i = 0; i < polSize; i++)
7305                {
7306                    var $block = $blocks.eq(i);
7307
7308                    //get angle
7309                    var polAngle = (angle * i) + 20;
7310
7311                    //convert to radians
7312                    polAngle = polAngle * (Math.PI / 180);
7313
7314                    var x = ((Math.cos(polAngle)) * rad) + rad + 10,
7315                        y = ((Math.sin(polAngle)) * rad) + rad + 10;
7316
7317                    $block.css({
7318                        top: y,
7319                        left: x
7320                    }).data('x', x)
7321                    .data('y', y);
7322                }
7323
7324                setTimeout(function () {
7325                    _updateConnections();
7326                }, 2000);
7327            }
7328
7329            function _updateConnections() {
7330                $blocks.each(function () {
7331                    var $block = $(this);
7332                    var id = $block.data('id');
7333                    var x1 = $block.css('left').replace('px', '') * 1;
7334                    var y1 = $block.css('top').replace('px', '') * 1;
7335
7336                    //set connections
7337                    var connections = $block.data('connected').toString().split(',');
7338                    for(var i in connections) {
7339                        var $target = $container.find('.block-' + connections[i]);
7340                        
7341                        if($target.length > 0) {
7342                            //_connect
7343                            
7344
7345                            var x2 = $target.css('left').replace('px', '') * 1;
7346                            var y2 = $target.css('top').replace('px', '') * 1;
7347
7348                            var from = Math.min(id, connections[i]),
7349                                to = Math.max(id, connections[i]);
7350
7351                            _connect(x1 + 20, y1 + 20, x2 + 20, y2 + 20, 'line-' + from + '-' + to + '-e');
7352                        }
7353                    }
7354                });
7355            }
7356
7357            _arrange();
7358
7359            $(window).resize(_arrange)
7360        });
7361    }
7362
7363    api.init();
7364
7365    return api;
7366})();
7367},{"./hijack-jump-links":9}],23:[function(require,module,exports){
7368var popup = require('./popup');
7369
7370module.exports = (function() {
7371    var api = {
7372        isLoggedIn: false
7373    };
7374
7375    api.call = function(method, success, fail) {
7376        success = success || function() {
7377            console.log('User logged in.');
7378        };
7379        fail = fail || function() {
7380            console.log('User cancelled login or did not fully authorize.');
7381        };
7382
7383        $(document).on('twitter-auth-failed', function(e, arg) {
7384            fail();
7385        });
7386
7387        $(document).on('twitter-result-success', function(e, arg) {
7388            success(arg);
7389        });
7390
7391        var p = popup.window('/?' + method + '=true');
7392    };
7393
7394    api.wallPost = function(data, callback) {
7395        callback = callback || function(r) {
7396        };
7397        var def = {
7398            message: '',
7399            url: '',
7400            append: '',
7401            prepend: ''
7402        }
7403        
7404        data = $.extend({}, def, data);
7405        
7406        var totalLen = data.message.length + data.append.length + data.prepend.length,
7407                twitterLimit = 112;
7408        
7409        if (totalLen > twitterLimit)
7410            data.message = data.message.substr(0, (twitterLimit - (data.append.length + data.prepend.length))) + '...';
7411        
7412        if (data.append.length > 0)
7413            data.message = data.message + ' ' + data.append;
7414
7415        if (data.prepend.length > 0)
7416            data.message = data.prepend + ' ' + data.message;
7417
7418        popup.window('https://twitter.com/intent/tweet?text=' + encodeURIComponent(data.message) + '&url=' + encodeURIComponent(data.url), 'twitter-popup')
7419    }
7420
7421    return api;
7422})();
7423
7424},{"./popup":16}]},{},[10])

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.