old_choo_emp=0;
load_empire=0;

var list=new Array();

function switch_emp(a,b)
{
	empire=a;
	if(load_empire==empire)return;
	
	doc("l1").innerHTML ="<div class='bigcadre' style='text-align:center'><img src='img/avatars/krabot.jpg'><br/>Chargement en cours... veuillez patienter</div>";
	loadScript("js/cit"+empire+".js");
	if(old_choo_emp) old_choo_emp.className="";
	old_choo_emp=b;
	old_choo_emp.className="countryactive";
	loadDoc();
}

function loadScript(url)
{
	var body = document.body;
	var script = document.getElementById('data_list');
	if(script) body.removeChild(script);
	script = document.createElement('script');
	script.src = url;
	script.type = 'text/javascript';
	script.id = 'data_list';
	body.appendChild(script)
}

function loadDoc2(a)
{
	tri=a;
	buildList();
}

function loadDoc()
{
	load_empire=empire;

	url_xml	= "xml/cit"+empire+".xml";

	try
	{
		loadXMLDoc();
	}
	catch(e)
	{
		alert( "Unable to get XML data:\n" );
		return;
	}
}

var isIE = false;
var req;
function loadXMLDoc() 
{
	if( window.XMLHttpRequest )
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open( "GET",url_xml, true );
		req.send( null );
	}
	else if( window.ActiveXObject )
	{
		isIE = true;
		req = new ActiveXObject( "Microsoft.XMLHTTP" );
		if( req )
		{
			req.onreadystatechange = processReqChange;
			req.open( "GET", url_xml, true );
			req.send();
		}
	}
}

function processReqChange() 
{
	if( req.readyState == 4 )
	{
		if( req.status == 200 ) 
		{
			loadList();
		} 
		else 
		{
			alert( "There was a problem retrieving the XML data:\n" + req.statusText );
		}
	}
}

function clearList() { doc("l1").innerHTML = ""; }

function loadList()
{
	var items = req.responseXML.getElementsByTagName( "item" );
	list = new Array();
	for ( var i = 0; i < items.length; i++ )
	{
		id = document.createTextNode( getElementTextNS( "", "id", items[i], 0 ) );
		destname = document.createTextNode( getElementTextNS( "", "name", items[i], 0 ) );
		sex = document.createTextNode( getElementTextNS( "", "sex", items[i], 0 ) );
		level = document.createTextNode( getElementTextNS( "", "level", items[i], 0 ) );
		fonction = document.createTextNode( getElementTextNS( "", "fonction", items[i], 0 ) );
		area = document.createTextNode( getElementTextNS( "", "area", items[i], 0 ) );
		money = document.createTextNode( getElementTextNS( "", "money", items[i], 0 ) );
		org1 = document.createTextNode( getElementTextNS( "", "org1", items[i], 0 ) );
		list[i] = new Array( destname.data, sex.data, level.data, fonction.data, area.data, money.data, org1.data, id.data );
	}
	doc("l1").innerHTML = "<div class='bigcadre'><ul><li>Si vous désirez consulter la liste des citoyens d\'un autre pays que celui sélectionné, choisissez d\'abord votre pays en cliquant sur le drapeau correspondant.</li> <li>Choisissez ensuite la manière dont vous voulez classer la liste des citoyens (alphabétiquement, par niveau etc).</li> <li>Cette liste est mise à jour quotidiennement vers 2:00.</li></ul></div>";
}

function buildList2()
{
	u = new Date().getTime();

	if( tri == 6 )
	{
		var sortlist = politique;
	}
	else if( tri == 5 )
	{
		var sortlist = new Array( 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 );
	}
	else if( tri == 4 )
	{
		var sortlist = new Array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 22, 24, 31, 32, 33, 34, 35, 36, 37, 51, 52, 53, 59, 101, 102, 103, 105, 109 );
	}
	else if( tri == 3 )
	{
		var sortlist = new Array( 1, 2, 0 );
	}
	else if( tri == 2 )
	{
		var sortlist = new Array( 6, 5, 4, 3, 2, 1, 0 );
	}
	else
	{
		var sortlist = new Array;
		sortlist[0] = 1;
	}

	var text = "<table class=\"gametable\" style=\"font-size: 11px\"><tr><th>Nom</th><th>Sexe</th><th>Niveau</th><th>Fonction</th><th>Richesse</th><th>Politique</th></tr>";

	for( var part in sortlist )
	{
		for( var item in list )
		{
			if( tri == 6 )
			{
				comp = list[item][6];
			}
			else if( tri == 5 )
			{
				comp = list[item][5];
			}
			else if( tri == 4 )
			{
				comp = list[item][3];
			}
			else if( tri == 3 )
			{
				comp = list[item][1];
			}
			else if( tri == 2 )
			{
				comp = list[item][2];
			}
			else
			{
				comp = 1;
			}
			
			if( comp == sortlist[part] )
			{
				if( list[item][6] )
				{
					td = "<td style=\"background-color:"+bg[list[item][6]]+"\">";
				}
				else
				{
					td = "<td style=\"background-color:FFF\">";
				}
				if( list[item][3] > 0 )
				{
					title = fonctionlist[list[item][3]][(list[item][1]==2)?1:0];
					if( list[item][3] > 100 )
					{
						title += " "+cities[list[item][4]];
					}
					else if( list[item][3] > 50 )
					{
						title += " "+provinces[list[item][4]];
					}
				}
				else
				{
					title = "";
				}
				text += "<tr>"+td+"<a href=\"main.php?page=5;1;3;1;0&amp;p2="+list[item][7]+"\">"+list[item][0]+"</a></td>"+td;
				
				if( list[item][1] == 0 )
				{
					text += "-";
				}
				else if( list[item][1] == 1 )
				{
					text += "H";
				}
				else
				{
					text += "F";
				}

				text += "</td>"+td+list[item][2]+"</td>"+td+title+"</td>"+td;
				if( list[item][5] )
				{
					for( i=1; i<=list[item][5]; i++ )
					{
						text += "*";
					}
				}
				text += "</td>"+td;
				if( list[item][6] > 0  )
				{
					text += polname[list[item][6]];
				}
				text += "</td></tr>";
			} 
		}
	}
	
	text += "</table>";
	v = new Date().getTime();
	document.getElementById("l1").innerHTML = (v-u)+text;
}

