var newPlayerNextAction = "";
var deletePlayerNextAction = "";
var getPlayersNextAction = "";
var editPlayerNextAction = "";
var newPlayerPopupMessage = "";
var editPlayerId = "";
var editPlayerRar = "";

function newPlayerPopup(message) {
	newPlayerPopupMessage = message;
	getRarsNextAction = "newPlayerPopup";
	getRarsRequest();
}

function newPlayerPopup2(rars) {
	if (newPlayerPopupMessage == null) {
		message = "Please enter the details of the new player below";
	} else {
		message = newPlayerPopupMessage;
	}
	html = "<div class=\"popup\" id=\"addPlayerPopup\">\n";
	html += "	<div class=\"line1col1\">Add Player</div>\n";
	html += "	<div class=\"line2col1\"><span id=\"messagelabel\">" + message + "</span></div>\n";
	html += "	<div class=\"line3col1\"><span id=\"firstnamelabel\">First Name</span></div>\n";
	html += "	<div class=\"line3col2\"><input name=\"firstname\" id=\"firstname\"/></div>\n";
	html += "	<div class=\"line4col1\"><span id=\"lastnamelabel\">Last Name</span></div>\n";
	html += "	<div class=\"line4col2\"><input name=\"lastname\" id=\"lastname\"></div>\n";
	html += "	<div class=\"line5col1\"><span id=\"iwfidlabel\">IWF ID</span></div>\n";
	html += "	<div class=\"line5col2\"><input name=\"iwfid\" id=\"iwfid\"></div>\n";
	html += "	<div class=\"line6col1\"><span id=\"rarlabel\">Country/Region</span></div>\n";
	html += "	<div class=\"line6col2\"><select name=\"rar\" id=\"rar\">\n";
	for (a = 0; a < rars.length; a++) {
		html += "<option value=\"" + rars[a][0] + "\">" + rars[a][1] + "</option>\n";
	}
	html += "   </select>\n";
	html += "   </div>\n";
	html += "	<div class=\"line7col1\">\n";
	html += "   	<span class=\"button\"><a href=\"javascript:insertPlayerRequest();\">Insert</a></span>\n";
	html += "		<span class=\"button\"><a href=\"javascript:removeNewPlayerPopup();\">Cancel</a></span>\n";
	html += "	</div>\n";
	html += "</div>\n";
	document.getElementById('addNewPlayerHolder').innerHTML = html;
	//document.getElementById('addPlayerPopup').style.left = ;
	//document.getElementById('addPlayerPopup').style.top = ;	
}

function validateNewPlayerPopup() {
	errors = 0;
	if (document.getElementById('firstname').value == "") {
		document.getElementById('firstnamelabel').style.color = '#FF0000';
		document.getElementById('messagelabel').innerHTML = "Please enter the missing details highlighted";
		errors = 1;
	} else {
		document.getElementById('firstnamelabel').style.color = '#000000';
	}
	if (document.getElementById('lastname').value == "") {
		document.getElementById('lastnamelabel').style.color = '#FF0000';
		document.getElementById('messagelabel').innerHTML = "Please enter the missing details highlighted";
		errors = 1;
	} else {
		document.getElementById('lastnamelabel').style.color = '#000000';
	}
	if (document.getElementById('iwfid').value == "") {
		document.getElementById('iwfidlabel').style.color = '#FF0000';
		document.getElementById('messagelabel').innerHTML = "Please enter the missing details highlighted";
		errors = 1;
	} else {
		document.getElementById('iwfidlabel').style.color = '#000000';
	}
	return errors;
}

function insertPlayerRequest() {
	//alert("Starting insertPlayerRequest()");
	if (validateNewPlayerPopup()) {
		return;
	} else {
		params = new Array("firstname", document.getElementById('firstname').value, "lastname", document.getElementById('lastname').value, "iwfid", document.getElementById('iwfid').value,"rar", document.getElementById('rar').value);
		sendAJAX("xml/createplayer.php", params, insertPlayerResponse);
	}
}

