
function parseXml(xml){
	var superObject=new Object();
	//find every Tutorial and print the author
	$(xml).find("time").each(function(){
		var t = $(this);
		var timeFrom = t.attr("from"), timeTo   = t.attr("to"),temp=-1337,symb="?", nederb="?";
		t.find("temperature").each(function(){
			temp=$(this).attr("value");
		});
		t.find("symbol").each(function(){
			symb=$(this).attr("id");
		});
		t.find("precipitation").each(function(){
			nederb=$(this).attr("value");
		});
		if(temp!=-1337){
			superObject[timeFrom]={"from":timeFrom,"to":timeTo,"temp":temp,"symb":symb,"nederb":nederb};//+"-"+timeTo
		}else if(symb!="?" && superObject[timeFrom]["symb"]=="?"){
			superObject[timeFrom]["symb"]=symb;
		}else if(nederb!="?" && superObject[timeFrom]["nederb"]=="?"){
			superObject[timeFrom]["nederb"]=nederb;
		}
	});
	for (var prop in superObject) {
		var time = superObject[prop];
		var dateObj = parseISO8601(time["from"]);
		if(dateObj.getHours()==10 || dateObj.getHours()==12 || dateObj.getHours()==14){
			var niceDate=dateObj.getFullYear()+"-"+checkTime(dateObj.getMonth() + 1) + '-' + checkTime(dateObj.getDate()) + ' ' + checkTime(dateObj.getHours()) + ':' + checkTime(dateObj.getMinutes());
			$("#weather").append("<div class='weather2'>"+dateObj.getFullYear()+"-"+checkTime(dateObj.getMonth() + 1) + '-' + checkTime(dateObj.getDate())+"<br />"+checkTime(dateObj.getHours()) + ':' + checkTime(dateObj.getMinutes())+"<br /><img src='/resurser/"+time["symb"]+".png' alt='"+time["symb"]+"' title'"+time["symb"]+"' /><br />"+time["temp"]+"°C<br />"+time["nederb"]+"mm</div>");

			if(dateObj.getHours()==14){
				$("#weather").append("<div style='float:left;width:10px;height:110px'></div>");
			}
				
		}
	}
	
	$("#weather").after("<div style='clear:both;'></div><a href='http://yr.no/'>«Forecast from yr.no»</a>");
}

function parseXml2(xml){
	var superObject=new Object();
	//find every Tutorial and print the author
	$(xml).find("location").each(function(){
		var t = $(this);
		

		t.find("sun").each(function(){
			if($(this).attr("never_set")!="true"){
				var up=parseISO8601($(this).attr("rise"));
				var down=parseISO8601($(this).attr("set"));
				if($(this).attr("never_rise")!="true"){
					
					var l = ((down.getHours()*60)+down.getMinutes()) - ((up.getHours()*60)+up.getMinutes());
					
					$("#weather").append("<div class='weather2'>Solen upp<br />"+checkTime(up.getHours()) + ':' + checkTime(up.getMinutes())+"<br /><br />Solen går ner<br />"+checkTime(down.getHours()) + ':' + checkTime(down.getMinutes())+"<br /><br />"+(Math.floor(l/60))+"h "+(l%60)+"m</div>");
				}else{
					$("#weather").append("<div class='weather2'>Solen går upp</div>");
				}
			}else{
				$("#weather").append("<div class='weather2'>Solen går aldrig ner</div>");
			}
		});
		/*
		t.find("moon").each(function(){
			if($(this).attr("never_set")!="true"){
				var up=parseISO8601($(this).attr("rise"));
				var down=parseISO8601($(this).attr("set"));
				if($(this).attr("never_rise")!="true"){
					$("#weather").append("<div class='weather2'>Månen upp<br />"+checkTime(up.getHours()) + ':' + checkTime(up.getMinutes())+"<br /><br />Månen går ner<br />"+checkTime(down.getHours()) + ':' + checkTime(down.getMinutes())+"</div>");
				}else{
					$("#weather").append("<div class='weather2'>Månen går upp</div>");
				}
			}else{
				$("#weather").append("<div class='weather2'>Månen går aldrig ner</div>");
			}
		});
		*/
		
		
		
		
	});
}



function delayed(){
	var lat=globalGetMyFuckingMap.getCenter().lat(),lng=globalGetMyFuckingMap.getCenter().lng();
	

	var strUrl="/yr.php?lat="+lat+"&lon="+lng;

	$.ajax({
		url: strUrl,
		dataType: "xml",
		success: parseXml,
		error:function(XMLHttpRequest, textStatus, errorThrown){
			alert(XMLHttpRequest+"\n---\n"+textStatus+"\n---\n"+errorThrown);
		}
	});
	strUrl="/yr.php?s&lat="+lat+"&lon="+lng;
	$.ajax({
		url: strUrl,
		dataType: "xml",
		success: parseXml2,
		error:function(XMLHttpRequest, textStatus, errorThrown){
			alert(XMLHttpRequest+"\n---\n"+textStatus+"\n---\n"+errorThrown);
		}
	});


}


function parseISO8601(str) {
	 // we assume str is a UTC date ending in 'Z'
	
	var parts = str.split('T'),
	dateParts = parts[0].split('-'),
	timeParts = parts[1].split('Z'),
	timeSubParts = timeParts[0].split(':'),
	timeSecParts = timeSubParts[2].split('.'),
	timeHours = Number(timeSubParts[0]),
	_date = new Date;
	
	_date.setUTCFullYear(Number(dateParts[0]));
	_date.setUTCMonth(Number(dateParts[1])-1);
	_date.setUTCDate(Number(dateParts[2]));
	_date.setUTCHours(Number(timeHours));
	_date.setUTCMinutes(Number(timeSubParts[1]));
	_date.setUTCSeconds(Number(timeSecParts[0]));
	if (timeSecParts[1]) _date.setUTCMilliseconds(Number(timeSecParts[1]));
	
	// by using setUTC methods the date has already been converted to local time(?)
	return _date;
}

function checkTime(i){if (i<10){i="0" + i; }return i;}
