var teamdata = [
["ari", "Arizona", "Cardinals", "ari", "#A2001D"],
["atl", "Atlanta", "Falcons", "atl", "#DB0000"],
["bal", "Baltimore", "Ravens", "bal", "#641BD9"],
["buf", "Buffalo", "Bills", "buf", "#1054AF"],
["car", "Carolina", "Panthers", "car", "#02B2F3"],
["chi", "Chicago", "Bears", "chi", "#031732"],
["cin", "Cincinnati", "Bengals", "cin", "#F55315"],
["cle", "Cleveland", "Browns", "cle", "#AA7636"],
["dal", "Dallas", "Cowboys", "dal", "#1C326F"],
["den", "Denver", "Broncos", "den", "#FE5901"],
["det", "Detroit", "Lions", "det", "#0068C6"],
["gb", "Green Bay", "Packers", "gb", "#025338"],
["hou", "Houston", "Texans", "hou", "#C90018"],
["ind", "Indianapolis", "Colts", "ind", "#1843A7"],
["jax", "Jacksonville", "Jaguars", "jax", "#048DA6"],
["kc", "Kansas City", "Chiefs", "kc", "#CE0226"],
["mia", "Miami", "Dolphins", "mia", "#00949F"],
["min", "Minnesota", "Vikings", "min", "#4A0E87"],
["ne", "New England", "Patriots", "ne", "#003060"],
["no", "New Orleans", "Saints", "no", "#DBB655"],
["nyg", "New York", "Giants", "nyg", "#000EB5"],
["nyj", "New York", "Jets", "nyj", "#154A30"],
["oak", "Oakland", "Raiders", "oak", "#E9E9E9"],
["phi", "Philadelphia", "Eagles", "phi", "#004149"],
["pit", "Pittsburgh", "Steelers", "pit", "#FFDF00"],
["stl", "St. Louis", "Rams", "stl", "#001E55"],
["sd", "San Diego", "Chargers", "sd", "#012C5F"],
["sf", "San Francisco", "49ers", "sf", "#B50016"],
["sea", "Seattle", "Seahawks", "sea", "#435B9C"],
["tb", "Tampa Bay", "Buccaneers", "tb", "#786A5C"],
["ten", "Tennessee", "Titans", "ten", "#67AAED"],
["was", "Washington", "Redskins", "was", "#89011E"]
];

var gamedata = new Array();
var teams = new Array(2);
var currTime = new Array(2);
var clock = new Array();

function gameCapsule(gameDetails, gamedata, currTime) {
	var drive = gamedata;
	var gameDay = new Date;
	gameDay.setFullYear(gameDetails[3]);
	gameDay.setMonth(gameDetails[1]-1);
	gameDay.setDate(gameDetails[2]);
	var totalScore = [0, 0];

	for (var i = 0; i < teamdata.length; i++) {
		if (teamdata[i][0] == gameDetails[10]) {
			teams[0] = teamdata[i];
		} else if  (teamdata[i][0] == gameDetails[11]) {
			teams[1] = teamdata[i];
		}
	}
	
	if (clock.length == 2) {
		currTime = clock;
	} else {
		currTime = [1, "15:00"];
	}
	
  	if (gamedata.length > 0) {
		if (rawTime(currTime) <=  rawTime(drive[drive.length - 1])) {
			currTime = [drive[drive.length-1][0], drive[drive.length-1][1]];
		}
	}
		
	for (var i=0; i < 2; i++) {
		for (var j=0; j < drive.length; j++) {
			if (drive[j][2] == teams[i][0]) {
				if (drive[j][9][0] == "TD") {
					if (drive[j][9][4][0] == "2PC" && (drive[j][9][4][3] != "rushfail" && drive[j][9][4][3] != "passfail")) {
						totalScore[i] += 8;
					} else if (drive[j][9][4][0] == "PAT" && drive[j][9][4][2] == "good") {
						totalScore[i] += 7;
					} else {
						totalScore[i] += 6;
					}
				} else if (drive[j][9][0] == "FG" && drive[j][9][2] == "good") {
				totalScore[i] += 3;
				} else if (drive[j][9][0] == "safety" || (drive[j][9][0] == "punt" && drive[j][9][3] == 0) || (drive[j][9][0] == "FG" && drive[j][9][4] == 0)) {
					if (i === 0) {
						totalScore[1] += 2;
					} else {
						totalScore[0] += 2;
					}
				}
			}
		}
	}
	
	var capsuleDiv = document.createElement("div");
	capsuleDiv.className = "minigame";
	
	var capsuleTable = document.createElement("table");
	capsuleTable.className = "minigame";
	
	for (var i = 0; i < 2; i++) {
		var capsuleRow = document.createElement("tr");
		var arrowCell = document.createElement("td");
		arrowCell.className = "arrow";
		arrowCell.style.color = "#FFFFFF";
		if (((currTime[0] >= 4) && (totalScore[0] != totalScore[1]) && ((drive[drive.length - 1][9][0] == "end") || (drive[drive.length - 1][9][4] == "end") || (drive[drive.length - 1][9][5] == "end"))) ||
			((currTime[0] >= 5) && (drive[drive.length - 1][9][4] == "sudden"))) {
			if (totalScore[i]/(totalScore[0] + totalScore[1]) > 0.5) {
				arrowCell.innerHTML = "&gt;";
			}
		} else {
			arrowCell.innerHTML = "";
		}
		capsuleRow.appendChild(arrowCell);
		
		var teamCell = document.createElement("td");
		teamCell.className = "team";
		teamCell.innerHTML = teams[i][2];
		capsuleRow.appendChild(teamCell);

		var scoreCell = document.createElement("td");
		scoreCell.className = "score";
		scoreCell.innerHTML = totalScore[i];
		capsuleRow.appendChild(scoreCell);

		var timeCell = document.createElement("td");
		timeCell.className = "time";
		if (gamedata.length == 0) {
			if (i == 0) {
				timeCell.innerHTML = gameDay.format("EEE");
			} else {
				timeCell.innerHTML = gameDetails[4];
			}
		} else if ((gamedata[gamedata.length - 1][9][0] == "end" || gamedata[gamedata.length - 1][9][4] == "end" || gamedata[gamedata.length - 1][9][5] == "end") || (currTime[0] >=5 && gamedata[gamedata.length - 1][9][4] == "sudden")) {
			if (i == 0) {
				if (currTime[0] == 2) {
					timeCell.innerHTML = "Half";
				} else if (currTime[0] == 4) {
					if (totalScore[0] == totalScore[1]) {
						timeCell.innerHTML = "End";
					} else {
						timeCell.innerHTML = "Final";
						capsuleDiv.className = "minicomplete";
					}
				} else if (currTime[0] >= 5) {
					timeCell.innerHTML = "Final";
					capsuleDiv.className = "minicomplete";
				}
			} else {
				if (currTime[0] == 4 && totalScore[0] == totalScore[1]) {
					timeCell.innerHTML = "Reg";
				} else if (currTime[0] == 5) {
					timeCell.innerHTML = "OT";
				} else if (currTime[0] >= 6) {
					timeCell.innerHTML = "OT" + (currTime[0] - 4);
				} else {
					timeCell.innerHTML = "";
				}
			}
		} else {
			if (i == 0) {
				switch (currTime[0]) {
					case 1: timeCell.innerHTML = "1st";
					break;
					case 2: timeCell.innerHTML = "2nd";
					break;
					case 3: timeCell.innerHTML = "3rd";
					break;
					case 4: timeCell.innerHTML = "4th";
					break;
					case 5: timeCell.innerHTML = "OT";
					break;
					default: timeCell.innerHTML = "OT" + (currTime[0] - 4);
				}
			} else {
				timeCell.innerHTML = currTime[1];
			}
			
		}
		capsuleRow.appendChild(timeCell);		
		capsuleTable.appendChild(capsuleRow);
	}

	capsuleDiv.appendChild(capsuleTable);
	document.getElementById("miniscoreboard").appendChild(capsuleDiv);
}

