/************************************************************************************************************/
/* Fonctions utilisée sur les pages regions et district pr laffichage des info au survol des cartes         */
/************************************************************************************************************/

// carte region
//==============
function Region(nom, sup, pop, listeSR, nbDistrict, listeD, urlImg)
{
	this.nom = nom;
	this.sup = sup;
	this.pop = pop;
	this.listSousRegion = listeSR;
	this.nbD = nbDistrict;
	this.listDistrict = listeD;
	this.urlImg = urlImg;
}

function CreerRegion(nom)
{
	var region;
	var listeSR;
	var listeD;
	
	switch(nom)
	{
		case 'nord':
			listeSR = new Array('Alto Trás-os-Montes', 'Ave', 'Cávado', 'Douro', 'Entre Douro e Vouga', 'Grande Porto', 'Minho-Lima', 'Tâmega');
			listeD = new Array('en totalité : Braga, Bragance, Porto, Viana do Castelo et Vila Real','en partie : Aveiro, Guarda et Viseu');
			region = new Region('Norte','~ 21 300','~ 4 000 000',listeSR,'8',listeD,'portugal_nord');
			break;
		case 'centre':
			listeSR = new Array('Baixo Mondego', 'Baixo Vouga', 'Beira Interior Norte', 'Beira Interior Sul', 'Cova da Beira', 'Dão-Lafões', 'Médio Tejo', 'Oeste', 'Pinhal Interior Norte', 'Pinhal Interior Sul', 'Pinhal Litoral', 'Serra da Estrela');
			listeD = new Array('en totalité : Castelo Branco et Coimbra','en partie : Aveiro, Guarda, Leiria et Viseu','de façon marginale : Santarém');
			region = new Region('Centro','~ 28 400','~ 2 386 000',listeSR,'7',listeD,'portugal_centre');
			break;
		case 'lisbonne':
			listeSR = new Array('Grande Lisboa', 'Península de Setúbal');
			listeD = new Array('en totalité : Lisbonne (Lisboa)','en partie : Leiria, Santarém et Setúbal');
			region = new Region('Lisboa','~ 2 800','~ 2 700 000',listeSR,'4',listeD,'portugal_lisbonne');
			break;
		case 'acores':
			listeSR = new Array("Açores");
			listeD = new Array();
			region = new Region('Açores','~ 2 300','~ 242 000',listeSR,'0',listeD,'portugal_acores');
			break;
		case 'madere':
			listeSR = new Array("Madeira");
			listeD = new Array();
			region = new Region('Madeira','~ 740','~ 245 000',listeSR,'0',listeD,'portugal_madere');
			break;
		case 'alentejo':
			listeSR = new Array('Alentejo Central', 'Alentejo Litoral', 'Alto Alentejo', 'Baixo Alentejo', 'Lezíria do Tejo');
			listeD = new Array('en totalité : Beja, Évora et Portalegre','en partie : Setúbal et Santarém');
			region = new Region('Alentejo','~ 31 500','~ 820 000',listeSR,'5',listeD,'portugal_alentejo');
			break;
		case 'algarve':
			listeSR = new Array('Algarve');
			listeD = new Array('en totalité : Faro');
			region = new Region('Algarve','~ 5 000','~ 430 000',listeSR,'1',listeD,'portugal_algarve');
			break;
		default :
			region = new Region('','','','','','','portugal_region');
			break;
	}
	return region;
}

function RecupererDistrict(region)
{
	var liste;
	
	if(region.listDistrict.length == 0)
	{
		liste = 'Pas de découpage en districts.';
	}
	else
	{
		liste = '<ul>' + region.nbD + ' : ';
	
		for(var i=0; i< region.listDistrict.length; i++)
		{
			liste += '<li>' + region.listDistrict[i] + '</li>';
		}
		
		liste += '</ul>';
	}
	
	return liste;
}

