﻿cYahooWeatherConditionsEn = 
{
	0  	:	'tornado',
	1 	:	'tropical storm',
	2 	:	'hurricane',
	3 	:	'severe thunderstorms',
	4 	:	'thunderstorms',
	5 	:	'mixed rain and snow',
	6 	:	'mixed rain and sleet',
	7 	:	'mixed snow and sleet',
	8 	:	'freezing drizzle',
	9 	:	'drizzle',
	10 	:	'freezing rain',
	11 	:	'showers',
	12 	:	'showers',
	13 	:	'snow flurries',
	14 	:	'light snow showers',
	15 	:	'blowing snow',
	16 	:	'snow',
	17 	:	'hail',
	18 	:	'sleet',
	19 	:	'dust',
	20 	:	'foggy',
	21 	:	'haze',
	22 	:	'smoky',
	23 	:	'blustery',
	24 	:	'windy',
	25 	:	'cold',
	26 	:	'cloudy',
	27 	:	'mostly cloudy (night)',
	28 	:	'mostly cloudy (day)',
	29 	:	'partly cloudy (night)',
	30 	:	'partly cloudy (day)',
	31 	:	'clear (night)',
	32 	:	'sunny',
	33 	:	'fair (night)',
	34 	:	'fair (day)',
	35 	:	'mixed rain and hail',
	36 	:	'hot',
	37 	:	'isolated thunderstorms',
	38 	:	'scattered thunderstorms',
	39 	:	'scattered thunderstorms',
	40 	:	'scattered showers',
	41 	:	'heavy snow',
	42 	:	'scattered snow showers',
	43 	:	'heavy snow',
	44 	:	'partly cloudy',
	45 	:	'thundershowers',
	46 	:	'snow showers',
	47 	:	'isolated thundershowers',
	3200 	: 'not available',
	/**/
	"temp"	: "temp"
}

cYahooWeatherConditionsBg = 
{
	0  	:	'торнадо',
	1 	:	'тропическа буря',
	2 	:	'ураган',
	3 	:	'тежки гръмотевини бури',
	4 	:	'гръмотевични бури',
	5 	:	'дъжд и сняг',
	6 	:	'дъжд и град',
	7 	:	'сняг и град',
	8 	:	'freezing drizzle',
	9 	:	'drizzle',
	10 	:	'леден дъжд',
	11 	:	'порой',
	12 	:	'порой',
	13 	:	'лек сняг',
	14 	:	'сняг',
	15 	:	'силен сняг',
	16 	:	'сняг',
	17 	:	'градушка',
	18 	:	'градушка',
	19 	:	'пепел',
	20 	:	'мъгла',
	21 	:	'лека мъгла',
	22 	:	'опушено',
	23 	:	'blustery',
	24 	:	'ветровито',
	25 	:	'хладно',
	26 	:	'облачно',
	27 	:	'облачно (нощ)',
	28 	:	'облачно (ден)',
	29 	:	'частично облачно (нощ)',
	30 	:	'частично облачно (ден)',
	31 	:	'ясно (нощ)',
	32 	:	'слънчево',
	33 	:	'ясно (нощ)',
	34 	:	'ясно (ден)',
	35 	:	'дъжд и град',
	36 	:	'горещо',
	37 	:	'отделни гръмотевици',
	38 	:	'гръмотевици',
	39 	:	'гръмотевици',
	40 	:	'разпокъсани валежи',
	41 	:	'тежък снеговалеж',
	42 	:	'тежък снеговалеж',
	43 	:	'тежък снеговалеж',
	44 	:	'частично облачно',
	45 	:	'гръмотевична буря',
	46 	:	'снежна буря',
	47 	:	'изолирани гръмотевични бури',
	3200 	:	'няма',
	/**/
	"temp"	: "температура"
}

cWeatherService = function()
{
	//the proxy just redirects a XML response
	var sWeatherProxy = 'inc/weather.json.php';
	var sWeatherClass = 'moWeather';
	var cWC = cYahooWeatherConditionsBg;
	
	function createWeatherEnvelope( aData )
	{
		var hList = document.createElement( 'ul' );
		var hTitle = document.createElement( 'li' );
		hTitle.className = 'title';
		hTitle.innerHTML = aData.title;

		var hType = document.createElement( 'li' );
		hType.innerHTML = cWC[ aData.code ];
		
		var hTemp = document.createElement( 'li' );
		hTemp.innerHTML = cWC[ "temp" ] + " " + aData.temp;
		
		hList.appendChild( hTitle );
		hList.appendChild( hType );
		hList.appendChild( hTemp );

		return hList;
	}
	
	return {
		initContainers : function()
		{
			var hContainers = MO.Dom.getElementsBySelector( "div[class=" + sWeatherClass + "]" );
			function f( hEl )
			{
				if( !hEl.id )
				{
					hEl.id = MO.Dom.getUniqueId();
				}
				var hRL = new cRemoteLoader();
				var sURL = hEl.getAttribute( "town" ) ? sWeatherProxy + '?town=' + hEl.getAttribute( "town" ) : sWeatherProxy;
				hRL.loadContent( sURL, function() { cWeatherService.onLoad( hEl.id, this.hXMLHttp.responseText ) } );
			}
			hContainers.apply( f );
		},
		init : function()
		{
			cWeatherService.initContainers();
		},
		onLoad : function( sContainerId, sData )
		{
			var aData = eval( '(function () { return ' + sData + ' })();' );
			var hContainer = MO.Dom.get( sContainerId );
			hContainer.appendChild( createWeatherEnvelope( aData ) );
		}
	}
}();
MO.Event.DomLoaded.load( cWeatherService.init );