function newScoreboard(postID, gameDetails, gamedata, currTime) {
	var entryID = postID + "-entry";
	var drive = gamedata;

	for (var i = 0; i < teamdata.length; i++) {
		if (teamdata[i][0] == gameDetails[10]) {
			teams[0] = teamdata[i];
		} else if  (teamdata[i][0] == gameDetails[11]) {
			teams[1] = teamdata[i];
		}
	}
	
	if (currTime.length != 2) {
		currTime = [1, "15:00"];
	}
	
  	if (gamedata.length > 0) {
		if (rawTime(currTime) <=  rawTime(drive[drive.length - 1])) {
			currTime = [drive[drive.length-1][0], drive[drive.length-1][1]];
		}
	}

	var scoreboardDiv = document.createElement("div");
	scoreboardDiv.id = postID + "-scoreboard"
	scoreboardDiv.className = "scoreboard";

	var gameDay = new Date;
	gameDay.setFullYear(gameDetails[3]);
	gameDay.setMonth(gameDetails[1]-1);
	gameDay.setDate(gameDetails[2]);
	
	var awayWins = Number(gameDetails[8].split("-")[0]);
	var awayLosses = Number(gameDetails[8].split("-")[1]);
	var awayTies = 0;
	if (typeof gameDetails[8].split("-")[2] != "undefined") {
		awayTies = Number(gameDetails[8].split("-")[2]);
	}
	var homeWins = Number(gameDetails[9].split("-")[0]);
	var homeLosses = Number(gameDetails[9].split("-")[1]);
	var homeTies = 0;
	if (typeof gameDetails[9].split("-")[2] != "undefined") {
		homeTies = Number(gameDetails[9].split("-")[2]);
	}

	var scoreboardTable = document.createElement("table");
	scoreboardTable.className = "scoreboard";

	var stadiumCaption = document.createElement("caption");
	stadiumCaption. innerHTML = gameDetails[5] + "&nbsp;  |  &nbsp;" + gameDetails[6];
	scoreboardTable.appendChild(stadiumCaption);
	

	var scoreboardHeadings = document.createElement("tr");
	var dateHeading = document.createElement("th");
	dateHeading.colSpan = 2;
	dateHeading.innerHTML = gameDay.format("MMM d, yyyy");
	scoreboardHeadings.appendChild(dateHeading);

	var weekHeading = document.createElement("th");
	if (gameDetails[0] == 21) {
		var sbNum = parseFloat(gameDay.getFullYear()) - 1966;
		weekHeading.innerHTML = "Super Bowl " + sbNum.romanNumeral();
	} else if (gameDetails[0] == 20) {
		weekHeading.innerHTML = "AFC Championship";
	} else if (gameDetails[0] == "20N") {
		weekHeading.innerHTML = "NFC Championship";
	} else if (gameDetails[0] == 19) {
		weekHeading.innerHTML = "AFC Divisional Playoffs";
	} else if (gameDetails[0] == "19N") {
		weekHeading.innerHTML = "NFC Divisional Playoffs";
	} else if (gameDetails[0] == 18) {
		weekHeading.innerHTML = "AFC Wild Card Round";
	} else if (gameDetails[0] == "18N") {
		weekHeading.innerHTML = "NFC Wild Card Round";
	} else if (gameDetails[0] > 0 && gameDetails[0] <= 17) {
		weekHeading.innerHTML = "Week " + gameDetails[0];
	} else {
		weekHeading.innerHTML = gameDetails[0];
	}	
	scoreboardHeadings.appendChild(weekHeading);

	var qtrScores = calculateScores(teams, drive, currTime);
	var score = totalScores(qtrScores);
	var qtrNum = 1;
	for (var i=0; i < 4; i++) {
		var sbHeading = document.createElement("th");
		sbHeading.innerHTML = qtrNum;
		scoreboardHeadings.appendChild(sbHeading);
		qtrNum += 1;
	}
	if (qtrScores.length > 4) {
		for (var i=0; i < (qtrScores.length - 4); i++) {
			var sbHeading = document.createElement("th");
			if (qtrNum == 5) {
				sbHeading.innerHTML = "OT";
			} else {
				sbHeading.innerHTML = "OT" + (qtrNum - 4);
			}
		scoreboardHeadings.appendChild(sbHeading);
		qtrNum += 1;		
		}
	}
	var spacerHeading = document.createElement("th");
	spacerHeading.className = "spacer";
	spacerHeading.rowSpan = 3;
	scoreboardHeadings.appendChild(spacerHeading);
	var totalHeading = document.createElement("th");
	totalHeading.innerHTML = "T";
	scoreboardHeadings.appendChild(totalHeading);
	var emptyHeading = document.createElement("th");
	scoreboardHeadings.appendChild(emptyHeading);
	scoreboardTable.appendChild(scoreboardHeadings);

	for (var i=0; i < 2; i++) {
		var lineScore = document.createElement("tr");

		var recordCell = document.createElement("td");
		recordCell.className = "record";
		var arrowCell = document.createElement("td");
		arrowCell.className = "arrow";
		arrowCell.style.color = teams[i][4];
		if (((currTime[0] >= 4) && (score[0] != score[1]) && ((drive[drive.length - 1][9][0] == "end") || (drive[drive.length - 1][9][4] == "end") || (drive[drive.length - 1][9][5] == "end"))) ||
			((currTime[0] >= 5) && (drive[drive.length - 1][9][4] == "sudden"))) {
			if (score[i]/(score[0] + score[1]) > 0.5) {
				arrowCell.innerHTML = "&raquo;"
			}
			if (i == 0) {
				if (score[0] > score[1]) {
					awayWins +=1;
					homeLosses +=1;
				} else if (score[1] > score[0]) {
					awayLosses +=1;
					homeWins +=1;
				} else {
					awayTies +=1;
					homeTies +=1;
				}
			}
		} else {
			arrowCell.innerHTML = ""
		}

		if (i == 0) {
			recordCell.innerHTML = "(<b>" + awayWins + "-" + awayLosses + "</b>";
			if (awayTies != 0) {
				recordCell.innerHTML += "<b>-" + awayTies + "</b>";
			}
			recordCell.innerHTML += ")";
		} else if (i == 1) {
			recordCell.innerHTML = "(<b>" + homeWins + "-" + homeLosses + "</b>";
			if (homeTies != 0) {
				recordCell.innerHTML += "<b>-" + homeTies + "</b>";
			}
			recordCell.innerHTML += ")";
		}
		lineScore.appendChild(recordCell);		
		lineScore.appendChild(arrowCell);

		var teamCell = document.createElement("td");
		teamCell.className = "teamname";
		teamCell.innerHTML = teams[i][1] + " " + teams[i][2];
		teamCell.style.borderTop = "4px solid " + teams[i][4];
		lineScore.appendChild(teamCell);

		for (var j=0; j < qtrScores.length; j++) {
			var qtrCell = document.createElement("td");
			qtrCell.className = "scoreQtr";
			qtrCell.innerHTML = qtrScores[j][i];
			qtrCell.style.borderTop = "4px solid " + teams[i][4];
			lineScore.appendChild(qtrCell);
		}
		
		for (var j=0; j < (4 - qtrScores.length); j++) {
			var qtrBlank = document.createElement("td");
			qtrBlank.className = "emptyQtr";
			qtrBlank.innerHTML = "";
			lineScore.appendChild(qtrBlank);
		}
		
		var totalCell = document.createElement("td");
		totalCell.innerHTML = score[i];
		totalCell.className = "scoreTotal";
		totalCell.style.borderTop = "4px solid " + teams[i][4];
		lineScore.appendChild(totalCell);
		
		var clockCell = document.createElement("td");
		clockCell.className = "clock";
		if (i == 0) {
			lineScore.appendChild(clockCell);
			clockCell.rowSpan = 2;
			var daySpan = document.createElement("span");
			daySpan.className = "clockQtr";
			var timeSpan = document.createElement("span");
			timeSpan.className = "clockTime";
			var qtrSpan = document.createElement("span");
			qtrSpan.className = "clockQtr";
			if (drive.length == 0) {
				daySpan.innerHTML = gameDay.format("EEEE") + "<br/>";
				clockCell.appendChild(daySpan);
				timeSpan.innerHTML = gameDetails[4] + "<small> ET</small>";
				qtrSpan.innerHTML = gameDetails[7];
			} else if ((drive[drive.length - 1][9][0] == "end") || (drive[drive.length - 1][9][4] == "end") || (drive[drive.length - 1][9][5] == "end") || 
				(currTime[0] >= 5 && drive[drive.length - 1][9][4] == "sudden")) {
				if (drive[drive.length - 1][0] == 2) {
					timeSpan.innerHTML = "Half";
				} else if (drive[drive.length - 1][0] == 4) {
					if (score[0] == score[1]) {
						timeSpan.innerHTML = "End";
						qtrSpan.innerHTML = "regulation";
					} else {
						timeSpan.innerHTML = "Final";
					}
				} else if (drive[drive.length - 1][0] >= 5) {
					timeSpan.innerHTML = "Final";
					if (drive[drive.length - 1][0] == 5) {
					} else if (drive[drive.length - 1][0] == 6) {
						qtrSpan.innerHTML = "2nd ";
					} else if (drive[drive.length - 1][0] == 7) {
						qtrSpan.innerHTML = "3rd ";
					} else {
						qtrSpan.innerHTML = (drive[drive.length - 1][0] - 4) + "th ";
					}
					qtrSpan.innerHTML += "overtime";
				} else {
					timeSpan.innerHTML = "";
				}
			} else {
				timeSpan.innerHTML = currTime[1];
				switch (currTime[0]) {
				case 1: qtrSpan.innerHTML = "1st quarter";
					break;
				case 2: qtrSpan.innerHTML = "2nd quarter";
					break;
				case 3: qtrSpan.innerHTML = "3rd quarter";
					break;
				case 4: qtrSpan.innerHTML = "4th quarter";
					break;
				case 5: qtrSpan.innerHTML = "overtime";
					break;
				case 6: qtrSpan.innerHTML = "2nd overtime";
					break;
				case 7: qtrSpan.innerHTML = "3rd overtime";
					break;
				default: (qtrSpan.innerHTML - 4) + "th overtime";
				}
			}
			clockCell.appendChild(timeSpan);
			clockCell.innerHTML += "<br/>";
			clockCell.appendChild(qtrSpan);
		}
		scoreboardTable.appendChild(lineScore);
	}
	
	var scoreboardFooter = document.createElement("tr");
	var footerCell = document.createElement("td");
	footerCell.className = "footer";
	footerCell.colSpan = 6 + qtrScores.length;
	
	scoreboardFooter.appendChild(footerCell);
	scoreboardTable.appendChild(scoreboardFooter);
	scoreboardDiv.appendChild(scoreboardTable);
	document.getElementById(entryID).appendChild(scoreboardDiv);
}

