function makepage(data){
	countrynames=new Array("Al Iraq",128,"Al Kuwayt",127,"Al Maghrib",77,"Al Urdun",106,"Al Yaman",133,"Alg&eacute;rie",118,"Andorra",105,"Angola",130,"Argentina",7,"Az&#x259;rbaycan",129,"Bahrain",123,"Bangladesh",132,"Barbados",124,"Belarus",91,"Belgi&euml;",44,"Benin",139,"Bolivia",74,"Bosna i Hercegovina",69,"Brasil",16,"Brunei",136,"Bulgaria",62,"Cabo Verde",125,"Canada",17,"&#268;esk&aacute; republika",52,"Chile",18,"China",34,"Chinese Taipei",60,"Colombia",19,"Costa Rica",81,"C&ocirc;te d&#180;Ivoire",126,"Crna Gora",131,"Cymru",61,"Cyprus",89,"Danmark",11,"Dawlat Qatar",141,"Deutschland",3,"Dhivehi Raajje",144,"Ecuador",73,"Eesti",56,"El Salvador",100,"England",2,"Espa&ntilde;a",36,"F&oslash;royar",76,"France",5,"Ghana",137,"Guatemala",107,"Hanguk",30,"Hayastan",122,"Hellas",50,"Honduras",99,"Hong Kong",59,"Hrvatska",58,"India",20,"Indonesia",54,"Iran",85,"Ireland",21,"&Iacute;sland",38,"Israel",63,"Italia",4,"Jamaica",94,"Kampuchea",138,"Kazakhstan",112,"Kenya",95,"Kyrgyzstan",102,"Latvija",53,"L&euml;tzebuerg",84,"Liechtenstein",117,"Lietuva",66,"Lubnan",120,"Magyarorsz&aacute;g",51,"Makedonija",97,"Malaysia",45,"Malta",101,"M&eacute;xico",6,"Misr",33,"Mo&ccedil;ambique",135,"Moldova",103,"Mongol Uls",119,"Nederland",14,"Nicaragua",111,"Nigeria",75,"Nippon",22,"Norge",9,"Northern Ireland",93,"Oceania",15,"Oman",134,"&Ouml;sterreich",39,"Pakistan",71,"Panam&aacute;",96,"Paraguay",72,"Per&uacute;",23,"Philippines",55,"Polska",24,"Portugal",25,"Prathet Thai",31,"Republica Dominicana",88,"Rom&acirc;nia",37,"Rossiya",35,"Sakartvelo",104,"Saudi Arabia",79,"Schweiz",46,"Scotland",26,"S&eacute;n&eacute;gal",121,"Shqiperia",98,"Singapore",47,"Slovenija",64,"Slovensko",67,"South Africa",27,"Srbija",57,"Suomi",12,"Suriname",113,"Suriyah",140,"Sverige",1,"Tanzania",142,"Tounes",80,"Trinidad &amp; Tobago",110,"T&uuml;rkiye",32,"Uganda",143,"Ukraina",68,"United Arab Emirates",83,"Uruguay",28,"USA",8,"Venezuela",29,"Vietnam",70)

	values=new Array(timepoints)
	heights=new Array(timepoints)
	percentages=new Array(timepoints)
	bots=new Array(timepoints)
	botpercentages=new Array(timepoints)
	botgames=new Array(timepoints)
	humangames=new Array(timepoints)
	botgamepercentages=new Array(timepoints)
	supporterpercentages=new Array(timepoints)
	humans=new Array(timepoints)
	for(a=0;timepoints>a;a++){
		values[a]=new Array(divisions+1)
		heights[a]=new Array(divisions+1)
		percentages[a]=new Array(divisions+1)
		bots[a]=new Array(divisions+1)
		botpercentages[a]=new Array(divisions+1)
		botgames[a]=new Array(divisions+1)
		humangames[a]=new Array(divisions+1)
		botgamepercentages[a]=new Array(divisions+1)
		supporterpercentages[a]=new Array(divisions+1)
		humans[a]=new Array(divisions+1)
		for(b=0;divisions>=b;b++){
			if(divisions==b){
				values[a][b]=new Array()
				for(c=0;10>c;c++){
					values[a][b][c]=0
					for(d=0;divisions>d;d++){
						values[a][b][c]+=values[a][d][c]
					}
				}
			}
			else{
				values[a][b]=stringtoarray(data.substr(a*divisions*21+b*21,21))
			}
			humans[a][b]=0
			divisionsum=0
			for(c=0;9>c;c++){
				divisionsum+=values[a][b][c]
				humans[a][b]+=c*values[a][b][c]
			}
			supporterpercentages[a][b]=topercent(values[a][b][9]/Math.max(humans[a][b],1))
			realsum=divisionsum
			if(divisionsum==0){divisionsum=1}
			heights[a][b]=new Array(9)
			percentages[a][b]=new Array(9)
			bots[a][b]=0
			botgames[a][b]=0
			humangames[a][b]=0
			for(c=0;9>c;c++){
				heights[a][b][c]=Math.floor(188*values[a][b][c]/divisionsum)+2
				percentages[a][b][c]=topercent(values[a][b][c]/divisionsum)
				bots[a][b]+=values[a][b][c]*(8-c)
				botgames[a][b]+=values[a][b][c]*(8-c)*c
				humangames[a][b]+=values[a][b][c]*(c-1)*c
			}
			botpercentages[a][b]=topercent(bots[a][b]/divisionsum/8)
			botgamepercentages[a][b]=topercent(botgames[a][b]/Math.max(botgames[a][b]+humangames[a][b],1))
		}
	}
	currenttime=timepoints-1
	overlay=new Array("'/images/1.png'","'/images/2.png'","'/images/3.png'","'/images/4.png'","'/images/5.png'","'/images/6.png'","'/images/6.png'","'/images/8.png'","'/images/8.png'","'/images/10.png'","'/images/10.png'","'/images/10.png'","'/images/10.png'","'/images/10.png'","'/images/10.png'","'/images/10.png'")
	roman=new Array("I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII","XIII","XIV","XV","XVI")
	xres=new Array(256,128,64,32,16,8,8,8,8,4,4,4,4,4,4,4)
	yres=new Array(256,128,64,32,16,8,8,4,4,4,4,4,4,4,4,4)
	letters=new Array("","a","b","c","d","e","f","g","h",".i","j","k","l","m","n","o","p")
	htmlstring=''
	for(a=0;124>a;a++){
		if(countrynames[a*2+1]==leagueid){
			countryname=countrynames[a*2]
		}
	}

	for(a=-1;divisions>a;a++){
		if(a==-1){a=divisions}
		if(a==divisions){
			htmlstring+='<div class="division"><div class="botheading">'+countryname+'<\/div>'
		}
		else if(a==0){
			htmlstring+='<div class="division"><div class="botheading">'+firstname+'<\/div>'
		}
		else{
			htmlstring+='<div class="division"><div class="botheading">'+roman[a-(leagueid==1)]+'<\/div>'
		}
		if(divisions>a){
			htmlstring+='<div class="tooltip" id="tooltip'+a+'"><\/div><div class="map1 div'+a+'" style="background-image:url(\'/botmap/'+leagueid+'-'+timename[timepoints-1]+'.png\');" id="map'+a+'"><div class="map2" style="background-image:url('+overlay[a]+');" onmousemove="settooltip(event,'+a+')" onmouseout="tooltipoff(event,'+a+')"><\/div><\/div>'
		}
		htmlstring+='<div class="bars">'
		for(b=0;9>b;b++){
			htmlstring+='<div class="bars1 r'+b+'">'+b+'<\/div><div class="bars2 r'+b+'" style="bottom:'+(17+heights[timepoints-1][a][b])+'px;" id="number'+a+'_'+b+'">'+values[timepoints-1][a][b]+'<\/div><div class="bars3 rr'+b+'" id="bar'+a+'_'+b+'" style="height:'+heights[timepoints-1][a][b]+'px;"><\/div><div class="bars4 r'+b+'" id="percent'+a+'_'+b+'">'+percentages[timepoints-1][a][b]+'<\/div>'
		}
		htmlstring+="<\/div><div class='numbers1'>Number of managers:<br/>Number of supporters:<br/>Percentage supporters:<br/><br/>Number of bots:<br/>Percentage bots:<br/><br/>Percentage bot games:<\/div><div class='numbers2'><span id='numhum"+a+"'>"+humans[timepoints-1][a]+"<\/span><br/><span id='numsup"+a+"'>"+values[timepoints-1][a][9]+"<\/span><br/><span id='numsupp"+a+"'>"+supporterpercentages[timepoints-1][a]+"<\/span><br/><br/><span id='numbot"+a+"'>"+bots[timepoints-1][a]+"<\/span><br/><span id='numbotp"+a+"'>"+botpercentages[timepoints-1][a]+"<\/span><br/><br/><span id='numbotgp"+a+"'>"+botgamepercentages[timepoints-1][a]+"<\/span><\/div><\/div><div class='time'><a href='javascript:changetime(0)'><img src='/images/leftstop.png' alt='|&lt;'/><\/a> <a href='javascript:changetime(Math.max(0,currenttime-1))'><img src='/images/left.png' alt='&lt;'/><\/a> <select class='timebox' id='timebox"+a+"' onchange='changetime(this.value)'>"
		for(b=0;timepoints-1>b;b++){
			htmlstring+='<option value="'+b+'">'+timename[b]+'<\/option>'
		}
		htmlstring+='<option value="'+b+'" selected="selected">'+timename[b]+'<\/option>'
		htmlstring+="<\/select> <a href='javascript:changetime(Math.min(timepoints-1,currenttime+1))'><img src='/images/right.png' alt='&gt;'/><\/a> <a href='javascript:changetime(timepoints-1)'><img src='/images/rightstop.png' alt='&gt;|'/><\/a><\/div>"
		if(a==divisions){a=-1}
	}
	document.getElementById('content').innerHTML=htmlstring
}

