
function set_scoring_system( feature, scoring_system ) {
	
	$(function() {
	
		$.each(scoring_system_rules, function(sk,sd) {
			if(sk == scoring_system) {
				system = sd.match_system;
				console.log('scoring details', sd);
				max_sets = sd.game_total;
				console.log(system);
				console.log(max_sets);
			}
			//console.log(sk);
			//console.log(sd);
		});
		
		tab_index = 0;

		if(feature == 'league' || feature == 'tournament' || feature == 'box_league' || feature == 'ladder' || feature == 'solo_league') {
			
			$(".game_input").prop('disabled', false);
			$(".games_total").prop('readonly', true);
			$(".tie_break").hide();
			$("input[name^='s_']").removeClass('win').removeClass('error').prop('readonly', false);
			$("input[name^='m_']").removeClass('win').removeClass('error').prop('readonly', false);
			$("input[name^='g_']").removeClass('win').removeClass('error').prop('readonly', false);
			$("input[name^='g_']").val('').prop('readonly', true); // For the time being - would be good to allow this at some point
			$("input[name^='match_status_']").prop('disabled', false);
			$("input[name^='v_']").val('no');

			if(feature == 'league') {
				matches_per_cycle = $("input[name='matches_per_cycle']").val();
			}
			else {
				matches_per_cycle = parseInt(1);
			}
			
			max_sets = parseInt(max_sets);

			if(system == 'total_of') {
				sets_needed = max_sets;
			}
			else {
				sets_needed = Math.ceil(max_sets / 2);
			}
			
			if(scoring_system == 'time_limited_points') {
				max_sets = 1;
				//$(".m_col, .g_col").css('opacity', '0');
				
				//$(".game_input").prop('disabled', true);
				//$(".games_total").prop('disabled', false).prop('readonly', false);
				//$(".games_col").hide();
				//$(".m_col").hide();
			}
			else if(scoring_system == 'keylog_3' || scoring_system == 'keylog_5') {
				max_sets = 0;
				$(".m_col, .g_col").css('opacity', '0');
				$(".games_col").hide();
			}
			else if(scoring_system == 'tennis_game') {
				max_sets = 1;
				$(".m_col, .g_col").css('opacity', '0').css('border-width', 0);
				$("th.game_1").text('GAMES');
			}
			else {
				$(".m_col, .g_col").css('opacity', '1');
			}
			
			if(max_sets < 5) {
				for(ms=(max_sets+1); ms<=5; ms++) {
					$(".game_" + ms).hide();
				}
			}
		
			if(feature == 'box_league' || feature == 'ladder') {
				if(max_sets <= 2) {
					$(".box_league_modal_size").removeClass('modal-lg');
				}
				else {
					$(".box_league_modal_size").addClass('modal-lg');
				}
			}
			
			points_per_game = parseInt(scoring_system.substring(4));
			
			for(m=1; m<=parseInt(matches_per_cycle); m++) {
				
				$("#match_status_" + m + "_draw").parent('label').hide();
				$("#match_status_" + m + "_incomplete").parent('label').hide();
				
				if (typeof $("[name='scoring_system_" + m + "']").val() !== "undefined") {
					if($("[name='scoring_system_" + m + "']").is(':radio')) {
						use_scoring_system = $("input[name='scoring_system_" + m + "']:checked").val();
					}
					else if($("[name='scoring_system_" + m + "']").is('input select')) {
						use_scoring_system = $("select[name='scoring_system_" + m + "']").val();
					}
					else {
						use_scoring_system = $("[name='scoring_system_" + m + "']").val();
						//use_scoring_system = scoring_system;
					}
				}
				else {
					use_scoring_system = scoring_system;
				}
				
				$("input[name='m_" + m + "_1']").prop('readonly', false);
				$("input[name='m_" + m + "_2']").prop('readonly', false);
				$("input[name^='g_" + m + "_']").val('');
				
				if($("select[name='home_player_" + m + "']").val() == -1 || $("select[name='away_player_" + m + "']").val() == -1) {
					$("input[name^='m_" + m + "_']").val('').prop('readonly', true);
					$("input[name^='g_" + m + "_']").val('').prop('readonly', true);
					$("input[name^='s_" + m + "_']").val('').prop('readonly', true);
					$("input[name='match_status_" + m + "']").prop('disabled', true);

					if($("select[name='home_player_" + m + "']").val() == -1 && $("select[name='away_player_" + m + "']").val() != -1) {
						$("input[name='m_" + m + "_1']").val('0');
						$("input[name='m_" + m + "_2']").val(sets_needed);
					}
					if($("select[name='home_player_" + m + "']").val() != -1 && $("select[name='away_player_" + m + "']").val() == -1) {
						$("input[name='m_" + m + "_1']").val(sets_needed);
						$("input[name='m_" + m + "_2']").val('0');
					}

					continue;
				}

				if($("input[name='match_status_" + m + "']:checked").val() == 'default') {
					$("input[name^='m_" + m + "_']").prop('readonly', false);
					$("input[name^='g_" + m + "_']").val('').prop('readonly', true);
					$("input[name^='s_" + m + "_']").val('').prop('readonly', true);
					$("input[name^='v_" + m + "']").val('no');
					continue;
				}

				p1_sets = 0;
				p2_sets = 0;
				p1_games = 0;
				p2_games = 0;
				have_g_data = false;
				
				for(i=1; i<=max_sets; i++) {
		
					tab_index++;
					$("input[name='s_" + m + "_" + i + "_1']").attr('tabindex', tab_index);
					tab_index++;
					$("input[name='s_" + m + "_" + i + "_2']").attr('tabindex', tab_index);

					val1 = parseInt($("input[name='s_" + m + "_" + i + "_1']").val());
					val2 = parseInt($("input[name='s_" + m + "_" + i + "_2']").val());
					
					if(!isNaN(val1) || !isNaN(val2)) {
						$("input[name='m_" + m + "_1']").prop('readonly', true);
						$("input[name='m_" + m + "_2']").prop('readonly', true);
						$("input[name='v_" + m + "']").val('yes');
					}
					
					if(!isNaN(val1) && !isNaN(val2)) {
						
						have_g_data = true;
						p1_games += parseInt(val1);
						p2_games += parseInt(val2);
						
						if(val1 > val2) {
							p1_sets++;
							$("input[name='s_" + m + "_" + i + "_1']").addClass('win');
						}
						else {
							p2_sets++;
							$("input[name='s_" + m + "_" + i + "_2']").addClass('win');
						}
						
						if((val1 == 7 && val2 == 6) || (val1 == 6 && val2 == 7)) {
							$(".tie_break_" + m).show();
							$(".tb_" + m + "_" + i).show();
						}
						else {
							$(".tb_" + m + "_" + i).hide();
						}
						
						if(use_scoring_system.substring(0,4) == 'par_') {
						
							points_per_game = use_scoring_system.substring(4,6);
							win_by_variable = false;

							if(use_scoring_system == 'par_21_sd22_best_of_3' || use_scoring_system == 'par_11_total_of_3_no_extra' || use_scoring_system == 'par_11_total_of_5_no_extra') {
								win_by = 1;
							}
							else if(use_scoring_system == 'par_15') {
								win_by = 3;
								win_by_variable = true;
							}
							else {
								win_by = 2;
							}
							
							if(val1 < points_per_game && val2 < points_per_game) {
								$("input[name='s_" + m + "_" + i + "_1']").addClass('error');
								$("input[name='s_" + m + "_" + i + "_2']").addClass('error');
							}
							if(val1 >= (points_per_game-1) && val2 >= (points_per_game-1) && Math.abs(val1-val2) != win_by) {
								$("input[name='s_" + m + "_" + i + "_1']").addClass('error');
								$("input[name='s_" + m + "_" + i + "_2']").addClass('error');
							}
							if((val1 > points_per_game || val2 > points_per_game) && Math.abs(val1-val2) != win_by) {
								if(use_scoring_system == 'par_21_1_game_max_30' && ((val1 == 30 && val2 == 29) || (val2 == 30 && val1 == 29))) {
									$("input[name='s_" + m + "_" + i + "_1']").removeClass('error');
									$("input[name='s_" + m + "_" + i + "_2']").removeClass('error');
								}
								else {
									$("input[name='s_" + m + "_" + i + "_1']").addClass('error');
									$("input[name='s_" + m + "_" + i + "_2']").addClass('error');
								}
							}
							if(win_by_variable && Math.abs(val1-val2) <= win_by && Math.abs(val1-val2) >= 1) {
								$("input[name='s_" + m + "_" + i + "_1']").removeClass('error');
								$("input[name='s_" + m + "_" + i + "_2']").removeClass('error');
							}

						}
						else if(use_scoring_system.substring(0,4) == 'pas_') {
							
							points_per_game_split = use_scoring_system.split("_");
							points_per_game = points_per_game_split[1];
							
							if(val1 < points_per_game && val2 < points_per_game) {
								$("input[name='s_" + m + "_" + i + "_1']").addClass('error');
								$("input[name='s_" + m + "_" + i + "_2']").addClass('error');
							}
							if(val1 >= (points_per_game-1) && val2 >= (points_per_game-1) && Math.abs(val1-val2) > 2) {
								$("input[name='s_" + m + "_" + i + "_1']").addClass('error');
								$("input[name='s_" + m + "_" + i + "_2']").addClass('error');
							}
							if((val1 > points_per_game || val2 > points_per_game) && Math.abs(val1-val2) > 2) {
								$("input[name='s_" + m + "_" + i + "_1']").addClass('error');
								$("input[name='s_" + m + "_" + i + "_2']").addClass('error');
							}
							if(val1 > (points_per_game+1) || val2 > (points_per_game+1)) {
								$("input[name='s_" + m + "_" + i + "_1']").addClass('error');
								$("input[name='s_" + m + "_" + i + "_2']").addClass('error');
							}
						
						}
						else if(use_scoring_system == 'time_limited_points') {
						
						}
						else if(use_scoring_system == 'tennis_game') {
						}

					}

					if(p1_sets == sets_needed || p2_sets == sets_needed) {
						break;
					}

				}
				
				if(!have_g_data) {
					p1_sets = $("input[name='m_" + m + "_1']").val();
					p2_sets = $("input[name='m_" + m + "_2']").val();
				}
					
				if(p1_sets > 0 || p2_sets > 0) {
					
					sets_played = p1_sets + p2_sets;
					
					if((p1_sets == sets_needed || p2_sets == sets_needed) && sets_played < max_sets) {
						
						for(i=(sets_played+1); i<=max_sets; i++) {
							$("input[name='s_" + m + "_" + i + "_1']").val('').prop('disabled', true);
							$("input[name='s_" + m + "_" + i + "_2']").val('').prop('disabled', true);
						}

					}

					$("input[name='g_" + m + "_1']").val( p1_games );
					$("input[name='g_" + m + "_2']").val( p2_games );
					$("input[name='m_" + m + "_1']").val( p1_sets );
					$("input[name='m_" + m + "_2']").val( p2_sets );
					
					if(p1_sets == p2_sets) {
						$("#match_status_" + m + "_draw").parent('label').show();
					}
					else if(p1_sets < sets_needed && p2_sets < sets_needed && p1_sets != p2_sets && isNumeric(p1_sets) && isNumeric(p2_sets)) {
						$("#match_status_" + m + "_incomplete").parent('label').show();
					}
					else {
						if($("input[name='match_status_" + m + "']:checked").val() == 'draw') {
							$("input[name='match_status_" + m + "']").filter('[value="normal"]').prop('checked', true);
						}
					}

				}

			}

		}

	});

}

function isNumeric(n) {
	  return !isNaN(parseFloat(n)) && isFinite(n);
}
