
/**
* Objeto provincia.
* @param id Identificador único de provincia
* @param nombre Nombre de la provincia
*/
function Provincia(id, nombre){
	//Atributes
	this.id = id;
	this.nombre = nombre;

	//Methods
	this.toString = toString;
	this.toHTML = toHTML;

	/**
	* Proporciona una representación del objeto en texto.
	* Ejemplo: "[18] Granada"
	*/
	function toString() {
		return "[" + this.id + "] " + this.nombre;
	}

	/**
	* Proporciona una representación del objeto en código HTML.
	* En concreto como una etiqueta "option" que se
	* puede anidadr en una etiqueta "select".
	*/
	function toHTML(){
		document.write("<option value=\"" + this.id + ">" + this.nombre + "</option>");
	}
}

/**
* Listado de  Comunidades Autonomas
*/
function Comunidades(){
	//Atributos
	this.comunidad = new Array();
	//Métodos;
	this.init = init;
	this.getProvincias = getProvincias;

	function init(){
		//inicialización
		var provAndalucia = new Array();
		provAndalucia[0] = new Provincia("11", "Cádiz");
		provAndalucia[1] = new Provincia("14", "Córdoba");
		provAndalucia[2] = new Provincia("18", "Granada");
		provAndalucia[3] = new Provincia("21", "Huelva");
		provAndalucia[4] = new Provincia("23", "Jaén");
		provAndalucia[5] = new Provincia("29", "Málaga");
		provAndalucia[6] = new Provincia("4", "Almería");
		provAndalucia[7] = new Provincia("41", "Sevilla");
		this.comunidad[1] = provAndalucia;

		var provAragon = new Array();
		provAragon[0] = new Provincia("22", "Huesca");
		provAragon[1] = new Provincia("44", "Teruel");
		provAragon[2] = new Provincia("50", "Zaragoza");
		this.comunidad["2"] = provAragon;

		var provCanarias = new Array();
		provCanarias[0] = new Provincia("35", "Palmas (Las)");
		provCanarias[1] = new Provincia("38", "Santa Cruz de Tenerife");
		this.comunidad["3"] = provCanarias;

		var provCantabria = new Array();
		provCantabria[0] = new Provincia("39", "Cantabria");
		this.comunidad["4"] = provCantabria;

		var provCastillaLeon = new Array();
		provCastillaLeon[0] = new Provincia("5", "Avila");
		provCastillaLeon[1] = new Provincia("9", "Burgos");
		provCastillaLeon[2] = new Provincia("24", "León");
		provCastillaLeon[3] = new Provincia("34", "Palencia");
		provCastillaLeon[4] = new Provincia("37", "Salamanca");
		provCastillaLeon[5] = new Provincia("40", "Segovia");
		provCastillaLeon[6] = new Provincia("42", "Soria");
		provCastillaLeon[7] = new Provincia("47", "Valladolid");
		provCastillaLeon[8] = new Provincia("49", "Zamora");
		this.comunidad["5"] = provCastillaLeon;

		var provCastillaLaMancha = new Array();
		provCastillaLaMancha[0] = new Provincia("2", "Albacete");
		provCastillaLaMancha[1] = new Provincia("13", "Ciudad Real");
		provCastillaLaMancha[2] = new Provincia("16", "Cuenca");
		provCastillaLaMancha[3] = new Provincia("19", "Guadalajara");
		provCastillaLaMancha[4] = new Provincia("45", "Toledo");
		this.comunidad["6"] = provCastillaLaMancha;

		var provCataluna = new Array();
		provCataluna[0] = new Provincia("8", "Barcelona");
		provCataluna[1] = new Provincia("17", "Girona");
		provCataluna[2] = new Provincia("25", "Lleida");
		provCataluna[3] = new Provincia("43", "Tarragona");
		this.comunidad["7"] = provCataluna;

		var provMadrid = new Array();
		provMadrid[0] = new Provincia("28", "Madrid");
		this.comunidad["8"] = provMadrid;

		var provNavarra = new Array();
		provNavarra[0] = new Provincia("31", "Navarra");
		this.comunidad["9"] = provNavarra;

		var provValencia = new Array();
		provValencia[0] = new Provincia("3", "Alicante/Alacant");
		provValencia[1] = new Provincia("12", "Castellón/Castelló");
		provValencia[2] = new Provincia("46", "Valencia/València");
		this.comunidad["10"] = provValencia;

		var provExtremadura = new Array();
		provExtremadura[0] = new Provincia("6", "Badajoz");
		provExtremadura[1] = new Provincia("10", "Cáceres");
		this.comunidad["11"] = provExtremadura;

		var provGalicia = new Array();
		provGalicia[0] = new Provincia("15", "Coruña (A)");
		provGalicia[1] = new Provincia("27", "Lugo");
		provGalicia[2] = new Provincia("32", "Ourense");
		provGalicia[3] = new Provincia("36", "Pontevedra");
		this.comunidad["12"] = provGalicia;

		var provIslasBaleares = new Array();
		provIslasBaleares[0] = new Provincia("7", "Balears (Illes)");
		this.comunidad["13"] = provIslasBaleares;

		var provRioja = new Array();
		provRioja[0] = new Provincia("26", "Rioja (La)");
		this.comunidad["14"] = provRioja;

		var provPaisVasco = new Array();
		provPaisVasco[0] = new Provincia("1", "Alava");
		provPaisVasco[1] = new Provincia("20", "Guipúzcoa");
		provPaisVasco[2] = new Provincia("48", "Vizcaya");
		this.comunidad["15"] = provPaisVasco;

		var provAsturias = new Array();
		provAsturias[0] = new Provincia("33", "Asturias");
		this.comunidad["16"] = provAsturias;

		var provMurcia = new Array();
		provMurcia[0] = new Provincia("30", "Murcia");
		this.comunidad["17"] = provMurcia;

		var provCeuta = new Array();
		provCeuta[0] = new Provincia("51", "Ceuta");
		this.comunidad["18"] = provCeuta;

		var provMelilla = new Array();
		provMelilla[0] = new Provincia("52", "Melilla");
		this.comunidad["19"] = provMelilla;
	}

	/**
	* Proporciona la lista de objetos Provincia que pertenecen a una comunidad
	* @param idComunidad Identificador único de comunidad
	* @rerturn Array de objetos Provincia, o null en caso
	* de que el id de la comunidad no se corresponda con ninguna comunidad
	*/
	function getProvincias(idComunidad){
		if(idComunidad >= 1 && idComunidad <= 19){
			return this.comunidad[idComunidad];
		}
		else
			return null;
		}
	}

	/**
	* Actualiza el contenido de una lista desplegable (de provincias),
	* en función del valor de otra lista desplegable (de comunidades)
	* @param idComunidad identificador único de comunida
	* @param typeProv Tipo de control de provincia "Ref" o ""
	*/
	function updateProvinciaControl(idComunidad){
		var comunidades = new Comunidades();

		comunidades.init();

		var listaProvincias = comunidades.getProvincias(idComunidad);

		if(listaProvincias != null){								
			//limpiamos el contenido que pudiera tener el control

				document.forms['formBusqueda'].idProvincia.options.length = 0;

			//Rellenamos con las provincias de es comunidad
			for(i=0; i<listaProvincias.length; i++)
			{
				
					document.forms['formBusqueda'].idProvincia.options[i] = new Option(listaProvincias[i].nombre, listaProvincias[i].id);
			}			
		}
	}
