function Weather(map) {
	this.zoomLevel = 10;
	var weatherobj = this;
	this.map = map;

	GEvent.addListener(map, "moveend", function() {
		var zoom = weatherobj.map.getZoom();
		if (zoom >= weatherobj.zoomLevel) temps();
		else senseTemps();
	});
}

function temps(){
	var buscarElem="";
	var reversegeocoder = new GReverseGeocoder(map);

	GEvent.addListener(reversegeocoder, "load", function(placemark) {

		if(placemark.AddressDetails.Country && placemark.AddressDetails.Country.AdministrativeArea && placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea && placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality){
			buscarElem=placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;

			if (typeof(arrayTemps[buscarElem])=='undefined' || arrayTemps[buscarElem]== "undefined")buscarElem = quitarAcentos (buscarElem) + ",Spain";
			else buscarElem = arrayTemps[buscarElem] + ",Spain";

			var cadenaUrl = urlPoblacioTemps + "" + buscarElem//"http://xoap.weather.com/search/search?where="+buscarElem;//Blanes,Spain
			cadenaUrl=escape(cadenaUrl);
			var urlWeather="weatherProxy.php?url="+cadenaUrl;

			peticio = new Objecte();
			peticio.httpRequestWeather(urlWeather, "locIdResponse");
		}
	});
	reversegeocoder.reverseGeocode(new GLatLng(map.getCenter().lat(), map.getCenter().lng()));
}

function cargaWeather(codi){
	var cadenaUrl = urlTemps + "" + codi+"?cc=*&link=xoap&prod=xoap&par=1070208461&key=cc6a714747da7c52&dayf=3";//"http://xoap.weather.com/weather/local/"+codi+"?cc=*&link=xoap&prod=xoap&par=1070208461&key=cc6a714747da7c52&dayf=3";
	cadenaUrl=escape(cadenaUrl);
	var urlWeather="weatherProxy.php?url="+cadenaUrl;

	peticio = new Objecte();
	peticio.httpRequestWeather(urlWeather, "weatherResponse");
}

function setupWeather(_element, cityState){
	if(_element != null){
		var srcTemps1="";
		var srcTemps2="";
		var srcTemps3="";
		var temperaturaTemps1="";
		var temperaturaTemps2="";
		var temperaturaTemps3="";

		var days =  _element.getElementsByTagName("day");
		var dpart = null;

		for(var i = 0; i < days.length; i++)   {
			if(days[i].getAttribute("d") == "0") { 
				var parts =  days[i].getElementsByTagName("part");
				dpart=days[i];
				if(parts[0].getAttribute("p") == "d") {//alert(days[i].getAttribute("d"));
					var posElem=0;
					if(dpart.getElementsByTagName("icon")[0].firstChild.nodeValue=="44")posElem=1;//44=N/A
					srcTemps1="./icons/31x31/"+dpart.getElementsByTagName("icon")[posElem].firstChild.nodeValue+".png";
					var temp = dpart.getElementsByTagName("hi")[0].firstChild.nodeValue;
					if(temp!="N/A"){
						temp = (temp -32)*(5/9);//C = (F-32)*(5/9)
						temperaturaTemps1 = Math.round(temp) + " &deg;C";
					}
				}
			}
			if(days[i].getAttribute("d") == "1") { 
				var parts =  days[i].getElementsByTagName("part");
				dpart=days[i];
				if(parts[0].getAttribute("p") == "d") {
					var temp = dpart.getElementsByTagName("hi")[0].firstChild.nodeValue;
					temp = (temp -32)*(5/9);//C = (F-32)*(5/9)
					temperaturaTemps2 = Math.round(temp) + " &deg;C";
					srcTemps2="./icons/31x31/"+dpart.getElementsByTagName("icon")[0].firstChild.nodeValue+".png";
				}
			}
			if(days[i].getAttribute("d") == "2") { 
				var parts =  days[i].getElementsByTagName("part");
				dpart=days[i];
				if(parts[0].getAttribute("p") == "d") {
					var temp = dpart.getElementsByTagName("hi")[0].firstChild.nodeValue;
					temp = (temp -32)*(5/9);//C = (F-32)*(5/9)
					temperaturaTemps3 = Math.round(temp) + " &deg;C";
					srcTemps3="./icons/31x31/"+dpart.getElementsByTagName("icon")[0].firstChild.nodeValue+".png";
				}
			}
		}
		cityState=tallarText(cityState,12);
		news[0]='<span class="spanAlignTop">'+cityState + " - " + tempsActual + ": " +temperaturaTemps1 + "</span> " + '<img class="img_weather" width="31" height="31" src="'+srcTemps1+'"> &nbsp;' + '<a href="http://www.weather.com" target="_blank" style="float:left;"><img src="img/weather-logo.gif" alt="weather.com" border="0" style="margin-top:-17px;" /></a>';
		news[1]='<span class="spanAlignTop">'+cityState + " - " + tempsDema + ": " +temperaturaTemps2 + "</span> " + '<img class="img_weather" width="31" height="31" src="'+srcTemps2+'"> &nbsp;' + '<a href="http://www.weather.com" target="_blank" style="float:left;"><img src="img/weather-logo.gif" alt="weather.com" border="0" style="margin-top:-17px;" /></a>';
		news[2]='<span class="spanAlignTop">'+cityState + " - " + tempsDemaPast + ": " +temperaturaTemps3 + "</span> " + '<img class="img_weather" width="31" height="31" src="'+srcTemps3+'"> &nbsp;' + '<a href="http://www.weather.com" target="_blank" style="float:left;"><img src="img/weather-logo.gif" alt="weather.com" border="0" style="margin-top:-17px;" /></a>';
		updatecontent();
	}
}

function senseTemps(){
	news=new Array();
}

/* 
	Funció que retorna el text tallat per la mida que li diem
	string = text.
	llarg = llargada que volem com a màxim.
*/
function tallarText(string, llarg){
	var finalstr = string;
	if(string.length-1 > llarg){
		finalstr = "<acronym title='"+string+"'>";
		finalstr = finalstr + string.substr(0, llarg);
		finalstr = finalstr + "...</acronym>";
	}

	return finalstr;
}

