var all_colors = ['DC3912', 'FF9900', '008000', '4942CC', 'CE8E8D', 'DA8137', '86A44A', 'B2C1DC', '661270'];

var prediction_seasons = [2007, 2008, 2009];

function BlogPrediction(team, title, season, wins) {
	this.team = team;
	this.title = title;
	this.season = season;
	this.wins = wins;
}

function Team(shortName, longName, wins) {
	this.shortName = shortName;
	this.longName = longName;
	this.wins = wins;
	this.blogs = [];

	this.addBlogPrediction = function(blogPrediction) {
		var teamBlog = this.getTeamBlog(blogPrediction.title);
		//if (!(blogPrediction.title in this.blogs)) {
		if (teamBlog == null) {
			teamBlog = new TeamBlog(blogPrediction.title);
			this.blogs.push(teamBlog);
		}
		teamBlog.addPrediction(blogPrediction);
	};
	
	this.getTeamBlog = function(title) {
		for (var i = 0; i < this.blogs.length; i++) {
			if (this.blogs[i].title == title) {
				return this.blogs[i];
			}
		}
		return null;
	}
	
	this.getChartUrl = function() {
		return 'http://chart.apis.google.com/chart?cht=lc&chs=510x325&chd=t:' + this.getWinsSequence() + '|' + this.getPredictionSequence() + '&chxt=x,y,x&chxl=0:|2005-06||2006-07||2007-08||2008-09|2:|Season|&chxp=2,50&chxr=1,15,70&chds=15,70&chxs=0,333333,14|1,333333,14|2,333333,14&chdl=Actual+Wins|' + this.getLegendSequence() + '&chco=4684EE,' + this.getColorSequence() + '&chg=33.33,100&chtt=' + this.longName + '+Actual+vs.+Predicted+Wins&chm=o,4684EE,0,-1,0|' + this.getPointSequence();
	};
	
	this.getWinsSequence = function() {
		var ret = '';
		for (var i = 0; i < this.wins.length; i++) {
			ret += this.wins[i];
			if (i + 1 < this.wins.length) {
				ret += ',';
				ret += ((this.wins[i] + this.wins[i + 1]) / 2.0);
				ret += ',';
			}
		}
		return ret;
	};
	
	this.getColorSequence = function() {
		var ret = '';
		for (var i = 0; i < this.blogs.length; i++) {
			ret += all_colors[i];
			if (i + 1 < this.blogs.length) {
				ret += ',';
			}
		}
		return ret;
	};
	
	this.getPointSequence = function() {
		var ret = '';
		for (var i = 0; i < this.blogs.length; i++) {
			ret += 'o,';
			ret += all_colors[i];
			ret += ','
			ret += (i + 1);
			ret += ',-1,10';
			if (i + 1 < this.blogs.length) {
				ret += '|';
			}
		}
		return ret;
	};
	
	this.getLegendSequence = function() {
		var ret = '';
		for (var i = 0; i < this.blogs.length; i++) {
			ret += this.blogs[i].title;
			if (i + 1 < this.blogs.length) {
				ret += '|';
			}
		}
		return ret;
	};
	
	this.getPredictionSequence = function() {
		var ret = '';
		for (var i = 0; i < this.blogs.length; i++) {
			ret += '-1,-1,';
			for (var j = 0; j < prediction_seasons.length; j++) {
				if (this.blogs[i].seasonWins[prediction_seasons[j]]) {
					ret += this.blogs[i].seasonWins[prediction_seasons[j]];
				} else {
					ret += '-1';
				}
				if (j + 1 < prediction_seasons.length) {
					ret += ',-1,';
				}
			}
			if (i + 1 < this.blogs.length) {
				ret += '|';
			}
		}
		return ret;
	};
	
}

function TeamBlog(title) {
	this.title = title;
	this.seasonWins = [];
	
	this.addPrediction = function(blogPrediction) {
		this.seasonWins[blogPrediction.season] = blogPrediction.wins;
	};
	
}

