kopia lustrzana https://gitlab.com/gridtracker.org/gridtracker
222 wiersze
4.9 KiB
JavaScript
222 wiersze
4.9 KiB
JavaScript
// GridTracker Copyright © 2023 GridTracker.org
|
|
// All rights reserved.
|
|
// See LICENSE for more information.
|
|
|
|
document.oncontextmenu = function (event)
|
|
{
|
|
event.preventDefault();
|
|
};
|
|
|
|
document.addEventListener("dragover", function (event)
|
|
{
|
|
event.preventDefault();
|
|
});
|
|
|
|
document.addEventListener("drop", function (event)
|
|
{
|
|
event.preventDefault();
|
|
});
|
|
|
|
function openInfoTab(evt, tabName, callFunc, callObj)
|
|
{
|
|
// Declare all variables
|
|
var i, infoTabcontent, infoTablinks;
|
|
// Get all elements with class="infoTabcontent" and hide them
|
|
infoTabcontent = document.getElementsByClassName("infoTabcontent");
|
|
for (i = 0; i < infoTabcontent.length; i++)
|
|
{
|
|
infoTabcontent[i].style.display = "none";
|
|
}
|
|
// Get all elements with class="infoTablinks" and remove the class "active"
|
|
infoTablinks = document.getElementsByClassName("infoTablinks");
|
|
for (i = 0; i < infoTablinks.length; i++)
|
|
{
|
|
infoTablinks[i].className = infoTablinks[i].className.replace(
|
|
" active",
|
|
""
|
|
);
|
|
}
|
|
// Show the current tab, and add an "active" class to the button that opened the tab
|
|
|
|
document.getElementById(tabName).style.display = "block";
|
|
if (typeof evt.currentTarget != "undefined")
|
|
{ evt.currentTarget.className += " active"; }
|
|
else evt.className += " active";
|
|
|
|
if (callFunc)
|
|
{
|
|
if (typeof window.opener.window[callFunc] != "undefined")
|
|
{
|
|
var caller = window.opener.window[callFunc];
|
|
if (caller)
|
|
{
|
|
if (callObj) caller(callObj);
|
|
else caller();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function resetSearch()
|
|
{
|
|
window.opener.resetSearch();
|
|
}
|
|
|
|
function lookupCallsign(callsign)
|
|
{
|
|
window.opener.lookupCallsign(callsign);
|
|
}
|
|
|
|
function appendToChild(elementString, object, onInputString, defaultValue)
|
|
{
|
|
window[elementString].appendChild(object);
|
|
object.oninput = window.opener[onInputString];
|
|
object.value = defaultValue;
|
|
}
|
|
|
|
function statsFocus(selection)
|
|
{
|
|
var which = document.getElementById(selection);
|
|
if (which != null)
|
|
{
|
|
which.focus();
|
|
which.selectionStart = which.selectionEnd = which.value.length;
|
|
}
|
|
}
|
|
|
|
function ValidateCallsign(inputText, validDiv)
|
|
{
|
|
if (inputText.value.length > 0)
|
|
{
|
|
var passed = false;
|
|
inputText.value = inputText.value.toUpperCase();
|
|
if (/\d/.test(inputText.value) || /[A-Z]/.test(inputText.value))
|
|
{
|
|
passed = true;
|
|
}
|
|
if (passed)
|
|
{
|
|
inputText.style.color = "#FF0";
|
|
inputText.style.backgroundColor = "green";
|
|
if (validDiv) validDiv.innerHTML = $.i18n("stats.Validate.Valid");
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
inputText.style.color = "#000";
|
|
inputText.style.backgroundColor = "yellow";
|
|
if (validDiv) validDiv.innerHTML = $.i18n("stats.Validate.Invalid");
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
inputText.style.color = "#000";
|
|
inputText.style.backgroundColor = "yellow";
|
|
if (validDiv) validDiv.innerHTML = $.i18n("stats.Validate.Invalid");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function validateCallByElement(elementString)
|
|
{
|
|
ValidateCallsign(window[elementString], null);
|
|
}
|
|
|
|
function init()
|
|
{
|
|
openInfoTab(event, "workedBoxDiv", "showWorkedBox");
|
|
loadChildWindowI18n();
|
|
}
|
|
|
|
function addTextToClipboard(data)
|
|
{
|
|
navigator.clipboard.writeText(data);
|
|
}
|
|
|
|
function setClipboardFromLookup()
|
|
{
|
|
if (window.opener.g_lastLookupAddress)
|
|
{
|
|
addTextToClipboard(window.opener.g_lastLookupAddress);
|
|
}
|
|
}
|
|
|
|
function resizeWorked()
|
|
{
|
|
workedListDiv.style.height = window.innerHeight - 63 - 6 + "px";
|
|
}
|
|
|
|
function Resize()
|
|
{
|
|
if (statBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showStatBox(true);
|
|
}
|
|
if (workedBoxDiv.style.display == "block")
|
|
{
|
|
resizeWorked();
|
|
}
|
|
if (callsignBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showCallsignBox(true);
|
|
}
|
|
if (dxccBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showDXCCsBox();
|
|
}
|
|
if (cqzoneBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showCQzoneBox();
|
|
}
|
|
if (ituzoneBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showITUzoneBox();
|
|
}
|
|
if (waswaczoneBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showWASWACzoneBox();
|
|
}
|
|
if (wpxBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showWPXBox(true);
|
|
}
|
|
if (decodeLastDiv.style.display == "block")
|
|
{
|
|
decodeLastListDiv.style.height = window.innerHeight - 63 + 26 + "px";
|
|
}
|
|
}
|
|
|
|
function reloadInfo(bandOrMode)
|
|
{
|
|
if (statBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showStatBox(false);
|
|
}
|
|
if (callsignBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showCallsignBox(false);
|
|
}
|
|
if (dxccBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showDXCCsBox();
|
|
}
|
|
if (wpxBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showWPXBox();
|
|
}
|
|
|
|
if (cqzoneBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showCQzoneBox();
|
|
}
|
|
if (ituzoneBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showITUzoneBox();
|
|
}
|
|
if (waswaczoneBoxDiv.style.display == "block")
|
|
{
|
|
window.opener.showWASWACzoneBox();
|
|
}
|
|
}
|