$(function() {
	// Jot attachment live preview.
	let $textarea = $('textarea[name=body]');
	$textarea.linkPreview();
	$textarea.keyup(function(){
		var textlen = $(this).val().length;
		$('#character-counter').text(textlen);
	});
	$textarea.editor_autocomplete(baseurl + '/search/acl');
	$textarea.bbco_autocomplete('bbcode');

	let location_button = document.getElementById('profile-location');
	let location_input = document.getElementById('jot-location');

	if (location_button && location_input) {
		updateLocationButtonDisplay(location_button, location_input);

		location_input.addEventListener('change', function () {
			updateLocationButtonDisplay(location_button, location_input);
		});
		location_input.addEventListener('keyup', function () {
			updateLocationButtonDisplay(location_button, location_input);
		});

		location_button.addEventListener('click', function() {
			if (location_input.value) {
				location_input.value = '';
				updateLocationButtonDisplay(location_button, location_input);
			} else if ("geolocation" in navigator) {
				navigator.geolocation.getCurrentPosition(function(position) {
					location_input.value = position.coords.latitude + ', ' + position.coords.longitude;
					updateLocationButtonDisplay(location_button, location_input);
				}, function (error) {
					location_button.disabled = true;
					updateLocationButtonDisplay(location_button, location_input);
				});
			}
		});
	}
});

function updateLocationButtonDisplay(location_button, location_input)
{
	location_button.classList.remove('btn-primary');
	if (location_input.value) {
		location_button.disabled = false;
		location_button.classList.add('btn-primary');
		location_button.title = location_button.dataset.titleClear;
	} else if (!"geolocation" in navigator) {
		location_button.disabled = true;
		location_button.title = location_button.dataset.titleUnavailable;
	} else if (location_button.disabled) {
		location_button.title = location_button.dataset.titleDisabled;
	} else {
		location_button.title = location_button.dataset.titleSet;
	}
}