function stringtoarray(string){
	localarray=new Array(10)
	for(i=0;10>i;i++){
		part1=string.charCodeAt(i*2)
		part2=string.charCodeAt(i*2+1)
		part1=part1-48-7*(part1>64)-6*(part1>96)+75*(part1==35)+24*(part1==95)
		part2=part2-48-7*(part2>64)-6*(part2>96)+75*(part2==35)+24*(part2==95)
		localarray[i]=65*part1+part2
	}
	part1=string.charCodeAt(20)
	part1=part1-48-7*(part1>64)-6*(part1>96)+75*(part1==35)+24*(part1==95)
	localarray[9]=localarray[9]*65+part1
	return localarray
}

function changetime(newtime){
	currenttime=newtime*1 //Yep, needs to be there!
	for(a=0;divisions>=a;a++){
		for(b=0;9>b;b++){
			document.getElementById("bar"+a+"_"+b).style.height=(heights[newtime][a][b])+"px"
			document.getElementById("number"+a+"_"+b).style.bottom=(17+heights[newtime][a][b])+"px"
			document.getElementById("number"+a+"_"+b).innerHTML=values[newtime][a][b]
			document.getElementById("percent"+a+"_"+b).innerHTML=percentages[newtime][a][b]
		}
		document.getElementById("numbot"+a).innerHTML=bots[newtime][a]
		document.getElementById("numbotp"+a).innerHTML=botpercentages[newtime][a]
		document.getElementById("numbotgp"+a).innerHTML=botgamepercentages[newtime][a]
		if(divisions>a){
			document.getElementById("map"+a).style.backgroundImage="url('/botmap/"+leagueid+"-"+timename[newtime]+".png')"
		}
		document.getElementById("numhum"+a).innerHTML=humans[newtime][a]
		document.getElementById("numsup"+a).innerHTML=values[newtime][a][9]
		document.getElementById("numsupp"+a).innerHTML=supporterpercentages[newtime][a]
		document.getElementById("timebox"+a).selectedIndex=newtime
	}
}

