var all_colors = ['4684EE', 'DC3912', 'FF9900', '008000', '4942CC', 'CE8E8D', 'DA8137', '86A44A', 'B2C1DC', '661270'];

function Player(firstName, lastName, height, pers) {
	this.firstName = firstName;
	this.lastName = lastName;
	if (firstName.length > 0) {
		this.name = firstName + ' ' + lastName;
		this.sortedName = lastName + ', ' + firstName;
	} else {
		this.name = lastName;
		this.sortedName = lastName;
	}
	this.height = height;
	this.pers = pers;
	
	this.getLegendName = function() {
		if (this.name.substring(0,2) == '* ') {
			return this.name.substring(2,this.name.length);
		} else {
			return this.name;
		}
	}
	
	this.getHeightDisplay = function() {
		var feet = floor(this.height / 12);
		var inches = this.height - (feet * 12)
		return feet + "'" + inches + '"';
	};
	
	this.getMinAge = function() {
		var ret = 99;
		for (var age in this.pers) {
			ret = Math.min(age, ret);
		}
		return ret;
	};

	this.getMaxAge = function() {
		var ret = 0;
		for (var age in this.pers) {
			ret = Math.max(age, ret);
		}
		return ret;
	};
	
	this.getMinPer = function() {
		var ret = 99;
		for (var age in this.pers) {
			ret = Math.min(this.pers[age], ret);
		}
		return ret;
	};

	this.getMaxPer = function() {
		var ret = 0;
		for (var age in this.pers) {
			ret = Math.max(this.pers[age], ret);
		}
		return ret;
	};
	
	this.getPer = function(age) {
		if (this.pers[age]) {
			return this.pers[age];
		} else {
			return -1;
		}
	}
	
	this.isOrphan = function(age) {
		return this.getPer(age) > -1 && this.getPer(age - 1) == -1 && this.getPer(age + 1) == -1;
	}
}

function PlayerCollection() {
	this.players = [];
	
	this.addPlayer = function(player) {
		this.players.push(player);
	};
	
	this.unshiftPlayer = function(player) {
		this.players.unshift(player);
	};
	
	this.fillOptions = function(form) {
		for (var i = 0; i < form.elements.length; i++) {
			var select = form.elements[i];
			if (select.options) {
				for (var j in this.players) {
					select.options[select.options.length] = new Option(this.players[j].sortedName, j);
				}
			}
		}
	}

	this.updateImage = function(form) {
		var ids = []
		for (var i = 0; i < form.elements.length; i++) {
			var select = form.elements[i];
			if (select.options && select.selectedIndex > 0) {
				ids.push(select.options[select.selectedIndex].value);
			}
		}
		return this.getChartUrl(ids);
	}
	
	this.getAverageForHeight = function(minHeight, maxHeight) {
		var avgPlayers = []
		for (var id in this.players) {
			var player = this.players[id];
			if (player.height >= minHeight && player.height <= maxHeight) {
				avgPlayers.push(player);
			}
		}
		return this.getAveragePers(avgPlayers);
	}
	
	this.getAverageForMinAge = function(minMinAge, maxMinAge) {
		var avgPlayers = []
		for (var id in this.players) {
			var player = this.players[id];
			if (player.getMinAge() >= minMinAge && player.getMinAge() <= maxMinAge) {
				avgPlayers.push(player);
			}
		}
		return this.getAveragePers(avgPlayers);
	}
	
	this.getAveragePers = function(avgPlayers) {
		var pers = [];
		var ret = [];
		for (var id in avgPlayers) {
			var player = avgPlayers[id];
			for (var age in player.pers) {
				if (pers[age] == null) {
					pers[age] = [];
				}
				pers[age].push(player.pers[age]);
			}
		}
		for (var age in pers) {
			var ct = 0;
			var tot = 0;
			for (var id in pers[age]) {
				ct++;
				tot += pers[age][id];
			}
			ret[age] = Math.round(10 * tot / ct) / 10;
		}
		return ret;
	}

	this.getChartUrl = function(ids) {
		var chartPlayers = []
		for (var id in ids) {
			chartPlayers.push(this.players[ids[id]]);
		}
		return this.getCharUrlPlayers(chartPlayers);
	}
	
	this.getCharUrlPlayers = function(chartPlayers) {
		var minAge = 99;
		var maxAge = 0;
		var minPer = 99;
		var maxPer = 0;
		for (var index in chartPlayers) {
			var player = chartPlayers[index];
			minAge = Math.min(minAge, player.getMinAge());
			maxAge = Math.max(maxAge, player.getMaxAge());
			minPer = Math.min(minPer, player.getMinPer());
			maxPer = Math.max(maxPer, player.getMaxPer());
		}
		var gridSpace = 200 / (maxAge - minAge);
		maxPer = Math.ceil(maxPer) + 1;
		minPer = Math.floor(minPer) - 1;
		var chartData = '';
		var legend = '';
		var colors = '';
		var markers = '';
		for (var index in chartPlayers) {
			if (index > 0) {
				chartData += '|';
				legend += '|';
				colors += ',';
			}
			var player = chartPlayers[index];
			for (var i = minAge; i <= maxAge; i++) {
				var per = player.getPer(i)
				chartData += per;
				if (per > 0 && player.isOrphan(i)) {
					if (markers.length > 0) {
						markers += '|';
					} else {
						markers = '&chm=';
					}
					markers += 'o,' + all_colors[index] + ',' + index + ',' + (i - minAge) + ',3';
				}
				if (i < maxAge) {
					chartData += ',';
				}
			}
			legend += player.getLegendName();
			colors += all_colors[index];
		}
		var xAxis = '';
		for (var i = minAge; i <= maxAge; i++) {
			xAxis += '|';
			if (i % 2 == 0) {
				xAxis += i;
			}
		}
		return 'http://chart.apis.google.com/chart?cht=lc&chs=510x325&chd=t:' + chartData + '&chxt=x,y,x&chxl=0:' + xAxis + '|2:|Age|&chxp=2,50&chxr=1,' + minPer + ',' + maxPer + '&chds=' + minPer + ',' + maxPer + '&chxs=0,333333,14|1,333333,14|2,333333,14&chdl=' + legend + '&chco=' + colors + '&chg=' + gridSpace + ',100&chtt=Player+Efficiency+Rating+By+Age' + markers;
	};
}