function RecupererSousRegion(region)
{
	var tab = '<table><tr>';
			
	if(region.listSousRegion.length>5)
	{
		//on affiche par liste de 4 pour centro et 6 pour alentejo
		tab += '<td><ul>';
		switch(region.nom)
		{
			case 'Norte' :
				for(var i=0; i< 4 ;i++)
				{
					tab += '<li>' + region.listSousRegion[i] + '</li>';
				}
				tab += '</ul></td><td><ul>';
				for(var i=4; i< region.listSousRegion.length ;i++)
				{
					tab += '<li>' + region.listSousRegion[i] + '</li>';
				}
				break;
			case 'Centro':
				for(var i=0; i< 6 ;i++)
				{
					tab += '<li>' + region.listSousRegion[i] + '</li>';
				}
				tab += '</ul></td><td><ul>';
				for(var i=6; i< region.listSousRegion.length ;i++)
				{
					tab += '<li>' + region.listSousRegion[i] + '</li>';
				}
				break;
		}
		tab += '</ul></td>';
	}
	else
	{
		//sinon on affiche qu une seule liste
		tab += '<td><ul>';
		for(var i =0; i<region.listSousRegion.length;i++)
		{
			tab += '<li>' + region.listSousRegion[i] + '</li>';
		}
		tab += '</ul></td>';
	}
	
	tab += '</tr></table>';
	
	return tab;
}

function Remplirliste(region)
{
	var dist = '';
	var sousreg = '';
	if(region.nom == '')
	{
		document.getElementById('regionNom').innerHTML = '';
		document.getElementById('regionSuperficie').innerHTML = '';
		document.getElementById('regionPopulation').innerHTML = '';
		document.getElementById('regionSousRegions').innerHTML = '';
		document.getElementById('regionDistricts').innerHTML = '';
		document.getElementById('tabRegion_consignes').innerHTML = '<img src="../images/bouton/panneau.png"/>Survolez la carte de gauche pour voir le tableau ci-dessous se remplir.';
	}
	else
	{
		document.getElementById('tabRegion_consignes').innerHTML = '';
		dist = RecupererDistrict(region);
		sousreg = RecupererSousRegion(region);
		document.getElementById('regionNom').innerHTML = region.nom;
		document.getElementById('regionSuperficie').innerHTML = region.sup + ' km²';
		document.getElementById('regionPopulation').innerHTML = region.pop + ' hab.';
		document.getElementById('regionSousRegions').innerHTML = sousreg;
		document.getElementById('regionDistricts').innerHTML = dist;
	}
}

function afficheRegion(nomRegion)
{
	var image = new Image();
	
	var Region = CreerRegion(nomRegion);
	
	image.src = '../images/geographie/region/' + Region.urlImg + '.jpg';
	
	document.images["imgRegion"].src = image.src;
	
	Remplirliste(Region);
}

//carte district
//===============

function District(nom, sup, pop, listeMunicip, urlImg)
{
	this.nom = nom;
	this.sup = sup;
	this.pop = pop;
	this.listeMunicip = listeMunicip;
	this.urlImg = urlImg;
}

