/**
 * JavaScript 2006, KasH.
 * 
 * Berekent de statistische gegevens van een speler.
 */
var arr_leden = ['Albert', 'Arnoud', 'Ben', 'Gerard', 'Gunnar', 'Han', 'Henk', 'Jan', 'Karel', 'Kasper', 'Louis', 'Martijn', 'Wijnand'];

/*****************************/

window.onload = function() {
	for(var tags = document.getElementsByTagName('*'), teller = 0; teller < tags.length; teller++) {
		if(tags[teller].id != '') {
			window[tags[teller].id] = tags[teller];
			if(tags[teller].id == 'aResult') {
				tags[teller].onclick = function() {
					tblResult.style.display = tblResult.style.display == 'none' ? '' : 'none';
					if(typeof(Cookie) != 'undefined') {
						Cookie.schrijf('zichtbaar', tblResult.style.display);
					}
					return(false);
				};
			}
		}
	}
	if(typeof(cmdShow) != 'undefined' && typeof(Leden) != 'undefined') {
		if(typeof(tblResult) != 'undefined' && typeof(Cookie) != 'undefined') {
			cmdShow.disabled = (Leden.selectedIndex = Cookie.lees('wie', 0)) == 0;
			tblResult.style.display = Cookie.lees('zichtbaar', 'none');
		}
	}
	oStat.init();
};

/*****************************/

String.prototype.innerTekst = function() {
	return(this.replace(/<[\!\/]?[^<>]>/g, '').replace(/&nbsp;/gi, ' ').replace(/&amp;/gi, '&'));
};

/*****************************/

