// 66 % average IM Rating by Sennheiser WSM // these offsets are from one to the next frequency // offset1 - offset7 can be applied reverse order to use the mirrored spacing var offset0 = 0.100 // space from left tv channel edge var offset1 = 0.400 var offset2 = 0.700 var offset3 = 1.425 var offset4 = 0.525 var offset5 = 1.200 var offset6 = 2.250 var offset7 = 1.300 var direction; var f1, f2, f3, f4, f5, f6, f7, f8; function calculateFreqs() { // clear complete table resetTable(); // check if there is a tv channel set in the cookies var channel = document.getElementById("channel").value; if (channel != "") { setCookie("channel", channel, 7); // 7 days is maximum set by safari and brave } else { var channelCookie = getCookie("channel"); if (channelCookie != null && channelCookie != "") { channel = channelCookie; document.getElementById('channel').value = channel; } else { return; } } // prove if direction for spacing is set in cookies or by radios var directionUp = document.getElementById("up").checked; var directionDown = document.getElementById("down").checked; // no radios set (reload moment) check cookie if (directionUp != true && directionDown != true) { var directionCookie = getCookie("direction"); if (directionCookie != null && directionCookie != "") { direction = directionCookie; if (direction == "up") { document.getElementById('up').checked = true; } else if (direction == "down") { document.getElementById('down').checked = true; } } else { // no cookie, no radios set - default direction up direction = 'up'; document.getElementById('up').checked = true; setCookie("direction", direction, 7); // 7 days is maximum set by safari and brave } // some radio is set } else if (directionUp == true) { direction = 'up'; setCookie("direction", direction, 7); // 7 days is maximum set by safari and brave } else if (directionDown == true) { direction = 'down'; setCookie("direction", direction, 7); // 7 days is maximum set by safari and brave } var startFrequency = channel * 8 + 302; // LTE constraints shifting startFrequency if (channel == 54) { startFrequency = 736 } else if (channel == 65) { startFrequency = 824 } // you can mirror the spaces between all frequencies - if you have to set 16 frequencies you better chose 1 set up direction and the second set down if (direction == 'up') { f1 = startFrequency + offset0; f2 = startFrequency + offset0 + offset1; f3 = startFrequency + offset0 + offset1 + offset2; f4 = startFrequency + offset0 + offset1 + offset2 + offset3; f5 = startFrequency + offset0 + offset1 + offset2 + offset3 + offset4; f6 = startFrequency + offset0 + offset1 + offset2 + offset3 + offset4 + offset5; f7 = startFrequency + offset0 + offset1 + offset2 + offset3 + offset4 + offset5 + offset6; f8 = startFrequency + offset0 + offset1 + offset2 + offset3 + offset4 + offset5 + offset6 + offset7; } else { f1 = startFrequency + offset0; f2 = startFrequency + offset0 + offset7; f3 = startFrequency + offset0 + offset7 + offset6; f4 = startFrequency + offset0 + offset7 + offset6 + offset5; f5 = startFrequency + offset0 + offset7 + offset6 + offset5 + offset4; f6 = startFrequency + offset0 + offset7 + offset6 + offset5 + offset4 + offset3; f7 = startFrequency + offset0 + offset7 + offset6 + offset5 + offset4 + offset3 + offset2; f8 = startFrequency + offset0 + offset7 + offset6 + offset5 + offset4 + offset3 + offset2 + offset1; } // LTE constraints cut end frequencies if (channel == 49 || channel == 54 || channel == 56) { switch (channel) { case '49': // because LTE constraints only lower 4 MHz usable hideFrequenciesAbove('698'); break; case '54': // because LTE constraints only upper 5 MHz usable hideFrequenciesAbove('742'); break; case '56': // because LTE constraints only lower 3 MHz usable hideFrequenciesAbove('753'); break; } } // write it with a dot and 3 fixed decimal places f1 = f1.toFixed(3); f2 = f2.toFixed(3); f3 = f3.toFixed(3); f4 = f4.toFixed(3); f5 = f5.toFixed(3); f6 = f6.toFixed(3); f7 = f7.toFixed(3); f8 = f8.toFixed(3); // write all 8 frequencies into the table document.getElementById("f1").innerText = f1 + " MHz"; document.getElementById("f2").innerText = f2 + " MHz"; document.getElementById("f3").innerText = f3 + " MHz"; document.getElementById("f4").innerText = f4 + " MHz"; document.getElementById("f5").innerText = f5 + " MHz"; document.getElementById("f6").innerText = f6 + " MHz"; document.getElementById("f7").innerText = f7 + " MHz"; document.getElementById("f8").innerText = f8 + " MHz"; // add remarks // Handgeräte mit Frequenzen zwischen 823 - 826 MHz dürfen nur mit reduzierter Sendeleistung von maximal 82 mW betrieben werden if (channel == 65) { document.getElementById("n1").innerHTML = "<small><sup><a href='#footnote1'>1</a></sup></small>"; document.getElementById("n2").innerHTML = "<small><sup><a href='#footnote1'>1</a></sup></small>"; if (direction == "up") { document.getElementById("n3").innerHTML = "<small><sup><a href='#footnote1'>1</a></sup></small>"; } } } function hideFrequenciesAbove(endFrequency) { // console.log('End frequency: ' + endFrequency); for (var i = 1; i < 9; i++) { // console.log(window["f" + i]); if (window["f" + i] > endFrequency) { document.getElementById("rf" + i).style.display = "none"; } } } function resetTable() { // show all 8 frequencies again var r1 = document.getElementById("rf1"); r1.style.display = "table-row"; var r2 = document.getElementById("rf2"); r2.style.display = "table-row"; var r3 = document.getElementById("rf3"); r3.style.display = "table-row"; var r4 = document.getElementById("rf4"); r4.style.display = "table-row"; var r5 = document.getElementById("rf5"); r5.style.display = "table-row"; var r6 = document.getElementById("rf6"); r6.style.display = "table-row"; var r7 = document.getElementById("rf7"); r7.style.display = "table-row"; var r8 = document.getElementById("rf8"); r8.style.display = "table-row"; // remove all footnotes document.getElementById("n1").innerHTML = ""; document.getElementById("n2").innerHTML = ""; document.getElementById("n3").innerHTML = ""; document.getElementById("n4").innerHTML = ""; document.getElementById("n5").innerHTML = ""; document.getElementById("n6").innerHTML = ""; document.getElementById("n7").innerHTML = ""; document.getElementById("n8").innerHTML = ""; } function enableCellPopup() { var cells = document.querySelectorAll("#f1, #f2, #f3, #f4, #f5, #f6, #f7, #f8"); for (var i = 0; i < cells.length; i++) { cells[i].addEventListener("click", function() { var text = this.innerText; text = text.replace(" MHz",""); if (text != "") { pushDialog(text); } }); } } function pushDialog(text) { var dialogText = document.getElementById('dialogText'); dialogText.innerText = text; dialog.showModal(); } function copyTable() { var urlField = document.getElementById("table"); var range = document.createRange(); range.selectNode(urlField); window.getSelection().addRange(range); document.execCommand('copy'); window.getSelection().removeAllRanges(); } function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toGMTString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } document.addEventListener('DOMContentLoaded', function() { enableCellPopup(); calculateFreqs(); });