// widget settings
var weatherElem="span[@id='weatherwidget']";
var cultureCode="en-GB";
var countryCode="ch";
var viewIDs="vew_icon,vew_daily";
var publication="intra";

var numOfDays = 2;

var diseaseURLBase = "5075.aspx?mapid=";

// XML settings
var xmlTimeout=30000;
var xmlProxy="/widget/xmlProxy.aspx?xmlUrl=";

// messages
var tabWeather="Weather";
var xmlLoadingImg="/widget/img/load.gif";
var xmlLoadingWeather="Loading weather feed...";
var xmlErrorWeatherGet="Error fetching weather feed!";
var xmlErrorWeatherShow="Error displaying weather feed!";

// create proxied URLs
function proxy(url){
	if (xmlProxy)
		{return xmlProxy+encodeURIComponent(url);}
	else
		{return url;}
}


// what to do when there is an error
function weatherError(j,msg)
{
	// show an error message
	$(j).empty().append(msg);
}

function getWeather(url) {
	// fetch data
	try {
		$.ajax({
			url:proxy(url),
			type:'GET',
			dataType:'xml',
			timeout:xmlTimeout,
			cache:false,
			error:function(){weatherError(weatherElem,xmlErrorWeatherGet);},
			success:function(xml){
				$(weatherElem).empty();
				
				// station name
				$(xml).find("location/stationName")
					.each(function(i){
						$(weatherElem).append("<small>("+$(this).text()+" station)</small>");
					});
					
				// weather and disease risk
				$(weatherElem).append("<ul></ul>");				
				$(xml).find("weathericon/day")
					.each(function(i){
						if (i<numOfDays) {
							var min = $(xml).find("dailytable[@id='vew_temp']/content/row[@id='temp_min']/cell:eq("+i+")/text").text();
							var max = $(xml).find("dailytable[@id='vew_temp']/content/row[@id='temp_max']/cell:eq("+i+")/text").text();
							var weatherStr = "<li class='iconday'><img src='" + $(this).children("image").text() + "' title='" + $(this).children("description").text() + "'><span class='temp'> <span class='min'>"+min+"&deg;C</span> <span class='max'>"+max+"&deg;C</span></span> <span class='day'>" + $(this).children("hint").text() + "</span>";
							
							var diseaseRisks = "";
							$(xml).find("dailytable[@id='vew_daily']/content/row")
								.each(function(j){
									var rowID = $(this).attr("id");
									var color = $(this).children("cell:eq("+i+")").children("bgcolor").text();
									var diseaseURL = diseaseURLBase;
									if (color == '#FF0000') {	
										if (rowID == 'gc_AnthracnoseFoliarRisk') {
											diseaseURL += "7";
										}
										else if (rowID == 'gc_DollarSpotRisk') {
											diseaseURL += "8";
										}
										else if (rowID == 'gc_DollarSpotIrrigatedRisk') {
											diseaseURL += "9";
										}
										else if (rowID == 'gc_FusariumPatchRisk') {
											diseaseURL += "10";
										}
										else if (rowID == 'gc_PoaAnnuaGerminationRisk') {
											diseaseURL += "11";
										}
										else if (rowID == 'gc_PoaAnnuaSeedheadsRisk') {
											diseaseURL += "12";
										}
										else if (rowID == 'gc_FusariumPatchParklandRisk') {
											diseaseURL += "13";
										}
										else if (rowID == 'gc_TakeAllPatchRisk') {
											diseaseURL += "14";
										}
										else if (rowID == 'gc_TakeAllPatchIrrigatedRisk') {
											diseaseURL += "15";
										}
										else {
											// If this is reached then this needs updating
											diseaseURL += "10";
										}
										
										var diseaseName = $(this).children("label").text();
										disease = "<li><a href='"+diseaseURL+"' title='Warning! High "+diseaseName+"'><img src='/css/i/stop.png' height='16' width='16' alt='Disease Risk High!' /></a></li>";
										diseaseRisks = diseaseRisks + disease;
									}

								});
							weatherStr = weatherStr + "<ul class='disease'>" + diseaseRisks + "</ul>" + "</li>";
							$(weatherElem + "/ul").append(weatherStr);
							$(weatherElem + "//" + "a, input, img, acronym").Tooltip({showURL: false});
						}
					});
			}
		});
	}
	catch (e)
	{
		weatherError(weatherElem,xmlErrorWeatherShow);
	}
}

// initialisation
function weather(url) {
	// remove contents of source element and add loading message
	var imgElem="<img src='"+xmlLoadingImg+"' alt='"+xmlLoadingWeather+"'/>";
	$(weatherElem)
		.empty()
		.append("<span id='loading'><br />"+imgElem+"</span>")
	;
	getWeather(url);
	
}