var imageUrl = "/Images/Weather/";
var Cities;

function PopulateCities()
{
   if($get("SelectCities") != null)
   {
      NewsSite.NewsWS.GetCities(GetCitiesSucceeded);
   }
}

function GetCitiesSucceeded(cities)
{
   Cities = new Array(cities.length + 1);
   var cityID = GetCookie("City");
   if (cityID == "null" || cityID == null)
   {
      cityID = "34";
   }
   ChangeCity(cityID);
   var selectCities = $get("SelectCities");
   for(var i = 0; i < cities.length; i++)
   {
      var option = document.createElement("option");
      selectCities.options.add(option);
      option.value = cities[i].CityID;
      option.innerHTML = cities[i].CityName;
      if(cityID == cities[i].CityID)
      {
         option.selected = true;
      }
      Cities[parseInt(cities[i].CityID)] = cities[i].CityName;
   }
}

function ChangeCity(city)
{
   LoadingCity(city);
   NewsSite.NewsWS.GetWeatherData(city, GetWeatherDataSucceeded);
   SetCookie("City", city);
}

function LoadingCity(city)
{
   var selectCities = $get("SelectCities");
   if(selectCities.options.length > 0)
   {
      var tableCityInfo = $get("TableCityInfo");
      tableCityInfo.rows[0].cells[0].innerHTML = Cities[parseInt(city)];
      $get("SpanUpdate").innerHTML = "Hava durumu yükleniyor...";
      ResetToday();
      ResetForecast();
   }
}

function ResetToday()
{
   var tableCityInfo = $get("TableCityInfo");
   tableCityInfo.rows[2].cells[0].innerHTML = "";
   tableCityInfo.rows[0].cells[1].childNodes[0].src = imageUrl + "0.gif";
   $get("SpanLastUpdated").innerHTML = "";
   $get("SpanTemperature").innerHTML = "";
   $get("SpanRealFeel").innerHTML = "";

   var tableToday = $get("TableToday");
   tableToday.rows[0].cells[1].innerHTML = "-";
   tableToday.rows[1].cells[1].innerHTML = "-";
   tableToday.rows[2].cells[1].innerHTML = "-";
   tableToday.rows[3].cells[1].innerHTML = "-";
}

function ResetForecast()
{
   var tableToday = $get("TableToday");
   var tableForecast = $get("TableForecast");
   tableToday.style.visibility = "hidden";
   tableForecast.style.visibility = "hidden";
}

function GetWeatherDataSucceeded(weatherData)
{
   var tableCityInfo = $get("TableCityInfo");
   tableCityInfo.rows[0].cells[0].innerHTML = weatherData.City.CityName;
   $get("SpanLastUpdated").innerHTML = "Son güncellenme: " + weatherData.LastUpdatedTime;

   var tableToday = $get("TableToday");
   if(weatherData.InfoFound)
   {
      $get("SpanUpdate").innerHTML = "";
      $get("SpanTemperature").innerHTML = weatherData.TemperatureCelsius==-100?"-":weatherData.TemperatureCelsius + " °C";
      
      tableCityInfo.rows[2].cells[0].innerHTML = weatherData.Conditions;
      if(weatherData.RealFeel != weatherData.TemperatureCelsius)
      {
         $get("SpanRealFeel").innerHTML = "Hissedilen: " + weatherData.RealFeel + " °C";
      }
      tableCityInfo.rows[0].cells[1].childNodes[0].src = imageUrl + weatherData.Image + ".gif";
      
      tableToday.rows[0].cells[1].innerHTML = weatherData.Pressure==-100?"-":weatherData.Pressure + " hPa";
      tableToday.rows[1].cells[1].innerHTML = "%" + weatherData.Humidity;
      tableToday.rows[2].cells[1].innerHTML = weatherData.Visibility==0?"-":weatherData.Visibility + " km";
      tableToday.rows[3].cells[1].innerHTML = weatherData.WindDirection + " " + weatherData.WindSpeed + " km/h";
   }
   else
   {
      $get("SpanUpdate").innerHTML = "Şu andaki hava durumu alınamıyor.";
      ResetToday();
   }
   tableToday.rows[4].cells[1].innerHTML = weatherData.Sunrise;
   tableToday.rows[5].cells[1].innerHTML = weatherData.Sunset;

   var tableForecast = $get("TableForecast");
   var tr = tableForecast.rows[0];
   for(var i = 0; i < 5; i++)
   {
      tr.cells[i].innerHTML = weatherData.Forecasts[i].Day;
   }

   tr = tableForecast.rows[1];
   for(var i = 0; i < 5; i++)
   {
      var img = tr.cells[i].childNodes[0];
      img.src = imageUrl + weatherData.Forecasts[i].Image + ".gif";
      img.alt = weatherData.Forecasts[i].Conditions;
   }
   
   tr = tableForecast.rows[2];
   for(var i = 0; i < 5; i++)
   {
      tr.cells[i].innerHTML = weatherData.Forecasts[i].Conditions;
   }
   
   tr = tableForecast.rows[3];
   for(var i = 0; i < 5; i++)
   {
      tr.cells[i].innerHTML = weatherData.Forecasts[i].TemperatureHigh + "°";
   }
   
   tr = tableForecast.rows[4];
   for(var i = 0; i < 5; i++)
   {
      tr.cells[i].innerHTML = weatherData.Forecasts[i].TemperatureLow + "°";
   }

   tableToday.style.visibility = "visible";
   tableForecast.style.visibility = "visible";
}

function SetCookie(sName, sValue)
{
  date = new Date();
  document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 2020 23:59:59 GMT;";
}

function GetCookie(sName)
{
   var aCookie = document.cookie.split("; ");
   for (var i=0; i < aCookie.length; i++)
   {
      var aCrumb = aCookie[i].split("=");
      if (sName == aCrumb[0])
      {
         return unescape(aCrumb[1]);
      }
   }

   return null;
}

if (typeof (Sys) !== "undefined") { Sys.Application.notifyScriptLoaded(); }
