var READY_STATE_COMPLETE=4;
var peticion_http = null;
var http_request = false;
 
function Objecte() {
	this.init();
}

/*****
*    Objecte init
*****/
Objecte.prototype.init = function() {
	this.getInformacio = null;
};

/*****
*    Objecte httpRequestWeather
*****/
Objecte.prototype.httpRequestWeather = function(servletPath, funcio) {
	//prompt("servletPath: ",servletPath);
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) http_request.overrideMimeType('text/xml');
	}else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert1('Error :( No és possible crear una instància XMLHTTP');
		return false;
	}

	if(funcio=="locIdResponse")	http_request.onreadystatechange = this.locIdResponse;
	else http_request.onreadystatechange = this.weatherResponse;
	http_request.open('GET', servletPath, true);
	http_request.send(null);
};

/*****
*    Objecte locIdResponse
*****/
Objecte.prototype.locIdResponse = function() {
	var codi="";

	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var oDocumento = http_request.responseXML;

			if(http_request.responseXML.getElementsByTagName('loc').length > 0)	codi=http_request.responseXML.getElementsByTagName('loc')[0].getAttribute('id');
			else	senseTemps();
		}
	}

	if(codi!="")cargaWeather(codi);
};

/*****
*    Objecte weatherResponse
*****/
Objecte.prototype.weatherResponse = function() {

	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var _xml = http_request.responseXML;
			//alert(_xml);
			if(_xml != null){
				var _root = _xml.documentElement;
				switch(_root.tagName){
					case "weather":
						displayWeather(_root); break;
					case "error" :
						alert1("S'ha produit un error al temps o localitzaci&oacute;."); break;
					default: alert("Error.");
				}
			}else{
				alert1("El servidor ha retornat un XML buit.");
			}
		}
	}
};

function displayWeather(rootElement){
	if(rootElement != null){
		var loc= rootElement.getElementsByTagName("loc")[0];
		var cityState=setupToplevel(loc);
		var  dayf = rootElement.getElementsByTagName("dayf")[0];
		setupWeather(dayf,cityState);
	}
}

function setupToplevel(_element){
    if(_element != null){

		var aux=_element.getElementsByTagName("dnam")[0].firstChild.nodeValue;
		array= aux.split(",");	
		//document.getElementById("city_state").innerHTML= array[0];
		return array[0];
	}
}


function setupElement(_node,_span,txtMsg)  {
	if(arguments.length == 3){
		alert1(_node.firstChild.nodeValue);
		_span.innerHTML= txtMsg+": "+_node.firstChild.nodeValue;
	}
}

