
// Modela un vector asociativo o no asociativo.
function Clase_MapaMundi(){ 

	   this.paises = new Clase_Vector();
	   this.addPais = addPais;
	   this.addPaisCiudad = addPaisCiudad;
	   this.setPaisIndex = setPaisIndex;
	   this.getPaisIndex = getPaisIndex;
	   this.getPaisNombre = getPaisNombre;
	   this.getPaisObject = getPaisObject;
	   this.getPais = getPais;
	   this.getCiudadesPais = getCiudadesPais;
	   this.getNumeroPaises = getNumeroPaises;
	   this.getPaises = getPaises;
}

// Aņade un objeto pais al pais
function addPais(pais){
	this.paises.addIndexValue(pais);
}

// Aņade un objeto pais al pais
function setPaisIndex(pais, indice){
	this.paises.setIndexValue(pais,indice);
}

// Devuelve el objeto pais i
function getPais(i){
	return this.paises.getIndexValue(i);
}

// Devuelve el objeto pais i
function getPaisIndex(pais){
	//alert("getPaisIndex: "+pais);
	for(i=0;i<this.paises.getNumberElements();i++){
		pais_object = this.getPais(i);
		//alert("indice getPaisIndex: "+pais+" "+i);
		if (pais_object.getNombrePais() == pais){
			return i;
		}
	}
	return null;
}


// Devuelve el objeto pais i
function getPaisObject(pais){
	//alert("getPaisIndex: "+pais);
	for(i=0;i<this.paises.getNumberElements();i++){
		pais_object = this.getPais(i);
		//alert("indice getPaisIndex: "+pais+" "+i);
		if (pais_object.getNombrePais() == pais){
			return pais_object;
		}
	}
	return null;
}



// Devuelve un objeto pais, sabiendo su nombre
function getPaisNombre(pais_nombre){
	var i = 0;
	var pais_object;
	//alert("getPaisNombre "+this.paises.getNumberElements());
	for(i=0;i<this.paises.getNumberElements();i++){
		pais_object = this.getPais(i);
		//alert("Pais i:"+i+" "+pais_object.getNombrePais());
		if (pais_object.getNombrePais() == pais_nombre){
			return pais_object;
		}
	}
	return null;
}

function addPaisCiudad(pais,ciudad, id_usuario, nombre_usuario){
	//alert("aņadiendo "+pais);
	var pais_object = this.getPaisNombre(pais);
	if (pais_object == null){
		pais_object = new Clase_Pais(pais);
		pais_object.addCiudad(ciudad,id_usuario, nombre_usuario);
		this.addPais(pais_object);
		//alert("Aņadido el pais "+pais_object.getNombrePais());
	}else{
		var indice = this.getPaisIndex(pais);
		//alert("indice: "+indice);
		pais_object = this.getPais(indice);
		pais_object.addCiudad(ciudad,id_usuario, nombre_usuario);
		this.setPaisIndex(pais_object, indice);
		//alert("Actualizado el pais: "+pais_object.getNombrePais());
	}
}

function getCiudadesPais(pais){
	var indice = this.getPaisIndex(pais);
	pais_object = this.getPais(indice);
	return pais_object.getCiudades();
}

function getNumeroPaises(){
	return this.paises.getNumberElements();
}

function getPaises(){
	return this.paises;
}