var oStat = {
	tabellen: [],
	partijen: 0,
	gewonnen: 0,
	verloren: 0,
	remise: 0,
	oneven: 0,
	afgezegd: 0,
	wit: 0,
	zwart: 0,
	init: function() {
		var tbls = document.getElementsByTagName('table');
		var tabellen = [], aantal = 0;
		
		for(var teller = 0; teller < tbls.length; teller++) {
			if(!(/ranglijst/i.test(tbls[teller].innerHTML.innerTekst()))) {
				tabellen[aantal++] = tbls[teller];
			}
		}
		this.tabellen = tabellen;
	},
	procentage: function(eigenschap) {
		var waarde = eigenschap == 'gewonnen' ? this.gewonnen + (this.remise / 2) : this[eigenschap];
		return((this.partijen > 0 && waarde > 0 ? Math.floor(100 / (this.partijen / waarde)) : 0).toString().fontcolor('red'));
	},
	laatZien: function() {
		if(Leden.value == '') {
			alert('U heeft geen naam geselecteerd!');
			Leden.focus();
		} else {
			if(typeof(Cookie) != 'undefined') {
				Cookie.schrijf('wie', Leden.selectedIndex.toString(), 14);
			}
			var html = '<h2 style="text-align:center">De persoonlijke scores van ' + Leden.value + '<\/h2>';
			html += '<br \/><table class="uitslag" style="width:60%" border="1"><tr><th>Ronde:<\/th>';
			html += '<th>Witspeler:<\/th><th>Zwartspeler:<\/th><th>Uitslag:<\/th><\/tr>';
			
			for(var teller = 0, re = new RegExp(Leden.value, 'i'); teller < this.tabellen.length; teller++) {
				var rv = false, tbl = this.tabellen[teller], spelerWit = '', spelerZwart = '';
				for(var iTbl = 0; rv == false && iTbl < tbl.rows.length; iTbl++) {
					var rij = tbl.rows[iTbl];
					if(rij.cells.length > 1) {
						var wit = rij.cells[0].innerHTML.innerTekst().replace(/\s+/g, ' ');
						var uitslag = rij.cells[rij.cells.length - 1].innerHTML.innerTekst().replace(/\s+/g, ' ');
						var zwart = '', iwit;
						
						if(rij.cells.length > 2) {
							zwart = rij.cells[1].innerHTML.innerTekst().replace(/\s+/g, ' ');
						}
						
						spelerZwart = zwart;
						spelerWit = wit;
						
						iwit = re.test(wit) ? 0 : re.test(zwart) ? 1 : -1;
						rv = iwit != -1;
						
						switch(true) {
							case (iwit == -1):
								break;
							case (/oneven/i.test(uitslag)):
								this.oneven++;
								break;
							case (/afgezegd/i.test(uitslag)):
								this.afgezegd++;
								break;
							case (/\s*1\s*\-\s*0\s*/.test(uitslag)):
								if(iwit == 0) {
									this.gewonnen++;
									this.wit++;
								} else {
									this.verloren++;
									this.zwart++;
								}
								this.partijen++;
								break;
							case (/\s*0\s*\-\s*1\s*/.test(uitslag)):
								if(iwit == 0) {
									this.verloren++;
									this.wit++;
								} else {
									this.gewonnen++;
									this.zwart++;
								}
								this.partijen++;
								break;
							case (/rem(ise)?/i.test(uitslag)):
								if(iwit == 0) {
									this.wit++;
								} else {
									this.zwart++;
								}
								this.partijen++;
								this.remise++;
								break;
							default:
								alert('Ongeldige uitslag: "' + uitslag + '" in ronde ' + (this.tabellen.length - teller).toString() + '.\nKan niet doorgaan.');
								return;
								break;
						}
					}
				}
				
				if(rv) {
					html += '<tr><td>' + (this.tabellen.length - teller).toString() + '<\/td><td>' + spelerWit + '<\/td>';
					if(spelerZwart) {
						html += '<td>' + spelerZwart + '<\/td><td>' + uitslag + '<\/td><\/tr>';
					} else {
						html += '<td colspan="2">' + uitslag.italics() + '<\/td><\/tr>';
					}
				} else {
					// Verwijder commentaar om ook afgezegde ronden weer te geven..;
					/*
						html += '<tr><td>' + (this.tabellen.length - teller).toString() + '<\/td>';
						html += '<td><i>Afgezegd<\/i><\/td><td>-<\/td><td>-<\/td><\/tr>';
					*/
					this.afgezegd++;
				}
			}
			html += '<\/table><br \/><table width="20%">';
			html += '<tr><th colspan="2" style="text-align:left">Statistieken:<\/th><\/tr>';
			
			if(this.partijen == 0) {
				html += '<tr><td colspan="3"><i>Ga eerst maar eens een partij spelen...!<\/i><\/td><\/tr>';
			} else {
				for(var eigenschap in this) {
					if(typeof(this[eigenschap]) == 'number') {
						html += '<tr><td>&nbsp;' + eigenschap.charAt(0).toUpperCase() + eigenschap.substr(1) + ':<\/td>';
						html += '<td>' + this[eigenschap].toString().italics();
						if(/^(gewonnen|wit)$/.test(eigenschap)) {
							html += '&nbsp;&nbsp;&nbsp;<small>(' + this.procentage(eigenschap) + '%)<\/small>';
						}
					}
				}
			}
			
			// Plak t=<random_string> aan het einde van href, zodat we opnieuw worden geladen..;
			html += '<\/table><br \/><p><a href="' + document.location.href.replace(/\?.*$/, '') + '?t=';
			html += new Date().getTime() + '">Terug<\/a><\/p><p>Klopt het niet? Direct doorgeven aan de ';
			html += '<a href="mailto:wedstrijdleider@gambiet.nl?subject=De%20uitslagen%20van%20';
			html += Leden.value + '%20kloppen%20niet%21">wedstrijdleider<\/a>!<\/p><p>&nbsp;<\/p>';
			html += '<p align="center"><a href="../home.html">Weg hier!<\/a><\/p>';
			document.body.innerHTML = html;
		}
	}
};
