﻿var foreHourlyUrl = null;

function getForecastHourlyData()
{
    if (location.isUs)
    {
        foreHourlyUrl = WebRoot + "/DataService/GetForecastHourly.ashx?" + getLocationQueryString(locat) + "&" + getUnitsQueryString(units);
        var dataReq = new httpReq(foreHourlyUrl, parseForeHourly);
        dataReq.load();
    }
}

var foreHourlyData = null;
function parseForeHourly(fhdata)
{
    foreHourlyData = fhdata;
    
    if (null == foreHourlyData && typeof(this.getJsonObj) == "function")
        foreHourlyData = this.getJsonObj();
    
    if (null != foreHourlyData && foreHourlyData.forecastHourlyList.length > 0)
    {
        try
        {
            var lastDate = null;
          
            clearOldHours();  
            
            //var dt = new Date(foreHourlyData.forecastHourlyList[0].dateTime);
            for (var i = 0; i < foreHourlyData.forecastHourlyList.length; i++)
            {
                var forePeriod = foreHourlyData.forecastHourlyList[i];
                if (null == lastDate || lastDate.getDay() != forePeriod.dateTime.getDay())
                    addDayHeader(getDayOfWeek(forePeriod.dateTime.getDay()), getMonthName(forePeriod.dateTime.getMonth()) +  " " 
                        + forePeriod.dateTime.getDate().toString() + " " + forePeriod.dateTime.getFullYear().toString());
                
                //addDayHeader("Wednesday", "February 20, 2008"); 
                var func = ((i%2) == 0) ? addLightHour : addDarkHour;
                func(getHourString(forePeriod.dateTime.getHours()), getIconSrc(forePeriod.icon, iconType.small), forePeriod.temperature.toString() 
                    + DegSymbol, forePeriod.desc);
                
                lastDate = forePeriod.dateTime;
            //addDarkHour((i + 1) + "pm", "Media/weather_icon.png", "35°F", "Cold as heck");
            //addLightHour((i+2) + "pm", "Media/weather_icon.png", "35°F", "Cold as heck");
            }
            
            applyHourDisplays();
            
        }
        catch(error)
        {
            writeLine(error.name + ": " + error.description);
        }
    }
}

function getMonthName(i)
{
    var month = "";   
    switch (i)
    {
        case 0: month = "January"; break;
        case 1: month = "February"; break;
        case 2: month = "March"; break;
        case 3: month = "April"; break;
        case 4: month = "May"; break;
        case 5: month = "June"; break;
        case 6: month = "July"; break;
        case 7: month = "August"; break;
        case 8: month = "September"; break;
        case 9: month = "October"; break;
        case 10: month = "November"; break;
        case 11: month = "December"; break;
    }
    
    return month;
}

function getDayOfWeek(i)
{
    var day = "";   
    switch (i)
    {
        case 0: day = "Sunday"; break;
        case 1: day = "Monday"; break;
        case 2: day = "Tuesday"; break;
        case 3: day = "Wednesday"; break;
        case 4: day = "Thursday"; break;
        case 5: day = "Friday"; break;
        case 6: day = "Saturday"; break;
    }
    
    return day;
}

function getHourString(i)
{
    var hour = "";
    if (i == 0)
        hour = "12am";
    else if (i > 0 && i <= 11)
        hour = i.toString() + "am"
    else if (i == 12)
        hour = "12pm"
    else if (i > 12 && i <= 23)
        hour = (i - 12).toString() + "pm"
    
    return hour;
}