function parseData(data) {
	var parts = data.split(';');

	var map = new Object();

	for(var i = 0; i<parts.length; i++) {
		var p = parts[i].split('|');
		map[p[0]] = p[1];
	}

	return map;
}

function classifyTemperature(t) {
	if(t<0) return 'frost';
	if(t>=0 && t<10) return 'cold';
	if(t>=10 && t<20) return 'mild';
	if(t>=20 && t<30) return 'warm';
	if(t>=30) return 'hot';

	return 'hot';
}

function conditionsToText(cond) {
	switch(cond) {
		case 'clear':
			return 'czyste niebo';
		case 'few':
			return 'zachmurzenie ma\u0142e';
		case 'scattered':
			return 'zachmurzenie umiarkowane';
		case 'broken':
			return 'zachmurzenie du\u017ce';
		case 'overcast':
			return 'zachmurzenie ca\u0142kowite';
		case 'towering cumulus':
			return 'rozbudowuj\u0105ce si\u0119 pionowo chmury k\u0142\u0119biaste';
		case 'cumulonimbus':
			return 'chmury kłębiasto-deszczowe';
		case 'rain':
			return 'deszcz';
		case 'snow':
			return '\u015bnieg';
		case 'storm':
			return 'burza';
		case 'fog':
			return 'mg\u0142a';
		default: {
				return 'czyste niebo';

			}
	}
}

function temperatureToText(t) {
	if(t<-10) return 'siarczysty mróz';
	if(t>=-10 && t<-5) return 'mróz';
	if(t>=-5 && t<0) return 'lekki mróz';
	if(t>=0 && t<10) return 'zimno';
	if(t>=10 && t<15) return 'ch\u0142odno';
	if(t>=15 && t<20) return 'umiarkowanie ciep\u0142o';
	if(t>=20 && t<25) return 'ciep\u0142o';
	if(t>=25 && t<30) return 'gor\u0105co';
	if(t>=30 && t<35) return 'upa\u0142';
	if(t>=35) return 'ekstremalny upa\u0142';

	return 'nie wiadomo';
}

function computeRH(t, dp) {
	t = parseInt(t);
	dp = parseInt(dp);
	return Math.round(100*(Math.exp((17.27*dp)/(dp+237.7))/Math.exp((17.27*t)/(t+237.7))));
}

function findAirports() {
$(document).ready(function(){
	$.get('http://lowcyburz.pl/skypredict/widgets/airports.php', function(data) {
			
			$('#airports').html(getHtml(parseData(data)));
		}
	);

	
});	
}

function genSelect(selected) {
	var airports = [
		{
			'metar' : 'EPSC',
			'name'  : 'Szczecin - Goleniów'
		},
		{
			'metar' : 'EPGD',
			'name'  : 'Gdańsk - Rębiechowo'
		},
		{
			'metar' : 'EPPO',
			'name'  : 'Poznań - Ławica'
		},
		{
			'metar' : 'EPLL',
			'name'  : 'Łódź - Lublinek'
		},
		{
			'metar' : 'EPWA',
			'name'  : 'Warszawa - Okęcie'
		},
		{
			'metar' : 'EPWR',
			'name'  : 'Wrocław - Strachowice'
		},
		{
			'metar' : 'EPKT',
			'name'  : 'Katowice - Pyrzowice'
		},
		{
			'metar' : 'EPKK',
			'name'  : 'Kraków - Balice'
		},
		{
			'metar' : 'EPRZ',
			'name'  : 'Rzeszów - Jasionka'
		},
	];
	
	html = '<select id="weather-sel">';
	
	for(var a in airports) {
		html += '<option ';
		if(airports[a].metar == selected) {
			html += 'selected="selected"';
		}
		
		html += 'value="'+airports[a].metar+'">'+airports[a].name+'</option>';
	}
	
	html += '</select>';
	
	return html;
}

function getHtml(metar, map) {
	html = '<strong>Pogoda na lotnisku:</strong>'+genSelect(metar);
	html += '<div id="weather-airports"></div>';
	html += '<table><tr>';
	html += '<td class="weather-panel-temperature-'+ classifyTemperature(map.te) + '" title="'+temperatureToText(map.te)+'">' + map.te + '°C</td>';

	html += '<td title="punkt rosy: '+map.dp+'°C"><div id="weather-panel-humitidy"></div><span class="weather-panel-humidity-value">' + computeRH(map.te, map.dp) + '%</span></td>'
	var clouds = map.cl.split(', ');
	clouds = (clouds.length>1 ? clouds[1] : map.cl);
	
	if(map.ph == 'none') {
		html += '<td title="'+conditionsToText(clouds)+'"><div id="weather-panel-'+clouds+'"></div></td>';
	} else {
		html += '<td title="'+conditionsToText(map.ph)+'"><div id="weather-panel-'+map.ph+'"></div></td>';
	}

	//html += '<div id="weather-panel-inner-footer"></div>';
	html += '</tr></table><table><tr>';

	html += '<td id="weather-panel-wind" title="pr\u0119dko\u015b\u0107 wiartu"><span id="weather-panel-wind-speed">'+map.wi+' km/h</span>' + (map.wg>0 ? ' <span title="porywy" id="weather-panel-wind-gusts">('+map.wg+' km/h)</span>' : ', ');
	html += '<span id="weather-panel-wind-direction" title="kierunek wiatru">';
	
	if(map.wd != 'variable') {
		html += map.wd;
	} else {
		html += 'zmienny';
	}
	
	html += '</span></td>';

	html += '<td id="weather-panel-pressure" title="ci\u015bnienie powietrza">'+map.pr+' hPa</td>';

	html += '</tr>';
	html += '<tr><td colspan="3" class="widget-comment">Źródło danych: <a href="http://weather.noaa.gov/">http://weather.noaa.gov/</a></td></tr></table>';
	return html;

}

function weatherLoad() {
	var airp = $.cookie('scmsFavAirport');
	$('#weather-sel').unbind('change');
	
	$.get('http://lowcyburz.pl/skypredict/widgets/metar.php?nodb&airport='+(airp ? airp : 'EPWA'), function(data) {

			$('#weather-panel').html(getHtml(airp, parseData(data)));
			
			$('#weather-sel').change(function() {
				$.cookie('scmsFavAirport', $(this).val(), { expires: 32 });
				weatherLoad();
			});
		}
	);
}

$(document).ready(function(){
	weatherLoad();
	
	$('#weather-ja').click(function() {
		weatherLoad();
	});

});

