@@ -652,26 +652,40 @@ function launchSitePredictions(times, station, marker) {
652652 times = times . split ( "," ) ;
653653 position = station . split ( "," ) ;
654654 var now = new Date ( ) ;
655+ var maxCount = 7
655656 var count = 0 ;
656657 var day = 0 ;
657658 var dates = [ ] ;
658- while ( count < 7 ) {
659+ while ( day < 8 ) {
659660 for ( var i = 0 ; i < times . length ; i ++ ) {
660661 var date = new Date ( ) ;
661662 var time = times [ i ] . split ( ":" ) ;
662- date . setUTCHours ( time [ 0 ] ) ;
663- date . setUTCMinutes ( time [ 1 ] ) ;
663+ if ( time [ 0 ] != 0 ) {
664+ date . setDate ( date . getDate ( ) + ( 7 + time [ 0 ] - 1 - date . getDay ( ) ) % 7 ) ;
665+ }
666+ date . setUTCHours ( time [ 1 ] ) ;
667+ date . setUTCMinutes ( time [ 2 ] ) ;
664668 date . setSeconds ( 0 ) ;
665669 date . setMilliseconds ( 0 ) ;
666670 if ( date < now ) {
667- date . setDate ( date . getDate ( ) + 1 ) ;
671+ if ( time [ 0 ] == 0 ) {
672+ date . setDate ( date . getDate ( ) + 1 ) ;
673+ } else {
674+ date . setDate ( date . getDate ( ) + 7 ) ;
675+ }
668676 }
669677 if ( day > 0 ) {
670- date . setDate ( date . getDate ( ) + day ) ;
678+ if ( time [ 0 ] == 0 ) {
679+ date . setDate ( date . getDate ( ) + day ) ;
680+ } else {
681+ date . setDate ( date . getDate ( ) + ( 7 * day ) ) ;
682+ }
671683 }
672- if ( count < 7 ) {
673- dates . push ( date . toISOString ( ) . split ( '.' ) [ 0 ] + "Z" ) ;
674- count += 1 ;
684+ if ( count < maxCount ) {
685+ if ( ( ( date - now ) / 36e5 ) < 170 ) {
686+ dates . push ( date . toISOString ( ) . split ( '.' ) [ 0 ] + "Z" ) ;
687+ count += 1 ;
688+ }
675689 }
676690 }
677691 day += 1 ;
@@ -685,15 +699,15 @@ function launchSitePredictions(times, station, marker) {
685699 function handleData ( data ) {
686700 completed += 1 ;
687701 plotPrediction ( data , dates , marker ) ;
688- if ( completed == 7 ) {
702+ if ( completed == dates . length ) {
689703 popupContent += "<button onclick='deletePredictions(" + marker + ")' style='margin-bottom:0;'>Delete</button>" ;
690704 popup . setContent ( popupContent ) ;
691705 }
692706 }
693707 function handleError ( error ) {
694708 completed += 1 ;
695709 console . log ( error ) ;
696- if ( completed == 7 ) {
710+ if ( completed == dates . length ) {
697711 popupContent += "<button onclick='deletePredictions(" + marker + ")' style='margin-bottom:0;'>Delete</button>" ;
698712 popup . setContent ( popupContent ) ;
699713 }
@@ -814,11 +828,18 @@ function showLaunchSites() {
814828 var date = new Date ( ) ;
815829 var now = new Date ( ) ;
816830 var time = json [ key ] [ 'times' ] [ i ] . split ( ":" ) ;
817- date . setUTCHours ( time [ 0 ] ) ;
818- date . setUTCMinutes ( time [ 1 ] ) ;
831+ if ( time [ 0 ] != 0 ) {
832+ date . setDate ( date . getDate ( ) + ( 7 + time [ 0 ] - 1 - date . getDay ( ) ) % 7 ) ;
833+ }
834+ date . setUTCHours ( time [ 1 ] ) ;
835+ date . setUTCMinutes ( time [ 2 ] ) ;
819836 date . setSeconds ( 0 ) ;
820837 if ( date < now ) {
821- date . setDate ( date . getDate ( ) + 1 ) ;
838+ if ( time [ 0 ] == 0 ) {
839+ date . setDate ( date . getDate ( ) + 1 ) ;
840+ } else {
841+ date . setDate ( date . getDate ( ) + 7 ) ;
842+ }
822843 }
823844 if ( tempDate ) {
824845 if ( date < tempDate ) {
0 commit comments