$( document ).ready(function() {

  $('#association_sport_id').change(function() {

    if($(this).val() > 0){
      $('#frmSearch .association_sport_level_id').append('<option value="">Loading...</option>').prop('disabled', 'disabled');
    } else {
      $('#frmSearch .association_sport_level_id').append('<option value=""></option>').prop('disabled', 'disabled');
    }

    $('#frmSearch .division_id').empty().append('<option value=""></option>').prop('disabled', 'disabled');

    if($('#frmSearch .association_sport_id').val() == ''){
      return;
    }

    $.ajax({
       type: "POST",
       url: 'ajax/functions-front.php?f=LevelSearch&association_sport_id=' + $('#frmSearch .association_sport_id').val() + '&association_id=' + $('#frmSearch #association_id').val(),
       dataType: 'json',
       success: function(response){

         if(response.error){
           bootbox.alert(response.error);

         } else {

           var option_value = ''

           $('#frmSearch .association_sport_level_id').empty().prepend('<option value="">Choose Level...</option>');
           $('#frmSearch .association_sport_level_id').prop('disabled', '');

           $.each(response.levels, function(k, v) {
              var selected = (response.levels.length == 1) ? 'selected' : '';
              $('#frmSearch .association_sport_level_id').append('<option value="' + v.association_sport_level_id + '" '+selected+'>' + v.sport_level_name + '</option>');
              //sport_level_name
              option_value = v.association_sport_level_id;
            });

            if($('#frmSearch .association_sport_level_id option').length == 1){
              $('#frmSearch .association_sport_level_id').empty().append('<option value="">No Levels assigned to sport</option>');
            } else {
              $('#frmSearch .association_sport_level_id').prop("disabled", false);
            }
         }
       },
     });
  });

  $('#association_sport_level_id').change(function() {

    if($(this).val() > 0){
      $('#frmSearch .division_id').append('<option value="">Loading...</option>').prop('disabled', 'disabled');
    } else {
      $('#frmSearch .division_id').append('<option value=""></option>').prop('disabled', 'disabled');
    }

    if($('#frmSearch .association_sport_level_id').val() == ''){
      return;
    }

    $.ajax({
       type: "POST",
       url: 'ajax/functions-front.php?f=SportLevelDivisions&association_sport_id=' + $('#frmSearch .association_sport_id').val()+'&association_sport_level_id=' + $('#frmSearch .association_sport_level_id').val(),
       dataType: 'json',
       success: function(response){

         if(response.error){
           bootbox.alert(response.error);

         } else {

           var option_value = ''

           $('#frmSearch .division_id').empty().prepend('<option value="">Division...</option>');
           $('#frmSearch .division_id').prop('disabled', '');

           $.each(response.divisions, function(k, v) {
              var selected = (response.divisions.length == 1) ? 'selected' : '';
              $('#frmSearch .division_id').append('<option value="' + v.division_id + '" '+selected+'>' + v.division_name + '</option>');
            });

            if($('#frmSearch .division_id option').length == 1){
              $('#frmSearch .division_id').empty().append('<option value="">No divisions assigned to level</option>');
            } else {
              $('#frmSearch .division_id').prop("disabled", false);
            }
         }
       },
     });
  });

  $('#team_search').change(function() {
    TeamCheck();
  });
});

function TeamCheck(){
  var team_id = $('#team_search').val();
  var showing_count = 0;

  if(!$('.game-row').length){
    $('#games_empty').hide();
  } else {
    $('#games_empty').show();
  }

  $.cookie('team_id',team_id);

  // Reload page with team id in URL
  //var uri = window.location.href;
  //var url = updateQueryStringParameter(uri, 'team_id', $(this).val());
  //top.location = url;

  // Filter dynamically
  if($('.game-row').length){
    $('.game-row').each(function(i, obj) {
      if(!team_id){
        $(obj).show();
        showing_count++;
      } else {

        var away_team_array = $(obj).data('away_teams').toString().split(",");

        if($(obj).data('home_team_id') != team_id && $(obj).data('away_team_id') != team_id && away_team_array.includes(team_id) == false){
          $(obj).hide();
        } else {
          $(obj).show();
          showing_count++;
        }
      }
    });

    if($('.game-row:visible').length == 0){
      $('#games_empty').show();
    } else {
      $('#games_empty').hide();
    }
  }

  if($('.team-row').length){
    $('.team-row').each(function(i, obj) {
      $(obj).removeClass('row-selected');
      if($(obj).data('team_id') == team_id){
        $(obj).addClass('row-selected');
        $('html, body').animate({
            scrollTop: $(obj).offset().top - 180
        }, 2000);
      }
    });
  }
}

function updateQueryStringParameter(uri, key, value) {
  var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
  var separator = uri.indexOf('?') !== -1 ? "&" : "?";
  if (uri.match(re)) {
    return uri.replace(re, '$1' + key + "=" + value + '$2');
  }
  else {
    return uri + separator + key + "=" + value;
  }
}