function calculateScores(teams, drive, currTime) {
	if (drive.length == 0) {
		qtrScores = new Array();	
	} else {
		qtrScores = new Array(drive[drive.length - 1][0]);
	}
	for (var i = 0; i < qtrScores.length; i++) {
		qtrScores[i] = [0, 0];
	}
	for (var i = 0; i < drive.length; i++) {
		var qtrIndex = 0;
		if ((i == (drive.length - 1)) && (currTime[0] > drive[i][0]) && (currTime[1] !== "15:00")) {
			qtrScores.push([0, 0]);
			qtrIndex = currTime[0] - 1;
		} else if ((i < (drive.length - 1)) && (drive[i][0] !== drive[i+1][0]) && (drive[i+1][1] !== "15:00")) {
			qtrIndex = drive[i+1][0] - 1;
		} else {
			qtrIndex = drive[i][0] - 1;
		}
				
		if (drive[i][9][0] == "TD") {
			if (drive[i][9][4][0] == "2PC" && (drive[i][9][4][3] != "rushfail" && drive[i][9][4][3] != "passfail")) {
				if (drive[i][2] == teams[0][0]) {
					qtrScores[qtrIndex][0] += 8;
				} else {
					qtrScores[qtrIndex][1] += 8;
				}
			} else if (drive[i][9][4][0] == "PAT" && drive[i][9][4][2] == "good") {
				if (drive[i][2] == teams[0][0]) {
					qtrScores[qtrIndex][0] += 7;
				} else {
					qtrScores[qtrIndex][1] += 7;
				}
			} else {
				if (drive[i][2] == teams[0][0]) {
					qtrScores[qtrIndex][0] += 6;
				} else {
					qtrScores[qtrIndex][1] += 6;
				}
			}
		}

		if (drive[i][9][0] == "FG" && drive[i][9][2] == "good") {
			if (drive[i][2] == teams[0][0]) {
				qtrScores[qtrIndex][0] += 3;
			} else {
				qtrScores[qtrIndex][1] += 3;
			}
		}
		
		if ((drive[i][9][0] == "safety") || (drive[i][9][0] == "punt" && drive[i][9][3] == 0) || (drive[i][9][0] == "FG" && drive[i][9][4] == 0)) {
			if (drive[i][2] == teams[0][0]) {
				qtrScores[qtrIndex][1] += 2;
			} else {
				qtrScores[qtrIndex][0] += 2;
			}
		}
	}
	return qtrScores;
}

function totalScores(qtrScores) {
var score = [0,0]
	for (var i=0; i < qtrScores.length; i++) {
		score[0] += qtrScores[i][0];
		score[1] += qtrScores[i][1];
	}
return score;
}

function newDriveChart(postID, teams, drive, currTime) {
	var entryID = postID + "-entry";
	var drive = gamedata;

	for (var i = 0; i < teamdata.length; i++) {
		if (teamdata[i][0] == gameDetails[10]) {
			teams[0] = teamdata[i];
		} else if  (teamdata[i][0] == gameDetails[11]) {
			teams[1] = teamdata[i];
		}
	}
	
	if (clock.length == 2) {
		currTime = clock;
	} else {
		currTime = [1, "15:00"];
	}
	
  	if (gamedata.length > 0) {
		if (rawTime(currTime) <=  rawTime(drive[drive.length - 1])) {
			currTime = [drive[drive.length-1][0], drive[drive.length-1][1]];
		}
	}

	driveID = "";
	var chartDiv = document.createElement("div");
	chartDiv.id = entryID + "-drivechart"
	chartDiv.className = "drivechart";
	document.getElementById(entryID).getElementsByClassName("serendipity_entry_extended")[0].appendChild(chartDiv);

	if (drive.length > 0 ) {	
		for (var i = 0; i < drive.length; i++) {
			var possNum = i + 1;
			var errorDiv = document.createElement("div");
			var possDiv = document.createElement("div");
			possDiv.id = "possession" + possNum;
			var abbr = "";
			var opp = "";
			var nickname = "";
			var ownImg = "";
			var oppImg = "";
			var ownSide = "";
			var oppSide = "";
			var ownDir = "";
			var oppDir = "";
			var bgHeight = "";
			var quarterDiv = document.createElement("div");
			quarterDiv.className = "quarter";
							
			if (i === 0) {
				quarterDiv.id = "quarter1";
				quarterDiv.innerHTML = "1ST QUARTER";
				chartDiv.appendChild(quarterDiv);			
			} else if (
						((drive[i][1] === "15:00")) || 
						((i < (drive.length - 1)) && (drive[i][0] !== drive[i+1][0]) && (drive[i+1][1] !== "15:00")) || 
						((i == (drive.length - 1)) && (currTime[0] > drive[i][0]) && currTime[1] !== "15:00")
						) {
				var qtrNum = 0;
				if ((i == (drive.length - 1)) && (currTime[0] > drive[i][0])) {
					qtrNum = currTime[0]
				} else if (drive[i][1] === "15:00") {
					qtrNum = drive[i][0];
				} else {
					qtrNum = drive[i][0] + 1;
				}
				quarterDiv.id = "quarter" + qtrNum;
				switch (qtrNum) {
					case 1: quarterDiv.innerHTML = "1ST QUARTER";
					break;
					case 2: quarterDiv.innerHTML = "2ND QUARTER";
					break;
					case 3: quarterDiv.innerHTML = "3RD QUARTER";
					break;
					case 4: quarterDiv.innerHTML = "4TH QUARTER";
					break;
					case 5: quarterDiv.innerHTML = "OVERTIME";
					break;
					case 6: quarterDiv.innerHTML = "2ND OVERTIME";
					break;
					case 7: quarterDiv.innerHTML = "3RD OVERTIME";
					break;
					default: quarterDiv.innerHTML = (qtrNum - 4) + "TH OVERTIME";
				}
				chartDiv.appendChild(quarterDiv);					
			} else {
			}
			
			if (drive[i][2] == teams[0][0]) {
				possDiv.className = "away";
				if (drive[i][3] !== "") {
					bgHeight = 50;
				} else {
					bgHeight = 39;
				}
				possDiv.style.height = bgHeight + "px";
				abbr = teams[0][3];
				opp = teams[1][3];
				nickname = teams[0][2];
				ownImg = teams[0][0];
				oppImg = teams[1][0];
				ownSide = "left";
				oppSide = "right";
				ownDir = "R";
				oppDir = "L";
				chartDiv.appendChild(possDiv);
			} else if (drive[i][2] == teams[1][0]) {
				possDiv.className = "home";
				if (drive[i][3] !== "") {
					bgHeight = 50;
				} else {
					bgHeight = 39;
				}
				possDiv.style.height = bgHeight + "px";
				abbr = teams[1][3];
				opp = teams[0][3];
				nickname = teams[1][2];
				ownImg = teams[1][0];
				oppImg = teams[0][0];
				ownSide = "right";
				oppSide = "left";
				ownDir = "L";
				oppDir = "R";
				chartDiv.appendChild(possDiv);
			} else {
				errorDiv.id = "error" + possNum;
				errorDiv.className = "error";
				errorDiv.innerHTML = "Error: Team name does not match.";
				chartDiv.appendChild(errorDiv);
			}
			
			if (drive[i][3] !== "") {
				generateKickoff(drive, possNum, bgHeight, i, abbr, opp, nickname, ownImg, oppImg, ownSide, oppSide, ownDir, oppDir);
			}
			
			possDiv.style.height = bgHeight;
			
			generateDrive(drive, possNum, bgHeight, i, abbr, opp, nickname, ownImg, oppImg, ownSide, oppSide, ownDir, oppDir, currTime);	
			generateReturn(drive, possNum, bgHeight, i, abbr, opp, nickname, ownImg, oppImg, ownSide, oppSide, ownDir, oppDir);
			generateResult(drive, possNum, bgHeight, i, abbr, opp, nickname, ownImg, oppImg, ownSide, oppSide, ownDir, oppDir);
		}
		chartDiv.innerHTML += "<div class='quarter'>&nbsp;</div>";
	}
}