function insertPlayerResponse(xmlDoc) {
	status = xmlDoc.getElementsByTagName('response')[0].getAttribute('status');
	if (status == "0") {
		id = xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue;
		firstName = xmlDoc.getElementsByTagName("firstName")[0].childNodes[0].nodeValue;
		lastName = xmlDoc.getElementsByTagName("lastName")[0].childNodes[0].nodeValue;
		//document.getElementById('statusMessage').innerHTML = httpObject.responseText;
		removeNewPlayerPopup();
		// need to do whatever we were supposed to be doing
		if (newPlayerNextAction == "insertResult") {
			newPlayerNextAction = "";
			document.getElementById('playeridtxt').value = firstName + " " + lastName;
			getPlayersRequest("");
			insertResult();
		} else if (newPlayerNextAction == "showPlayers") {
			//alert("Need to show players again");
			newPlayerNextAction = "";
			showPlayers();
		} else if (newPlayerNextAction == "addResult") {
			newPlayerNextAction = "";
			// update the select called playerid with this list
			//getPlayersNextAction = "updatePlayerIdSelect";
			// get a new list of all the players
			sendAJAX("xml/getplayers.php", null, updatePlayerIdSelect);
		}
	} else {
		// an error occurred
	}
}

function updatePlayerIdSelect(xmlDoc) {
	status = xmlDoc.getElementsByTagName('response')[0].getAttribute('status');
	if (status == "0") {
		html = parseGetPlayersResponseToSelectOptions(xmlDoc.getElementsByTagName('player'));
		document.getElementById('playerid').innerHTML = html;
	}
}

function removeNewPlayerPopup() {
	document.getElementById('addNewPlayerHolder').innerHTML = "";
}

function getPlayerName() {
	matchingPlayers = new Array();
	numToShow = 0;
	stringLength = document.getElementById('playeridtxt').value.length;
	if (stringLength > 0) {
		text = document.getElementById('playeridtxt').value;
		//alert(stringLength + " " + text);
		for (a = 0; a < allPlayersArray.length; a++) {
			if (allPlayersArray[a][1].substring(0,stringLength).toUpperCase() == text.toUpperCase() && numToShow <= 5) {
				//alert(text);
				playerTemp = new Array();
				playerTemp[0] = allPlayersArray[a][0];
				playerTemp[1] = allPlayersArray[a][1];
				matchingPlayers.push(playerTemp);
				numToShow++;
			}
		}
		if (numToShow > 0) {
			html = "<select name=\"possplayerlist\" id=\"possplayerlist\" size=\"" + numToShow + "\" onClick='playerSelected();'>";
			for (b = 0; b < matchingPlayers.length; b++) {
				//alert(matchingPlayers[b][1]);
				html += "<option value=\"" + matchingPlayers[b][0] + "\">" + matchingPlayers[b][1] + "</option>";
			}
			html += "</select>";
			document.getElementById('playerList').innerHTML = html;
		}
	} else {
		document.getElementById('playerList').innerHTML = "";
	}
}

function removePlayerListDropdown() {
	document.getElementById('playerList').innerHTML = "";
}

function playerSelected() {
	//alert("playerSelected");
	playerPos = document.getElementById('possplayerlist').selectedIndex;
	playerName = document.getElementById('possplayerlist').options[playerPos].text;
	document.getElementById('playeridtxt').value = playerName;
	document.getElementById('playerList').innerHTML = "";
}

function getPlayersRequest(nextAction, rar) {
	alert("Deprecated getPlayersRequest");
	params = new Array("rar", rar);
	sendAJAX("xml/getplayers.php", params, getPlayersResponse);
}

function parseGetPlayersResponseToSelectOptions(players) {
	html = "";
	for (a = 0; a < players.length; a++) {
		player = players[a];
		html += "<option value=\"" + player.getAttribute('id') + "\">" + player.getAttribute('firstName') + " " + player.getAttribute('lastName') + "</option>\n";
	}
	return html;
}


function parseGetPlayersResponseToArray(players) {
	allPlayersArray = new Array(players.length);
	for (a = 0; a < players.length; a++) {
		player = players[a];
		try {
			allPlayersArray[a] = new Array(10);
			allPlayersArray[a][0] = player.getAttribute('id');
			allPlayersArray[a][1] = player.getAttribute('firstName');
			allPlayersArray[a][2] = player.getAttribute('lastName');
			allPlayersArray[a][3] = player.getAttribute('IWFID');
			allPlayersArray[a][4] = player.getAttribute('numComps');
			allPlayersArray[a][5] = player.getAttribute('bestPlace');
			allPlayersArray[a][6] = player.getAttribute('worstPlace');
			allPlayersArray[a][7] = player.getAttribute('rarName');
			allPlayersArray[a][8] = player.getAttribute('firstName') + " " + player.getAttribute('lastName');
			allPlayersArray[a][9] = player.getAttribute('armies');
		} catch (e) {
			alert (e.message);
		}
	}
	return allPlayersArray;
}

function deletePlayerRequest(id) {
	//alert("Starting deletePlayerRequest()");
	httpObject = getHTTPObject();
	if (httpObject != null) {
		urlString = "xml/deleteplayer.php";
		urlString += "?id=" + id;
		//alert(urlString);
		httpObject.open("GET",urlString, true);
		httpObject.send(null);
		httpObject.onreadystatechange = deletePlayerResponse;
	}
}

function deletePlayerResponse() {
	//alert("Starting setOutput - readyState is "+httpObject.readyState);
	if(httpObject.readyState == 4) {
		//show the results and format the page for another add
		//alert(httpObject.responseText);
		try { // Internet Explorer
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = "false";
			xmlDoc.loadXML(httpObject.responseText);
		} catch (e) {
			try { //Firefox Mozilla etc
				parser = new DOMParser();
				xmlDoc = parser.parseFromString(httpObject.responseText,"text/xml");
			} catch (e) {
				alert(e.message)
			}
		}
		//id = xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue;
		//document.getElementById('statusMessage').innerHTML = httpObject.responseText;
		// need to do whatever we were supposed to be doing
		if (deletePlayerNextAction == "showPlayers") {
			deletePlayerNextAction = "";
			showPlayers();
		}
	}
}

function editPlayerPopup(id) {
	//alert("Starting editPlayerPopup()");
	editPlayerId = id;
	getRarsNextAction = "editPlayerPopup";
	getRarsRequest();
}	

function editPlayerPopup2(rars) {
	editPlayerRar = rars;
	id = editPlayerId;	
	httpObject = getHTTPObject();
	if (httpObject != null) {
		urlString = "xml/getplayer.php";
		urlString += "?id=" + id;
		//alert(urlString);
		httpObject.open("GET",urlString, true);
		httpObject.send(null);
		httpObject.onreadystatechange = editPlayerResponse;
	}
}

function editPlayerResponse() {
	//alert("Starting setOutput - readyState is "+httpObject.readyState);
	if(httpObject.readyState == 4) {
		//show the results and format the page for another add
		//alert(httpObject.responseText);
		try { // Internet Explorer
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = "false";
			xmlDoc.loadXML(httpObject.responseText);
		} catch (e) {
			try { //Firefox Mozilla etc
				parser = new DOMParser();
				xmlDoc = parser.parseFromString(httpObject.responseText,"text/xml");
			} catch (e) {
				alert(e.message)
			}
		}
		status = xmlDoc.getElementsByTagName('response')[0].getAttribute('status');
		if (status == "0") {
			//id = xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue;
			//document.getElementById('statusMessage').innerHTML = httpObject.responseText;
			// need to do whatever we were supposed to be doing
			players = xmlDoc.getElementsByTagName('player');
			//alert("players.length = " + players.length);
			player = players[0];
			playerId = player.getElementsByTagName('id')[0].childNodes[0].nodeValue;
			html = "<div class=\"popup\" id=\"editPlayerPopup\">";
			html += "	<div class=\"line1col1\">Edit Player</div>";
			html += "	<div class=\"line2col1\">ID</div>";
			html += "	<div class=\"line2col2\">" +  player.getElementsByTagName('id')[0].childNodes[0].nodeValue + "</div>";
			html += "	<div class=\"line3col1\">First Name</div>\n";
			html += "	<div class=\"line3col2\"><input name=\"firstname\" id=\"firstname\" value=\"" + player.getElementsByTagName('firstName')[0].childNodes[0].nodeValue + "\"/></div>\n";
			html += "	<div class=\"line4col1\">Last Name</div>\n";
			html += "	<div class=\"line4col2\"><input name=\"lastname\" id=\"lastname\" value=\"" + player.getElementsByTagName('lastName')[0].childNodes[0].nodeValue + "\"></div>\n";
			html += "	<div class=\"line5col1\">IWF ID</div>\n";
			html += "	<div class=\"line5col2\"><input name=\"iwfid\" id=\"iwfid\" value=\"" + player.getElementsByTagName('IWFID')[0].childNodes[0].nodeValue + "\"></div>\n";
			html += "	<div class=\"line6col1\">Country/Region</div>\n";
			currRar = player.getElementsByTagName('RAR')[0].childNodes[0].nodeValue
			html += "	<div class=\"line6col2\"><select name=\"rar\" id=\"rar\">\n";
			for (a = 0; a < editPlayerRar.length; a++) {
				if (currRar == editPlayerRar[a][0]) {
					html += "<option value=\"" + editPlayerRar[a][0] + "\" selected >" + editPlayerRar[a][1] + "</option>\n";
				} else {
					html += "<option value=\"" + editPlayerRar[a][0] + "\">" + editPlayerRar[a][1] + "</option>\n";
				}
			}
			html += "   </select>\n";
			html += "   </div>\n";
			html += "	<div class=\"line7col1\"><span class=\"button\"><a href=\"javascript:updatePlayerRequest(" +  player.getElementsByTagName('id')[0].childNodes[0].nodeValue + ");\">Update</a></span>\n";
			html += "	<span class=\"button\"><a href=\"javascript:removeEditPlayerPopup();\">Cancel</a></span></div>\n";
			html += "</div>";
			document.getElementById('editPlayerHolder').innerHTML = html;
			document.getElementById('editPlayerPopup').style.top = document.getElementById('playerRow' + playerId).offsetTop;
		} else {
			// an error occurred
			messages = xmlDoc.getElementsByTagName('errorMessage');
			message = messages[0].childNodes[0].nodeValue;
			alert(message);
		}
	}
}

function updatePlayerRequest(id) {
	//alert("Starting updatePlayerRequest()");
	httpObject = getHTTPObject();
	if (httpObject != null) {
		urlString = "xml/updateplayer.php";
		urlString += "?id=" + id;
		urlString += "&firstname=" + document.getElementById('firstname').value;
		urlString += "&lastname=" + document.getElementById('lastname').value;
		urlString += "&iwfid=" + document.getElementById('iwfid').value;
		urlString += "&rar=" + document.getElementById('rar').value;
		//alert(urlString);
		httpObject.open("GET",urlString, true);
		httpObject.send(null);
		httpObject.onreadystatechange = updatePlayerResponse;
	}
}

function updatePlayerResponse() {
	if(httpObject.readyState == 4) {
		//alert(httpObject.responseText);
		try { // Internet Explorer
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = "false";
			xmlDoc.loadXML(httpObject.responseText);
		} catch (e) {
			try { //Firefox Mozilla etc
				parser = new DOMParser();
				xmlDoc = parser.parseFromString(httpObject.responseText,"text/xml");
			} catch (e) {
				alert(e.message)
			}
		}
		status = xmlDoc.getElementsByTagName('response')[0].getAttribute('status');
		if (status == "0") {
			removeEditPlayerPopup();
			if (editPlayerNextAction == "listPlayers") {
				editPlayersNextAction = "";
				//getPlayersNextAction = "updatePlayersPage";
				getPlayersRequest("updatePlayersPage", document.getElementById('listbyrar').value);
			} else {
				editPlayersNextAction = "";
				players = xmlDoc.getElementsByTagName('player');
				player = players[0];
				id = player.getElementsByTagName('id')[0].childNodes[0].nodeValue;
				getPlayerRequest(id);
			}
		} else {
			// an error occurred
			messages = xmlDoc.getElementsByTagName('errorMessage');
			message = messages[0].childNodes[0].nodeValue;
			//alert(message);
			html = "<div class=\"popup\" id=\"errorPopup\"><div>";
			html += message;
			html += "</div><div><span class=\"button\"><a href=\"javascript:removeErrorPopup();\">Cancel</a></span></div>\n";
			document.getElementById('errorPopupHolder').innerHTML = html;
		}
	}
}

function getPlayerRequest(id) {
	httpObject = getHTTPObject();
	if (httpObject != null) {
		urlString = "xml/getplayer.php";
		urlString += "?id=" + id;
		httpObject.open("GET",urlString, true);
		httpObject.onreadystatechange = getPlayerResponse;
		httpObject.send(null);
	}
}

function getPlayerResponse() {
	//alert("Build player array - readyState is "+httpObject.readyState);
	if(httpObject.readyState == 4) {
		//show the results and format the page for another add
		//alert(httpObject.responseText);
		try { // Internet Explorer
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = "false";
			xmlDoc.loadXML(httpObject.responseText);
		} catch (e) {
			try { //Firefox Mozilla etc
				parser = new DOMParser();
				xmlDoc = parser.parseFromString(httpObject.responseText,"text/xml");
			} catch (e) {
				alert(e.message)
			}
		}
		players = xmlDoc.getElementsByTagName('player');
		//alert("players.length = " + players.length);
		player = players[0];
		id = player.getElementsByTagName('id')[0].childNodes[0].nodeValue;
		html = "<div class=\"popup\" id=\"showPlayerPopup\">";
		html += "	<div class=\"line1col1\">" + player.getElementsByTagName('firstName')[0].childNodes[0].nodeValue + " " + player.getElementsByTagName('lastName')[0].childNodes[0].nodeValue + "</div>";
		html += "	<div class=\"line2col1\">ID</div>";
		html += "	<div class=\"line2col1\">" +  id + "</div>";
		html += "	<div class=\"line3col1\">First Name</div>\n";
		html += "	<div class=\"line3col2\">" + player.getElementsByTagName('firstName')[0].childNodes[0].nodeValue + "</div>\n";
		html += "	<div class=\"line4col1\">Last Name</div>\n";
		html += "	<div class=\"line4col2\">" + player.getElementsByTagName('lastName')[0].childNodes[0].nodeValue + "</div>\n";
		html += "	<div class=\"line5col1\">IWF ID</div>\n";
		html += "	<div class=\"line5col2\">" + player.getElementsByTagName('IWFID')[0].childNodes[0].nodeValue + "</div>\n";
		html += "	<div class=\"line6col1\">";
		html += "	<span class=\"button\"><a href=\"javascript:newPlayerPopupThenShowPlayers();\">Add Player</a></span>\n";
		html += "	<span class=\"button\"><a href=\"javascript:editPlayerPopup(" +  player.getElementsByTagName('id')[0].childNodes[0].nodeValue + ");\">Update</a></span>\n";
		html += "	<span class=\"button\"><a href=\"index.php?action=dolistresultsbyplayer&id=" + id + "\">Results</a></span>\n";
		html += "	<span class=\"button\"><a href=\"index.php?action=dolistmatchesbyplayer&id=" + id + "\">Matches</a></span>\n";
		html += "	<span class=\"button\"><a href=\"javascript:removeShowPlayerPopup();\">Close</a></span></div>\n";
		html += "</div>";
		document.getElementById('showPlayerHolder').innerHTML = html;
		//alert(allPlayersArray.length);
	}
}


function removeEditPlayerPopup() {
	document.getElementById('editPlayerHolder').innerHTML = "";
}

function deletePlayerThenShowPlayers(id) {
	deletePlayerNextAction = "showPlayers";
	deletePlayerRequest(id);
}

function newPlayerPopupThenShowPlayers() {
	newPlayerNextAction = "showPlayers";
	newPlayerPopup(id);
}
