92 lines
		
	
	
		
			No EOL
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			No EOL
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var CreatorActive = false;
 | |
| var RaceActive = false;
 | |
| 
 | |
| $(document).ready(function(){
 | |
|     window.addEventListener('message', function(event){
 | |
|         var data = event.data;
 | |
| 
 | |
|         if (data.action == "Update") {
 | |
|             UpdateUI(data.type, data);
 | |
|         }
 | |
|     });
 | |
| });
 | |
| 
 | |
| function secondsTimeSpanToHMS(s) {
 | |
|     var h = Math.floor(s/3600); //Get whole hours
 | |
|     s -= h*3600;
 | |
|     var m = Math.floor(s/60); //Get remaining minutes
 | |
|     s -= m*60;
 | |
|     return h+":"+(m < 10 ? '0'+m : m)+":"+(s < 10 ? '0'+s : s); //zero padding on minutes and seconds
 | |
| }
 | |
| 
 | |
| function UpdateUI(type, data) {
 | |
|     if (type == "creator") {
 | |
|         if (data.active) {
 | |
|             if (!CreatorActive) {
 | |
|                 CreatorActive = true;
 | |
|                 $(".editor").fadeIn(300);
 | |
|                 $("#editor-racename").html('Race: ' + data.data.RaceName);
 | |
|                 $("#editor-checkpoints").html('Checkpoints: ' + data.data.Checkpoints.length + ' / ?');
 | |
|                 $("#editor-keys-tiredistance").html('<span style="color: rgb(0, 201, 0);">+ ] </span> / <span style="color: rgb(255, 43, 43);">- [</span> - Tire Distance ['+data.data.TireDistance+'.0]');
 | |
|                 if (data.racedata.ClosestCheckpoint !== undefined && data.racedata.ClosestCheckpoint !== 0) {
 | |
|                     $("#editor-keys-delete").html('<span style="color: rgb(255, 43, 43);">8</span> - Delete Checkpoint [' + data.racedata.ClosestCheckpoint + ']');
 | |
|                 } else {
 | |
|                     $("#editor-keys-delete").html("");
 | |
|                 }
 | |
|             } else {
 | |
|                 $("#editor-racename").html('Race: ' + data.data.RaceName);
 | |
|                 $("#editor-checkpoints").html('Checkpoints: ' + data.data.Checkpoints.length + ' / ?');
 | |
|                 $("#editor-keys-tiredistance").html('<span style="color: rgb(0, 201, 0);">+ ] </span> / <span style="color: rgb(255, 43, 43);">- [</span> - Tire Distance ['+data.data.TireDistance+'.0]');
 | |
|                 if (data.racedata.ClosestCheckpoint !== undefined && data.racedata.ClosestCheckpoint !== 0) {
 | |
|                     $("#editor-keys-delete").html('<span style="color: rgb(255, 43, 43);">8</span> - Delete Checkpoint [' + data.racedata.ClosestCheckpoint + ']');
 | |
|                 } else {
 | |
|                     $("#editor-keys-delete").html("");
 | |
|                 }
 | |
|             }
 | |
|         } else {
 | |
|             CreatorActive = false;
 | |
|             $(".editor").fadeOut(300);
 | |
|         }
 | |
|     } else if (type == "race") {
 | |
|         if (data.active) {
 | |
|             if (!RaceActive) {
 | |
|                 RaceActive = true;
 | |
|                 $(".editor").hide();
 | |
|                 $(".race").fadeIn(300);
 | |
|                 $("#race-racename").html('Race: ' + data.data.RaceName);
 | |
|                 $("#race-checkpoints").html('Checkpoint: ' + data.data.CurrentCheckpoint + ' / ' + data.data.TotalCheckpoints);
 | |
|                 if (data.data.TotalLaps == 0) {
 | |
|                     $("#race-lap").html('Round: Sprint');
 | |
|                 } else {
 | |
|                     $("#race-lap").html('Round: ' + data.data.CurrentLap + ' / ' + data.data.TotalLaps);
 | |
|                 }
 | |
|                 $("#race-time").html('Round Time: ' + secondsTimeSpanToHMS(data.data.Time));
 | |
|                 if (data.data.BestLap !== 0) {
 | |
|                     $("#race-besttime").html('Best Round: ' + secondsTimeSpanToHMS(data.data.BestLap));
 | |
|                 } else {
 | |
|                     $("#race-besttime").html('Best Round: N/A');
 | |
|                 }
 | |
|                 $("#race-totaltime").html('Total Time: ' + secondsTimeSpanToHMS(data.data.TotalTime));
 | |
|             } else {
 | |
|                 $("#race-racename").html('Race: ' + data.data.RaceName);
 | |
|                 $("#race-checkpoints").html('Checkpoint: ' + data.data.CurrentCheckpoint + ' / ' + data.data.TotalCheckpoints);
 | |
|                 if (data.data.TotalLaps == 0) {
 | |
|                     $("#race-lap").html('Round: Sprint');
 | |
|                 } else {
 | |
|                     $("#race-lap").html('Round: ' + data.data.CurrentLap + ' / ' + data.data.TotalLaps);
 | |
|                 }
 | |
|                 $("#race-time").html('Round Time: ' + secondsTimeSpanToHMS(data.data.Time));
 | |
|                 if (data.data.BestLap !== 0) {
 | |
|                     $("#race-besttime").html('Best Round: ' + secondsTimeSpanToHMS(data.data.BestLap));
 | |
|                 } else {
 | |
|                     $("#race-besttime").html('Best Round: N/A');
 | |
|                 }
 | |
|                 $("#race-totaltime").html('Total Time: ' + secondsTimeSpanToHMS(data.data.TotalTime));
 | |
|             }
 | |
|         } else {
 | |
|             RaceActive = false;
 | |
|             $(".editor").hide();
 | |
|             $(".race").fadeOut(300);
 | |
|         }
 | |
|     }
 | |
| } | 