function generateKickoff(drive, possNum, bgHeight, i, abbr, opp, nickname, ownImg, oppImg, ownSide, oppSide, ownDir, oppDir) {
	var tee = "";
	
	if (drive[i][3][1] == "") {
		tee = 35;
	} else {
		tee = drive[i][3][1];
	}
	
	var offsetK = (tee)*5 + 55;
	var yardage = drive[i][6] - drive[i][4];
	var kickoffDiv = document.createElement("div");
	kickoffDiv.id = "kickoff" + possNum;
	kickoffDiv.className = "segment";
	kickoffDiv.innerHTML = "";
	kickoffDiv.style.top = "8px";
	kickoffDiv.title = "";
	var kickerName = drive[i][3][2]

	if (kickerName == "") {
		kickerName = opp.toUpperCase();
	}

	kickoffDiv.title = kickerName + ": ";
	if (drive[i][3][0] == "onside") {
		kickoffDiv.title = (drive[i][4] - tee) + "-yard onside kick";
		if (drive[i][4] - tee < 10) {
			kickoffDiv.title += " touched by " + opp.toUpperCase() + ",";
		}

		kickoffDiv.title += " recovered by ";
		if (drive[i][5] === "") {
			kickoffDiv.title += nickname + " at ";
		} else {
			kickoffDiv.title += drive[i][5] + " at ";
		}
	} else {
		if (drive[i][3][3] == "touchback") {
			kickoffDiv.title += (100- tee) + "-yard kickoff to ";		
		} else {
			kickoffDiv.title += (100- tee - drive[i][4]) + "-yard kickoff to ";
		}
	}	
	if (drive[i][3][3] == "touchback") {
		kickoffDiv.title += "the end zone for a touchback";
	} else {
		if (drive[i][4] < 50) {
			kickoffDiv.title += abbr.toUpperCase() + " " + drive[i][4];
		} else if (drive[i][4] > 50) {
			kickoffDiv.title += opp.toUpperCase() + " " + (100 - drive[i][4]);
		} else {
			kickoffDiv.title += "midfield";
		}
	}
	if (drive[i][3][3] == "out") {
		kickoffDiv.title += " goes out of bounds";
	}
	
	if (drive[i][3][0] == "onside") {
		if (ownImg == teams[1][0]) {
			kickoffDiv.style.right = offsetK + "px";
		} else {
			kickoffDiv.style.left = offsetK + "px";
		}
		kickoffDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/K.gif); float: " + ownSide + ";'></div>";
		kickoffDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
        kickoffDiv.innerHTML += "<div style='width: 30px; background-image: url(drives/onside.gif); float: " + ownSide + ";'></div>";
        kickoffDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
        kickoffDiv.innerHTML += "<div style='width: " + ((drive[i][4]- tee)*5- 50) + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
		kickoffDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/pkland.gif); float: " + ownSide + ";'></div>"
	} else {
		if (ownImg == teams[1][0]) {
			kickoffDiv.style.left = offsetK + "px";
		} else {
			kickoffDiv.style.right = offsetK + "px";
		}
		kickoffDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + oppImg + "/K.gif); float: " + oppSide + ";'></div>";
		if (drive[i][3][3] == "touchback") {
			kickoffDiv.innerHTML += "<div style='width: " + ((100 - tee)*5) + "px; background-image: url(drives/" + oppImg + "/pk" + oppDir + ".gif); float: " + oppSide + ";'></div>";
			kickoffDiv.innerHTML += "<div style='width: 50px; background-image: url(drives/touchback.gif); float: " + oppSide + ";'></div>";
		} else {
			kickoffDiv.innerHTML += "<div style='width: " + ((99 - tee - drive[i][4])*5) + "px; background-image: url(drives/" + oppImg + "/pk" + oppDir + ".gif); float: " + oppSide + ";'></div>";
			kickoffDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + oppImg + "/pkland.gif); float: " + oppSide + ";'></div>"
		}
	}
	document.getElementById("possession" + possNum).appendChild(kickoffDiv);	
}


function generateDrive(drive, possNum, bgHeight, i, abbr, opp, nickname, ownImg, oppImg, ownSide, oppSide, ownDir, oppDir, currTime) {
	var offsetD = "";
	var yardage = drive[i][7] - drive[i][6];
	var dir = "";
	var side = "";
	var driveDiv = document.createElement("div");
	driveDiv.id = "drive" + possNum;
	driveDiv.className = "segment";
	driveDiv.innerHTML = "";
	driveDiv.style.top = (bgHeight - 30) + "px";
	driveDiv.title = "";
	var labelDiv = document.createElement("div");
	labelDiv.id = "label" + possNum;
	labelDiv.className = "label";
	labelDiv.innerHTML = "";
	labelDiv.style.right = (Math.round((Math.abs(yardage) * 5) / 2) - 150) + "px";
	driveDiv.title = nickname;

	if (drive[i][7] == 100) {
		driveDiv.title += " touchdown drive";
	} else if (drive [i][7] < 50) {
		driveDiv.title += " drive to " + abbr.toUpperCase() + " " + drive[i][7];
	} else if (drive [i][7] > 50) {
		driveDiv.title += " drive to " + opp.toUpperCase() + " " + (100 - drive[i][7]);
	} else {
		driveDiv.title += " drive to midfield";
	}
	
	if (drive[i][8] !== 0) {
		driveDiv.title += ": " + yardage + " yard";

		if (Math.abs(yardage) != 1) {
			driveDiv.title += "s";
		}
	
		if (drive[i][8] !== "") {
			driveDiv.title += ", " + drive[i][8] + " play";
			if (drive[i][8] != 1) {
				driveDiv.title += "s";
			}
		}
	}
	
	if (yardage >= 0) {
		offsetD = (drive[i][6])*5 + 60;
		dir = ownDir;
		side = ownSide;
	} else {
		offsetD = (drive[i][7])*5 + 60;
		dir = oppDir;
		side = oppSide;
	}

	if (ownImg == teams[1][0]) {
		driveDiv.style.right = offsetD + "px";
	} else {
		driveDiv.style.left = offsetD + "px";
	}
		
	if (drive[i][8] > 0 || drive[i][8] === "") {
		if (Math.abs(yardage) > 1) {
			driveDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/start" + dir + ".gif); float: " + side + ";'></div>";
		}
		
		if (Math.abs(yardage) > 0) {
			driveDiv.innerHTML += "<div style='width: " + (Math.abs(yardage)*5 - 10) + "px; background-image: url(drives/" + ownImg + "/drive.gif); float: " + side + ";'></div>";
			driveDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/end" + dir + ".gif); float: " + side + ";'></div>";
		} else {
			driveDiv.innerHTML += "<div style='width: 5px; float: " + side + ";'></div>";
		}
	}

	if (drive[i][8] > 0 || drive[i][8] === "") {
		labelDiv.innerHTML = "<b>" + abbr.toUpperCase() + "</b>: " + yardage + " yard";
		if (Math.abs(yardage) != 1) {
			labelDiv.innerHTML += "s";
		}
			if (drive[i][8] !== "") {
			labelDiv.innerHTML += ", " + drive[i][8] + " play";
			if (drive[i][8] != 1) {
				labelDiv.innerHTML += "s";
			}
		}
		if (i < drive.length - 1 || rawTime(currTime) > rawTime(drive[i]) || drive[i][9][0] == "end" || (drive[drive.length - 1][9][4] == "end") || drive[i][9][5] == "end") {
		labelDiv.innerHTML += " in <b>" + driveTime(drive, i, currTime);
		labelDiv.innerHTML += "</b>";
		}
	}		
	document.getElementById("possession" + possNum).appendChild(driveDiv);
	document.getElementById("drive" + possNum).appendChild(labelDiv);
}