var pc = new PlayerCollection();
pc.addPlayer(new Player('Kareem', 'Abdul-Jabbar', 86, {32: 25.3, 33: 25.5, 34: 23.4, 35: 23.6, 36: 21.3, 37: 22.9, 38: 22.7, 39: 17.9, 40: 15.8, 41: 12.9, 22: 22.5, 23: 29.0, 24: 29.9, 25: 28.5, 26: 24.4, 27: 26.4, 28: 27.2, 29: 27.8, 30: 29.2, 31: 25.5}));
pc.addPlayer(new Player('Shareef', 'Abdur-Rahim', 81, {20: 17.4, 21: 21.1, 22: 20.7, 23: 20.2, 24: 19.1, 25: 19.8, 26: 20.0, 27: 19.9, 28: 18.7, 29: 17.2, 30: 13.1}));
pc.addPlayer(new Player('Alvan', 'Adams', 81, {32: 14.6, 33: 13.1, 21: 21.7, 22: 20.2, 23: 17.7, 24: 20.4, 25: 19.2, 26: 20.3, 27: 18.6, 28: 16.8, 29: 16.7, 30: 19.8, 31: 15.3}));
pc.addPlayer(new Player('Mark', 'Aguirre', 78, {32: 13.7, 33: 13.7, 34: 13.1, 22: 17.3, 23: 20.5, 24: 23.5, 25: 21.3, 26: 19.2, 27: 22.1, 28: 21.9, 29: 16.4, 30: 15.8, 31: 16.7}));
pc.addPlayer(new Player('Ray', 'Allen', 77, {32: 16.4, 21: 14.6, 22: 16.2, 23: 18.9, 24: 20.6, 25: 22.9, 26: 21.6, 27: 21.3, 28: 21.7, 29: 20.9, 30: 22.2, 31: 21.6}));
pc.addPlayer(new Player('Carmelo', 'Anthony', 80, {19: 17.6, 20: 16.7, 21: 22.0, 22: 22.1, 23: 21.1}));
pc.addPlayer(new Player('Tiny', 'Archibald', 73, {32: 14.3, 33: 14.3, 34: 12.3, 35: 10.6, 22: 14.0, 23: 23.0, 24: 25.2, 25: 18.3, 26: 21.7, 27: 20.1, 28: 19.4, 30: 13.1, 31: 15.3}));
pc.addPlayer(new Player('Gilbert', 'Arenas', 75, {20: 17.0, 21: 18.6, 22: 16.0, 23: 21.3, 24: 23.8, 25: 24.0}));
pc.addPlayer(new Player('Charles', 'Barkley', 78, {32: 24.8, 33: 23.0, 34: 21.6, 35: 23.1, 21: 18.3, 22: 22.4, 23: 25.1, 24: 27.6, 25: 27.0, 26: 27.1, 27: 28.9, 28: 24.5, 29: 25.9, 30: 22.8, 31: 25.2}));
pc.addPlayer(new Player('Rick', 'Barry', 79, {32: 19.3, 33: 20.9, 34: 14.7, 35: 14.8, 21: 20.0, 22: 24.2, 24: 30.3, 25: 25.3, 26: 22.9, 27: 21.7, 28: 20.4, 29: 22.4, 30: 23.5, 31: 18.3}));
pc.addPlayer(new Player('Elgin', 'Baylor', 77, {32: 20.2, 33: 21.0, 34: 20.7, 35: 20.8, 24: 23.6, 25: 25.2, 26: 28.2, 27: 26.5, 28: 26.6, 29: 21.1, 30: 20.5, 31: 16.9}));
pc.addPlayer(new Player('Walt', 'Bellamy', 83, {32: 19.0, 33: 15.9, 34: 15.2, 22: 26.3, 23: 24.9, 24: 23.3, 25: 21.7, 26: 19.3, 27: 18.4, 28: 19.1, 29: 18.0, 30: 16.4, 31: 16.5}));
pc.addPlayer(new Player('Chauncey', 'Billups', 75, {21: 13.6, 22: 15.1, 24: 14.1, 25: 17.6, 26: 20.4, 27: 18.6, 28: 19.0, 29: 23.4, 30: 21.3, 31: 23.6}));
pc.addPlayer(new Player('Larry', 'Bird', 81, {33: 21.9, 34: 19.7, 35: 21.0, 23: 20.5, 24: 19.9, 25: 22.6, 26: 24.1, 27: 24.2, 28: 26.5, 29: 25.6, 30: 26.4, 31: 27.8}));
pc.addPlayer(new Player('Carlos', 'Boozer', 81, {21: 17.9, 22: 20.8, 23: 19.2, 24: 21.4, 25: 24.1, 26: 21.9}));
pc.addPlayer(new Player('Chris', 'Bosh', 82, {19: 15.1, 20: 17.5, 21: 23.2, 22: 22.6, 23: 23.8}));
pc.addPlayer(new Player('Elton', 'Brand', 80, {20: 20.6, 21: 20.4, 22: 23.6, 23: 21.7, 24: 23.2, 25: 22.4, 26: 26.5, 27: 23.1}));
pc.addPlayer(new Player('Terrell', 'Brandon', 71, {21: 12.8, 22: 16.7, 23: 15.0, 24: 18.7, 25: 25.2, 26: 21.5, 27: 20.2, 28: 19.5, 29: 20.8, 30: 20.0, 31: 21.2}));
pc.addPlayer(new Player('Kobe', 'Bryant', 78, {18: 14.4, 19: 18.5, 20: 18.9, 21: 21.7, 22: 24.5, 23: 23.2, 24: 26.2, 25: 23.7, 26: 23.3, 27: 28.0, 28: 26.1, 29: 24.2}));
pc.addPlayer(new Player('Vince', 'Carter', 79, {22: 19.6, 23: 23.4, 24: 25.0, 25: 20.5, 26: 21.9, 27: 20.0, 28: 22.9, 29: 21.6, 30: 21.8, 31: 18.8}));
pc.addPlayer(new Player('Sam', 'Cassell', 75, {32: 21.3, 33: 22.3, 34: 22.8, 35: 18.6, 36: 18.5, 37: 17.1, 38: 15.4, 24: 13.1, 25: 15.9, 26: 16.8, 27: 18.4, 28: 21.0, 30: 21.1, 31: 20.1}));
pc.addPlayer(new Player('Cedric', 'Ceballos', 78, {23: 21.0, 24: 20.9, 25: 19.9, 26: 22.1, 27: 16.2, 28: 19.3, 30: 18.1}));
pc.addPlayer(new Player('Wilt', 'Chamberlain', 85, {32: 21.9, 34: 20.3, 35: 18.5, 36: 19.1, 23: 28.0, 24: 27.8, 25: 31.8, 26: 31.8, 27: 31.6, 28: 28.6, 29: 28.3, 30: 26.5, 31: 24.7}));
pc.addPlayer(new Player('Terry', 'Cummings', 81, {32: 12.6, 33: 13.3, 34: 13.9, 35: 15.2, 36: 13.7, 37: 16.2, 21: 22.8, 22: 19.8, 23: 22.1, 24: 18.2, 25: 20.5, 26: 17.4, 27: 19.7, 28: 19.6, 29: 16.3, 30: 18.5}));
pc.addPlayer(new Player('Billy', 'Cunningham', 78, {22: 15.7, 23: 19.3, 24: 18.6, 25: 18.7, 26: 21.0, 27: 20.5, 28: 21.3, 29: 24.7, 30: 19.7, 31: 19.2}));
pc.addPlayer(new Player('Mel', 'Daniels', 81, {23: 22.4, 24: 21.6, 25: 19.9, 26: 21.7, 27: 21.3, 28: 19.3, 29: 15.8, 30: 16.1}));
pc.addPlayer(new Player('Adrian', 'Dantley', 77, {32: 17.4, 33: 15.4, 20: 18.3, 21: 20.9, 22: 18.4, 23: 24.3, 24: 24.3, 25: 24.2, 26: 24.4, 27: 24.6, 28: 21.9, 29: 24.6, 30: 18.6, 31: 19.9}));
pc.addPlayer(new Player('Baron', 'Davis', 75, {20: 12.9, 21: 16.6, 22: 18.2, 23: 16.9, 24: 20.7, 25: 20.8, 26: 18.3, 27: 21.0, 28: 19.8}));
pc.addPlayer(new Player('Walter', 'Davis', 78, {32: 19.3, 33: 17.8, 34: 16.7, 35: 18.3, 36: 15.5, 23: 22.1, 24: 23.0, 25: 21.3, 26: 18.4, 27: 18.3, 28: 19.1, 29: 18.5, 31: 18.1}));
pc.addPlayer(new Player('John', 'Drew', 78, {20: 21.4, 21: 25.3, 22: 20.2, 23: 23.7, 24: 21.7, 25: 17.8, 26: 19.2, 27: 18.1, 28: 19.6, 29: 20.5}));
pc.addPlayer(new Player('Clyde', 'Drexler', 79, {32: 22.4, 33: 20.0, 34: 19.9, 35: 19.8, 21: 14.5, 22: 19.7, 23: 19.8, 24: 20.2, 25: 24.1, 26: 23.6, 27: 22.2, 28: 22.1, 29: 23.6, 30: 20.7, 31: 18.4}));
pc.addPlayer(new Player('Tim', 'Duncan', 84, {21: 22.6, 22: 23.2, 23: 24.8, 24: 23.8, 25: 27.0, 26: 26.9, 27: 27.1, 28: 27.0, 29: 23.1, 30: 26.1, 31: 24.3}));
pc.addPlayer(new Player('Alex', 'English', 79, {32: 21.7, 33: 20.5, 34: 19.8, 35: 19.0, 36: 17.9, 37: 12.2, 24: 17.4, 25: 17.6, 26: 18.0, 27: 19.7, 28: 22.2, 29: 24.1, 30: 22.2, 31: 21.6}));
pc.addPlayer(new Player('Julius', 'Erving', 78, {32: 23.1, 33: 22.9, 34: 20.0, 35: 17.4, 36: 17.0, 21: 23.9, 22: 27.7, 23: 25.7, 24: 26.2, 25: 28.7, 26: 20.9, 27: 21.7, 28: 20.1, 29: 25.4, 30: 25.1, 31: 25.9}));
pc.addPlayer(new Player('Patrick', 'Ewing', 84, {32: 21.9, 33: 20.9, 34: 21.3, 35: 23.3, 36: 19.4, 37: 16.9, 38: 12.9, 39: 14.4, 23: 17.4, 24: 18.9, 25: 21.9, 26: 22.1, 27: 25.8, 28: 23.7, 29: 22.8, 30: 20.8, 31: 22.9}));
pc.addPlayer(new Player('Walt', 'Frazier', 76, {32: 17.5, 22: 15.4, 23: 20.2, 24: 21.1, 25: 19.5, 26: 21.6, 27: 19.7, 28: 18.7, 29: 19.9, 30: 17.7, 31: 16.6}));
pc.addPlayer(new Player('Donnie', 'Freeman', 75, {23: 14.1, 24: 21.6, 25: 23.1, 26: 21.0, 27: 23.8, 28: 13.1, 29: 15.0, 30: 14.2, 31: 14.5}));
pc.addPlayer(new Player('Kevin', 'Garnett', 83, {19: 15.8, 20: 18.2, 21: 20.4, 22: 22.4, 23: 23.6, 24: 23.9, 25: 23.8, 26: 26.4, 27: 29.4, 28: 28.2, 29: 26.8, 30: 24.2, 31: 25.2}));
pc.addPlayer(new Player('Pau', 'Gasol', 84, {21: 19.5, 22: 20.7, 23: 21.7, 24: 22.5, 25: 22.7, 26: 24.1, 27: 21.6}));
pc.addPlayer(new Player('George', 'Gervin', 79, {32: 18.5, 33: 16.0, 21: 21.8, 22: 20.4, 23: 20.0, 24: 21.4, 25: 24.7, 26: 23.2, 27: 24.0, 28: 22.9, 29: 24.2, 30: 20.5, 31: 19.3}));
pc.addPlayer(new Player('Artis', 'Gilmore', 86, {32: 22.4, 33: 21.2, 34: 18.8, 35: 20.3, 36: 17.1, 37: 14.2, 38: 8.4, 22: 26.6, 23: 24.1, 24: 20.6, 25: 22.6, 26: 23.5, 27: 21.6, 28: 23.5, 29: 22.3, 30: 19.9, 31: 21.7}));
pc.addPlayer(new Player('Manu', 'Ginobili', 78, {25: 14.7, 26: 18.5, 27: 22.3, 28: 22.4, 29: 24.1, 30: 24.3}));
pc.addPlayer(new Player('Cliff', 'Hagan', 76, {32: 16.9, 33: 16.5, 34: 14.8, 36: 21.5, 25: 12.3, 26: 22.6, 27: 22.7, 28: 22.0, 29: 20.1, 30: 19.4, 31: 21.2}));
pc.addPlayer(new Player('Anfernee', 'Hardaway', 79, {32: 11.8, 33: 9.0, 22: 17.4, 23: 20.8, 24: 24.6, 25: 21.4, 27: 16.7, 28: 17.9, 30: 13.9, 31: 13.0}));
pc.addPlayer(new Player('Tim', 'Hardaway', 72, {32: 18.8, 33: 16.4, 34: 16.7, 35: 13.6, 23: 16.0, 24: 20.9, 25: 19.1, 26: 19.7, 28: 18.3, 29: 18.7, 30: 20.8, 31: 20.6}));
pc.addPlayer(new Player('John', 'Havlicek', 77, {32: 18.6, 33: 17.4, 34: 16.7, 35: 15.5, 36: 14.7, 37: 14.3, 22: 15.4, 23: 16.9, 24: 16.3, 25: 16.7, 26: 19.2, 27: 17.7, 28: 17.0, 29: 20.0, 30: 20.8, 31: 20.1}));
pc.addPlayer(new Player('Grant', 'Hill', 80, {32: 20.0, 34: 16.3, 35: 15.8, 22: 19.0, 23: 20.9, 24: 25.5, 25: 21.2, 26: 23.9, 27: 24.5, 30: 20.8}));
pc.addPlayer(new Player('Bailey', 'Howell', 79, {32: 19.4, 33: 14.0, 34: 17.0, 23: 18.1, 24: 21.2, 25: 19.1, 26: 21.6, 27: 21.1, 28: 18.9, 29: 19.0, 30: 19.5, 31: 18.1}));
pc.addPlayer(new Player('Dan', 'Issel', 81, {32: 21.7, 33: 23.1, 34: 21.6, 35: 21.1, 36: 16.9, 22: 25.2, 23: 23.3, 24: 22.4, 25: 20.7, 26: 16.9, 27: 21.8, 28: 21.2, 29: 21.5, 30: 18.3, 31: 22.2}));
pc.addPlayer(new Player('Allen', 'Iverson', 72, {32: 20.9, 21: 18.0, 22: 20.4, 23: 22.2, 24: 20.0, 25: 24.0, 26: 21.9, 27: 21.2, 28: 19.3, 29: 23.2, 30: 25.9, 31: 19.6}));
pc.addPlayer(new Player('LeBron', 'James', 80, {19: 18.3, 20: 25.7, 21: 28.1, 22: 24.5, 23: 29.1}));
pc.addPlayer(new Player('Kevin', 'Johnson', 73, {21: 15.5, 22: 20.5, 23: 22.8, 24: 23.7, 25: 19.9, 26: 18.1, 27: 20.6, 28: 21.0, 29: 22.8, 30: 22.9, 31: 15.6}));
pc.addPlayer(new Player('Marques', 'Johnson', 79, {21: 21.3, 22: 23.9, 23: 22.0, 24: 22.0, 25: 18.0, 26: 21.1, 27: 19.4, 28: 14.3, 29: 18.9}));
pc.addPlayer(new Player('Magic', 'Johnson', 80, {36: 21.1, 20: 20.6, 21: 25.7, 22: 22.9, 23: 23.0, 24: 22.6, 25: 23.2, 26: 24.0, 27: 27.0, 28: 23.1, 29: 26.9, 30: 26.6, 31: 25.1}));
pc.addPlayer(new Player('Larry', 'Jones', 74, {25: 21.3, 26: 24.0, 27: 21.4, 28: 17.8, 29: 17.9, 30: 14.0, 31: 13.7}));
pc.addPlayer(new Player('Michael', 'Jordan', 78, {32: 29.4, 33: 27.8, 34: 25.2, 38: 20.8, 39: 19.3, 21: 25.8, 23: 29.8, 24: 31.7, 25: 31.1, 26: 31.2, 27: 31.6, 28: 27.7, 29: 29.7}));
pc.addPlayer(new Player('Shawn', 'Kemp', 82, {32: 12.1, 33: 11.7, 20: 15.9, 21: 17.6, 22: 21.6, 23: 20.4, 24: 22.9, 25: 21.7, 26: 22.6, 27: 20.7, 28: 17.5, 29: 23.6, 30: 17.2, 31: 11.4}));
pc.addPlayer(new Player('Bernard', 'King', 79, {32: 17.7, 33: 18.8, 34: 19.1, 21: 17.3, 22: 17.9, 24: 19.9, 25: 19.8, 26: 20.3, 27: 22.7, 28: 25.2, 31: 15.0}));
pc.addPlayer(new Player('Andrei', 'Kirilenko', 81, {20: 18.8, 21: 21.1, 22: 22.6, 23: 24.4, 24: 20.7, 25: 14.3, 26: 17.2}));
pc.addPlayer(new Player('Bob', 'Lanier', 83, {32: 19.7, 33: 17.4, 34: 14.5, 35: 17.7, 22: 20.0, 23: 23.1, 24: 22.1, 25: 23.9, 26: 24.4, 27: 22.7, 28: 23.0, 29: 24.8, 30: 21.7, 31: 20.4}));
pc.addPlayer(new Player('Fat', 'Lever', 75, {33: 13.2, 22: 14.8, 23: 15.8, 24: 16.7, 25: 15.7, 26: 20.8, 27: 20.5, 28: 20.6, 29: 19.9, 31: 14.9}));
pc.addPlayer(new Player('Clyde', 'Lovellette', 81, {32: 19.5, 24: 20.5, 25: 21.1, 26: 23.5, 27: 22.0, 28: 22.2, 29: 22.3, 30: 23.3, 31: 20.5}));
pc.addPlayer(new Player('Jerry', 'Lucas', 80, {32: 17.3, 33: 12.6, 23: 18.9, 24: 20.9, 25: 18.8, 26: 17.0, 27: 19.8, 28: 20.6, 29: 17.9, 30: 20.6, 31: 19.5}));
pc.addPlayer(new Player('Karl', 'Malone', 81, {32: 26.0, 33: 28.9, 34: 27.9, 35: 25.6, 36: 27.1, 37: 24.7, 38: 21.1, 39: 21.7, 40: 17.8, 22: 13.7, 23: 18.0, 24: 20.7, 25: 24.4, 26: 27.2, 27: 24.8, 28: 25.4, 29: 26.2, 30: 22.9, 31: 25.1}));
pc.addPlayer(new Player('Moses', 'Malone', 82, {32: 21.1, 33: 21.2, 34: 20.2, 35: 18.2, 36: 19.2, 19: 19.6, 20: 16.8, 21: 19.8, 22: 21.2, 23: 23.7, 24: 24.1, 25: 25.1, 26: 26.8, 27: 25.1, 28: 21.8, 29: 22.5, 30: 20.6, 31: 23.8}));
pc.addPlayer(new Player('Stephon', 'Marbury', 74, {19: 16.1, 20: 16.3, 21: 20.8, 22: 20.7, 23: 22.7, 24: 18.1, 25: 20.1, 26: 20.4, 27: 21.9, 28: 16.4, 29: 15.3}));
pc.addPlayer(new Player('Shawn', 'Marion', 79, {21: 17.1, 22: 21.0, 23: 19.8, 24: 21.3, 25: 19.9, 26: 21.7, 27: 23.6, 28: 20.8, 29: 19.2}));
pc.addPlayer(new Player('Bob', 'McAdoo', 81, {32: 15.9, 33: 15.4, 21: 16.8, 22: 24.7, 23: 25.8, 24: 23.3, 25: 21.8, 26: 22.0, 27: 20.4, 28: 16.3, 31: 20.6}));
pc.addPlayer(new Player('Antonio', 'McDyess', 81, {32: 18.1, 33: 14.1, 21: 15.6, 22: 15.5, 23: 20.3, 24: 21.7, 25: 19.6, 26: 22.0, 29: 12.6, 30: 17.2, 31: 15.5}));
pc.addPlayer(new Player('George', 'McGinnis', 80, {21: 17.4, 22: 22.7, 23: 21.5, 24: 25.1, 25: 21.3, 26: 20.8, 27: 20.3, 28: 20.6, 29: 15.2, 30: 14.9, 31: 11.3}));
pc.addPlayer(new Player('Tracy', 'McGrady', 80, {18: 17.4, 19: 20.6, 20: 20.0, 21: 24.9, 22: 25.1, 23: 30.3, 24: 25.3, 25: 22.9, 26: 21.9, 27: 23.2, 28: 18.4}));
pc.addPlayer(new Player('Kevin', 'McHale', 82, {32: 21.8, 33: 21.2, 34: 18.5, 35: 14.4, 23: 16.4, 24: 16.9, 25: 17.6, 26: 20.0, 27: 20.7, 28: 21.6, 29: 24.0, 30: 21.9, 31: 20.3}));
pc.addPlayer(new Player('Reggie', 'Miller', 79, {32: 19.8, 33: 18.7, 34: 17.3, 35: 17.3, 36: 16.5, 37: 15.8, 38: 16.1, 39: 16.6, 22: 14.0, 23: 15.7, 24: 20.8, 25: 21.2, 26: 17.6, 27: 19.4, 28: 20.2, 29: 20.1, 30: 20.1, 31: 20.2}));
pc.addPlayer(new Player('Yao', 'Ming', 90, {22: 20.6, 23: 21.9, 24: 23.2, 25: 25.6, 26: 26.5, 27: 22.5}));
pc.addPlayer(new Player('Sidney', 'Moncrief', 75, {33: 11.2, 22: 15.9, 23: 18.0, 24: 20.1, 25: 22.6, 26: 19.8, 27: 20.1, 28: 20.0, 29: 15.9, 30: 15.2, 31: 16.4}));
pc.addPlayer(new Player('Alonzo', 'Mourning', 82, {35: 19.4, 36: 16.7, 22: 20.8, 23: 21.7, 24: 20.1, 25: 22.7, 26: 21.6, 27: 22.4, 28: 24.6, 29: 25.8, 31: 18.9}));
pc.addPlayer(new Player('Chris', 'Mullin', 78, {32: 16.7, 33: 17.6, 34: 16.9, 35: 18.1, 22: 16.0, 23: 15.8, 24: 19.8, 25: 21.9, 26: 22.7, 27: 21.4, 28: 19.9, 29: 19.0, 30: 15.8, 31: 17.7}));
pc.addPlayer(new Player('Larry', 'Nance', 82, {32: 21.4, 33: 19.8, 34: 17.1, 22: 14.7, 23: 18.7, 24: 19.4, 25: 20.6, 26: 20.5, 27: 22.2, 28: 20.3, 29: 19.9, 30: 19.1, 31: 20.6}));
pc.addPlayer(new Player('Steve', 'Nash', 75, {32: 23.8, 33: 21.1, 23: 15.6, 24: 10.9, 25: 13.5, 26: 19.6, 27: 20.7, 28: 22.6, 29: 20.5, 30: 22.0, 31: 23.3}));
pc.addPlayer(new Player('Dirk', 'Nowitzki', 83, {20: 12.8, 21: 17.5, 22: 22.8, 23: 24.1, 24: 25.5, 25: 22.5, 26: 26.1, 27: 28.1, 28: 27.6, 29: 24.6}));
pc.addPlayer(new Player('Hakeem', 'Olajuwon', 84, {32: 26.0, 33: 25.5, 34: 22.7, 35: 20.8, 36: 23.1, 37: 16.7, 38: 20.7, 39: 14.4, 22: 21.1, 23: 24.2, 24: 23.8, 25: 23.4, 26: 25.2, 27: 24.1, 28: 24.3, 29: 23.7, 30: 27.3, 31: 25.3}));
pc.addPlayer(new Player('Jermaine', 'O\'Neal', 83, {21: 13.3, 22: 17.5, 23: 18.1, 24: 21.4, 25: 21.1, 26: 22.9, 27: 20.4, 28: 18.8, 29: 14.4}));
pc.addPlayer(new Player('Shaquille', 'O\'Neal', 85, {32: 27.0, 33: 24.4, 34: 21.7, 35: 17.1, 20: 22.9, 21: 28.5, 22: 28.6, 23: 26.4, 24: 27.1, 25: 28.8, 26: 30.6, 27: 30.6, 28: 30.2, 29: 29.7, 30: 29.5, 31: 24.4}));
pc.addPlayer(new Player('Robert', 'Parish', 84, {32: 18.8, 33: 17.7, 34: 17.2, 35: 21.6, 36: 19.2, 37: 20.6, 38: 18.9, 39: 19.2, 40: 16.1, 41: 10.1, 42: 13.0, 23: 19.3, 24: 17.2, 25: 20.8, 26: 20.0, 27: 25.2, 28: 22.6, 29: 23.0, 30: 19.2, 31: 17.6}));
pc.addPlayer(new Player('Tony', 'Parker', 74, {19: 11.7, 20: 16.5, 21: 15.7, 22: 18.0, 23: 20.8, 24: 21.4, 25: 20.0}));
pc.addPlayer(new Player('Chris', 'Paul', 72, {20: 22.1, 21: 22.0, 22: 28.3}));
pc.addPlayer(new Player('Gary', 'Payton', 76, {32: 22.1, 33: 22.9, 34: 21.1, 35: 17.3, 36: 15.1, 37: 10.7, 38: 9.0, 22: 13.2, 23: 13.1, 24: 17.0, 25: 17.8, 26: 21.3, 27: 19.6, 28: 21.8, 29: 21.6, 30: 23.1, 31: 23.6}));
pc.addPlayer(new Player('Bob', 'Pettit', 81, {32: 22.6, 22: 24.5, 23: 27.3, 24: 28.2, 25: 26.3, 26: 28.2, 27: 23.7, 28: 25.2, 29: 24.3, 30: 25.0, 31: 23.6}));
pc.addPlayer(new Player('Paul', 'Pierce', 78, {21: 19.2, 22: 19.8, 23: 22.3, 24: 22.3, 25: 22.7, 26: 19.4, 27: 21.8, 28: 23.6, 29: 21.7, 30: 19.6}));
pc.addPlayer(new Player('Ricky', 'Pierce', 76, {32: 18.2, 33: 19.2, 34: 20.8, 36: 14.8, 37: 16.4, 24: 13.2, 25: 15.8, 26: 16.6, 27: 18.5, 28: 16.6, 29: 18.6, 30: 21.9, 31: 21.0}));
pc.addPlayer(new Player('Scottie', 'Pippen', 79, {32: 20.4, 33: 16.8, 34: 16.4, 35: 15.3, 36: 14.9, 37: 15.3, 22: 12.9, 23: 14.9, 24: 16.3, 25: 20.6, 26: 21.5, 27: 19.2, 28: 23.2, 29: 22.6, 30: 21.0, 31: 21.3}));
pc.addPlayer(new Player('Mark', 'Price', 72, {32: 16.5, 33: 14.9, 22: 11.3, 23: 17.6, 24: 20.6, 25: 21.1, 27: 22.7, 28: 22.0, 29: 22.7, 30: 20.6}));
pc.addPlayer(new Player('Michael', 'Redd', 78, {22: 20.0, 23: 21.0, 24: 19.9, 25: 18.3, 26: 21.2, 27: 22.3, 28: 18.8}));
pc.addPlayer(new Player('Oscar', 'Robertson', 77, {32: 19.6, 33: 18.9, 34: 17.2, 35: 14.2, 22: 25.9, 23: 26.0, 24: 24.6, 25: 27.6, 26: 26.7, 27: 25.2, 28: 25.5, 29: 24.6, 30: 21.8, 31: 21.5}));
pc.addPlayer(new Player('David', 'Robinson', 85, {32: 27.8, 33: 24.9, 34: 24.6, 35: 23.7, 36: 20.3, 37: 17.8, 24: 26.3, 25: 27.4, 26: 27.5, 27: 24.2, 28: 30.7, 29: 29.1, 30: 29.4}));
pc.addPlayer(new Player('Arvydas', 'Sabonis', 87, {32: 21.8, 33: 20.9, 34: 20.4, 35: 20.3, 36: 18.4, 38: 20.5, 31: 24.7}));
pc.addPlayer(new Player('John', 'Stockton', 73, {32: 23.3, 33: 21.9, 34: 22.1, 35: 21.8, 36: 21.9, 37: 22.4, 38: 22.3, 39: 21.9, 40: 21.0, 22: 13.3, 23: 17.0, 24: 19.0, 25: 23.2, 26: 22.9, 27: 23.9, 28: 23.4, 29: 22.8, 30: 21.3, 31: 22.5}));
pc.addPlayer(new Player('Amare', 'Stoudemire', 82, {24: 23.1, 25: 27.6, 20: 16.2, 21: 19.8, 22: 26.6}));
pc.addPlayer(new Player('Isiah', 'Thomas', 73, {32: 15.2, 20: 14.5, 21: 18.9, 22: 20.9, 23: 22.2, 24: 21.2, 25: 18.8, 26: 18.2, 27: 17.1, 28: 17.3, 29: 17.4, 30: 16.0, 31: 15.4}));
pc.addPlayer(new Player('Dwyane', 'Wade', 76, {24: 27.6, 25: 28.9, 26: 21.5, 22: 17.6, 23: 23.1}));
pc.addPlayer(new Player('Bill', 'Walton', 83, {32: 17.8, 33: 17.0, 22: 20.0, 23: 19.5, 24: 22.9, 25: 24.8, 30: 18.0, 31: 17.9}));
pc.addPlayer(new Player('Chris', 'Webber', 81, {32: 18.4, 33: 16.0, 20: 21.7, 21: 20.1, 23: 21.8, 24: 20.9, 25: 19.5, 26: 23.4, 27: 24.7, 28: 24.4, 29: 20.9, 30: 17.2, 31: 18.6}));
pc.addPlayer(new Player('Jerry', 'West', 74, {32: 23.5, 33: 23.1, 34: 23.2, 35: 22.4, 22: 16.0, 23: 22.6, 24: 21.9, 25: 24.2, 26: 25.0, 27: 24.6, 28: 22.7, 29: 23.2, 30: 22.3, 31: 24.6}));
pc.addPlayer(new Player('Paul', 'Westphal', 76, {32: 14.1, 33: 14.6, 23: 16.1, 24: 17.3, 25: 19.9, 26: 21.4, 27: 23.8, 28: 22.6, 29: 21.1, 30: 16.5}));
pc.addPlayer(new Player('Dominique', 'Wilkins', 79, {32: 22.2, 33: 24.3, 34: 21.4, 35: 16.3, 37: 19.6, 23: 16.6, 24: 19.2, 25: 20.9, 26: 23.3, 27: 23.5, 28: 23.7, 29: 21.8, 30: 24.6, 31: 23.5}));
pc.addPlayer(new Player('Gus', 'Williams', 74, {32: 15.0, 22: 17.0, 23: 14.2, 24: 18.1, 25: 21.1, 26: 20.6, 28: 21.8, 29: 20.5, 30: 18.9, 31: 17.3}));
pc.unshiftPlayer(new Player('', '* Entered at 22 or older', 0, pc.getAverageForMinAge(22, 99)));
pc.unshiftPlayer(new Player('', '* Entered at 21 or younger', 0, pc.getAverageForMinAge(0, 21)));
pc.unshiftPlayer(new Player('', '* Taller than 6\'8"', 0, pc.getAverageForHeight(81, 99)));
pc.unshiftPlayer(new Player('', '* 6\'4" to 6\'8"', 0, pc.getAverageForHeight(76, 80)));
pc.unshiftPlayer(new Player('', '* Shorter than 6\'4"', 0, pc.getAverageForHeight(0, 75)));
pc.unshiftPlayer(new Player('', '* All Top Players', 0, pc.getAverageForHeight(0, 99)));

var playerform = document.getElementById('playerform');
pc.fillOptions(playerform);

function presets(form, indexes) {
	clearForm(form);
	for (var i in indexes) {
		form.elements[i].selectedIndex = indexes[i];
	}
	updateChart(form);
}

function updateChart(form) {
	document.getElementById('chart_image').src = pc.updateImage(form);
}

function clearForm(form) {
	for (var i = 0; i < form.elements.length; i++) {
		form.elements[i].selectedIndex = 0;
	}
	updateChart(form);
}

presets(playerform, [92, 62, 57, 25]);
