﻿var weatherUpdateTimer = setInterval(OnWeatherUpdateTimer, 1000);
var weatherUpdateTimerRetryCount = 0;

function OnWeatherUpdateTimer()
{
  if (typeof(LivedoorWeatherHacks) == 'undefined')
  {
    weatherUpdateTimerRetryCount++;
    if (weatherUpdateTimerRetryCount > 30)
    {
      clearInterval(weatherUpdateTimer);
    }
    return;
  }
  
  clearInterval(weatherUpdateTimer);
  
  var city = '63';  // 東京
  var day = 'today';
  LivedoorWeatherHacks.GetWeatherInfo(city, day, OnSuccess_GetWeatherInfo_Today, OnFailed_GetWeatherInfo_Today);

  var day = 'tomorrow';
  LivedoorWeatherHacks.GetWeatherInfo(city, day, OnSuccess_GetWeatherInfo_Tomorrow, OnFailed_GetWeatherInfo_Today);
  
  // いったん表示された後は5分おきに更新
  weatherUpdateTimer = setInterval(OnWeatherUpdateTimer, 5 * 60 * 1000);
}

function OnSuccess_GetWeatherInfo_Today(result)
{
  OnSuccess_GetWeatherInfo(result, 'today');
}

function OnSuccess_GetWeatherInfo_Tomorrow(result)
{
  OnSuccess_GetWeatherInfo(result, 'tomorrow');
}

function OnSuccess_GetWeatherInfo(result, day)
{
  var elem = $get('weather_' + day + '_date');
  elem.innerHTML = result.ForecastDate.Month + '/' + result.ForecastDate.Day;

  // 天気予報の画像とそのリンクを作成
  // a タグと img タグは同一行内で innerHTML に追加しないとリンクにならないようだ（少なくとも IE6.0 で確認。ほかのブラウザは不明）
  elem = $get('weather_' + day + '_image');
  elem.innerHTML = '<a href="' + result.Image.Link + '" target="_blank"><img class="weather_icon" src="' + result.Image.Url + '" alt="' + result.Image.Title + '" width="20" height="12" /></a>';
  
  // 最高気温
  elem = $get('weather_' + day + '_temperature_hi');
  if (result.Temperature.Max.Celsius.Value)
  {
    elem.innerHTML = result.Temperature.Max.Celsius.Value;
  }
  else
  {
    elem.innerHTML = '-';
  }

  // 最低気温
  elem = $get('weather_' + day + '_temperature_lo');
  if (result.Temperature.Min.Celsius.Value)
  {
    elem.innerHTML = result.Temperature.Min.Celsius.Value;
  }
  else
  {
    elem.innerHTML = '-';
  }
}

function OnFailed_GetWeatherInfo_Today(error)
{
}