function settooltip(e,division){
	if(e.layerX){
		x=e.layerX
		y=e.layerY
	}
	else{
		x=e.offsetX
		y=e.offsetY
	}
	document.getElementById("tooltip"+division).style.top=(y+60)+"px"
	document.getElementById("tooltip"+division).style.left=(x+28)+"px"
	var remx=x % xres[division]
	var remy=y % yres[division]
	var blockx=(x-remx)/xres[division]
	var blocky=(y-remy)/yres[division]
	var league=1+blockx+blocky*256/xres[division]
	if(remx && remy){
		if(division){
			if(leagueid==1){
				if(3>division){
					document.getElementById("tooltip"+division).innerHTML="&nbsp;&nbsp;"+roman[division-1]+letters[league]+"&nbsp;&nbsp;"
				}
				else{
					document.getElementById("tooltip"+division).innerHTML="&nbsp;&nbsp;"+roman[division-1]+"."+league+"&nbsp;&nbsp;"
				}
			}
			else{
				document.getElementById("tooltip"+division).innerHTML="&nbsp;&nbsp;"+roman[division]+"."+league+"&nbsp;&nbsp;"
			}
		}
		else{
			document.getElementById("tooltip"+division).innerHTML="&nbsp;&nbsp;"+firstname+"&nbsp;&nbsp;"
		}
	}
	else{
		document.getElementById("tooltip"+division).innerHTML=""
	}
}

function tooltipoff(e,division){
	document.getElementById("tooltip"+division).innerHTML=""
}

function topercent(val){
	var d=Math.floor(1000*val)+""
	if(d.length==1){d="0"+d}
	if(d==1000){
		return "100%"
	}
	else{
		return d.substr(0,d.length-1)+"."+d.charAt(d.length-1)+"%"
	}
}