var noDataRow = '<tr><td style="text-align: center; line-height: 40px; color: #999999">No data on this match type for this player</td></tr>';

$(function() {
	var playerListUrl = serviceUrl + 'NewPlayerList&Params=%3FclientId=82%26localeId=en%26teamId=';
	var playerStatsUrl = serviceUrl + 'NewPlayerStats&Params=%3FclientId=82%26localeId=en%26teamPlayedForId=0%26teamPlayedAgainstId=0%26playerId=';

	var country1 = $('#country1');
	var country2 = $('#country2');
	var player1 = $('#player1');
	var player2 = $('#player2');

	// Variables to hold query string parameters.
	var team1Id, team2Id, player1Id, player2Id;

	// Catch query string if there is any.
	if (location.search) {

		var queryStrings = location.search.substring(1).split('&')
		for (var i = 0; i < queryStrings.length; i++) {
			var queryString = queryStrings[i].split('=');
			if (queryString[0].toLowerCase() == 'player1id') player1Id = queryString[1];
			else if (queryString[0].toLowerCase() == 'player2id') player2Id = queryString[1];
			else if (queryString[0].toLowerCase() == 'team1id') team1Id = queryString[1];
			else if (queryString[0].toLowerCase() == 'team2id') team2Id = queryString[1];
		}
	}

	// hardcoded matchTypeIds. 1: Test, 2: ODI, 11: T20
	var matchTypeIds = new Array("1", "2", "11");

	country1.loadCountries().change(
		function() {

			var teamId = $(this).selectedItem().attr('value');

			// Player1: Load Players
			player1.loadPlayers($(this).selectedItem().attr('value'), player1Id).change(
				function() {
					var playerId = $(this).selectedItem().attr('value');
					$('#player1Profile').css('display', 'block');
					init('1');
					
					// Load Player Details
					$.getJSON(playerListUrl + teamId, null,
						function(data) {
							loadPlayerDetails(data, '1', playerId, country1.selectedItem().text());
							setHeight();
						}
					);

					// Load Test Stats
					$.getJSON(playerStatsUrl + playerId + '%26matchTypeID=1', null,
						function(data) {
							loadExtraPlayerDetails(data, '1');
							loadStats(data, '#player1TEST');
						}
					);

					// Load ODI Stats
					$.getJSON(playerStatsUrl + playerId + '%26matchTypeID=2', null,
						function(data) {
							loadStats(data, '#player1ODI');
						}
					);

					// Load T20 Stats
					$.getJSON(playerStatsUrl + playerId + '%26matchTypeID=11', null,
						function(data) {
							loadStats(data, '#player1T20Int');
						}
					);
				}
			);
		}
	);

	if (team1Id) country1.find('option[value="' + team1Id + '"]').attr('selected', 'selected').end().change();

	country2.loadCountries().change(
		function() {

			var teamId = $(this).selectedItem().attr('value');

			// Player2: Load Players
			player2.loadPlayers($(this).selectedItem().attr('value'), player2Id).change(
						function() {
							var playerId = $(this).selectedItem().attr('value');
							$('#player2Profile').css('display', 'block');
							init('2');

							// Load Player Details
							$.getJSON(playerListUrl + teamId, null,
								function(data) {
									loadPlayerDetails(data, '2', playerId, country2.selectedItem().text());
									setHeight();
								}
							);

							// Load Test Stats
							$.getJSON(playerStatsUrl + playerId + '%26matchTypeID=1', null,
								function(data) {
									loadExtraPlayerDetails(data, '2');
									loadStats(data, '#player2TEST');
								}
							);

							// Load ODI Stats
							$.getJSON(playerStatsUrl + playerId + '%26matchTypeID=2', null,
								function(data) {
									loadStats(data, '#player2ODI');
								}
							);

							// Load T20 Stats
							$.getJSON(playerStatsUrl + playerId + '%26matchTypeID=11', null,
								function(data) {
									loadStats(data, '#player2T20Int');
								}
							);
						}
					);
		}
	);

	// Select country 2 if country2Id is passed in.
	if (team2Id) country2.find('option[value="' + team2Id + '"]').attr('selected', 'selected').end().change();

});

function init(playerNumber) {
	var strPlayer = '#player' + playerNumber;
	var cntProfile = $(strPlayer + 'Profile');
	var cntPersonal = $(strPlayer + 'Personal');
	var cntTest = $(strPlayer + 'TEST');
	var cntODI = $(strPlayer + 'ODI');
	var cntT20 = $(strPlayer + 'T20Int');
	
	cntProfile.css('display', 'block');
	cntPersonal.empty().append('<tr><td><span class="cricket_loadingText"><img alt="Loading" src="../img/cricket/v2/tables-loader.gif" width="16px" height="16px" />Loading personal profile...</span></td></tr>');
	cntTest.empty().append('<tr><td><span class="cricket_loadingText"><img alt="Loading" src="../img/cricket/v2/tables-loader.gif" width="16px" height="16px" />Loading TEST profile...</span></td></tr>');
	cntODI.empty().append('<tr><td><span class="cricket_loadingText"><img alt="Loading" src="../img/cricket/v2/tables-loader.gif" width="16px" height="16px" />Loading ODI profile...</span></td></tr>');
	cntT20.empty().append('<tr><td><span class="cricket_loadingText"><img alt="Loading" src="../img/cricket/v2/tables-loader.gif" width="16px" height="16px" />Loading Twenty20 profile...</span></td></tr>');
}

function loadPlayerDetails(data, playerNumber, playerId, countryName) {
	var strPlayer = '#player' + playerNumber;
	var cntPersonal = $(strPlayer + 'Personal');
	var cntCountry = $(strPlayer + 'Country');
	
	try {
		generatePersonal(data.Sportsflash.Players.Player, playerId, cntPersonal);
		cntCountry.empty().append(countryName);
	}
	catch (ex) {
		cntProfile.empty().append('<tr><td style="text-align: center; line-height: 40px; color: #999999">Personal data of this player is not available at the moment</td></tr>');
	}
	setHeight();
}

function loadExtraPlayerDetails(data, playerNumber) {
	try {
		var strPlayer = '#player' + playerNumber;
		var cntImage = $(strPlayer + 'Photo');
		var cntName = $(strPlayer + 'Name');

		cntName.empty().append(data.Sportsflash.Header.FirstName + ' ' + data.Sportsflash.Header.LastName);
		var img = new Image();
		img.onload = function() { cntImage.attr('src', img.src); };
		img.onerror = function() { cntImage.attr('src', '../img/cricket/v2/blank_head.gif'); };
		img.src = '../img/cricket/v2/players/' + data.Sportsflash.Header.FirstName + '-' + data.Sportsflash.Header.LastName + '.jpg';
	}
	catch (ex) {

	}
	setHeight();
}

function loadStats(data, strContainer) {
	try {
		var container = $(strContainer);
		var stats = data.Sportsflash.Statistics.CareerStats;

		if (stats && stats.Match != 0) {
			generateMatchRows(stats, container);
		}
		else {
			container.empty().append(noDataRow);
		}
	}
	catch (ex) {
		container.empty().append(noDataRow);
	}
	setHeight();
}


