
// Modela un vector asociativo o no asociativo.
function Clase_Pais(pais){ 
	   this.pais = pais;
	   this.ciudades = new Clase_Vector();
	   //
	   
	   this.addCiudad = addCiudad;
	   this.getCiudad = getCiudad;
	   this.getNombrePais = getNombrePais;
	   this.setCiudadIndex = setCiudadIndex;
	   this.getNumeroCiudades = getNumeroCiudades;
	   this.isCiudad = isCiudad; 
	   this.getCiudades = getCiudades;
	   this.getCiudad = getCiudad;
	   this.getCiudadIndex = getCiudadIndex;
	   this.getCiudadObject = getCiudadObject;
}

// Añade un objeto pais al pais
function setCiudadIndex(ciudad, indice){
	this.ciudades.setIndexValue(ciudad,indice);
}

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

function getCiudadIndex(ciudad){
	//alert("getPaisIndex: "+pais);
	for(i=0;i<this.ciudades.getNumberElements();i++){
		ciudad_object = this.getCiudad(i);
		//alert("indice getPaisIndex: "+pais+" "+i);
		if (ciudad_object.getNombreCiudad() == ciudad){
			return i;
		}
	}
	return null;
}

function getCiudadObject(ciudad){
	//alert("getPaisIndex: "+pais);
	for(i=0;i<this.ciudades.getNumberElements();i++){
		ciudad_object = this.getCiudad(i);
		//alert("indice getPaisIndex: "+pais+" "+i);
		if (ciudad_object.getNombreCiudad() == ciudad){
			return ciudad_object;
		}
	}
	return null;
}


// Añade una ciudad al pais
function addCiudad(ciudad,id_usuario, nombre_usuario){
	
	if (!this.isCiudad(ciudad)){
		var ciudad_object = new Clase_Ciudad(ciudad);
		ciudad_object.addUsuario(id_usuario, nombre_usuario);
		this.ciudades.addIndexValue(ciudad_object);
	}else{
		var indice = this.getCiudadIndex(ciudad);
		//alert("indice: "+indice);
		ciudad_object = this.getCiudad(indice);
		ciudad_object.addUsuario(id_usuario, nombre_usuario);
		this.setCiudadIndex(ciudad_object, indice);
	}
}

// Devuelve la ciudad i
function getCiudad(i){
	return this.ciudades.getIndexValue(i);
}

// Indica si la ciudad está ya contenida o no
function isCiudad(ciudad){
	var i = 0;
	var ciudad_object;
	for(i=0;i<this.ciudades.getNumberElements();i++){
		ciudad_object = this.getCiudad(i);
		if (ciudad_object.getNombreCiudad() == ciudad){
			return true;
		}
	}
	return false;
}

// Devuelve el nombre del pais
function getNombrePais(){
	return this.pais;
}

// Devuelve el número de ciudades
function getNumeroCiudades(i){
	return this.ciudades.getNumberElements();
}

function getCiudades(){
	/*for(i=0;i<this.ciudades.getNumberElements();i++){
		alert(this.getCiudad(i))
	}*/
	return this.ciudades;
}