function buildList()
{
	var sortlist=new Array;
	politique.push(0); 				//tous les cas doivent être traités.
	sortlist[6] = politique;
	sortlist[5] = new Array( 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 );	//richesse
	sortlist[4] = new Array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 22, 24, 31, 32, 33, 34, 35, 36, 37, 51, 52, 53, 59, 101, 102, 103, 105, 109 , 0);
	sortlist[3] = new Array( 1, 2, 0 );		//sexe
	sortlist[2] = new Array( 6, 5, 4, 3, 2, 1, 0 ); //niveau
	if(tri!=1) sortlist=sortlist[tri]; 		//alpha
	else
	{
		sortlist=new Array;
		sortlist[0] = 1;
	}
	
	var sorted_list = new Array(sortlist.length);
	var sort_index = new Array;
	var cpt=0;
	for( var part in sortlist )
	{
		sorted_list[part]="";
		sort_index[sortlist[part]]=cpt++;
	}

	for( var item in list )
	{
		if( tri == 6 ) comp = list[item][6];
		else if( tri == 5 ) comp = list[item][5];
		else if( tri == 4 ) comp = list[item][3];
		else if( tri == 3 ) comp = list[item][1];
		else if( tri == 2 ) comp = list[item][2];
		else comp = 1;


		if( list[item][3] > 0 )	{
			title = fonctionlist[list[item][3]][(list[item][1]==2)?1:0];
			if( list[item][3] > 100 ) {
				title += " "+cities[list[item][4]];
			}
			else if( list[item][3] > 50 ) {
				title += " "+provinces[list[item][4]];
			}
		} else {
			title = "";
		}

		if( list[item][6] == 1951 )
		{
			bg[list[item][6]] = "666666";
		}
		
		text = "<tr style=\"background-color:"+(list[item][6]?bg[list[item][6]]:"FFF")+"\"><td><a href=\"main.php?page=5;1;3;1;0&amp;p2="+list[item][7]+"\">"+list[item][0]+"</a></td><td>";
				
		if( list[item][1] == 0 )
		{
			text += "-";
		}
		else if( list[item][1] == 1 )
		{
			text += "H";
		}
		else
		{
			text += "F";
		}

		text += "</td><td>"+list[item][2]+"</td><td>"+title+"</td><td>";
		if( list[item][5] )
		{
			for( i=1; i<=list[item][5]; i++ )
			{
				text += "*";
			}
		}

		text += "</td><td>";
		if( list[item][6] > 0 && polname[list[item][6]] )
		{
			text += polname[list[item][6]];
		}
		text += "</td></tr>";
		sorted_list[sort_index[comp]]+=text;		
	}
	text = "<table class=\"gametable\" style=\"font-size: 11px\"><tr><th>Nom</th><th>Sexe</th><th>Niveau</th><th>Fonction</th><th>Richesse</th><th>Politique</th></tr>"+sorted_list.join("")+"</table>";
	document.getElementById("l1").innerHTML = text;
}


function getElementTextNS( prefix, local, parentElem, index ) 
{
	var result = "";
	if( prefix && isIE ) 
	{
		result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
	} 
	else 
	{
		result = parentElem.getElementsByTagName(local)[index];
	}
	if( result )
	{
		if( result.childNodes.length > 1 )
		{
			return result.childNodes[1].nodeValue;
		}
		else
		{
			return result.firstChild.nodeValue;			
		}
	} 
	else
	{
		return "n/a";
	}
}