function TeamCollection() {
	this.teams = [];
	
	this.addTeam = function(team) {
		this.teams[team.shortName] = team;
	};
	
	this.addBlogPrediction = function(blogPrediction) {
		this.teams[blogPrediction.team].addBlogPrediction(blogPrediction);
	};
	
	this.updateImage = function(shortName) {
		return this.teams[shortName].getChartUrl();
	};
	
}

var tc = new TeamCollection();
tc.addTeam(new Team('76ers','Philadelphia 76ers',[38,35,40,41]));
tc.addTeam(new Team('Blazers','Portland Trail Blazers',[21,32,41,54]));
tc.addTeam(new Team('Bobcats','Charlotte Bobcats',[26,33,32,35]));
tc.addTeam(new Team('Bucks','Milwaukee Bucks',[40,28,26,34]));
tc.addTeam(new Team('Bulls','Chicago Bulls',[41,49,33,41]));
tc.addTeam(new Team('Cavs','Cleveland Cavaliers',[50,50,45,66]));
tc.addTeam(new Team('Celtics','Boston Celtics',[33,24,66,62]));
tc.addTeam(new Team('Clippers','Los Angeles Clippers',[47,40,23,19]));
tc.addTeam(new Team('Grizzlies','Memphis Grizzlies',[49,22,22,24]));
tc.addTeam(new Team('Hawks','Atlanta Hawks',[26,30,37,47]));
tc.addTeam(new Team('Heat','Miami Heat',[52,44,15,43]));
tc.addTeam(new Team('Hornets','New Orleans Hornets',[38,39,56,49]));
tc.addTeam(new Team('Jazz','Utah Jazz',[41,51,54,48]));
tc.addTeam(new Team('Kings','Sacramento Kings',[44,33,38,17]));
tc.addTeam(new Team('Knicks','New York Knicks',[23,33,23,32]));
tc.addTeam(new Team('Lakers','Los Angeles Lakers',[45,42,57,65]));
tc.addTeam(new Team('Magic','Orlando Magic',[36,40,52,59]));
tc.addTeam(new Team('Mavs','Dallas Mavericks',[60,67,51,50]));
tc.addTeam(new Team('Nets','New Jersey Nets',[49,41,34,34]));
tc.addTeam(new Team('Nuggets','Denver Nuggets',[44,45,50,54]));
tc.addTeam(new Team('Pacers','Indiana Pacers',[41,35,36,36]));
tc.addTeam(new Team('Pistons','Detroit Pistons',[64,53,59,39]));
tc.addTeam(new Team('Raptors','Toronto Raptors',[27,47,41,33]));
tc.addTeam(new Team('Rockets','Houston Rockets',[34,52,55,53]));
tc.addTeam(new Team('Spurs','San Antonio Spurs',[63,58,56,54]));
tc.addTeam(new Team('Suns','Phoenix Suns',[54,61,55,46]));
tc.addTeam(new Team('T-Wolves','Minnesota Timberwolves',[33,32,22,24]));
tc.addTeam(new Team('Thunder', 'Okalahoma City Thunder',[35,31,20,23]));
tc.addTeam(new Team('Warriors','Golden State Warriors',[34,42,48,29]));
tc.addTeam(new Team('Wizards', 'Washington Wizards',[42,41,43,19]));
tc.addBlogPrediction(new BlogPrediction('76ers', 'Passion and Pride', 2007, 47));
tc.addBlogPrediction(new BlogPrediction('Bobcats', 'Bobcat Bonfire', 2007, 42));
tc.addBlogPrediction(new BlogPrediction('Bucks', '5-Point Bucks', 2007, 44));
tc.addBlogPrediction(new BlogPrediction('Bulls', 'Blog-a-Bull', 2007, 55));
tc.addBlogPrediction(new BlogPrediction('Cavs', 'YAYsports!', 2007, 58));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'LOY\'s PLACE', 2007, 40));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'CelticsBlog.com', 2007, 42));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'Celticsstuff Live', 2007, 48));
tc.addBlogPrediction(new BlogPrediction('Clippers', 'Clips Nation', 2007, 52));
tc.addBlogPrediction(new BlogPrediction('Grizzlies', 'Beale Street Beat', 2007, 45));
tc.addBlogPrediction(new BlogPrediction('Hawks', 'Impending Firestorm', 2007, 37));
tc.addBlogPrediction(new BlogPrediction('Heat', 'Crazy From the Heat', 2007, 54));
tc.addBlogPrediction(new BlogPrediction('Hornets', 'Hornets247.com', 2007, 48));
tc.addBlogPrediction(new BlogPrediction('Jazz', 'lowpost.net/blog', 2007, 43));
tc.addBlogPrediction(new BlogPrediction('Kings', 'Sactown Royalty', 2007, 50));
tc.addBlogPrediction(new BlogPrediction('Knicks', 'Bench Renaldo', 2007, 41));
tc.addBlogPrediction(new BlogPrediction('Lakers', 'Showtime', 2007, 44.5));
tc.addBlogPrediction(new BlogPrediction('Lakers', 'Jones on the NBA', 2007, 48));
tc.addBlogPrediction(new BlogPrediction('Lakers', 'Forum Blue and Gold', 2007, 49));
tc.addBlogPrediction(new BlogPrediction('Magic', 'Believing in Magic', 2007, 45));
tc.addBlogPrediction(new BlogPrediction('Mavs', 'Mavs Moneyball', 2007, 59));
tc.addBlogPrediction(new BlogPrediction('Nets', 'NetsDaily', 2007, 51));
tc.addBlogPrediction(new BlogPrediction('Nuggets', 'The Nugg Doctor', 2007, 51));
tc.addBlogPrediction(new BlogPrediction('Pacers', 'Donning Craig Sager\'s Suit', 2007, 43));
tc.addBlogPrediction(new BlogPrediction('Pistons', 'Detroit Bad Boys', 2007, 55));
tc.addBlogPrediction(new BlogPrediction('Pistons', 'Need4Sheed', 2007, 57));
tc.addBlogPrediction(new BlogPrediction('Raptors', 'Hoops Addict', 2007, 42));
tc.addBlogPrediction(new BlogPrediction('Rockets', 'Rockets Blast', 2007, 57));
tc.addBlogPrediction(new BlogPrediction('Thunder', 'SonicsCentral.com', 2007, 45));
tc.addBlogPrediction(new BlogPrediction('Spurs', 'Pounding the Rock', 2007, 58));
tc.addBlogPrediction(new BlogPrediction('Suns', 'Suns Gossip', 2007, 60));
tc.addBlogPrediction(new BlogPrediction('T-Wolves', 'I Heart KG', 2007, 42));
tc.addBlogPrediction(new BlogPrediction('Warriors', 'lowpost.net/blog', 2007, 35));
tc.addBlogPrediction(new BlogPrediction('Warriors', 'Golden State of Mind', 2007, 41));
tc.addBlogPrediction(new BlogPrediction('Wizards', 'Bullets Fever', 2007, 50));
tc.addBlogPrediction(new BlogPrediction('76ers', 'Passion and Pride', 2008, 30));
tc.addBlogPrediction(new BlogPrediction('Blazers', 'True Hoop', 2008, 34));
tc.addBlogPrediction(new BlogPrediction('Blazers', 'The Inferno', 2008, 38));
tc.addBlogPrediction(new BlogPrediction('Bobcats', 'Bobcat Bonfire', 2008, 40));
tc.addBlogPrediction(new BlogPrediction('Bucks', 'Bango\'s Bunch', 2008, 44));
tc.addBlogPrediction(new BlogPrediction('Bulls', 'Cobra Brigade', 2008, 52));
tc.addBlogPrediction(new BlogPrediction('Bulls', 'Bull Riding', 2008, 56));
tc.addBlogPrediction(new BlogPrediction('Cavs', 'YAYsports!', 2008, 51));
tc.addBlogPrediction(new BlogPrediction('Cavs', 'The POJO Dojo', 2008, 50));
tc.addBlogPrediction(new BlogPrediction('Cavs', 'Cavalier Attitude', 2008, 52));
tc.addBlogPrediction(new BlogPrediction('Cavs', 'Truth in a Bullet Fedora', 2008, 55));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'CelticsBlog.com', 2008, 50));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'LOY\'s PLACE', 2008, 50));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'Celtics 17', 2008, 50));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'Red\'s Army', 2008, 49));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'Celtics 24/7', 2008, 52));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'Green Bandwagon', 2008, 49));
tc.addBlogPrediction(new BlogPrediction('Clippers', 'Clips Nation', 2008, 35));
tc.addBlogPrediction(new BlogPrediction('Grizzlies', '3 Shades of Blue', 2008, 37));
tc.addBlogPrediction(new BlogPrediction('Hawks', 'Impending Firestorm', 2008, 40));
tc.addBlogPrediction(new BlogPrediction('Hawks', 'Atlanta Hawks Blog', 2008, 42));
tc.addBlogPrediction(new BlogPrediction('Heat', 'SportsAgentBlog.com', 2008, 41));
tc.addBlogPrediction(new BlogPrediction('Hornets', 'Hornets247.com', 2008, 48));
tc.addBlogPrediction(new BlogPrediction('Hornets', 'THE New Orleans Hornets Fan', 2008, 48));
tc.addBlogPrediction(new BlogPrediction('Jazz', 'Daily Basketball', 2008, 56));
tc.addBlogPrediction(new BlogPrediction('Jazz', 'The NBA Source', 2008, 48));
tc.addBlogPrediction(new BlogPrediction('Jazz', 'Basketball John', 2008, 55));
tc.addBlogPrediction(new BlogPrediction('Kings', 'Sactown Royalty', 2008, 35));
tc.addBlogPrediction(new BlogPrediction('Knicks', 'Straight Bangin\'', 2008, 36));
tc.addBlogPrediction(new BlogPrediction('Knicks', 'Posting and Toasting', 2008, 41));
tc.addBlogPrediction(new BlogPrediction('Lakers', 'Forum Blue and Gold', 2008, 46));
tc.addBlogPrediction(new BlogPrediction('Magic', 'Believing in Magic', 2008, 48));
tc.addBlogPrediction(new BlogPrediction('Magic', 'Third Quarter Collapse', 2008, 46));
tc.addBlogPrediction(new BlogPrediction('Mavs', 'Showboating', 2008, 60));
tc.addBlogPrediction(new BlogPrediction('Nets', 'HOOPLAH.. NATION', 2008, 46));
tc.addBlogPrediction(new BlogPrediction('Nets', 'NetsDaily', 2008, 45));
tc.addBlogPrediction(new BlogPrediction('Nuggets', 'The Nugg Doctor', 2008, 53));
tc.addBlogPrediction(new BlogPrediction('Pacers', 'Indy Cornrows', 2008, 40));
tc.addBlogPrediction(new BlogPrediction('Pacers', 'Pacers Pulse', 2008, 43));
tc.addBlogPrediction(new BlogPrediction('Pistons', 'PistonsNationBlog.com', 2008, 52));
tc.addBlogPrediction(new BlogPrediction('Pistons', 'Empty the Bench', 2008, 51));
tc.addBlogPrediction(new BlogPrediction('Pistons', 'Need4Sheed', 2008, 51));
tc.addBlogPrediction(new BlogPrediction('Pistons', 'Pistons Palace', 2008, 50));
tc.addBlogPrediction(new BlogPrediction('Raptors', 'Hoops Addict', 2008, 46));
tc.addBlogPrediction(new BlogPrediction('Rockets', 'HoopsBlogging', 2008, 58));
tc.addBlogPrediction(new BlogPrediction('Thunder', 'SonicsCentral.com', 2008, 40));
tc.addBlogPrediction(new BlogPrediction('Spurs', 'Spur of the Moment', 2008, 57));
tc.addBlogPrediction(new BlogPrediction('Spurs', 'Pounding the Rock', 2008, 55));
tc.addBlogPrediction(new BlogPrediction('Suns', 'Bright Side of the Sun', 2008, 60));
tc.addBlogPrediction(new BlogPrediction('T-Wolves', 'TWolves Blog', 2008, 21));
tc.addBlogPrediction(new BlogPrediction('Warriors', 'Golden State of Mind', 2008, 44));
tc.addBlogPrediction(new BlogPrediction('Wizards', 'Bullets Forever', 2008, 46));
tc.addBlogPrediction(new BlogPrediction('76ers', 'Passion and Pride', 2009, 53));
tc.addBlogPrediction(new BlogPrediction('76ers', 'Recliner GM', 2009, 52));
tc.addBlogPrediction(new BlogPrediction('Blazers', 'Blazers Edge', 2009, 49));
tc.addBlogPrediction(new BlogPrediction('Blazers', 'Rip City Project', 2009, 46));
tc.addBlogPrediction(new BlogPrediction('Blazers', '...a stern warning', 2009, 45));
tc.addBlogPrediction(new BlogPrediction('Bobcats', 'BobcatsPlanet', 2009, 41));
tc.addBlogPrediction(new BlogPrediction('Bobcats', 'Queen City Hoops', 2009, 40));
tc.addBlogPrediction(new BlogPrediction('Bucks', 'The Bratwurst', 2009, 38));
tc.addBlogPrediction(new BlogPrediction('Bucks', 'BrewHoop', 2009, 37));
tc.addBlogPrediction(new BlogPrediction('Bulls', 'Blog-a-Bull', 2009, 43));
tc.addBlogPrediction(new BlogPrediction('Bulls', 'Give Me the Rock', 2009, 42));
tc.addBlogPrediction(new BlogPrediction('Cavs', '20 Second Timeout', 2009, 55));
tc.addBlogPrediction(new BlogPrediction('Cavs', 'Cavalier Attitude', 2009, 54));
tc.addBlogPrediction(new BlogPrediction('Cavs', 'Fear the Sword', 2009, 53));
tc.addBlogPrediction(new BlogPrediction('Cavs', 'Waiting For Next Year', 2009, 50));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'LOY\'s PLACE', 2009, 60));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'CelticsBlog.com', 2009, 59));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'Red\'s Army', 2009, 59));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'Green Bandwagon', 2009, 58));
tc.addBlogPrediction(new BlogPrediction('Celtics', 'Celtics 24/7', 2009, 58));
tc.addBlogPrediction(new BlogPrediction('Clippers', 'Clips Nation', 2009, 41));
tc.addBlogPrediction(new BlogPrediction('Grizzlies', '3 Shades of Blue', 2009, 28));
tc.addBlogPrediction(new BlogPrediction('Hawks', 'Basketbawful', 2009, 40));
tc.addBlogPrediction(new BlogPrediction('Hawks', 'Peachtree Hoops', 2009, 34));
tc.addBlogPrediction(new BlogPrediction('Heat', 'SportsAgentBlog.com', 2009, 42));
tc.addBlogPrediction(new BlogPrediction('Heat', 'The Peninsula is Mightier', 2009, 41));
tc.addBlogPrediction(new BlogPrediction('Hornets', 'Hornets247.com', 2009, 59));
tc.addBlogPrediction(new BlogPrediction('Hornets', 'Hornets Hype', 2009, 58));
tc.addBlogPrediction(new BlogPrediction('Hornets', 'At The Hive', 2009, 57));
tc.addBlogPrediction(new BlogPrediction('Jazz', 'The Utah Jazz', 2009, 58));
tc.addBlogPrediction(new BlogPrediction('Jazz', 'SLC Dunk', 2009, 56));
tc.addBlogPrediction(new BlogPrediction('Kings', 'Sactown Royalty', 2009, 37));
tc.addBlogPrediction(new BlogPrediction('Knicks', 'Posting and Toasting', 2009, 36));
tc.addBlogPrediction(new BlogPrediction('Knicks', 'Straight Bangin\'', 2009, 30));
tc.addBlogPrediction(new BlogPrediction('Lakers', 'Hoops Addict', 2009, 64));
tc.addBlogPrediction(new BlogPrediction('Lakers', 'Respect Kobe', 2009, 62));
tc.addBlogPrediction(new BlogPrediction('Lakers', 'Forum Blue and Gold', 2009, 60));
tc.addBlogPrediction(new BlogPrediction('Magic', 'Third Quarter Collapse', 2009, 55));
tc.addBlogPrediction(new BlogPrediction('Mavs', 'Mavs Moneyball', 2009, 55));
tc.addBlogPrediction(new BlogPrediction('Nuggets', 'Pickaxe and Roll', 2009, 47));
tc.addBlogPrediction(new BlogPrediction('Nuggets', 'The Nugg Doctor', 2009, 44));
tc.addBlogPrediction(new BlogPrediction('Pacers', 'Indy Cornrows', 2009, 40));
tc.addBlogPrediction(new BlogPrediction('Pistons', 'Detroit Bad Boys', 2009, 55));
tc.addBlogPrediction(new BlogPrediction('Pistons', 'Empty the Bench', 2009, 53));
tc.addBlogPrediction(new BlogPrediction('Pistons', 'Need4Sheed', 2009, 53));
tc.addBlogPrediction(new BlogPrediction('Raptors', 'Hoops Addict', 2009, 52));
tc.addBlogPrediction(new BlogPrediction('Raptors', 'RaptorsHQ.com', 2009, 49));
tc.addBlogPrediction(new BlogPrediction('Raptors', 'Cuzoogle', 2009, 48));
tc.addBlogPrediction(new BlogPrediction('Rockets', 'The Dream Shake', 2009, 63));
tc.addBlogPrediction(new BlogPrediction('Spurs', '48 Minutes of Hell', 2009, 54));
tc.addBlogPrediction(new BlogPrediction('Suns', 'Bright Side of the Sun', 2009, 55));
tc.addBlogPrediction(new BlogPrediction('T-Wolves', 'TWolves Blog', 2009, 33));
tc.addBlogPrediction(new BlogPrediction('T-Wolves', 'Canis Hoopus', 2009, 33));
tc.addBlogPrediction(new BlogPrediction('T-Wolves', 'Empty the Bench', 2009, 32));
tc.addBlogPrediction(new BlogPrediction('Thunder', 'The Thunderworld', 2009, 30));
tc.addBlogPrediction(new BlogPrediction('Thunder', 'BallerBlogger', 2009, 24));
tc.addBlogPrediction(new BlogPrediction('Thunder', 'Blue Blitz', 2009, 17));
tc.addBlogPrediction(new BlogPrediction('Warriors', 'Upside and Motor', 2009, 30));
tc.addBlogPrediction(new BlogPrediction('Wizards', 'HoopsAvenue', 2009, 45));
tc.addBlogPrediction(new BlogPrediction('Wizards', 'Hoops Addict', 2009, 41));
tc.addBlogPrediction(new BlogPrediction('Wizards', 'Truth About It Dot Net', 2009, 41));
tc.addBlogPrediction(new BlogPrediction('Wizards', 'Bullets Forever', 2009, 40));

function updateChart(teamName) {
	document.getElementById('chart_image').src = tc.updateImage(teamName);
}

updateChart('Celtics');