function rawTime(drive) {
	var rawTime = 0;
	var rawMinutes = drive[1].split(":")[0];
	var rawSeconds = drive[1].split(":")[1];
	if (rawSeconds.charAt(0) == 0) {
		rawSeconds = rawSeconds.slice(1);
	}
	rawTimeRem = (60 * parseInt(rawMinutes)) + parseInt(rawSeconds);
	rawTime = (900 - rawTimeRem) + (900 * (drive[0] - 1));
	return rawTime;	
}

function driveTime(drive, i, currTime) {
	var driveTime = 0;
	var driveMinutes = 0;
	var driveSeconds = 0;
	if (i == (drive.length - 1)) {
		if (drive[i][9][0] == "end" || drive[i][9][4] == "end" || drive[i][9][5] == "end") {
			driveTime = (900 * drive[i][0]) - rawTime(drive[i]);
		} else {
			driveTime = rawTime(currTime) - rawTime(drive[i]);
		}
	} else {
		driveTime = rawTime(drive[i+1]) - rawTime(drive[i]);
	}
	driveMinutes = Math.floor(driveTime / 60);
	driveSeconds = driveTime % 60;
	if (driveSeconds < 10) {
		driveSeconds = "0" + driveSeconds;
	}
	return driveMinutes + ":" + driveSeconds;
}

function generateReturn(drive, possNum, bgHeight, i, abbr, opp, nickname, ownImg, oppImg, ownSide, oppSide, ownDir, oppDir) {
	var offsetR = "";
	var yardage = drive[i][6] - drive[i][4];
	var dir = "";
	var side = "";
	var returnDiv = document.createElement("div");
	returnDiv.id = "return" + possNum;
	returnDiv.className = "segment";
	returnDiv.innerHTML = "";
	returnDiv.style.top = (bgHeight - 30) + "px";
	var returnerName = drive[i][5];
	
	if (returnerName == "") {
		returnerName = abbr.toUpperCase();
	}
	returnDiv.title = returnerName + ": ";
	
	if (yardage == 0) {
		returnDiv.title += "no return";
	} else {
		returnDiv.title += yardage + "-yard ";	
		if (drive[i][3][0] == "kick" || drive[i][3][0] == "onside") {
			returnDiv.title += "kickoff ";
		} else if (drive[i-1][9][0] == "punt") {
			returnDiv.title += "punt ";
		} else if (drive[i-1][9][0] == "FG" && isNaN(drive[i-1][9][2]) == false) {
			returnDiv.title += "missed FG ";
		} else if (drive[i-1][9][0] == "FG" && isNaN(drive[i-1][9][4]) == false) {
			returnDiv.title += "blocked FG ";
		} else if (drive[i-1][9][0] == "fumble") {
			returnDiv.title += "fumble ";
		} else if (drive[i-1][9][0] == "INT") {
			returnDiv.title += "interception ";
		}
		returnDiv.title += "return to ";
		if (drive[i][6] >= 100) {
			returnDiv.title += "end zone";
		} else if (drive[i][6] < 50) {
			returnDiv.title += abbr.toUpperCase() + " " + drive[i][6];
		} else if (drive[i][6] > 50) {
			returnDiv.title += opp.toUpperCase() + " " + (100 - drive[i][6]);
		} else {
			returnDiv.title += "midfield";			
		}
	}
	
	if (yardage >= 0) {
		offsetR = (drive[i][4])*5 + 60;
		dir = ownDir;
		side = ownSide;
	} else {
		offsetR = (drive[i][6])*5 + 60;
		dir = oppDir;
		side = oppSide;
	}
		
	if (ownImg == teams[1][0]) {
		returnDiv.style.right = offsetR + "px";
	} else {
		returnDiv.style.left = offsetR + "px";
	}

	if ((drive[i][7] > drive[i][4] && drive[i][6] < drive[i][4]) || (drive[i][4] > drive[i][7] && drive[i][6] > drive[i][4])) {
		returnDiv.innerHTML = "<div style='width: " + (Math.abs(yardage)*5 - 5) + "px; background-image: url(drives/" + ownImg + "/retalt.gif); float: " + side + ";'></div>";
        returnDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/retalt" + dir +".gif); float: " + side + ";'></div>";
	} else if ((drive[i][7] >= drive[i][4] && drive[i][6] > drive[i][7]) || (drive[i][4] >= drive[i][7] && drive[i][6] < drive[i][7])) {
		if (Math.abs(yardage) >= Math.abs(drive[i][7] - drive[i][6])) {
			returnDiv.innerHTML = "<div style='width: " + ((Math.abs(yardage) - (Math.abs(drive[i][7] - drive[i][6])))*5) + "px; background-image: url(drives/" + ownImg + "/return.gif); float: " + side + ";'></div>";
            returnDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/retx" + dir +".gif); float: " + side + ";'></div>";
			returnDiv.innerHTML += "<div style='width: " + ((Math.abs(drive[i][7] - drive[i][6])*5-10)) + "px; background-image: url(drives/" + ownImg + "/retalt.gif); float: " + side + ";'></div>";
            if (Math.abs(drive[i][7] - drive[i][6]) > 1) {
				returnDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/retalt" + dir +".gif); float: " + side + ";'></div>";
			}	
		} else {
			returnDiv.innerHTML = "<div style='width: " + (Math.abs(yardage)*5 - 5) + "px; background-image: url(drives/" + ownImg + "/return.gif); float: " + side + ";'></div>";
			returnDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/return" + dir + ".gif); float: " + side + ";'></div>";
		}
	} else {
	returnDiv.innerHTML = "<div style='width: " + (Math.abs(yardage)*5 - 5) + "px; background-image: url(drives/" + ownImg + "/return.gif); float: " + side + ";'></div>";
		if (Math.abs(yardage) > 0) {
		returnDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/return" + dir +".gif); float: " + side + ";'></div>";
		} else {
		returnDiv.innerHTML += "<div style='width: 5px; float: " + side + ";'></div>";
		}
    }
	
	if (drive[i][3][3] !== "out") {
		document.getElementById("possession" + possNum).appendChild(returnDiv);
	}
}


