Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //forecast
  2. var forecastDays = 2;
  3.  
  4. function loadJson(callback) {
  5.     var forecast = new XMLHttpRequest();
  6.     forecast.overrideMimeType("application/json");
  7.     forecast.open('GET', 'http://api.wunderground.com/api/xxxxxxxxxxxxx/forecast/lang:DL/q/Germany/Dresden.json', true);
  8.     forecast.onreadystatechange = function () {
  9.           if (forecast.readyState == 4 && forecast.status == "200") {
  10.             callback(forecast.responseText);
  11.           }
  12.     };
  13.     forecast.send(null);
  14. }
  15.  
  16. loadJson(function(response) {
  17.    
  18.     // Build HTML
  19.    
  20.     var placeholderContent = "";
  21.    
  22.     for(var i = 1; i <= forecastDays; i++) {
  23.         var day = i + 1;
  24.         placeholderContent = placeholderContent +  
  25.         '<div class="col-1">' +
  26.           '<div class="icon"><i id="icon_f_' + i + '" class=""></i></div>' +
  27.           '<div class="forecast"><div class="caption">Vorschau f&uuml;r Tag ' + day + ':</div><div class="forecast_str_style" id="forecast_str_' + i + '"></div></div>' +
  28.         '</div>' +     
  29.         '<div class="col-2">' +
  30.           '<div class="icon"><i class="wi wi-thermometer"></i><i class="wi wi-direction-up"></i></div>' +
  31.           '<div class="temp_high"><div class="temp-style" id="temp_high_' + i + '"></div><div class="unit">&deg;C</div></div>' +
  32.           '<div class="icon"><i class="wi wi-thermometer-exterior"></i><i class="wi wi-direction-down"></i></div>' +
  33.           '<div class="temp_low"><div class="temp-style" id="temp_low_' + i + '"></div><div class="unit">&deg;C</div></div>' +
  34.         '</div>';
  35.     }  
  36.    
  37.     document.getElementById("placeholder").innerHTML = placeholderContent;
  38.    
  39.    
  40.     // Parse JSON string into object
  41.     var r = JSON.parse(response);
  42.  
  43.     for (var i = 1; i <= forecastDays; i++) {
  44.         var forecast_str = r.forecast.txt_forecast.forecastday[i+1].fcttext_metric; //change to .fcttext for fahrenheit
  45.         var temp_high = r.forecast.simpleforecast.forecastday[i].high.celsius; //change to .fahrenheit for fahrenheit
  46.         var temp_low = r.forecast.simpleforecast.forecastday[i].low.celsius; //change to .fahrenheit for fahrenheit
  47.         var icon_f;
  48.         var icons_f = r.forecast.txt_forecast.forecastday[i+1].icon;
  49.         switch (icons_f) {
  50.             case "clear":
  51.                 icon_f = "wi wi-day-sunny";
  52.                 break;
  53.             case "cloudy":
  54.                 icon_f = "wi wi-day-cloudy";
  55.                 break;
  56.             case "flurries":
  57.                 icon_f = "wi wi-day-sleet";
  58.                 break;
  59.             case "fog":
  60.                 icon_f = "wi wi-day-fog";
  61.                 break;
  62.             case "hazy":
  63.                 icon_f = "wi wi-day-haze";
  64.                 break;
  65.             case "mostlycloudy":
  66.                 icon_f = "wi wi-day-cloudy";
  67.                 break;
  68.             case "mostlysunny":
  69.                 icon_f = "wi wi-day-sunny-overcast";
  70.                 break;
  71.             case "sleet":
  72.                 icon_f = "wi wi-day-sleet";
  73.                 break;
  74.             case "rain":
  75.                 icon_f = "wi wi-day-showers";
  76.                 break;
  77.             case "snow":
  78.                 icon_f = "wi wi-day-snow";
  79.                 break;
  80.             case "sunny":
  81.                 icon_f = "wi wi-day-sunny";
  82.                 break;
  83.             case "tstorms":
  84.                 icon_f = "wi wi-day-thunderstorm";
  85.                 break;
  86.             case "unknown":
  87.                 icon_f = "wi wi-day-thunderstorm";
  88.                 break;
  89.             case "partlycloudy":
  90.                 icon_f = "wi wi-day-cloudy";
  91.                 break;
  92.             case "nt_clear":
  93.                 icon_f = "wi wi-stars";
  94.                 break;
  95.             case "nt_cloudy":
  96.                 icon_f = "wi wi-night-alt-cloudy";
  97.                 break;
  98.             case "nt_flurries":
  99.                 icon_f = "wi wi-night-alt-sleet";
  100.                 break;
  101.             case "nt_fog":
  102.                 icon_f = "wi wi-night-fog";
  103.                 break;
  104.             case "nt_hazy":
  105.                 icon_f = "wi wi-night-haze";
  106.                 break;
  107.             case "nt_mostlycloudy":
  108.                 icon_f = "wi wi-night-cloudy";
  109.                 break;
  110.             case "nt_mostlysunny":
  111.                 icon_f = "wi wi-night-sunny-overcast";
  112.                 break;
  113.             case "nt_sleet":
  114.                 icon_f = "wi wi-night-sleet";
  115.                 break;
  116.             case "nt_rain":
  117.                 icon_f = "wi wi-night-showers";
  118.                 break;
  119.             case "nt_snow":
  120.                 icon_f = "wi wi-night-snow";
  121.                 break;
  122.             case "nt_sunny":
  123.                 icon_f = "wi wi-night-sunny";
  124.                 break;
  125.             case "nt_tstorms":
  126.                 icon_f = "wi wi-night-thunderstorm";
  127.                 break;
  128.             case "nt_unknown":
  129.                 icon_f = "wi wi-night-thunderstorm";
  130.                 break;
  131.             case "nt_partlycloudy":
  132.                 icon_f = "wi wi-night-cloudy";
  133.                 break;
  134.         }
  135.        
  136.         document.getElementById("icon_f_" + i).className = icon_f;
  137.         document.getElementById("forecast_str_" + i).innerHTML = forecast_str;
  138.         document.getElementById("temp_high_" + i).innerHTML = temp_high;
  139.         document.getElementById("temp_low_" + i).innerHTML = temp_low;
  140.     }
  141. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement