function popUp(URL){
  window.open(URL, "", 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=500');
}


function bonusStar(addOrSubtract, tagPlayerId, totalHolder, errorDiv){	
	if(addOrSubtract == "+"){
		if(document.getElementById("hidden" + tagPlayerId).value >= 3){
			document.getElementById(errorDiv).innerHTML = "A player can have at most 3 stars!";
		} else if (document.getElementById(totalHolder).value <= 0){
			document.getElementById(errorDiv).innerHTML = "You are out of bonus stars!";
		} else if (document.getElementById("hidden" + tagPlayerId).value < 3){
			document.getElementById(errorDiv).innerHTML = "<br>";
			
			//this deals with the total
			document.getElementById(totalHolder).value--;
			var x = document.getElementById(totalHolder).value;
			totalHolder += "Text";
			document.getElementById(totalHolder).innerHTML = "You have <b>" + x + "</b> bonus stars remaining...";
		
			//this deals with the individual player
			
			var junk;
			var junk2;
			junk = document.getElementById("new" + tagPlayerId).innerHTML;
			junk2 = junk.replace("none", "inline");
			
			document.getElementById("new" + tagPlayerId).innerHTML = junk2;
			
			
			//document.getElementById(tagPlayerId).innerHTML += "<img alt=\"image of star\" src=\"http://www.sois.com/tcs/starNew.gif\" style=\"height: 11px;\">";			
			
			
			document.getElementById("hidden" + tagPlayerId).value++;
		}		
	} else if (addOrSubtract == "-"){
		var currentStarHTML = document.getElementById("new" + tagPlayerId).innerHTML;				
		//var indexOfStar = currentStarHTML.indexOf("<img style=\"height: 11px;\" src=\"starNew.gif\">");	//wtf, IE can't handle this for some reason
		//var indexOfStar = currentStarHTML.indexOf("starNew.gif");		
		var indexOfStar = currentStarHTML.indexOf("inline");		
		//document.getElementById(errorDiv).innerHTML += document.getElementById(tagPlayerId).innerHTML + "xxx" + indexOfStar + "<br>";
		if(indexOfStar >= 0){
			//this deals with the total
			document.getElementById(totalHolder).value++;
			var x = document.getElementById(totalHolder).value;
			totalHolder += "Text";
			document.getElementById(totalHolder).innerHTML = "You have <b>" + x + "</b> bonus stars remaining...";
			
			//this deals with the individual player
			//document.getElementById(tagPlayerId).innerHTML = document.getElementById(tagPlayerId).innerHTML.replace(/<img alt=\"image of star\" src=\"http:\/\/www.sois.com\/tcs\/starNew.gif\" style=\"height: 11px;\">/, "");				
			document.getElementById("new" + tagPlayerId).innerHTML = document.getElementById("new" + tagPlayerId).innerHTML.replace(/inline([\s\S]+starNew)/, "none$1");		
			document.getElementById("hidden" + tagPlayerId).value--;
		}		
	}	
}

function verifyBonusStars(theForm, errorDiv){
	var hiddenRegExp = /hidden([\S\s]+)/;
	var origRegExp = /orig([\S\s]+)/;
	var cur_form = theForm;
	var url;
	var onLoadBonusStars = Array();
	var onSubmitBonusStars = Array();
	var onLoadNumPlayersWithXStars = Array();
	var numAvailStars = 0;
	
	//this stores all the information
	for(var i = 0; i< cur_form.elements.length; i++){
		if (cur_form.elements[i].value == 'Submit bonus stars' || cur_form.elements[i].value == '' || cur_form.elements[i].value == '+' || cur_form.elements[i].value == '-'){ //empty block, do nothing
		} else {
			if (cur_form.elements[i].id == 'starsRemaining'){
				if (cur_form.elements[i].value != 0){
					document.getElementById(errorDiv).innerHTML = 'Not All of the bonus stars have been used!';
					return false;
				}
			} else if (cur_form.elements[i].id == 'numStars') {
				numAvailStars = cur_form.elements[i].value;				
			} else {
				var player = "";
				var hiddenPlayer = "";						
				hiddenPlayer = hiddenRegExp.exec(cur_form.elements[i].id);								
				if(hiddenPlayer == null){ //not a 'hidden' player, should be 'orig' player
					var origPlayer = "";
					origPlayer = origRegExp.exec(cur_form.elements[i].id);					
					if(origPlayer == null){	//empty block, do nothing - not a 'hidden' player nor an 'orig' player
					} else if (origPlayer != null){
						player = origPlayer[1];
						onLoadBonusStars[player] = cur_form.elements[i].value;						
						if(onLoadNumPlayersWithXStars[cur_form.elements[i].value] == null){ onLoadNumPlayersWithXStars[cur_form.elements[i].value] = 1;
						} else { onLoadNumPlayersWithXStars[cur_form.elements[i].value]++; }
					}									
				} else if (hiddenPlayer != null){ //a 'hidden' player
					player = hiddenPlayer[1];				
					onSubmitBonusStars[player] = cur_form.elements[i].value;
				}
				//document.getElementById(errorDiv).innerHTML +=  player + "----" + cur_form.elements[i].value + "<br>";
				if (i != 0) { url += "&"; }
				url += cur_form.elements[i].name + "=" + cur_form.elements[i].value; 
			}
		}
	}
		
	for (var i = 0; i <= 3; i++){ 
		if (onLoadNumPlayersWithXStars[i] == undefined){ onLoadNumPlayersWithXStars[i] = 0; }		
	}
	
	//this is how to determine if the stars have been given properly (probably not efficient at all)		
	if(numAvailStars <= onLoadNumPlayersWithXStars[0]){
		for (var player in onLoadBonusStars){			
			//alert(player + "-" + onLoadBonusStars[player] + "-" + onSubmitBonusStars[player]);
			if (onLoadBonusStars[player] > 0){
				if (onLoadBonusStars[player] != onSubmitBonusStars[player]){ 
					document.getElementById(errorDiv).innerHTML = "Incorrect distribution of bonus stars"; 
					return false;
				}
			} else if (onLoadBonusStars[player] == 0) {
				if (onSubmitBonusStars[player] > 1){
					document.getElementById(errorDiv).innerHTML = "Incorrect distribution of bonus stars"; 
					return false;
				}
			}
		}		
	} else if (numAvailStars > onLoadNumPlayersWithXStars[0]){
		for (var player in onLoadBonusStars){
			if (onLoadBonusStars[player] == 0){
				if (onSubmitBonusStars[player] < 1) {
					document.getElementById(errorDiv).innerHTML = "Incorrect distribution of bonus stars"; 
					return false;
				} else {
					onLoadBonusStars[player] = 1;
					onLoadNumPlayersWithXStars[1]++;
					onLoadNumPlayersWithXStars[0]--;
					numAvailStars--;
				}
			}
		}		
		if (numAvailStars <= onLoadNumPlayersWithXStars[1]){
			for (var player in onLoadBonusStars){
				if(onLoadBonusStars[player] == 2){
					if (onLoadBonusStars[player] != onSubmitBonusStars[player]){
						document.getElementById(errorDiv).innerHTML = "Incorrect distribution of bonus stars"; 
						return false;
					}
				} else if (onLoadBonusStars[player] == 1){
					if (onSubmitBonusStars[player] > 2){
						document.getElementById(errorDiv).innerHTML = "Incorrect distribution of bonus stars"; 
						return false;
					}
				}
			}						
		} else if (numAvailStars > onLoadNumPlayersWithXStars[1]){
			for (var player in onLoadBonusStars){
				if (onLoadBonusStars[player] == 1){
					if (onSubmitBonusStars[player] < 2){
						document.getElementById(errorDiv).innerHTML = "Incorrect distribution of bonus stars"; 
						return false;
					} else {
						onLoadBonusStars[player] = 2;
						onLoadNumPlayersWithXStars[2]++;
						onLoadNumPlayersWithXStars[1]--;
						numAvailStars--;
					}
				}
			}			
		}
	}
//	document.getElementById(errorDiv).innerHTML = "EVERYTHING IS OKAY"; 
	return true;
}

function editNameNumber(playerName){	
	var regexp = /(\w+)\_(\w+)/;
	name_array = regexp.exec(playerName);	
	//document.getElementById("Name" + playerName).innerHTML = name_array;
	document.getElementById("Name" + playerName).innerHTML = "<input name=\"" + playerName + "\" =\"NameField" + playerName + "\" type=\"textArea\" style=\"text-align: center;\" value=\"" + name_array[1] + " " + name_array[2] + "\">";
	var playerNumber = document.getElementById("NumField" + playerName).value;
	document.getElementById("Num" + playerName).innerHTML = "<input name=\"" + playerName + playerNumber + "\" id=\"NumField" + playerName + "\" type=\"textArea\" onkeypress=\"return maxLengthOfNumbersOnlyField('NumField" + playerName +"', 2 , event)\" style=\"width: 1.5em; text-align: center;\" value=\"" + playerNumber + "\">";
}

function munozUpdater(theForm, errorSpan, responseDiv){
	var x = verifyTotalMunozPoints(theForm, errorSpan);
	if (x == false) { return false; }
	var cur_form = theForm;
	var xmlHttp = getXmlHttpObject();
	var url = "munozVotingUpdater.php?";
	for(var i = 0; i< cur_form.elements.length; i++){
		if (cur_form.elements[i].value == 'Press To Save/Submit Munoz Votes' || cur_form.elements[i].value == ''){ //empty block, do nothing
		} else {
			if (i != 0) { url += "&"; }
			url += cur_form.elements[i].name + "=" + cur_form.elements[i].value; 
		}
	}
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4){
			document.getElementById(responseDiv).innerHTML = xmlHttp.responseText;
		}
	}
	
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
	return false;
}

function maxLengthOfNumbersOnlyField(fieldId, maxLength, e){
	var text = document.getElementById(fieldId).value;
	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	if (keynum > 31 && (keynum < 48 || keynum > 57)){ return false; }				
	else if (keynum >=48 && keynum <= 57) { 
		if (text.length >= maxLength) { return false; }
	}	
	return true;	
}

function changePlayerNameNumber(player_id){
	document.getElementById('edit' + player_id).style.display = 'none';
	document.getElementById('name' + player_id).style.display = 'none';
	document.getElementById('oldNum' + player_id).style.display = 'none';
	document.getElementById('submit' + player_id).style.display = 'block';	
	document.getElementById('newName' + player_id).style.display = 'block';
	//document.getElementsByName('fname' + player_id)[0].type = 'text';
	//document.getElementsByName('lname' + player_id)[0].type = 'text';
	//document.getElementById('newNumber' + player_id).style.display = 'block';
	
	document.getElementById('newNumLI' + player_id).style.display = 'block';
	//document.getElementsByName('newNum' + player_id)[0].size = '4';
	//document.getElementsByName('newNum' + player_id)[0].maxlength = '2';
}

function changePlayerNameNumberUpdater2(player_id){
	var regexp = /^([a-zA-Z ]+)$/;
	var numRegExp = /^(\d+)$/;
	
	var first_name = regexp.exec(document.getElementById('fname' + player_id).value);
	var last_name = regexp.exec(document.getElementById('lname' + player_id).value);
	var number = numRegExp.exec(document.getElementById('newNum' + player_id).value);
	var targetLoc = "button" + player_id
	
	try {
		first_name = first_name[1];
		last_name = last_name[1];
		number = number[1];
	} catch(e) {
		return
	}
	
	var url = "changePlayerNameUpdater.php?player_id=" + player_id + "&fname=" + first_name + "&lname=" + last_name + "&number=" + number
	var xmlHttp = getXmlHttpObject();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4){
			document.getElementById(targetLoc).innerHTML = xmlHttp.responseText; 
		}
	}	
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function changePlayerNameNumberUpdater(origPlayerName, origPlayerNum, newPlayerName, newPlayerNum, targetDiv){
	var regexp2 = /(\w+)\_(\w+)/;
	var regexp = /([a-zA-Z]+) ([a-zA-Z]+)/;
	name_array = regexp.exec(newPlayerName);
	orig_name_array = regexp2.exec(origPlayerName);	
	var url = "changePlayerNameNumberUpdater.php?newName=" + name_array[1] + "_" + name_array[2] +"&newNumber=" + newPlayerNum;
	url += "&origName=" + origPlayerName + "&origNumber=" + origPlayerNum;
	var xmlHttp = getXmlHttpObject();	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4){
			document.getElementById(targetDiv).innerHTML = xmlHttp.responseText; 
		}
	}	
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function onlyNumbers135(e) {
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event) // IE
	{
	keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
	keynum = e.which;
	}
	keychar = String.fromCharCode(keynum)
	if (keynum > 31 && (keynum < 48 || keynum > 53 || keynum == 50 || keynum == 52)){ return false; }
	return true;
}

function verifyMunozValues(munozPoints, spanId){
	munozPoints = parseInt(munozPoints);
	if(munozPoints > 5){
		document.getElementById(spanId).innerHTML = "<br>5 Points is the max<br>for a candidate";
	} else {
		document.getElementById(spanId).innerHTML = "";
	}			
}

function verifyTotalMunozPoints(theForm, spanId){
	var cur_form = theForm;
	var total_points = 0;
	var num_of_players_with_points = 0;
	var num_of_players_with_5_points = 0;
	var num_of_players_with_3_points = 0;
	var num_of_players_with_1_points = 0;
	for(var i = 0; i< cur_form.elements.length; i++){
		var points = parseInt(cur_form.elements[i].value);
		if(points != 0 && !isNaN(points)){
			num_of_players_with_points++;
			total_points += points;
			if (points == 5) { num_of_players_with_5_points++; }
			else if (points == 3) { num_of_players_with_3_points++; }
			else if (points == 1) { num_of_players_with_1_points++; }
		}					
	}	
	if (total_points != 9 ){
		document.getElementById(spanId).innerHTML = "Incorrect number of points awarded";
		return false;
	} else if (num_of_players_with_points != 3) { 
		document.getElementById(spanId).innerHTML = "Incorrect number of players with points";
		return false; 
	} else if (num_of_players_with_5_points != 1 || num_of_players_with_3_points != 1 || num_of_players_with_1_points != 1) {
		document.getElementById(spanId).innerHTML = "Incorrect distribution of points";
		return false; 
	} else { document.getElementById(spanId).innerHTML = ""; }		
	return true;
}

function tester(recruitId) {
	document.getElementById(recruitId).innerHTML = "TESTING";
}

function getPHPPageXML(ObjectHandler, URL){
	var url = URL;
	var xmlHttp = getXmlHttpObject();
	xmlHttp.onreadystatechange = function() {
		if (xmlHttp.readyState == 4){
			if (xmlHttp.status == 200){
				ObjectHandler.ParseXMLHttp(xmlHttp)
			} 
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function getPHPPage(theURL, targetDiv, secondaryDiv){
	var url = theURL;
	var xmlHttp = getXmlHttpObject();
	if (secondaryDiv == null) { secondaryDiv = targetDiv; }
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4){	
			var response;
			var scriptRegExp = /<script.*>([\s\S]+)<\/script>/i;	//index 1 is going to have this match
			if (xmlHttp.status == 200){															
				document.getElementById(secondaryDiv).innerHTML = "";		
				document.getElementById(targetDiv).innerHTML = xmlHttp.responseText;
				
				response = document.getElementById(targetDiv).innerHTML;				
				var resultOfRegExp = scriptRegExp.exec(response)
				
				//the try catch is for browsers that don't like doing an 'if' this way
				//the if statement can probably be removed, but i wanted to point out
				//that IE is fun...
				try{	
					if (resultOfRegExp[1] != null){
						//the response must include <script> tags 
						//these tages probably need to be executed					
						eval(resultOfRegExp[1])					
					} 								
				} catch (e) {
				}
			} else {
				document.getElementById(secondaryDiv).innerHTML = "An error occurred...";
			}
		} else if (xmlHttp.readyState!=4){
			document.getElementById(secondaryDiv).innerHTML = "<img src='./otherImages/TCS_loading.gif'>";
		}
	}	
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function getPHPPagePOST(theURL, params, targetDiv){
	var url = theURL;
	var xmlHttp = getXmlHttpObject();
	//document.getElementById(targetDiv).innerHTML = "Hello Mate"; 
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4 && xmlHttp.status == 200){
			document.getElementById(targetDiv).innerHTML = xmlHttp.responseText; 
		}
	}	
	xmlHttp.open("POST",url,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function getXmlHttpObject(){
	var xmlHttp=null;
	try {
                // Firefox, Opera 8.0+, Safari
                xmlHttp=new XMLHttpRequest();
    } catch (e) {
        // Internet Explorer
        try {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                    alert("Your browser does not support AJAX!");
                    return false;
            }
        }
    }
    return xmlHttp;
}

//scoutPlayer
// This will scout a player, depending on the current owner
function scoutPlayer(recruit_id){
	var url = "scoutPlayer.php?recruit_id=" + recruit_id
	var targetDiv = "center" + recruit_id
	getPHPPage(url, targetDiv)
}

//offerScholarship
// This will offer a scholarship to the recruit
function offerScholarship(recruit_id){
	var url = "offerScholarship.php?recruit_id=" + recruit_id
	var targetDiv = "center" + recruit_id
	getPHPPage(url, targetDiv)
}

//withdrawOffer
// This will withdraw a scholarship offer with a player
function withdrawOffer(recruit_id){
	var url = "withdrawOffer.php?recruit_id=" + recruit_id
	var targetDiv = "center" + recruit_id
	getPHPPage(url, targetDiv)
}


//this will hide or show an element based on the div's id
//before it hides the element, it changes the opacity of the element, then it delays for a some time 
function hideShowElementById(elementId) {
	if (document.getElementById(elementId).style.display != "none"){
		setOpacity(document.getElementById(elementId), 3)
		setTimeout("document.getElementById('" + elementId + "').style.display = 'none'", 200)		
	} else { 
		setOpacity(document.getElementById(elementId), 10)
		document.getElementById(elementId).style.display = "block" 
	}
}

//this will hide or show the button and the recruit
function hideShowRecruit(recruit_id){
	var xmlHttp = getXmlHttpObject();
	var url="hideShowRecruit.php?recruit_id=" + recruit_id
	setOpacity(document.getElementById("center" + recruit_id), 5);
	document.getElementById("hide" + recruit_id).disabled = true;
	document.getElementById("show" + recruit_id).disabled = true;
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4){
			document.getElementById("hide" + recruit_id).disabled = false;
			document.getElementById("show" + recruit_id).disabled = false;			
			eval(xmlHttp.responseText)			
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);	
}


