﻿Ext.namespace("TwentyFour.Scripts.Weather");

var airportTitleActive = false;

function updateAirportInfo(cityId, cityName, renderLocation)
{
    new TwentyFour.Scripts.Weather.AirportDelayManager().showGrid(cityId, renderLocation);
    updateCityInfo(cityName);
    _cityId = cityId;
    airportTitleActive = false;
}

TwentyFour.Scripts.Weather.ForecastManager = function(){

    return{
    
        renderForecast : function(forecast, location){

            AjaxPro.queue.abort();
        
            if (airportTitleActive)
            {
                updateCityInfo(_cityName);
                airportTitleActive = false;
            }
            
            globalManager.updatePageForAjax(true,'forecasts/' + _country + '/' + _cityName + '/' + forecast);
            
            switch(forecast)
            {
                case 'currentconditions':
                {
                    var _currentConditionsManager = new TwentyFour.Scripts.Weather.CurrentConditionsManager();
                    _currentConditionsManager.showAll(_cityId,location);
                }
                break;
                case '7dayforecast':
                {
                    var _forecast7DayManager = new TwentyFour.Scripts.Weather.Forecast7DayManager();
                    _forecast7DayManager.showDetail(_cityId,location);
                }
                break;
                case '48hourforecast':
                {
                    var _forecast48HourManager = new TwentyFour.Scripts.Weather.Forecast48HourManager();
                    _forecast48HourManager.showGrid(_cityId,location);
                }
                break;  
                case '7dayexpandedforecast':
                {
                    var _forecast7DayExpandedManager = new TwentyFour.Scripts.Weather.Forecast7DayExpandedManager();
                    _forecast7DayExpandedManager.showGrid(_cityId,location);
                }
                break;
                case '15dayexpandedforecast':
                {
                    var _forecast15DayExpandedManager = new TwentyFour.Scripts.Weather.Forecast15DayExpandedManager();
                    _forecast15DayExpandedManager.showGrid(_cityId,location);
                }
                break;
                case 'marinereports':
                {
                    var _marineExtendedManager = new TwentyFour.Scripts.Weather.MarineExtendedManager();
                    _marineExtendedManager.showGrid(_cityId,location);
                }
                break;
                case 'tidereport':
                {
                    var _tideReportManager = new TwentyFour.Scripts.Weather.TideReportManager();
                    _tideReportManager.showGrid(_cityId,location);
                }
                break;
                case 'extendedtidereport':
                {
                    var _tideReportExtendedManager = new TwentyFour.Scripts.Weather.TideReportExtendedManager();
                    _tideReportExtendedManager.showGrid(_cityId,location);
                }
                break;
                case 'airportdelays':
                {             
                    airportTitleActive = true;      
                    if (_country == null || _country.toLowerCase() == "sa")       
                        updateCityInfo('South African Airports');
                    else
                        updateCityInfo('African Airports');
                
                    var _airportDelayManager = new TwentyFour.Scripts.Weather.AirportDelayManager();
                    _airportDelayManager.showAirportList(location,_country);
                }
                break;
                case 'historicalclimatedetail':
                {
                    updateHistoricalClimateReport(true,location);
                }
                break;
                case 'firedanger':
                {
                    var _fireReportManager = new TwentyFour.Scripts.Weather.FireReportManager();
                    _fireReportManager.showGrid(_cityId,location);
                }
                break;
                case 'weatheradvisories':
                {
                    var m_severeWarningsManager = new TwentyFour.Scripts.Weather.SevereWarningsManager();
                    //m_severeWarningsManager.showGrid('KCCY',location);
                    m_severeWarningsManager.showGrid(_cityId,location);
                }
                break;
                default:
                    $(location).update('forecast not implemented');
                break;
            }
        }
    }

};