/* Minification failed. Returning unminified contents.
(38,53-54): run-time warning JS1100: Expected ',': =
(48,19-20): run-time warning JS1014: Invalid character: `
 */
/* Geolocation functions */
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(populateCoords, handleError, { timeout:10000 });
    } else {
        alert("Sorry, geolocation isn't supported by your browser!");
        $(".waiting").removeClass("waiting");
    }
}

function populateCoords(position) {
    var myLatLng = position.coords.latitude + "," + position.coords.longitude;

    $("#Location").removeClass("waiting").val(myLatLng);
}

// Handle geolocation errors
function handleError(e) {
    var msg = "Error: ";
    switch (e.code) {
        case 1:
            msg += "Permission was denied";
            break;
        case 2:
            msg += "Your position is currently unavailable."
            break;
        case 3:
            msg += "Getting position timed out.";
            break;
        default:
            msg += "Sorry, your device doesn't appear to support geolocation.";
    }
    alert(msg);
}

/* Character counter */
// adds character counter to a text input (must be jQuery object)
function characterCounter(element, limit, parentDiv = null) {
    element = $(element);

    if (element.length == 0) {
        return;
    }

    var currentValue = element.val().length + (element.val().match(/\n/g) || []).length,
        counterId = 'counter-' + element.attr('id'),
        counterHtml = '<small class="counter"><span id="'+ counterId + '">' + currentValue + '</span> / ' + limit + '</small>';
    parentDiv ? $(`#${parentDiv}`).append(counterHtml) : element.after(counterHtml);
    
    element.on('input propertychange', function (e) {
        var num = $(this).val().length + (element.val().match(/\n/g) || []).length,
            $counter = $('#' + counterId);
        if (num > limit) {
            $counter.addClass('text-error');
        } else {
            if ($counter.hasClass('text-error')) {
                $counter.removeClass('text-error');
            }
        }
        $counter.text(num);
    });
}

$(function () {
    // enable toggling hidden fields on stats
    $('.stats-rank-label').on('click', function (evt) {
        evt.preventDefault();
        $('.stats-rank-label').toggleClass('active');
        if ($(evt.target).hasClass('active')){
            $('.not-ftf').toggleClass('hidden');
        }
    });
  });

// Image upload preview and delete UI logic
$(function () {
    $('input[type="file"]').change(function () {
        var input = this;

        if (input.files && input.files[0]) {
            var reader = new FileReader();

            reader.onload = function (e) {
                var $imgContainer = input.id === 'keyImageFile' ? $('.js-key-image-container') : $('.js-award-image-container');
                if ($imgContainer.hasClass('media-empty')) {
                    // Create the image and insert it into the DOM
                    var $img = $('<img />');
                    $img.attr('src', e.target.result);
                    $imgContainer.children('span').addClass('d-none');
                    $imgContainer.removeClass('media-empty').append($img);
                    $imgContainer.addClass('media-present');
                } else {
                    $imgContainer.find('img').attr('src', e.target.result).show();
                }
                // add delete feature to staged optional Location completion image.
                if (input.id === 'awardImageFile' && $('#clearFile').hasClass('d-none')) {
                    $('#clearFile').removeClass('d-none');
                    $('#awardDefaultNoFile').addClass('d-none');
                }
                input.id === 'keyImageFile' ? $('#keyImageName').html(input.files[0].name) : $('#awardImageName').html(input.files[0].name);
            };

            reader.readAsDataURL(input.files[0]);
        }
    });

    // clear optional Location completion image before creating location.
    $('#clearFile').on('click', function () {
        var $imageContainer = $('.js-award-image-container');
        $('#awardImageFile').val('');
        $('.js-award-image-container img').remove();
        $imageContainer.children('span').removeClass('d-none');
        $imageContainer.removeClass('media-present').addClass('media-empty');
        $('#clearFile').addClass('d-none');
        $('#awardImageName').html('');
        $('#awardDefaultNoFile').removeClass('d-none');
    });

    // this is for cached image uploaded for optional award image when user is creating location.
    $('#deleteAwardImage').change(function () {
        if ($(this).is(':checked')) {
            $('#awardImageFile').attr('disabled', true);
            $('#awardButton').addClass('button-disabled');
            $('#deleteBtnChecked').toggleClass('d-none');
            $('#deleteBtnUnChecked').toggleClass('d-none');
            $('.js-award-image-container').addClass('fade');
        } else {
            $('#awardImageFile').removeAttr('disabled');
            $('#awardButton').removeClass('button-disabled');
            $('#deleteBtnChecked').toggleClass('d-none');
            $('#deleteBtnUnChecked').toggleClass('d-none');
            $('.js-award-image-container').removeClass('fade');
        }
        $('#awardImage').hasClass ? $('#awardImage').removeClass('fade') : $('#awardImage').addClass('fade');
    });
});
;