function CreerDistrict(nom)
{
	var distr;
	var listeMuni;;
	
	switch(nom)
	{
		case 'portalegre':
			listeMuni = new Array('Alter do Chão','Arronches','Aviz','Campo Maior','Castelo de Vide','Crato','Elvas','Fronteira','Gavião','Marvão','Monforte','Nisa','Ponte de Sor','Portalegre','Sousel');
			distr = new District('Portalegre','~ 6 065','~ 127 000',listeMuni,'Dportalegre');
			break;
		case 'santarem':
			listeMuni = new Array('Abrantes','Alcanena','Almeirim','Alpiarça','Benavente','Cartaxo','Chamusca','Constância','Coruche','Entroncamento','Ferreira do Zêzere','Golegã','Mação','Ourém','Rio Maior','Salvaterra de Magos','Santarém','Sardoal','Tomar','Torres Novas','Vila Nova da Barquinha');
			distr = new District('Santarém','~ 6 750','~ 475 500',listeMuni,'Dsantarem');
			break;
		case 'aveiro':
			listeMuni = new Array('Águeda','Albergaria-a-Velha','Anadia','Arouca','Aveiro','Castelo de Paiva','Espinho','Estarreja','Ílhavo','Mealhada','Murtosa','Oliveira de Azeméis','Oliveira do Bairro','Ovar','Santa Maria da Feira','São João da Madeira','Sever do Vouga','Vagos','Vale de Cambra');
			distr = new District('Aveiro','~ 2 800','~ 713 000',listeMuni,'Daveiro');
			break;
		case 'beja':
			listeMuni = new Array('Aljustrel','Almodôvar','Alvito','Barrancos','Beja','Castro Verde','Cuba','Ferreira do Alentejo','Mértola','Moura','Odemira','Ourique','Serpa','Vidigueira');
			distr = new District('Beja','~ 10 300','~ 161 000',listeMuni,'Dbeja');
			break;
		case 'braga':
			listeMuni = new Array('Amares','Barcelos','Braga','Cabeceiras de Basto','Celorico de Basto','Esposende','Fafe','Guimarães','Póvoa de Lanhoso','Terras de Bouro','Vieira do Minho','Vila Nova de Famalicão','Vila Verde','Vizela');
			distr = new District('Braga','~ 2 700','~ 850 000',listeMuni,'Dbraga');
			break;
		case 'castelo':
			listeMuni = new Array('Belmonte','Castelo Branco','Covilhã','Fundão','Idanha-a-Nova','Oleiros','Penamacor','Proença-a-Nova','Sertã','Vila de Rei','Vila Velha de Ródão');
			distr = new District('Castelo Branco','~ 6 700','~ 210 000',listeMuni,'Dcastelo');
			break;
		case 'coimbra':
			listeMuni = new Array('Arganil','Cantanhede','Coimbra','Condeixa-a-Nova','Figueira da Foz','Góis','Lousã','Mira','Miranda do Corvo','Montemor-o-Velho','Oliveira do Hospital','Pampilhosa da Serra','Penacova','Penela','Soure','Tábua','Vila Nova de Poiares');
			distr = new District('Coimbra','~ 4 000','~ 445 000',listeMuni,'Dcoimbra');
			break;
		case 'bragance':
			listeMuni = new Array('Alfândega da Fé','Bragance','Carrazeda de Ansiães','Freixo de Espada à Cinta','Macedo de Cavaleiros','Miranda do Douro','Mirandela','Mogadouro','Torre de Moncorvo','Vila Flor','Vimioso','Vinhais');
			distr = new District('Bragance','~ 6 600','~ 145 500',listeMuni,'Dbragance');
			break;
		case 'guarda':
			listeMuni = new Array('Aguiar da Beira','Almeida','Celorico da Beira','Figueira de Castelo Rodrigo','Fornos de Algodres','Gouveia','Guarda','Manteigas','Mêda','Pinhel','Sabugal','Seia','Trancoso','Vila Nova de Foz Côa');
			distr = new District('Guarda','~ 5 500','~ 177 000',listeMuni,'Dguarda');
			break;
		case 'faro':
			listeMuni = new Array('Albufeira','Alcoutim','Aljezur','Castro Marim','Faro','Lagoa','Lagos','Loulé','Monchique','Olhão','Portimão','São Brás de Alportel','Silves','Tavira','Vila do Bispo','Vila Real de Santo António');
			distr = new District('Faro','~ 5 000','~ 412 000',listeMuni,'Dfaro');
			break;
		case 'evora':
			listeMuni = new Array('Alandroal','Arraiolos','Borba','Estremoz','Évora','Montemor-o-Novo','Mora','Mourão','Olivença','Portel','Redondo','Reguengos de Monsaraz','Vendas Novas','Viana do Alentejo','Vila Viçosa');
			distr = new District('Evora','~ 7 400','~ 173 000',listeMuni,'Devora');
			break;
		case 'leiria':
			listeMuni = new Array('Alcobaça','Alvaiázere','Ansião','Batalha','Bombarral','Caldas da Rainha','Castanheira de Pêra','Figueiró dos Vinhos','Leiria','Marinha Grande','Nazaré','Óbidos','Pedrógão Grande','Peniche','Pombal','Porto de Mós');
			distr = new District('Leiria','~ 3 500','~ 460 000',listeMuni,'Dleiria');
			break;
		case 'lisboa':
			listeMuni = new Array('Alenquer','Amadora','Arruda dos Vinhos','Azambuja','Cadaval','Cascais','Lisboa','Loures','Lourinhã','Mafra','Odivelas','Oeiras','Sintra','Sobral de Monte Agraço','Torres Vedras','Vila Franca de Xira');
			distr = new District('Lisboa','~ 2 760','~ 2 137 000',listeMuni,'Dlisbonne');
			break;
		case 'porto':
			listeMuni = new Array('Amarante','Baião','Felgueiras','Gondomar','Lousada','Maia','Marco de Canaveses','Matosinhos','Paços de Ferreira','Paredes','Penafiel','Porto','Póvoa de Varzim','Santo Tirso','Trofa','Valongo','Vila do Conde','Vila Nova de Gaia');
			distr = new District('Porto','~ 2 400','~ 1 785 000',listeMuni,'Dporto');
			break;
		case 'setubal':
			listeMuni = new Array('Alcácer do Sal','Alcochete','Almada','Barreiro','Grândola','Moita','Montijo','Palmela','Santiago do Cacém','Seixal','Sesimbra','Setúbal','Sines');
			distr = new District('Setúbal','~ 5 100','~ 830 000',listeMuni,'Dsetubal');
			break;
		case 'viana':
			listeMuni = new Array('Arcos de Valdevez','Caminha','Melgaço','Monção','Paredes de Coura','Ponte da Barca','Ponte de Lima','Valença','Viana do Castelo','Vila Nova de Cerveira');
			distr = new District('Viana De Castello','~ 2 220','~ 253 000',listeMuni,'Dviana');
			break;
		case 'vilareal':
			listeMuni = new Array('Alijó','Boticas','Chaves','Mesão Frio','Mondim de Basto','Montalegre','Murça','Peso da Régua','Ribeira de Pena','Sabrosa','Santa Marta de Penaguião','Valpaços','Vila Pouca de Aguiar','Vila Real');
			distr = new District('Vila Real','~ 4 300','~ 222 000',listeMuni,'Dvilareal');
			break;
		case 'viseu':
			listeMuni = new Array('Armamar','Carregal do Sal','Castro Daire','Cinfães','Lamego','Mangualde','Moimenta da Beira','Mortágua','Nelas','Oliveira de Frades','Penalva do Castelo','Penedono','Resende','Santa Comba Dão','São João da Pesqueira','São Pedro do Sul','Sátão','Sernancelhe','Tabuaço','Tarouca','Tondela','Vila Nova de Paiva','Viseu','Vouzela');
			distr = new District('Viseu','~ 5 000','~ 396 000',listeMuni,'Dviseu');
			break;
		case 'vide':
			distr = new District('','','','','PortugalDistricts');
			break;
		default :
			distr = new District('','','','','PortugalDistrictsGris');
			break;
	}
	return distr;
}

