var data = [{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"1095830146","operationType":1,"vehicleId":"160","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Eastbound - Platform 1","direction":"outbound","bearing":"","destinationNaptanId":"940GZZLUWOG","destinationName":"Wood Green Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":1572,"currentLocation":"Between Turnham Green and Ravenscourt Park","towards":"Wood Green","expectedArrival":"2025-08-17T10:43:13Z","timeToLive":"2025-08-17T10:43:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"1900171105","operationType":1,"vehicleId":"226","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Westbound - Platform 2","direction":"inbound","bearing":"","destinationNaptanId":"940GZZLURYL","destinationName":"Rayners Lane Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":1032,"currentLocation":"At Wood Green Platform 2","towards":"Rayners Lane","expectedArrival":"2025-08-17T10:34:13Z","timeToLive":"2025-08-17T10:34:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"1093405315","operationType":1,"vehicleId":"230","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Eastbound - Platform 1","direction":"outbound","bearing":"","destinationNaptanId":"940GZZLUWOG","destinationName":"Wood Green Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":312,"currentLocation":"At Leicester Square Platform 2","towards":"Wood Green","expectedArrival":"2025-08-17T10:22:13Z","timeToLive":"2025-08-17T10:22:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"-1349806488","operationType":1,"vehicleId":"231","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Eastbound - Platform 1","direction":"outbound","bearing":"","destinationNaptanId":"940GZZLUWOG","destinationName":"Wood Green Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":1212,"currentLocation":"Between Barons Court and Earl's Court","towards":"Wood Green","expectedArrival":"2025-08-17T10:37:13Z","timeToLive":"2025-08-17T10:37:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"316982149","operationType":1,"vehicleId":"305","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Westbound - Platform 2","direction":"inbound","bearing":"","destinationNaptanId":"940GZZLUHR5","destinationName":"Heathrow Terminal 5 Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":432,"currentLocation":"Between Arsenal and Holloway Road","towards":"Heathrow T123 + 5","expectedArrival":"2025-08-17T10:24:13Z","timeToLive":"2025-08-17T10:24:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"1901875042","operationType":1,"vehicleId":"306","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Westbound - Platform 2","direction":"inbound","bearing":"","destinationNaptanId":"940GZZLUHR5","destinationName":"Heathrow Terminal 5 Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":1152,"currentLocation":"At Wood Green Sidings","towards":"Heathrow T123 + 5","expectedArrival":"2025-08-17T10:36:13Z","timeToLive":"2025-08-17T10:36:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"1093536396","operationType":1,"vehicleId":"310","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Eastbound - Platform 1","direction":"outbound","bearing":"","destinationNaptanId":"940GZZLUWOG","destinationName":"Wood Green Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":672,"currentLocation":"Left Knightsbridge","towards":"Wood Green","expectedArrival":"2025-08-17T10:28:13Z","timeToLive":"2025-08-17T10:28:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"1900171106","operationType":1,"vehicleId":"326","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Westbound - Platform 2","direction":"inbound","bearing":"","destinationNaptanId":"940GZZLUHR4","destinationName":"Heathrow Terminal 4 Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":732,"currentLocation":"At Manor House Platform 1","towards":"Heathrow via T4 Loop","expectedArrival":"2025-08-17T10:29:13Z","timeToLive":"2025-08-17T10:29:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"-1349806487","operationType":1,"vehicleId":"331","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Eastbound - Platform 1","direction":"outbound","bearing":"","destinationNaptanId":"940GZZLUWOG","destinationName":"Wood Green Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":912,"currentLocation":"Approaching South Kensington","towards":"Wood Green","expectedArrival":"2025-08-17T10:32:13Z","timeToLive":"2025-08-17T10:32:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}},{"$type":"Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities","id":"1095830156","operationType":1,"vehicleId":"360","naptanId":"940GZZLURSQ","stationName":"Russell Square Underground Station","lineId":"piccadilly","lineName":"Piccadilly","platformName":"Westbound - Platform 2","direction":"inbound","bearing":"","destinationNaptanId":"940GZZLURYL","destinationName":"Rayners Lane Underground Station","timestamp":"2025-08-17T10:17:01.5352448Z","timeToStation":192,"currentLocation":"Between Caledonian Road and King's Cross","towards":"Rayners Lane","expectedArrival":"2025-08-17T10:20:13Z","timeToLive":"2025-08-17T10:20:13Z","modeName":"tube","timing":{"$type":"Tfl.Api.Presentation.Entities.PredictionTiming, Tfl.Api.Presentation.Entities","countdownServerAdjustment":"00:00:00","source":"0001-01-01T00:00:00","insert":"0001-01-01T00:00:00","read":"2025-08-17T10:17:15.304Z","sent":"2025-08-17T10:17:01Z","received":"0001-01-01T00:00:00"}}]
var times = [];
for (var i = 0; i < data.length; i++) {
var platformName = data[i].platformName.replace(" - Platform ", ' platform ');
var platformName = platformName.toLowerCase();
if (data[i].towards.includes('Check Front of Train')) {
var towards = ' (check front of train for destination)';
} else {
var towards = ' (towards ' + data[i].towards + ')';
}
var towards = towards.replace(" (Circle)", '');
var towards = towards.replace("Elephant and Castle", 'Elephant & Castle');
var towards = towards.replace("Harrow and Wealdstone", 'Harrow & Wealdstone');
var towards = towards.replace("T123 + 5", 'Terminals 2-3 & 5');
var towards = towards.replace("via CX", 'via Charing Cross');
var expectedArrival = data[i].expectedArrival.split("T");
var expectedArrival_bits = expectedArrival[1].split(":");
var expectedArrival = expectedArrival_bits[0] + ':' + expectedArrival_bits[1] + towards;
var time = data[i].lineName + ' ' + platformName + ' –' + expectedArrival;
var time = time.replace("Bakerloo", 'Bakerloo line');
var time = time.replace("Central", 'Central line');
var time = time.replace("Hendon Central line", 'Hendon Central');
var time = time.replace("Finchley Central line", 'Finchley Central');
var time = time.replace("Walthamstow Central line", 'Walthamstow Central');
var time = time.replace("Wembley Central line", 'Wembley Central');
var time = time.replace("Circle", 'Circle line');
var time = time.replace("towards Circle line", 'check front of train for destination');
var time = time.replace("towards Circle Line", 'check front of train for destination');
var time = time.replace("District", 'District line');
var time = time.replace("Docklands Light Railway", 'Docklands Light Railway');
var time = time.replace("DLR", 'Docklands Light Railway');
var time = time.replace("Hammersmith & City", 'Hammersmith & City line');
var time = time.replace("Jubilee", 'Jubilee line');
var time = time.replace("Metropolitan", 'Metropolitan line');
var time = time.replace("Northern", 'Northern line');
var time = time.replace("Piccadilly", 'Piccadilly line');
var time = time.replace("Elizabeth", 'Elizabeth line');
var time = time.replace("Victoria", 'Victoria line');
var time = time.replace("(via Victoria line)", 'via Victoria');
var time = time.replace("Waterloo & City", 'Waterloo & City line');
var time = time.replace("via Bank", 'via Bank loop');
var time = time.replace("via Charing Cross", 'via Charing Cross loop');
var time = time.replace("northbound platform", 'Northbound platform');
var time = time.replace("southbound platform", 'Southbound platform');
var time = time.replace("eastbound platform", 'Eastbound platform');
var time = time.replace("westbound platform", 'Westbound platform');
var time = time.replace("inner rail", 'Inner rail');
var time = time.replace("outer rail", 'Outer rail');
var time = time.replace("23:", '00:');
var time = time.replace("22:", '23:');
var time = time.replace("21:", '22:');
var time = time.replace("20:", '21:');
var time = time.replace("19:", '20:');
var time = time.replace("18:", '19:');
var time = time.replace("17:", '18:');
var time = time.replace("16:", '17:');
var time = time.replace("15:", '16:');
var time = time.replace("14:", '15:');
var time = time.replace("13:", '14:');
var time = time.replace("12:", '13:');
var time = time.replace("11:", '12:');
var time = time.replace("10:", '11:');
var time = time.replace("09:", '10:');
var time = time.replace("08:", '09:');
var time = time.replace("07:", '08:');
var time = time.replace("06:", '07:');
var time = time.replace("05:", '06:');
var time = time.replace("04:", '05:');
var time = time.replace("03:", '04:');
var time = time.replace("02:", '03:');
var time = time.replace("01:", '02:');
var time = time.replace("00:", '01:');
times.push(time);
}
times.sort();
var real_times = [];
var done_platforms = [];
for (var i = 0; i < times.length; i++) {
var pieces = times[i].split(" –");
if (done_platforms.indexOf(pieces[0]) != -1) {
var piece = ' ' + pieces[1];
} else {
var piece = '' + pieces[0] + ' ' + pieces[1];
}
real_times.push(piece);
done_platforms.push(pieces[0]);
}
var real_times_array = real_times.toString();
var real_times_array = real_times_array.replace(/\,
/g, '
');
var real_times_array = real_times_array.replace(/\,/g, ' · ');
var real_times_array = real_times_array.replace(/\(towards \)/g, '(check front of train for destination)');
if (real_times_array.length < 25) {
var real_times_array = real_times_array + '
Timetable information is not available
';
}
var real_times_array = real_times_array + '';
var real_times_array = real_times_array + 'Powered by TfL Open Data. Contains OS data © Crown copyright and database rights 2016 / Geomni UK Map data © and database rights 2019
';
document.getElementById("departures").innerHTML = real_times_array;