﻿$.widget("ui.teamRosterDraft", {
	_init: function() {
		this.element.addClass("teamRosterDraft");
	},

	destroy: function() {
		this.element.removeClass("teamRosterDraft");
	},

	hide: function() {
		this.element.addClass('hidden');
	},

	updateTeam: function(teamId, team) {
		var players = $(".teamRoster-" + teamId + " ul").empty();
		var qbList = $(".teamRoster-" + teamId + " ul.QBList");
		var wrList = $(".teamRoster-" + teamId + " ul.WRList");
		var rbList = $(".teamRoster-" + teamId + " ul.RBList");
		var teList = $(".teamRoster-" + teamId + " ul.TEList");
		var kList = $(".teamRoster-" + teamId + " ul.KList");
		var dList = $(".teamRoster-" + teamId + " ul.DList");
		var bList = $(".teamRoster-" + teamId + " ul.BList");
		var fList = $(".teamRoster-" + teamId + " ul.FList");

		for (var j = 0; j < team.Entities.length; j++) {
			if (team.Entities[j].EntityId > 0) {
				if (team.Entities[j].IsFlex) {
					$("<li />").text(team.Entities[j].Name + ' - ' + team.Entities[j].DisplayPoints).addClass("entityId-" + team.Entities[j].EntityId).appendTo(fList);
				} else if (team.Entities[j].IsStarter) {
					switch (team.Entities[j].Position.Abbreviation) {
						case "QB":
							$("<li />").text(team.Entities[j].Name + ' - ' + team.Entities[j].DisplayPoints).addClass("entityId-" + team.Entities[j].EntityId).appendTo(qbList);
							break;
						case "WR":
							$("<li />").text(team.Entities[j].Name + ' - ' + team.Entities[j].DisplayPoints).addClass("entityId-" + team.Entities[j].EntityId).appendTo(wrList);
							break;
						case "RB":
							$("<li />").text(team.Entities[j].Name + ' - ' + team.Entities[j].DisplayPoints).addClass("entityId-" + team.Entities[j].EntityId).appendTo(rbList);
							break;
						case "TE":
							$("<li />").text(team.Entities[j].Name + ' - ' + team.Entities[j].DisplayPoints).addClass("entityId-" + team.Entities[j].EntityId).appendTo(teList);
							break;
						case "K":
							$("<li />").text(team.Entities[j].Name + ' - ' + team.Entities[j].DisplayPoints).addClass("entityId-" + team.Entities[j].EntityId).appendTo(kList);
							break;
						case "D":
							$("<li />").text(team.Entities[j].Name + ' - ' + team.Entities[j].DisplayPoints).addClass("entityId-" + team.Entities[j].EntityId).appendTo(dList);
							break;
					}
				} else {
					$("<li />").text(team.Entities[j].Name + ' - ' + team.Entities[j].DisplayPoints).addClass("entityId-" + team.Entities[j].EntityId).appendTo(bList);
				}
			}
		} //end for
	},

	markCurrentTeam: function(currentOnDeckTeamId) {
		//        $(".teamOnDeck").removeClass("teamOnDeck");

		//        $(".teamLink-" + currentOnDeckTeamId).addClass("teamOnDeck");
	},

	// This method expects teams to be a list of:
	// [{teamId, name, owner, [player1, player2]}, ...]
	dataBind: function(teams, currentOnDeckTeamId) {
		var self = this;
		this.element.empty();
		this.element.removeClass('hidden');

		$("<h1 />").text("Team Rosters").appendTo(this.element);

		var table = $("<table />").attr("cellpadding", 20).appendTo(this.element);

		var numberOfRows = Math.ceil(teams.length / 3);
		var currentTeamIndex = 0;
		for (var rowCount = 0; rowCount < numberOfRows; rowCount++) {
			var currentRow = $("<tr />").appendTo(table);
			for (var i = 0; i < 3; i++) {
				var currentColumn = $("<td />").appendTo(currentRow);
				if (teams[currentTeamIndex]) {
					currentColumn.addClass("teamRoster-" + teams[currentTeamIndex].TeamId);

					var header = $("<h3 />").appendTo(currentColumn);
					$("<img src='/App_Themes/web/images/draft-bullet.jpg' />")
                            .addClass("teamLink-" + teams[currentTeamIndex].TeamId)
                            .addClass(teams[currentTeamIndex].TeamId == currentOnDeckTeamId ? "teamOnDeck" : "")
                            .appendTo(header);
					$("<span />")
                            .text('  ' + (teams[currentTeamIndex].DraftOrder + 1) + '.  ' + teams[currentTeamIndex].Name + ', ' + teams[currentTeamIndex].Owner)
                            .appendTo(header);

					var colTable = $("<table />").appendTo(currentColumn);
					var qbRow = $("<tr />").appendTo(colTable);
					$("<td />").text("QB").attr("valign", "top").addClass("positionAbbreviation").appendTo(qbRow);
					var qbPlayerCell = $("<td />").appendTo(qbRow);
					var qbList = $("<ul />").addClass("QBList").appendTo(qbPlayerCell);

					var wrRow = $("<tr />").appendTo(colTable);
					$("<td />").text("WR").attr("valign", "top").addClass("positionAbbreviation").appendTo(wrRow);
					var wrPlayerCell = $("<td />").appendTo(wrRow);
					var wrList = $("<ul />").addClass("WRList").appendTo(wrPlayerCell);

					var rbRow = $("<tr />").appendTo(colTable);
					$("<td />").text("RB").attr("valign", "top").addClass("positionAbbreviation").appendTo(rbRow);
					var rbPlayerCell = $("<td />").appendTo(rbRow);
					var rbList = $("<ul />").addClass("RBList").appendTo(rbPlayerCell);

					var teRow = $("<tr />").appendTo(colTable);
					$("<td />").text("TE").attr("valign", "top").addClass("positionAbbreviation").appendTo(teRow);
					var tePlayerCell = $("<td />").appendTo(teRow);
					var teList = $("<ul />").addClass("TEList").appendTo(tePlayerCell);

					var kRow = $("<tr />").appendTo(colTable);
					$("<td />").text("K").attr("valign", "top").addClass("positionAbbreviation").appendTo(kRow);
					var kPlayerCell = $("<td />").appendTo(kRow);
					var kList = $("<ul />").addClass("KList").appendTo(kPlayerCell);

					var dRow = $("<tr />").appendTo(colTable);
					$("<td />").text("D").attr("valign", "top").addClass("positionAbbreviation").appendTo(dRow);
					var dPlayerCell = $("<td />").appendTo(dRow);
					var dList = $("<ul />").addClass("DList").appendTo(dPlayerCell);

					var fRow = $("<tr />").appendTo(colTable);
					$("<td />").text("F").attr("valign", "top").addClass("positionAbbreviation").appendTo(fRow);
					var fPlayerCell = $("<td />").appendTo(fRow);
					var fList = $("<ul />").addClass("FList").appendTo(fPlayerCell);

					var bRow = $("<tr />").appendTo(colTable);
					$("<td />").text("B").attr("valign", "top").addClass("positionAbbreviation").appendTo(bRow);
					var bPlayerCell = $("<td />").appendTo(bRow);
					var bList = $("<ul />").addClass("BList").appendTo(bPlayerCell);

					for (var j = 0; j < teams[currentTeamIndex].Entities.length; j++) {
						if (teams[currentTeamIndex].Entities[j].EntityId > 0) {
						
							if (teams[currentTeamIndex].Entities[j].IsFlex) {
								$("<li />").text(teams[currentTeamIndex].Entities[j].Name + ' - ' + teams[currentTeamIndex].Entities[j].DisplayPoints).addClass("entityId-" + teams[currentTeamIndex].Entities[j].EntityId).appendTo(fList);
							} else if (teams[currentTeamIndex].Entities[j].IsStarter) {
								switch (teams[currentTeamIndex].Entities[j].Position.Abbreviation) {
									case "QB":
										$("<li />").text(teams[currentTeamIndex].Entities[j].Name + ' - ' + teams[currentTeamIndex].Entities[j].DisplayPoints).addClass("entityId-" + teams[currentTeamIndex].Entities[j].EntityId).appendTo(qbList);
										break;
									case "WR":
										$("<li />").text(teams[currentTeamIndex].Entities[j].Name + ' - ' + teams[currentTeamIndex].Entities[j].DisplayPoints).addClass("entityId-" + teams[currentTeamIndex].Entities[j].EntityId).appendTo(wrList);
										break;
									case "RB":
										$("<li />").text(teams[currentTeamIndex].Entities[j].Name + ' - ' + teams[currentTeamIndex].Entities[j].DisplayPoints).addClass("entityId-" + teams[currentTeamIndex].Entities[j].EntityId).appendTo(rbList);
										break;
									case "TE":
										$("<li />").text(teams[currentTeamIndex].Entities[j].Name + ' - ' + teams[currentTeamIndex].Entities[j].DisplayPoints).addClass("entityId-" + teams[currentTeamIndex].Entities[j].EntityId).appendTo(teList);
										break;
									case "K":
										$("<li />").text(teams[currentTeamIndex].Entities[j].Name + ' - ' + teams[currentTeamIndex].Entities[j].DisplayPoints).addClass("entityId-" + teams[currentTeamIndex].Entities[j].EntityId).appendTo(kList);
										break;
									case "D":
										$("<li />").text(teams[currentTeamIndex].Entities[j].Name + ' - ' + teams[currentTeamIndex].Entities[j].DisplayPoints).addClass("entityId-" + teams[currentTeamIndex].Entities[j].EntityId).appendTo(dList);
										break;
								}
							} else  {
								$("<li />").text(teams[currentTeamIndex].Entities[j].Name + ' - ' + teams[currentTeamIndex].Entities[j].DisplayPoints).addClass("entityId-" + teams[currentTeamIndex].Entities[j].EntityId).appendTo(bList);
							}
						}
					} //end j for
					currentTeamIndex++;
				}

			}
		}
	}
});