function RecupererMunicipalite(district)
{
	var liste;
	
	if(district.listeMunicip.length == 0)
	{
		liste = '';
	}
	else
	{
		//on fait 2 colonnes
		if(district.listeMunicip.length % 2 == 1)
		{
			//chiffre impair
			liste = '<table><tr><td><ul>';
			for(var i=0; i< (district.listeMunicip.length + 1) / 2; i++)
			{
				liste += '<li>' + district.listeMunicip[i] + '</li>';
			}
			liste += '</ul></td><td><ul>';
			for(var i= (district.listeMunicip.length + 1 )/ 2; i<district.listeMunicip.length; i++)
			{
				liste += '<li>' + district.listeMunicip[i] + '</li>';
			}
			liste += '</ul></td></tr></table>';
		}
		else
		{
			//chiffre pair
			liste = '<table><tr><td><ul>';
			for(var i=0; i< district.listeMunicip.length / 2; i++)
			{
				liste += '<li>' + district.listeMunicip[i] + '</li>';
			}
			liste += '</ul></td><td><ul>';
			for(var i= district.listeMunicip.length / 2; i<district.listeMunicip.length; i++)
			{
				liste += '<li>' + district.listeMunicip[i] + '</li>';
			}
			liste += '</ul></td></tr></table>';
		}
	}
	
	return liste;
}

function RemplirListeDistrict(district)
{
	var municip;
	if(district.nom == '')
	{
		document.getElementById('districtNom').innerHTML = '';
		document.getElementById('districtCapitale').innerHTML = '';
		document.getElementById('districtSuperficie').innerHTML = '';
		document.getElementById('districtPopulation').innerHTML = '';
		document.getElementById('districtMunicipalites').innerHTML = '';
		document.getElementById('tabdistrict_consignes').innerHTML = '<img src="../images/bouton/panneau.png"/>&nbsp;Survolez la carte de gauche pour voir le tableau ci-dessous se remplir.';
	}
	else
	{
		document.getElementById('tabdistrict_consignes').innerHTML = '';
		municip = RecupererMunicipalite(district);
		document.getElementById('districtNom').innerHTML = district.nom;
		document.getElementById('districtCapitale').innerHTML = district.nom;
		document.getElementById('districtSuperficie').innerHTML = district.sup + ' km²';
		document.getElementById('districtPopulation').innerHTML = district.pop + ' hab.';
		document.getElementById('districtMunicipalites').innerHTML = municip;
	}
}

function afficheDistrict(nom)
{
	var image = new Image();
	
	var district = CreerDistrict(nom);
	
	image.src = '../images/geographie/districts/' + district.urlImg + '.jpg';
	
	document.images["imgDistricts"].src = image.src;
	
	RemplirListeDistrict(district);
}