/*************************
* This function will, given two element ids, swap the display styles
*************************/
function swapElementStyleDisplay(element_id_1, element_id_2){
	var tmp = document.getElementById(element_id_1).style.display
	document.getElementById(element_id_1).style.display = document.getElementById(element_id_2).style.display
	document.getElementById(element_id_2).style.display = tmp
	
	/**** SEE THE RECRUIT FUNCTIONS SCRIPT FOR DETAILS AS TO WHY THIS IS COMMENTED ********
	alert('begin1=' + document.getElementById(element_id_1).class)
	alert('begin2=' + document.getElementById(element_id_2).class)
	var tmp = document.getElementById(element_id_1).class
	document.getElementById(element_id_1).class = document.getElementById(element_id_2).class
	document.getElementById(element_id_2).class = tmp
	alert('end1=' + document.getElementById(element_id_1).class)
	alert('end2=' + document.getElementById(element_id_2).class)
	*/
	
}

/*************************
*	This function will retrieve help set the 'release time' for a the league's roms
*	PARAMS
*	-week - This is the week to set/retrieve
*************************/
function setRomReleaseInstant(week){
	var month = document.getElementById('month' + week).value
	var day = document.getElementById('day' + week).value
	var time = document.getElementById('time' + week).value
	var url = 'romReleaseUpdater.php?week=' + week + '&month=' + month + '&day=' + day + '&time=' + time
	var targetDiv = 'status' + week
	getPHPPage(url, targetDiv)	
}


//courtesy of http://www.quirksmode.org/js/opacity.html
// value of '5' is opacity of 50%, value of '7' is opacity of 70%, etc.
function setOpacity(object, value) {
	var thisObject = object;
	thisObject.style.opacity = value/10;
	thisObject.style.filter = 'alpha(opacity=' + value*10 + ')';
}