function generateResult(drive, possNum, bgHeight, i, abbr, opp, nickname, ownImg, oppImg, ownSide, oppSide, ownDir, oppDir) {
	var dir = "";
	var side = "";
	var resultDiv = document.createElement("div");
	resultDiv.className = "segment";
	resultDiv.innerHTML = "";
	resultDiv.title = "";
	resultDiv.style.top = (bgHeight - 30) + "px";

	switch(drive[i][9][0]) {
		case "TD": resultDiv.id = "TD" + possNum;
			var extraDiv = document.createElement("div");
			extraDiv.id = "extra" + possNum;
			extraDiv.innerHTML = "";
			extraDiv.title = "";
			extraDiv.style.width = "25px";
			extraDiv.style.cssFloat = ownSide;
			extraDiv.style.styleFloat = ownSide;
			
			if (ownImg == teams[1][0]) {
				if ((drive [i][6] < 100) && (drive[i][9][1] > (100 - drive[i][6]))) {
					resultDiv.style.right = (drive[i][6] * 5) + 60 + "px";
				} else {
					resultDiv.style.right = ((100 - drive[i][9][1]) * 5) + 60 + "px";
				}
			} else {
				if ((drive [i][6] < 100) && (drive[i][9][1] > (100 - drive[i][6]))) {
					resultDiv.style.left = (drive[i][6] * 5) + 60 + "px";
				} else {
					resultDiv.style.left = ((100 - drive[i][9][1]) * 5) + 60 + "px";
				}
			}
			var scorerName = "";
			if (drive[i][9][2] === "") {
				scorerName = abbr.toUpperCase();
			} else {
				scorerName = drive[i][9][2];
			}
			resultDiv.title = scorerName + ": " + (drive[i][9][1]) + "-yard";
			if (drive[i][6] == 100) {
				if (drive[i][3][0] == "kick") {
					resultDiv.title += " kickoff";
				} else if (drive[i-1][9][0] == "punt") {
					resultDiv.title += " punt";
				} else if (drive[i-1][9][0] == "FG" && isNaN(drive[i-1][9][2]) === false) {
					resultDiv.title += " missed FG";
				} else if (drive[i-1][9][0] == "fumble") {
					resultDiv.title += " fumble";
				} else if (drive[i-1][9][0] == "INT") {
					resultDiv.title += " interception";
				} else {
				}
				resultDiv.title += " return";
				resultDiv.innerHTML = "<div style='width: " + (drive[i][9][1]) * 5 + "px; background-image: url(drives/" + ownImg + "/returnTD.gif); float: " + ownSide + ";'</div>";
				resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/TDret" + ownDir + "2.gif); float: " + ownSide + ";'</div>";
			} else if (drive[i][9][3] == "rush") {
				resultDiv.title += " run";
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1]) * 5 + "px; background-image: url(drives/" + ownImg + "/TDrush" + ownDir + ".gif); float: " + ownSide + "'></div>";
				resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/TDrush" + ownDir + "2.gif); float: " + ownSide + "'></div>";
			} else if (drive[i][9][3] == "") {
				resultDiv.title += "s";
			} else {
				resultDiv.title += " pass to " + drive[i][9][3];
				if (drive[i][9][1] > (100 - drive[i][6])) {
					resultDiv.innerHTML += "<div style='width: " + (100 - drive[i][6]) * 5 + "px; background-image: url(drives/" + ownImg + "/TDpass" + ownDir + ".gif); float: " + ownSide + "'></div>";
				} else {
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1]) * 5 + "px; background-image: url(drives/" + ownImg + "/TDpass" + ownDir + ".gif); float: " + ownSide + "'></div>";
				}
				resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/TDpass" + ownDir + "2.gif); float: " + ownSide + "'></div>";
			}
			if (drive[i][9][5] == "end") {
				resultDiv.title += " as time expires";
			}
			resultDiv.title += " for a " + nickname + " touchdown!";			
			resultDiv.innerHTML += "<div style='width: 30px; background-image: url(drives/" + ownImg + "/TD.gif); float: " + ownSide + ";'></div>";

			if (drive[i][9][4][0] == "PAT") {
				var kickerName = "";
				if (drive[i][9][4][3] === "") {
					kickerName = abbr.toUpperCase();
				} else {
					kickerName = drive[i][9][4][3];
				}			
				extraDiv.title = kickerName + ": ";
				if (drive[i][9][4][1] > 0) {
					extraDiv.title += drive[i][9][4][1] + "-yard ";
					}
				extraDiv.title += "extra point";
				if (drive[i][9][4][2] == "good") {
					extraDiv.title += " is good!";
					extraDiv.style.backgroundImage = "url('drives/" + ownImg + "/plus1.gif')"; 
				} else {
					switch (drive[i][9][4][2]) {
						case "left": extraDiv.title += " misses wide left";
						break;
						case "right": extraDiv.title += " misses wide right";
						break;
						case "left post": extraDiv.title += " misses off the left goalpost";
						break;
						case "right post": extraDiv.title += " misses off the right goalpost";
						break;
						case "?": extraDiv.title += " is no good";
						break;
						case "blocked": extraDiv.title += " is blocked";
						break;
						default: extraDiv.title += " is blocked by " + drive[i][9][4][2];
					}
					extraDiv.style.backgroundImage = "url('drives/not1.gif')"; 					
				}
			} else if (drive[i][9][4][0] == "2PC") {
				var scorer2PC = "";
				if (drive[i][9][4][2] === "") {
					scorer2PC = abbr.toUpperCase();
				} else {
					scorer2PC = drive[i][9][4][2];
				}
				extraDiv.title = scorer2PC + ": ";
				if (drive[i][9][4][1] > 0) {
					extraDiv.title += drive[i][9][4][1] + "-yard ";
				}
				switch (drive[i][9][4][3]) {
					case "rushfail": extraDiv.title += "run stopped";
						extraDiv.style.backgroundImage = "url('drives/not2.gif')"; 
					break;
					case "passfail": extraDiv.title += "pass stopped";
						extraDiv.style.backgroundImage = "url('drives/not2.gif')"; 
					break;
					case "rush": extraDiv.title += "run for two points!";
						extraDiv.style.backgroundImage = "url('drives/" + ownImg + "/plus2.gif')"; 
					break;
					default: extraDiv.title += "pass to " + drive[i][9][4][3] + " for two points!";
						extraDiv.style.backgroundImage = "url('drives/" + ownImg + "/plus2.gif')"; 
					}
				} else {
			}
			resultDiv.appendChild(extraDiv);
			break;

		case "FG": resultDiv.id = "FG" + possNum;
			if (ownImg == teams[1][0]) {
				resultDiv.style.left = "0px";
			} else {
				resultDiv.style.right = "0px";
			}

			var kickerName = "";
			if (drive[i][9][3] === "") {
				kickerName = abbr.toUpperCase();
			} else {
				kickerName = drive[i][9][3];
			}
			resultDiv.title = kickerName + ": " + drive[i][9][1] + "-yard field goal ";
			if (drive[i][9][4] == "end") {
				resultDiv.title += "as time expires ";
			}			
			if (isNaN(drive[i][9][2]) === false) {
				resultDiv.title += "is short";
				resultDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Kalt.gif); float: " + ownSide + ";'></div>"; 
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1]- drive[i][9][2]- 11)*5 + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/pkland.gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][2]+ 10)*5 + "px; float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/goalpost" + ownDir + ".gif); float: " + ownSide + ";'></div>";
			} else if (drive[i][9][2] == "left") {
				resultDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Kalt.gif); float: " + ownSide + ";'></div>"; 
				resultDiv.title += "misses wide left";
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1])*5 + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/FGleft" + ownDir + ".gif); float: " + ownSide + ";'></div>";
			} else if (drive[i][9][2] == "right") {
				resultDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Kalt.gif); float: " + ownSide + ";'></div>"; 
				resultDiv.title += "misses wide right";
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1])*5 + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/FGright" + ownDir + ".gif); float: " + ownSide + ";'></div>";
			} else if (drive[i][9][2] == "left post") {
				resultDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Kalt.gif); float: " + ownSide + ";'></div>"; 
				resultDiv.title += "misses off the left goalpost";
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1])*5 + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/FGlpost" + ownDir + ".gif); float: " + ownSide + ";'></div>";
			} else if (drive[i][9][2] == "right post") {
				resultDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Kalt.gif); float: " + ownSide + ";'></div>"; 
				resultDiv.title += "misses off the right goalpost";
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1])*5 + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/FGrpost" + ownDir + ".gif); float: " + ownSide + ";'></div>";
			} else if (drive[i][9][2] == "good") {
				resultDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Kalt.gif); float: " + ownSide + ";'></div>"; 
				resultDiv.title += "is good!";
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1]- 8)*5 + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 20px; background-image: url(drives/" + ownImg + "/FG.gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 20px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/FGgood" + ownDir + ".gif); float: " + ownSide + ";'></div>";
			} else if (drive[i][9][2] == "touchback") {
				resultDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Kalt.gif); float: " + ownSide + ";'></div>"; 
				resultDiv.title += "is short, resulting in a touchback";				
				resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1]- 10)*5 + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/pkland.gif);; float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 45px; background-image: url(drives/touchback.gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/goalpost" + ownDir + ".gif); float: " + ownSide + ";'></div>";
			} else {
				if (drive[i][9][2] == "?") {
					resultDiv.title += "is blocked by " + opp.toUpperCase();
				} else {
					resultDiv.title += "is blocked by " + drive[i][9][2];
				}
				if (drive[i][9][4] > 50) {
					resultDiv.title += " and recovered at " + opp.toUpperCase() + " " + (100 - drive[i][9][4]);
				} else if (drive[i][9][4] == 50) {
					resultDiv.title += " and recovered at midfield";
				} else if (drive[i][9][4] == 0) {
					resultDiv.title += " into the end zone for a " + opp.toUpperCase() + " safety!";
					resultDiv.innerHTML += "<div style='width: 45px; background-image: url(drives/" + oppImg + "/SAF.gif); float: " + ownSide + ";'></div>";
				} else if (drive[i][9][4] < 50) {
					resultDiv.title += " and recovered at " + abbr.toUpperCase() + " " + drive[i][9][4];
				} else {
				}
				if ((110 - drive[i][9][1]) > drive[i][9][4]) {
					resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/pkland.gif); float: " + ownSide + ";'></div>";
					if (drive[i][9][4] == 0) {
						resultDiv.innerHTML += "<div style='width: " + ((110 - drive[i][9][1])- drive[i][9][4])*5 + "px; background-image: url(drives/" + ownImg + "/pk" + oppDir + ".gif); float: " + ownSide + ";'></div>";
					} else {
						resultDiv.innerHTML += "<div style='width: " + ((110 - drive[i][9][1])- drive[i][9][4] - 1)*5 + "px; background-image: url(drives/" + ownImg + "/pk" + oppDir + ".gif); float: " + ownSide + ";'></div>";
					}
					resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Kalt.gif); float: " + ownSide + ";'></div>"; 
					resultDiv.innerHTML += "<div style='width: " + (drive[i][9][1] - 1)*5 + "px; float: " + ownSide + ";'></div>";

				} else {
					resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Kalt.gif); float: " + ownSide + ";'></div>"; 
					resultDiv.innerHTML += "<div style='width: " + (drive[i][9][4]- (110 - drive[i][9][1]))*5 + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
					resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/pkland.gif); float: " + ownSide + ";'></div>";
					resultDiv.innerHTML += "<div style='width: " + (110 - drive[i][9][4] - 1)*5 + "px; float: " + ownSide + ";'></div>";
				}
				resultDiv.innerHTML += "<div style='width: 10px; background-image: url(drives/goalpost" + ownDir + ".gif); float: " + ownSide + ";'></div>";
			}
		break;
		
		case "punt": resultDiv.id = "punt" + possNum;
			var offset = "";
			if ((drive[i][9][1] == "touchback") || (isNaN(drive[i][9][1]) === false)) {
				offset = (drive[i][7])*5 + 60;
			} else if (drive[i][9][3] == 0) {
				offset = 10;
			} else {
				offset = (drive[i][9][3]) * 5 + 55;
			}
			if (ownImg == teams[1][0]) {
				resultDiv.style.right = offset + "px";
			} else {
				resultDiv.style.left = offset + "px";
			}

			var punterName = "";
			if (drive[i][9][2] === "") {
				punterName = abbr.toUpperCase();
			} else {
				punterName = drive[i][9][2];
			}

			resultDiv.title = punterName + ": ";
			
			if ((isNaN(drive[i][9][1]) === true) && (drive[i][7] - drive[i][6] >= 0) && (drive[i][9][1] != "touchback")) {
				offset -= 5;
			}

			var yardage = 100 - drive[i][7];
			if (drive[i][9][1] == "touchback") {
				resultDiv.title += yardage + "-yard punt to the end zone for a touchback";
				resultDiv.innerHTML = "<div style='width: " + (yardage * 5) + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 50px; background-image: url(drives/touchback.gif); float: " + ownSide + ";'></div>";
			} else if (isNaN(drive[i][9][1]) === false) {
				yardage -= drive [i][9][1];
				resultDiv.title += yardage + "-yard punt to ";
				if (drive[i][9][1] < 0) {
					resultDiv.title += "the end zone";
				} else if (drive[i][9][1] == 0) {
					resultDiv.title += "the goal line";
				} else if (drive[i][9][1] < 50) {
					resultDiv.title += opp.toUpperCase() + " " + drive[i][9][1];
				} else if (drive[i][9][1] > 0) {
					resultDiv.title += abbr.toUpperCase() + " " + (100 - drive[i][9][1]);
				} else {
					resultDiv.title += "midfield";
				}
				resultDiv.innerHTML = "<div style='width: " + ((yardage - 1)*5) + "px; background-image: url(drives/" + ownImg + "/pk" + ownDir + ".gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/pkland.gif); float: " + ownSide + ";'></div>";
			} else {
				resultDiv.title += "punt is blocked"
				if (drive[i][9][1] != "?") {
					resultDiv.title += " by " + drive[i][9][1];
				} else {
					resultDiv.title += " by " + opp.toUpperCase();
				}
					if (drive[i][9][3] > 50) {
						resultDiv.title += " and recovered at " + opp.toUpperCase() + " " + (100 - drive[i][9][3]);
					} else if (drive[i][9][3] == 50) {
						resultDiv.title += " and recovered at midfield";
					} else if (drive[i][9][3] == 0) {
						resultDiv.title += " into the end zone for a " + opp.toUpperCase() + " safety!";
						resultDiv.innerHTML += "<div style='width: 45px; background-image: url(drives/" + oppImg + "/SAF.gif); float: " + ownSide + ";'></div>";
					} else if (drive[i][9][3] < 50) {
						resultDiv.title += " and recovered at " + abbr.toUpperCase() + " " + drive[i][9][3];
					} else {
					}					
				resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/pkland.gif); float: " + ownSide + ";'></div>";
				resultDiv.innerHTML += "<div style='width: " + (drive[i][7] - drive[i][9][3]) * 5 + "px; background-image: url(drives/" + ownImg + "/pk" + oppDir + ".gif); float: " + ownSide + ";'></div>";
			}					
		break;
			
		case "downs": resultDiv.id = "downsStop" + possNum;
			var offset = (drive[i][7])*5 + 60;
			if (ownImg == teams[1][0]) {
				resultDiv.style.right = offset + "px";
			} else {
				resultDiv.style.left = offset + "px";
			}
			resultDiv.title = "Turnover on downs short of ";
			if (drive[i][9][1] < 50) {
				resultDiv.title += abbr.toUpperCase() + " " + drive[i][9][1];
			} else if (drive[i][9][1] == 50) {
				resultDiv.title += "midfield";
			} else if (drive[i][9][1] == 100) {
				resultDiv.title += "the goal line";
			} else {
				resultDiv.title += opp.toUpperCase() + " " + (100 - drive[i][9][1]);
			}
			resultDiv.innerHTML = "<div style='width: " + (drive[i][9][1] - drive[i][7] - 1)*5 + "px; float: " + ownSide + ";'></div>";
			resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/dmarker.gif); float: " + ownSide + ";'></div>";
			resultDiv.innerHTML += "<div style='width: 30px; background-image: url(drives/downs.gif); float: " + ownSide + ";'></div>";
		break;

		case "fumble": resultDiv.id = "fumble" + possNum;
			var offset = "";
			if ((drive[i][9][1] - drive[i][7]) >= 0) {
				offset = (drive[i][7]) * 5 + 60;
				side = ownSide;
			} else {
				offset = (drive[i][9][1]) * 5 + 60;
				side = oppSide;
			}
			if (ownImg == teams[1][0]) {
				resultDiv.style.right = offset + "px";
			} else {
				resultDiv.style.left = offset + "px";
			}
			var fumblerName = "";
			if (drive[i][9][2] === "") {
				fumblerName = opp.toUpperCase();
			} else {
				fumblerName = drive[i][9][2];
			}
			var defenderName = "";
			if (drive[i][9][3] === "") {
				defenderName = opp.toUpperCase();
			} else {
				defenderName = drive[i][9][3];
			}
			resultDiv.title = fumblerName + "'s fumble recovered by " + defenderName;
			if (drive[i][9][1] >= 100) {
				resultDiv.title += " in the end zone";
				if (drive[i][9][4] == "touchback") {
					resultDiv.title += " for a touchback";
				}
			} else if (drive[i][9][1] <= 0) {
				resultDiv.title += " in the end zone for a touchdown!";
			} else if (drive[i][9][1] > 50) {
				resultDiv.title += " at " + opp.toUpperCase() + " " + (100 - drive[i][9][1]);
			} else if (drive[i][9][1] < 50) {
				resultDiv.title += " at " + abbr.toUpperCase() + " " + drive[i][9][1];
			} else {
				resultDiv.title += " at midfield";
			}
			if ((drive[i][7] >= drive[i][6] && drive[i][9][1] >= drive[i][7]) || (drive[i][6] > drive[i][7] && drive[i][7] > drive[i][9][1])) {
				resultDiv.innerHTML = "<div style='width: " + (Math.abs(drive[i][9][1] - drive[i][7])*5) + "px; background-image: url(drives/" + ownImg + "/turnover.gif); float: " + side + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/F.gif); float: " + side + ";'></div>";
			} else {
				if ((drive[i][9][1] >= drive[i][7] && drive[i][9][1] <= drive[i][6]) || (drive[i][9][1] >= drive[i][6] && drive[i][9][1] <= drive[i][7])) {
					resultDiv.innerHTML = "<div style='width: " + ((Math.abs(drive[i][9][1] - drive[i][7]) - 1) * 5) + "px; background-image: url(drives/" + ownImg + "/turnalt.gif); float: " + side + ";'></div>";
					resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Falt.gif); float: " + side + ";'></div>";
				} else {
					resultDiv.innerHTML = "<div style='width: " + (Math.abs(drive[i][7] - drive[i][6])*5) + "px; background-image: url(drives/" + ownImg + "/turnalt.gif); float: " + side + ";'></div>";
					resultDiv.innerHTML += "<div style='width: " + ((Math.abs(drive[i][6] - drive[i][9][1]) - 1) * 5) + "px; background-image: url(drives/" + ownImg + "/turnover.gif); float: " + side + ";'></div>";
					resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/F.gif); float: " + side + ";'></div>";
				}
			}
		break;
			
		case "INT": resultDiv.id = "INT" + possNum;
			var offset = "";
			if ((drive[i][9][1] - drive[i][7]) >= 0) {
				offset = (drive[i][7]) * 5 + 60;
				side = ownSide;
			} else {
				offset = (drive[i][9][1]) * 5 + 60;
				side = oppSide;
			}
			if (ownImg == teams[1][0]) {
				resultDiv.style.right = offset + "px";
			} else {
				resultDiv.style.left = offset + "px";
			}
			var passerName = "";
			if (drive[i][9][2] === "") {
				passerName = opp.toUpperCase();
			} else {
				passerName = drive[i][9][2];
			}
			var defenderName = "";
			if (drive[i][9][3] === "") {
				defenderName = opp.toUpperCase();
			} else {
				defenderName = drive[i][9][3];
			}
			resultDiv.title = passerName + "'s pass intercepted by " + defenderName;
			if (drive[i][9][1] >= 100) {
				resultDiv.title += " in the end zone";
				if (drive[i][9][4] == "touchback") {
					resultDiv.title += " for a touchback";
				}
			} else if (drive[i][9][1] <= 0) {
				resultDiv.title += " in the end zone for a touchdown!";
			} else if (drive[i][9][1] > 50) {
				resultDiv.title += " at " + opp.toUpperCase() + " " + (100 - drive[i][9][1]);
			} else if (drive[i][9][1] < 50) {
				resultDiv.title += " at " + abbr.toUpperCase() + " " + drive[i][9][1];
			} else {
				resultDiv.title += " at midfield";
			}
			if ((drive[i][7] >= drive[i][6] && drive[i][9][1] >= drive[i][7]) || (drive[i][6] > drive[i][7] && drive[i][7] > drive[i][9][1])) {
				resultDiv.innerHTML = "<div style='width: " + (Math.abs(drive[i][9][1] - drive[i][7])*5) + "px; background-image: url(drives/" + ownImg + "/turnover.gif); float: " + side + ";'></div>";
				resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/I.gif); float: " + side + ";'></div>";
			} else {
				if ((drive[i][9][1] >= drive[i][7] && drive[i][9][1] <= drive[i][6]) || (drive[i][9][1] >= drive[i][6] && drive[i][9][1] <= drive[i][7])) {
					resultDiv.innerHTML = "<div style='width: " + ((Math.abs(drive[i][9][1] - drive[i][7]) - 1) * 5) + "px; background-image: url(drives/" + ownImg + "/turnalt.gif); float: " + side + ";'></div>";
					resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/Ialt.gif); float: " + side + ";'></div>";
				} else {
					resultDiv.innerHTML = "<div style='width: " + (Math.abs(drive[i][7] - drive[i][6])*5) + "px; background-image: url(drives/" + ownImg + "/turnalt.gif); float: " + side + ";'></div>";
					resultDiv.innerHTML += "<div style='width: " + ((Math.abs(drive[i][6] - drive[i][9][1]) - 1) * 5) + "px; background-image: url(drives/" + ownImg + "/turnover.gif); float: " + side + ";'></div>";
					resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/I.gif); float: " + side + ";'></div>";
				}
			}
		break;

		case "safety": resultDiv.id = "safety" + possNum;
			if (ownImg == teams[1][0]) {
				resultDiv.style.right = "0px";
			} else {
				resultDiv.style.left = "0px";
			}

			resultDiv.innerHTML = "<div style='width: 5px; background-image: url(drives/" + ownImg + "/drive.gif); float: " + oppSide + ";'></div>";
			resultDiv.innerHTML += "<div style='width: 5px; background-image: url(drives/" + ownImg + "/end" + oppDir + ".gif); float: " + oppSide + ";'></div>";
			resultDiv.innerHTML += "<div style='width: 45px; background-image: url(drives/" + oppImg + "/SAF.gif); float: " + oppSide + ";'></div>";
			resultDiv.innerHTML += "<div style='width: 10px; float: " + oppSide + ";'></div>";
			
			resultDiv.title = opp.toUpperCase() + " safety: ";
			if (drive[i][9][2] == "fumble") {
				resultDiv.title += drive[i][9][1] + " loses the ball out of bounds in the end zone!";
			} else if (drive[i][9][2] == "punt") {
				resultDiv.title += drive[i][9][1] + " recovers the ball in the end zone!";
			} else if (drive[i][9][2] == "step") {
				resultDiv.title += drive[i][9][1] + " steps out of bounds in the end zone!";
			} else if (drive[i][9][2] == "penalty") {
				resultDiv.title += "Penalty on " + drive[i][9][1] + " in the end zone!";
			} else {
				resultDiv.title += drive[i][9][2] + " tackles " + drive[i][9][1] + " in the end zone!";
			}			
			break;
			
		case "end": resultDiv.id = "endHalf" + possNum;
			var offset = (drive[i][7])*5 + 60;
		    if (drive[i][6] >= drive[i][7]) {
				offset -= 15;
			}
			if (ownImg == teams[1][0]) {
				resultDiv.style.right = offset + "px";
			} else {
				resultDiv.style.left = offset + "px";
			}
			resultDiv.title = "End of ";
			if (drive[i][0] == 2) {
				resultDiv.title += "first half";
			} else if (drive[i][0] == 6) {
				resultDiv.title += "2nd overtime";
			} else if (possNum == (drive.length)) {
				resultDiv.title += "game";
			} else if (drive[i][0] == 4) {
				resultDiv.title += "regulation";
			} else {
				resultDiv.title += "game";
			}
			resultDiv.innerHTML = "<div style='width: 15px; background-image: url(drives/end.gif);'></div>";
		break;			
		default: resultDiv.innerHTML = "";
	}
	document.getElementById("possession" + possNum).appendChild(resultDiv);
}

