blitzortung.php
Quell Code
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.10.2/css/all.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.10.2/css/all.css">
<style>
/* # navigation #################################### */
#nav {
display: block;
width: 100%;
background-color: #404040;
background: linear-gradient(#606060, #404040);
white-space: nowrap;
/* position: fixed; */
top: 0;
z-index: 100;
}
#nav .left_side,
#nav .right_side {
display: inline-block;
white-space: nowrap;
text-align: center;
vertical-align: middle;
line-height: 40px;
}
#nav .icon_img,
#nav .logo_img {
vertical-align: middle;
margin: 4px;
border-radius: 3px;
}
/* # logo ########################################## */
#bo_banner_left,
#bo_banner_right {
color: white;
white-space: nowrap;
font-size: 1.5em;
margin: 0px 5px;
}
#bo_banner_left {
display: inline-block;
}
#bo_banner_right {
display: none;
}
/* # menu ########################################## */
#menu_icon {
display: none;
white-space: nowrap;
margin: 0px 8px;
}
#menu_main {
display: inline-block;
white-space: nowrap;
}
#menu_main a,
#menu_main span {
display: inline-block;
color: #F6F6F6;
margin: 0px 0px;
padding: 0px 10px;
text-decoration: none;
}
#menu_main .menu_item {
display: inline-block;
}
#menu_icon .menu_item:hover .vertical,
#menu_main .menu_item:hover .vertical {
display: block;
}
#menu_icon .menu_item:hover .active,
#menu_main .menu_item:hover .active {
-webkit-user-select: none;
-webkit-touch-callout: none;
}
#menu_main .menu_item:active a,
#menu_main .menu_item:active span,
#menu_icon .menu_item .vertical a:hover,
#menu_main .menu_item .vertical a:hover {
color: #39C0E0;
}
#menu_main .menu_item:hover a,
#menu_main .menu_item:hover span,
#menu_icon .menu_item .vertical a:hover,
#menu_main .menu_item .vertical a:hover {
color: #39C0E0;
}
#menu_icon .vertical,
#menu_main .vertical {
display: none;
position: absolute;
text-align: left;
text-decoration: none;
padding: 5px 10px;
border-radius: 0px 0px 3px 3px;
background-color: #404040;
z-index: 9;
}
#menu_icon .menu_item .vertical a,
#menu_icon .menu_item .vertical .aa,
#menu_main .menu_item .vertical a,
#menu_main .menu_item .vertical .aa {
display: block;
color: white;
text-decoration: none;
margin: 0px;
padding: 0px 4px;
line-height: 1.5em;
border-radius: 0px 0px 3px 3px;
}
#menu_icon .menu_item .vertical .aa,
#menu_main .menu_item .vertical .aa {
color: #A0A0A0;
}
img.close_img {
vertical-align: top;
width: 15px;
height: 15px;
margin: 2px 0px 0px 10px;
cursor: pointer;
}
.fa,
.fb,
.fc,
.fd {
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
font-size-adjust: none;
font-stretch: normal;
font-feature-settings: normal;
font-language-override: normal;
font-kerning: auto;
font-synthesis: weight style;
font-variant: normal;
font-size: inherit;
text-rendering: auto;
-moz-osx-font-smoothing: grayscale;
transform: translate(0px, 0px);
}
.fa {
margin-right:4px;
}
.fb {
margin:0px;
}
.fc {
margin: 4px 4px 0px 4px;
}
.fd {
margin: 0px 6px 0px 6px;
}
/* # footer ######################################## */
#quick_links,
#select_language,
#social_nets {
display: inline-block;
vertical-align: top;
margin-bottom: 4px;
text-align: left;
border: 1px solid #C0C0C0;
width: 250px;
border-radius: 3px 3px 3px 3px;
}
#quick_links a,
#select_language a {
white-space: nowrap;
margin: 2px 0px 2px 4px;
padding: 2px 4px;
text-align: left;
color: #161616;
border-radius: 3px 3px 3px 3px;
}
#select_language a {
display: inline-block;
/* font-size: 12pt; */
/* width: 109px; */
}
#quick_links a {
display: block;
width: 234px;
}
#quick_links a:hover,
#select_language a:hover {
/* background-color: #808080; */
color: #39C0E0;
}
.sni_f,
.sni_t,
.sni_g,
.bot_head {
white-space: nowrap;
margin: 4px;
text-align: left;
width:242px;
}
.bot_head {
padding-left: 4px;
color: #404040;
font-weight: bold;
}
.sni_f,
.sni_t,
.sni_g {
display: inline-block;
color: white;
border-radius: 3px 3px 3px 3px;
}
.sni_f img,
.sni_t img,
.sni_g img {
padding: 4px;
border-radius: 3px 0px 0px 3px;
}
.sni_f img,
.sni_f {
background-color: #3D5E96;
}
.sni_t img,
.sni_t {
background-color: #67AEEB;
}
.sni_g img,
.sni_g {
background-color: #CC5947;
}
#social_nets a {
display: block;
}
#social_nets .sni_f:hover {
background-color: #144397;
}
#social_nets .sni_t:hover {
background-color: #1A8AED;
}
#social_nets .sni_g:hover {
background-color: #CF3618;
}
/* # main ########################################## */
body {
font-family: sans-serif;
font-size: 16px;
font-style: normal;
font-weight: normal;
line-height: 1.40;
color: black;
border: none;
background-color: #F6F6F6;
vertical-align: top;
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
}
table {border-collapse: collapse; vertical-align: top;}
tr {vertical-align: top;}
td {border: 0px; margin: 0px; padding: 0px;}
td.n10 {white-space: nowrap; margin: 0px; padding: 2px 0px 2px 10px; vertical-align: middle;}
td.n20 {white-space: nowrap; margin: 0px; padding: 2px 0px; vertical-align: middle; text-align: right;}
td.n1 {white-space: nowrap; margin: 0px; padding: 4px; vertical-align: middle;}
td.n2 {white-space: nowrap; margin: 0px; padding: 4px; vertical-align: middle; text-align: right;}
td.n3 {white-space: nowrap; margin: 0px; padding: 4px; vertical-align: middle; text-align: center;}
td.n1b {font-weight: bold; white-space: nowrap; margin: 0px; padding: 4px; vertical-align: middle;}
td.n2b {font-weight: bold; white-space: nowrap; margin: 0px; padding: 4px; vertical-align: middle; text-align: right;}
textarea {font: normal normal normal medium monospace; }
form {margin:0px; padding:0px;}
a:link {color: #0000FF; text-decoration: none;}
a:visited {color: #0000FF; text-decoration: none;}
a:hover {color: #0000FF; text-decoration: none;}
a:active {color: #0000FF; text-decoration: none;}
select,
button,
input {
font-size: 14px;
height: 26px;
background-image: none;
background-color: #eee;
border: 1px solid #ccc;
border-radius: 3px;
line-height: 1.41421356237309504880;
}
button.loop {
display: block;
margin: 3px 0px;
width: 100%;
}
select.extension {
display: inline-block;
vertical-align: middle;
}
div.select_left {
display: inline-block;
font-size: 1.2em;
margin-right: 3px;
background-color: #eee;
border: 1px solid #ccc;
border-radius: 3px;
vertical-align: middle;
text-align: right;
}
div.select_right {
display: inline-block;
font-size: 1.2em;
margin-left: 3px;
background-color: #eee;
border: 1px solid #ccc;
border-radius: 3px;
vertical-align: middle;
text-align: right;
}
img.left {display: block; float: left; margin-right: 5px; border-radius: 3px;}
img.right {display: block; float: right; margin-left: 5px; border-radius: 3px;}
img.center {display: block; margin-left: auto; margin-right: auto; border-radius: 3px;}
a.center {display: block; text-align: center;}
div.center {display: block; text-align: center;}
/* # index_0 ####################################### */
td.country_box {
cursor: pointer;
white-space: nowrap;
border: none;
border-radius: 3px;
padding: 5px;
width: 160px;
}
td.country_box a {
color: black;
}
td.country_box:hover a {
/* background-color: #E7E7E7; */
color: #39C0E0;
}
img.country_img {
vertical-align: middle;
border: 1px solid black;
width: 21px;
height: 13px;
margin-right: 4px;
}
td.date_time_box {
cursor: pointer;
white-space: nowrap;
border: none;
border-radius: 3px;
padding: 5px;
width: 160px;
}
td.gm_strike_box {
cursor: pointer;
white-space: nowrap;
padding: 5px;
}
td.strike_box,
td.strike_box_h {
cursor: pointer;
white-space: nowrap;
border: none;
border-radius: 3px;
padding: 5px;
width: 160px;
}
td.strike_box:hover {
color: #39C0E0;
}
img.strike_img {
vertical-align: middle;
width: 24px;
height: 24px;
}
.head_line {font-weight: bold; margin-bottom: 10px;}
.time_line {text-align: center; font-weight: bold;}
.a {white-space: nowrap; vertical-align: middle; font-weight: bold;}
.b {white-space: nowrap; vertical-align: middle; text-align: center; width: 10px;}
.c {white-space: nowrap; vertical-align: middle; text-align: center; padding: 4px 4px;}
.r {white-space: nowrap; vertical-align: middle; text-align: right; padding: 2px 2px;}
.l {white-space: nowrap; vertical-align: middle; text-align: left; padding: 2px 2px;}
.text_1 {display: block;}
.text_2 {display: none;}
.menu {vertical-align: middle;}
.menu:hover .text_1 {display: none;}
.menu:hover .text_2 {display: block;}
.language_flag {vertical-align: middle; border: 1px solid black;}
.social_img {border: 1px solid black; width: 14px; height: 14px; margin-left: 4px; vertical-align: middle;}
/* # index_1 ####################################### */
.google_div,
.google_div_large,
.google_div_map {
background: white;
border-width: 0px;
box-shadow: 0px 1px 4px -1px rgba(0, 0, 0, 0.3);
cursor: pointer;
font-family: Roboto, sans-serif;
font-size: 11px;
color: #565656;
font-weight: 400;
border-radius: 2px;
text-align: center;
padding: 5px;
}
.google_div:hover,
.google_div_map:hover {
background: #E7E7E7;
}
.google_div_img {
background: white;
border-width: 0px;
box-shadow: 0px 1px 4px -1px rgba(0, 0, 0, 0.3);
cursor: pointer;
padding: 3px;
border-radius: 2px;
display: block;
}
.google_div_menu {
margin-right: 10px;
margin-top: 5px;
background: white;
border-width: 0px;
box-shadow: 0px 1px 4px -1px rgba(0, 0, 0, 0.3);
cursor: pointer;
padding: 3px;
font-family: Roboto, sans-serif;
font-size: 11px;
color: black;
font-weight: 400;
border-radius: 2px;
display: none;
text-align: left;
}
.google_div_setting {
display: block;
text-align: left;
}
/*
.google_div_setting:hover .google_div_menu {
display: inline-block;
}
*/
/* # index_1 ####################################### */
.map_control {
vertical-align: top;
min-width: 160px;
}
/* # index_1 ####################################### */
.unfocus input,
.unfocus select,
.unfocus {
color: #A0A0A0;
}
/* # index_2 ####################################### */
/* Level 0 ######################################### */
div.contribution {
display: block;
white-space: normal;
vertical-align: top;
margin: 5px 0px 0px 0px;;
border-top: 1px solid #808080;
width: 100%;
}
div.contribution .head {
padding: 5px 0px;
margin: 0px;
color: #404040;
font-weight: bold;
}
div.contribution .content {
padding: 5px 0px;
margin: 0px;
color: #404040;
}
div.only_en {
padding: 5px 4px;
margin: 0px;
color: #404040;
font-size: 12px;
text-align: left;
}
/* Level 4 ######################################### */
div.deco,
img.deco {
border-radius: 3px;
margin: 4px;
}
div.shadow,
img.shadow {
box-shadow: 0px 1px 1px #808080;
border: 1px solid #808080;
}
/* Level 5 ######################################### */
#banner_right {
display: inline-block;
vertical-align: top;
}
#banner_center {
display: inline-block;
vertical-align: top;
}
/* Level 6 ######################################### */
div.map {
box-shadow: 0px 5px 10px 3px #808080;
border: 1px solid black;
width: 925px;
margin: 4px auto;
}
/* ################################################# */
@media screen and (max-width: 1300px) {
#Bild_Canvas,
#lb {
box-shadow: none;
border: none;
background-size: 100%;
background-repeat: no-repeat;
width: 100%;
}
}
#main_frame {
padding: 5px;
width: auto;
text-align: center;
white-space: nowrap;
background: white;
}
#main_frame .control_left {
display: inline-block;
text-align: left;
float: left;
}
#main_frame .gm_control_left {
display: inline-block;
text-align: left;
float: left;
}
#map {
display: inline-block;
padding: 0px 5px 5px 5px;
vertical-align: top;
}
#motd {
padding: 5px 0px;
width: 100%;
text-align: center;
}
@media screen and (max-width: 942px) {
#main_frame {
white-space: normal;
}
#main_frame .control_left {
float: none;
}
#main_frame .gm_control_left {
float: none;
display: none;
}
.map_control {
display: inline-block;
}
#banner_right {
display: none;
}
#time_line {
display: none;
}
#map {
display: block;
}
.gm-style-mtc, /* Map Steuerung Google Maps */
.google_div_large {
display: none;
}
}
@media screen and (max-width: 850px) {
#bo_banner_left,
#menu_main {
display: none;
}
#bo_banner_right,
nav div.social_nets a,
#menu_icon,
nav div.menu a {
display: inline-block;
}
.google_div,
.google_div_map {
padding: 5px;
}
}
#map-canvas {
height: 786px;
}
@media screen and (max-width: 420px) {
#map-canvas {
height: 400px;
}
#banner_center {
display: none;
}
}
</style>
<script>
document.addEventListener("touchstart", function(){}, true);
var lang= "de";
var logged_in= 0;
var cookies_check_reset= 0;
</script>
</head>
<body onload="load()">
<div style="display: table; width:100%; background-color: white; height: 100%">
<div id="nav">
<div class="left_side" style="display: inline-block;">
<div id="bo_banner_left"><img src="http://de.blitzortung.org/Menu_Images/bl.png" width="32" height="32" alt="Blitzortung.org Logo" class="logo_img">Blitzortung.org</div>
<div id="menu_icon">
<div class="menu_item">
<span style="color: #39C0E0; font-size: 2em; vertical-align: middle;"><i class="fa fa-bars" style="vertical-align: middle; margin: 4px 0px;"></i></span>
<div class="vertical" style="position: absolute; left: 0px;">
<a href="live_lightning_maps.php?map=16" style="color: #39C0E0;">Echtzeitkarten: Feste Größe</a>
<a href="live_dynamic_maps3.php?map=16" >Echtzeitkarten: Dynamische Größe</a>
<a href="http://map.blitzortung.org" target="_blank" >Echtzeitkarten: Live Lightning Vector Map</a>
<a href="historical_maps.php?map=16" >Archivdaten: Historische Karten</a>
<a href="archive_data.php?map=16" >Archivdaten: Individuelle Archivdaten</a>
<a href="whats_new.php" >Weitere Infos: Aktuelles</a>
<a href="cover_your_area.php" >Weitere Infos: Mitmachen</a>
<a href="forum.php" >Weitere Infos: Forum</a>
<div class="aa" >Projektbereich: Benutzerdaten</div>
<div class="aa" >Projektbereich: Kompendium</div>
<a href="station_list.php" >Projektbereich: Stationsliste</a>
<a href="map_generator.php" >Projektbereich: Kartengenerator</a>
<a href="login.php" ><b class="fa fa-sign-in"></b>Login</a>
</div>
</div>
</div>
</div>
<div class="right_side">
<div id="bo_banner_right"><img src="http://de.blitzortung.org/Menu_Images/bl.png" width="32" height="32" alt="Blitzortung.org Logo" class="logo_img">Blitzortung.org</div>
<div id="menu_main">
<div class="menu_item">
<span style="color: #39C0E0;"><i class="fa fa-caret-down"></i>Echtzeitkarten</span>
<div id="top0_vertical" class="vertical">
<a href="live_lightning_maps.php?map=16" style="color: #39C0E0;">Feste Größe</a>
<a href="live_dynamic_maps3.php?map=16" >Dynamische Größe</a>
<a href="http://map.blitzortung.org" target="_blank" >Live Lightning Vector Map</a>
</div>
</div>
<div class="menu_item">
<span ><b class="fa fa-caret-down"></b>Archivdaten</span>
<div class="vertical">
<a href="historical_maps.php?map=16" >Historische Karten</a>
<a href="archive_data.php?map=16" >Individuelle Archivdaten</a>
</div>
</div>
<div class="menu_item">
<span ><b class="fa fa-caret-down"></b>Weitere Infos</span>
<div class="vertical">
<a href="whats_new.php" >Aktuelles</a>
<a href="cover_your_area.php" >Mitmachen</a>
<a href="forum.php" >Forum</a>
</div>
</div>
<div class="menu_item">
<span ><b class="fa fa-caret-down"></b>Projektbereich</span>
<div class="vertical">
<div class="aa" >Benutzerdaten</div>
<div class="aa" >Kompendium</div>
<a href="station_list.php" >Stationsliste</a>
<a href="map_generator.php" >Kartengenerator</a>
</div>
</div>
<div class="menu_item">
<a href="login.php" ><b class="fa fa-sign-in"></b>Login</a>
</div>
</div>
</div>
</div>
<div id="motd" style="background-color: #F6F6F6;">Netzwerk für Blitze und Gewitter in Echtzeit - <a href="http://map.blitzortung.org" target="_blank"><i class="fa fa-external-link"></i> Live Lightning Map</a></div>
<div id="main_frame">
<div class="control_left">
<div class="map_control">
<table>
<tr><td class="country_box" style="border-top: 1px solid black;"><a href="/live_lightning_maps.php" style=""><img src="http://de.blitzortung.org/Flags/earth.png" class="country_img" alt="">Übersicht</a></td></tr>
<tr><td class="country_box" style="border-top: 1px solid black;"><a href="/live_lightning_maps.php?map=10" style=""><img src="http://de.blitzortung.org/Flags/eu.png" class="country_img" alt="">Europa</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=20" style=""><img src="http://de.blitzortung.org/Flags/au.png" class="country_img" alt="">Ozeanien</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=30" style=""><img src="http://de.blitzortung.org/Flags/us.png" class="country_img" alt="">Nordamerika</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=40" style=""><img src="http://de.blitzortung.org/Flags/as.png" class="country_img" alt="">Asien</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=50" style=""><img src="http://de.blitzortung.org/Flags/sa.png" class="country_img" alt="">Südamerika</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=60" style=""><img src="http://de.blitzortung.org/Flags/af.png" class="country_img" alt="">Afrika</a></td></tr>
</table>
</div>
<div class="map_control">
<table>
<tr><td class="country_box" style="border-top: 1px solid black;"><a href="/live_lightning_maps.php?map=11" style=""><img src="http://de.blitzortung.org/Flags/se.png" class="country_img" alt="">Skandinavien</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=12" style=""><img src="http://de.blitzortung.org/Flags/uk.png" class="country_img" alt="">UK</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=13" style=""><img src="http://de.blitzortung.org/Flags/fr.png" class="country_img" alt="">Südwesteuropa</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=14" style=""><img src="http://de.blitzortung.org/Flags/gr.png" class="country_img" alt="">Südosteuropa</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=15" style=""><img src="http://de.blitzortung.org/Flags/pl.png" class="country_img" alt="">Osteuropa</a></td></tr>
<tr><td class="country_box" style="background-color: #E7E7E7;"><a href="/live_lightning_maps.php?map=16" style="color: #39C0E0;"><img src="http://de.blitzortung.org/Flags/de.png" class="country_img" alt="">Mitteleuropa</a></td></tr>
<tr><td class="country_box" style=""><a href="/live_lightning_maps.php?map=17" style=""><img src="http://de.blitzortung.org/Flags/hu.png" class="country_img" alt="">Osteuropa</a></td></tr>
</table>
</div>
<div class="map_control">
<table>
<tr style="border-top: 1px solid black;">
<td class="strike_box" onclick="StrikesOnOff()" title="Zeichnet zusammenlaufende Kreise über den Einschlagsorten.">
<img id="Strikes" src="http://de.blitzortung.org/Menu_Images/Kreis_gray.png" class="strike_img" alt=""> Blitze
</td>
</tr>
<tr>
<td class="strike_box" onclick="DetectorsOnOff()" title="Zeichnet Linien zu den Detektoren, die den Blitz empfangen haben.">
<img id="Detectors" src="http://de.blitzortung.org/Menu_Images/Antenne_gray.png" class="strike_img" alt=""> Detektoren
</td>
</tr>
<tr>
<td class="strike_box" onclick="SoundOnOff()" title="Schaltet den Ton an bzw. aus.">
<img id="Sound" src="http://de.blitzortung.org/Menu_Images/Lautsprecher_gray.png" class="strike_img" alt=""> Ton
</td>
</tr>
<tr>
<td style="white-space: normal; text-align: center; padding: 5px 0px;">
<div id="Delay" style="background-color: #E7E7E7; font-family:monospace; font-size:12pt; border-radius: 2px"></div>
</td>
</tr>
</table>
</div>
</div>
<div id="map">
<table>
<tr>
<td style="width: 925px;">
<canvas id="Bild_Canvas" style="display: block; box-shadow: 0px 2px 2px #808080; border: 1px solid black;background-image: url('http://images.blitzortung.org/Images/image_b_de.png?t=26116196'); background-size: 100%; max-width: 925px; margin: 0px auto 20px auto; width: 100%;" width="925" height="925"></canvas>
<table id="time_line" style="width: 925px; margin: 0px auto; color: #606060;"><tr></tr></table>
</td>
<td>
</td>
</tr>
</table>
</div>
</div>
<script>
var P_Bild_url= "http://images.blitzortung.org/Images/image_b_de.png";
var P_map= "16";
var L_ac_try_to_connect= "starte<br>Verbindungsaufbau";
var L_ac_waiting= "warte auf<br>Verbindung";
var L_ac_connected= "verbunden";
var L_ac_delay= "Verzögerung";
var L_ac_s= "s";
var L_ac_disconnected= "getrennt";
</script>
<div style="width: 100%; text-align: center; background-color: #F6F6F6; color: #161616; padding-bottom: 10px;">
<div id="copy_rights" style="padding: 8px 12px;">Ein weltweites gemeinschaftsbasiertes Netzwerk zur Ortung von Gewitterblitzen in Echtzeit. © 2003-2019 Blitzortung.org Mitwirkende</div>
<div id="quick_links">
<div class="bot_head">Auf einen Klick</div>
<a href="contact.php">Wichtige Hinweise</a>
<a href="contact.php#contribution_2">Besucherzähler</a>
<a href="contact.php#contribution_3">Haftungsabgrenzung</a>
<a href="contact.php#contribution_4">Datenschutzerklärung</a>
<a href="contact.php#contribution_5">Cookies-Hinweise</a>
<a href="contact.php#contribution_6">Impressum / Kontakt</a>
<a href="contact.php#contribution_7">Projekte</a>
<a href="contact.php#contribution_8">Spenden</a>
</div>
<div id="social_nets">
<div id="select_language">
<div class="bot_head">Wählen Sie Ihre Menüsprache</div>
<a href="http://cs.blitzortung.org/live_lightning_maps.php?map=16">?eština</a><a href="http://da.blitzortung.org/live_lightning_maps.php?map=16">dansk</a><a href="http://de.blitzortung.org/live_lightning_maps.php?map=16"><span style="color: #39C0E0;">deutsch</span></a><a href="http://el.blitzortung.org/live_lightning_maps.php?map=16">????????</a><a href="http://en.blitzortung.org/live_lightning_maps.php?map=16">english</a><a href="http://es.blitzortung.org/live_lightning_maps.php?map=16">español</a><a href="http://fi.blitzortung.org/live_lightning_maps.php?map=16">suomeksi</a><a href="http://fr.blitzortung.org/live_lightning_maps.php?map=16">français</a><a href="http://hu.blitzortung.org/live_lightning_maps.php?map=16">magyar</a><a href="http://it.blitzortung.org/live_lightning_maps.php?map=16">italiano</a><a href="http://jp.blitzortung.org/live_lightning_maps.php?map=16">???</a><a href="http://lv.blitzortung.org/live_lightning_maps.php?map=16">latviski</a><a href="http://nl.blitzortung.org/live_lightning_maps.php?map=16">nederlandse</a><a href="http://nb.blitzortung.org/live_lightning_maps.php?map=16">norsk</a><a href="http://mk.blitzortung.org/live_lightning_maps.php?map=16">??????????</a><a href="http://pl.blitzortung.org/live_lightning_maps.php?map=16">polski</a><a href="http://ru.blitzortung.org/live_lightning_maps.php?map=16">???????</a><a href="http://sr.blitzortung.org/live_lightning_maps.php?map=16">??????</a><a href="http://sv.blitzortung.org/live_lightning_maps.php?map=16">svenska</a><a href="http://tr.blitzortung.org/live_lightning_maps.php?map=16">türk</a><a href="http://uk.blitzortung.org/live_lightning_maps.php?map=16">???????????</a>
<div class="only_en">Wenn Ihre Sprache noch nicht unterstützt wird und Sie die Menüsteuerung anpassen möchten, dann schreiben Sie eine E-Mail an info ? blitzortung.org.</div>
</div>
</div>
</div>
<script type="text/javascript">
var L_motd= "Netzwerk für Blitze und Gewitter in Echtzeit";
var L_copy_rights= "Ein weltweites gemeinschaftsbasiertes Netzwerk zur Ortung von Gewitterblitzen in Echtzeit. © 2003-2019 Blitzortung.org Mitwirkende";
var L_cookies_check= "Mit Ihrem Besuch auf Blitzortung.org stimmen Sie der Verwendung von Cookies für Google AdSence zu.";
</script>
<script>
function write_Cookie (name, value, days)
{
if (days > 0) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString(); }
else {
var expires = ""; }
document.cookie = name+"="+value+expires+"; path=/";
}
function read_Cookie (name)
{
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') {
c = c.substring(1,c.length); }
if (c.indexOf(nameEQ) == 0) {
return c.substring(nameEQ.length,c.length); } }
return undefined;
}
//
// Simulate PHP's date function
//
Date.prototype.format = function(format) {
var returnStr = '';
var replace = Date.replaceChars;
for (var i = 0; i < format.length; i++) {
var curChar = format.charAt(i);
if (replace[curChar]) {
returnStr += replace[curChar].call(this);
} else {
returnStr += curChar;
}
}
return returnStr;
};
Date.replaceChars = {
shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
longMonths: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
longDays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
// Day
d: function() { return (this.getDate() < 10 ? '0' : '') + this.getDate(); },
D: function() { return Date.replaceChars.shortDays[this.getDay()]; },
j: function() { return this.getDate(); },
l: function() { return Date.replaceChars.longDays[this.getDay()]; },
N: function() { return this.getDay() + 1; },
S: function() { return (this.getDate() % 10 == 1 && this.getDate() != 11 ? 'st' : (this.getDate() % 10 == 2 && this.getDate() != 12 ? 'nd' : (this.getDate() % 10 == 3 && this.getDate() != 13 ? 'rd' : 'th'))); },
w: function() { return this.getDay(); },
z: function() { return "Not Yet Supported"; },
// Week
W: function() { return "Not Yet Supported"; },
// Month
F: function() { return Date.replaceChars.longMonths[this.getMonth()]; },
m: function() { return (this.getMonth() < 9 ? '0' : '') + (this.getMonth() + 1); },
M: function() { return Date.replaceChars.shortMonths[this.getMonth()]; },
n: function() { return this.getMonth() + 1; },
t: function() { return "Not Yet Supported"; },
// Year
L: function() { return (((this.getFullYear()%4==0)&&(this.getFullYear()%100 != 0)) || (this.getFullYear()%400==0)) ? '1' : '0'; },
o: function() { return "Not Supported"; },
Y: function() { return this.getFullYear(); },
y: function() { return ('' + this.getFullYear()).substr(2); },
// Time
a: function() { return this.getHours() < 12 ? 'am' : 'pm'; },
A: function() { return this.getHours() < 12 ? 'AM' : 'PM'; },
B: function() { return "Not Yet Supported"; },
g: function() { return this.getHours() % 12 || 12; },
G: function() { return this.getHours(); },
h: function() { return ((this.getHours() % 12 || 12) < 10 ? '0' : '') + (this.getHours() % 12 || 12); },
H: function() { return (this.getHours() < 10 ? '0' : '') + this.getHours(); },
i: function() { return (this.getMinutes() < 10 ? '0' : '') + this.getMinutes(); },
s: function() { return (this.getSeconds() < 10 ? '0' : '') + this.getSeconds(); },
// Timezone
e: function() { return "Not Yet Supported"; },
I: function() { return "Not Supported"; },
O: function() { return (-this.getTimezoneOffset() < 0 ? '-' : '+') + (Math.abs(this.getTimezoneOffset() / 60) < 10 ? '0' : '') + (Math.abs(this.getTimezoneOffset() / 60)) + '00'; },
P: function() { return (-this.getTimezoneOffset() < 0 ? '-' : '+') + (Math.abs(this.getTimezoneOffset() / 60) < 10 ? '0' : '') + (Math.abs(this.getTimezoneOffset() / 60)) + ':' + (Math.abs(this.getTimezoneOffset() % 60) < 10 ? '0' : '') + (Math.abs(this.getTimezoneOffset() % 60)); },
T: function() { var m = this.getMonth(); this.setMonth(0); var result = this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/, '$1'); this.setMonth(m); return result;},
Z: function() { return -this.getTimezoneOffset() * 60; },
// Full Date/Time
c: function() { return this.format("Y-m-d") + "T" + this.format("H:i:sP"); },
r: function() { return this.toString(); },
U: function() { return this.getTime() / 1000; }
};
//
// Projections
//
function mercator_proj (lat)
{
return (Math.log(Math.tan(lat/2+Math.PI/4)));
}
function mercator_y (west,east,north,height,lat)
{
west*= Math.PI/180.0;
east*= Math.PI/180.0;
north*= Math.PI/180.0;
lat*= Math.PI/180.0;
return (parseInt(height*(mercator_proj(north)-mercator_proj(lat))/(east-west)));
}
function miller_proj (lat)
{
return 1.25*Math.log(Math.tan(lat*0.4+Math.PI/4));
}
function miller_y (west,east,north,height,lat)
{
west*= Math.PI/180.0;
east*= Math.PI/180.0;
north*= Math.PI/180.0;
lat*= Math.PI/180.0;
return (parseInt(height*(miller_proj(north)-miller_proj(lat))/(east-west)));
}
function projection_y (west,east,north,height,lat,projection)
{
west*= Math.PI/180.0;
east*= Math.PI/180.0;
north*= Math.PI/180.0;
lat*= Math.PI/180.0;
if (projection == 0) {
return (parseInt(height*(mercator_proj(north)-mercator_proj(lat))/(east-west))); }
else {
return (parseInt(height*(miller_proj(north)-miller_proj(lat))/(east-west))); }
}
function projection_x (west,east,width,lon)
{
return (parseInt(((width)*(lon-west)/(east-west))));
}
//
// audio
//
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
var audiocnt= 0;
var myAudio= new Array (
new Audio("http://de.blitzortung.org/Sounds/t1.wav"),
new Audio("http://de.blitzortung.org/Sounds/t2.wav"),
new Audio("http://de.blitzortung.org/Sounds/t3.wav"),
new Audio("http://de.blitzortung.org/Sounds/t4.wav"),
new Audio("http://de.blitzortung.org/Sounds/t5.wav"),
new Audio("http://de.blitzortung.org/Sounds/t6.wav"),
new Audio("http://de.blitzortung.org/Sounds/t7.wav"),
new Audio("http://de.blitzortung.org/Sounds/t8.wav"),
new Audio("http://de.blitzortung.org/Sounds/t9.wav"),
new Audio("http://de.blitzortung.org/Sounds/tt.wav"),
new Audio("http://de.blitzortung.org/Sounds/tv.wav")
);
for (var i=0; i< 8; i++) {
myAudio[i].muted = false;
myAudio[i].volume = 1.0;
}
function start_audio () {
var d= 80;
setInterval(function(){
if (audiocnt > 0) {
var i= audiocnt;
if (i > 8) {
i= 8;
}
audiocnt-=i;
if (isSafari) {
myAudio[10].play();
d= 80;
}
else {
myAudio[i-1].play();
}
}
}, d);
}
//
// websocket server
//
var ws_server;
if (read_Cookie ('ws_server') != undefined) {
ws_server= read_Cookie ('ws_server');
}
else {
var rnd= parseInt (Math.random()*4);
if (rnd < 1) {
ws_server= "ws.blitzortung.org:8073/";
}
else if (rnd < 2) {
ws_server= "ws.blitzortung.org:8073/";
}
else {
ws_server= "ws.blitzortung.org:8073/";
}
}
console.log(ws_server);
var ws;
var strike_line_type= 0;
if (read_Cookie ('strike_line_type') != undefined) {
strike_line_type= parseInt(read_Cookie ('strike_line_type'));
}
var test_mode= 0;
if (read_Cookie ('test_mode') != undefined) {
test_mode= parseInt(read_Cookie ('test_mode'));
}
//
// List of stations
//
var Stations;
try {
// Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
xmlHttp_stations = new XMLHttpRequest(); }
catch(e) {
try {
// MS Internet Explorer (ab v6)
xmlHttp_stations = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
try {
// MS Internet Explorer (ab v5)
xmlHttp_stations = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
xmlHttp_stations = null;
}
}
}
/*
if (xmlHttp_stations) {
xmlHttp_stations.onreadystatechange = function () {
if (xmlHttp_stations.readyState == 4) {
if (test_mode == 1) {
alert (this.status);
alert (this.responseText);
}
//Stations= JSON.parse(xmlHttp_stations.responseText);
//Stations= eval('(' + xmlHttp_stations.responseText + ')')
}
};
xmlHttp_stations.open('GET', 'http://de.blitzortung.org/Data/Public/stations.json', true);
xmlHttp_stations.send(null);
}
*/
//
// Visibility handling
//
var hidden;
var visibilityChange;
if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.mozHidden !== "undefined") {
hidden = "mozHidden";
visibilityChange = "mozvisibilitychange";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
//
// check self != top
//
if (self != top) {
top.location.href = self.location.href;
}
//
// cookies check
//
var cookies_check_silent= 10;
function motd_click ()
{
//document.getElementById("motd").innerHTML= L_motd;
document.getElementById("copy_rights").innerHTML= L_copy_rights;
write_Cookie ('cookies_checked',cookies_check_silent,365);
}
var cookies_checked= 1;
if ((parseInt(cookies_check_reset) == 0) && (read_Cookie ('cookies_checked') != undefined)) {
cookies_checked= parseInt(read_Cookie ('cookies_checked'));
cookies_checked++;
}
write_Cookie ('cookies_checked',cookies_checked,365);
if (cookies_checked < cookies_check_silent) {
// document.getElementById("motd").innerHTML= L_motd+"<br><span style=\"color: #39C0E0;\">"+L_cookies_check+"<img src=\"Menu_Images/close.png\" class=\"close_img\" onclick=\"motd_click()\" alt=\"\"></img>";
document.getElementById("copy_rights").innerHTML+= "<br><span style=\"color: #39C0E0;\">"+L_cookies_check+"<img src=\"http://de.blitzortung.org/Menu_Images/close.png\" class=\"close_img\" onclick=\"motd_click()\" alt=\"\"></img>";
}
function load(){}
start_audio ();
var maps = {
0: { "west": -180.0, "east": 180.0, "north": 90.0, "south": -90.0, "projection": 1, "width": 925, "height": 925, "strike_type": 0, "detector_type": 0 },
10: { "west": -20.0, "east": 44.0, "north": 71.5, "south": 23.1, "projection": 1, "width": 925, "height": 925, "strike_type": 0, "detector_type": 2 },
11: { "west": 0.0, "east": 35.0, "north": 71.5, "south": 48.5, "projection": 1, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
12: { "west": -15.0, "east": 7.0, "north": 60.0, "south": 47.0, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
13: { "west": -12.0, "east": 20.0, "north": 56.0, "south": 33.6, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
14: { "west": 12.0, "east": 37.0, "north": 48.0, "south": 28.5, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
15: { "west": 12.5, "east": 25.5, "north": 56.0, "south": 48.0, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
16: { "west": 2.0, "east": 18.0, "north": 55.5, "south": 45.3, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
17: { "west": 10.0, "east": 30.0, "north": 56.0, "south": 43.1, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
20: { "west": 110.0, "east": 180.0, "north": 10.0, "south": -51.6, "projection": 0, "width": 925, "height": 925, "strike_type": 0, "detector_type": 2 },
21: { "west": 156.0, "east": 186.0, "north": -25.0, "south": -48.8, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
22: { "west": 135.0, "east": 159.0, "north": -24.0, "south": -43.8, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
30: { "west": -130.0, "east": -60.0, "north": 62.5, "south": 2.3, "projection": 1, "width": 925, "height": 925, "strike_type": 0, "detector_type": 2 },
31: { "west": -108.0, "east": -92.0, "north": 38.0, "south": 24.3, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
32: { "west": -92.0, "east": -76.0, "north": 36.0, "south": 24.0, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
33: { "west": -85.0, "east": -70.0, "north": 46.0, "south": 34.5, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
34: { "west": -105.0, "east": -85.0, "north": 50.0, "south": 35.3, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
35: { "west": -127.0, "east": -105.0, "north": 45.0, "south": 27.3, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
36: { "west": -86.0, "east": -60.0, "north": 31.0, "south": 6.4, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
40: { "west": 85.0, "east": 155.0, "north": 58.0, "south": -4.5, "projection": 1, "width": 925, "height": 925, "strike_type": 0, "detector_type": 2 },
41: { "west": 125.0, "east": 148.0, "north": 46.3, "south": -5.0, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
42: { "west": 41.0, "east": 89.0, "north": 57.0, "south": 21.0, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
50: { "west": -102.0, "east": -22.0, "north": 16.0, "south": -57.0, "projection": 1, "width": 925, "height": 925, "strike_type": 0, "detector_type": 2 },
51: { "west": -84.0, "east": -63.0, "north": 16.0, "south": 28.0, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
60: { "west": -25.0, "east": 60.0, "north": 40.0, "south": -38.5, "projection": 0, "width": 925, "height": 925, "strike_type": 0, "detector_type": 2 },
61: { "west": 14.0, "east": 34.0, "north": -20.0, "south": -37.5, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 },
62: { "west": 32.0, "east": 43.0, "north": 5.5, "south": -5.5, "projection": 0, "width": 925, "height": 925, "strike_type": 1, "detector_type": 1 }
};
var map = maps [P_map];
var C_g= new Image();
C_g.src= "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/Kreis_bo.png";
var C_r= new Image();
C_r.src= "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/Kreis_gray.png";
var D_g= new Image();
D_g.src= "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/Antenne_bo.png";
var D_b= new Image();
D_b.src= "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/Antenne_blue.png";
var D_r= new Image();
D_r.src= "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/Antenne_gray.png";
var S_g= new Image();
S_g.src= "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/Lautsprecher_bo.png";
var S_r= new Image();
S_r.src= "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/Lautsprecher_gray.png";
//
//
//
var DetectorImages = new Array(new Image(),new Image(),new Image());
var DetectorImagesg = new Array(new Image(),new Image(),new Image());
var DetectorImagesr = new Array(new Image(),new Image(),new Image());
var DetectorImagesb = new Array(new Image(),new Image(),new Image());
DetectorImages [0].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d00g.png";
DetectorImages [1].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d03g.png";
DetectorImages [2].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d05g.png";
DetectorImagesg[0].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d00g.png";
DetectorImagesg[1].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d03g.png";
DetectorImagesg[2].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d05g.png";
DetectorImagesr[0].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d00r.png";
DetectorImagesr[1].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d03r.png";
DetectorImagesr[2].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d05r.png";
DetectorImagesb[0].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d00b.png";
DetectorImagesb[1].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d03b.png";
DetectorImagesb[2].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/d05b.png";
var DetectorImage = DetectorImages [map ['detector_type']];
var DetectorImageg = DetectorImages [map ['detector_type']];
var DetectorImager = DetectorImages [map ['detector_type']];
var DetectorImageb = DetectorImages [map ['detector_type']];
var StrikeImages = new Array(new Image(),new Image(),new Image(),new Image(),new Image(),new Image(),new Image(),new Image());
StrikeImages [0].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/s02.png";
StrikeImages [1].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/s03.png";
StrikeImages [2].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/s04.png";
StrikeImages [3].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/s05.png";
StrikeImages [4].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/s06.png";
StrikeImages [5].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/s07.png";
StrikeImages [6].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/s09b.png";
StrikeImages [7].src = "http://de.blitzortung.org/Menu_Images/d00g.png/Menu_Images/s99.png";
var Buffer = new Image();
var Background = document.getElementById('lb');
var Canvas = document.getElementById('Bild_Canvas');
var Context = Canvas.getContext('2d');
var Delay = document.getElementById('Delay');
var Strikes = document.getElementById('Strikes');
var Detectors = document.getElementById('Detectors');
var Sound = document.getElementById('Sound');
Delay.innerHTML = L_ac_waiting;
//
//
//
//map ['width']= Canvas.width;
//map ['height']= Canvas.height;
//
//
//
var Type = 0;
if (parseInt(P_map/10)*10 == P_map) {
Type= 1; }
var first_Strike = 0;
var display_Strikes = true;
var display_detectors= false;
var use_Sound = true;
if (read_Cookie ('display_Strikes') != undefined) {
display_Strikes= eval(read_Cookie ('display_Strikes'));
}
if (read_Cookie ('display_detectors') != undefined) {
display_detectors= eval(read_Cookie ('display_detectors'));
}
if (read_Cookie ('useSound') != undefined) {
use_Sound = eval(read_Cookie ('useSound'));
}
/****************************************************************/
/****************************************************************/
/****************************************************************/
newBackground();
setInterval(newBackground,63000);
setInterval(drawStrikes,49);
if (display_Strikes) {
Strikes.src= C_g.src;
}
else {
Strikes.src= C_r.src;
}
if (display_detectors) {
Detectors.src= D_g.src;
}
else {
Detectors.src= D_r.src;
}
if (use_Sound) {
Sound.src= S_g.src;
}
else {
Sound.src= S_r.src;
}
function loadStrikes ()
{
if ("WebSocket" in window) {
var rnd= parseInt (Math.random()*40)+50;
Delay.innerHTML = L_ac_connected;
try {
ws = new WebSocket('ws://'+ws_server+':80'+rnd);
}
catch (e) {
Delay.innerHTML = L_ac_try_to_connect;
}
ws.onopen = function()
{
var start_time= (Date.now()*1000000)-1000000000;
ws.send('{"west":'+map['west']+',"east":'+map['east']+',"north":'+map['north']+',"south":'+map['south']+'}');
};
ws.onmessage = function (evt)
{
var Strikes= eval('('+evt.data+')');
// if (isFocused != false) {
if (!(document[hidden])) {
if ( ('delay' in Strikes) &&
('time' in Strikes) &&
('lat' in Strikes) &&
('lon' in Strikes) &&
(map ['west'] <= Strikes ['lon']) &&
(Strikes ['lon'] <= map ['east']) &&
(map ['south'] <= Strikes ['lat']) &&
(Strikes ['lat'] <= map ['north']) ) {
var Image;
if (map['strike_type'] == 0) {
Image= StrikeImages[parseInt(Math.random()*6)];
}
else if (map['strike_type'] == 1) {
Image= StrikeImages[6];
}
else {
Image= StrikeImages[7];
}
var Detectors= new Array();
Detectors.next= 0;
var x= projection_x (map["west"],map["east"],map["width"],Strikes ['lon']);
var y= projection_y (map["west"],map["east"],map["north"],map["height"],Strikes ['lat'],map['projection']);
var Datum = new Date();
var Time = Datum.getTime();
first_Strike = new Strike (Context, x, y, Image, Detectors, Time, first_Strike, Strikes ['mds'], Strikes ['time'], Strikes ['status']);
if (use_Sound) {
audiocnt++;
}
var delay= Strikes ['delay'];
if (delay > 24) {
delay= 24;
}
var bgcolor='#F06060';
if (delay < 8.0) {
var bgcolor='#60F060';
}
else if (delay < 16.0) {
var bgcolor='#F0C000';
}
Delay.innerHTML = '<div style="height: 6px; background-color: '+bgcolor+'; width: '+delay*140/24+'px;"></div><div style="width: 140">'+L_ac_delay+':<br>'+Strikes ['delay']+' '+L_ac_s+'</div>';
}
if ('sig' in Strikes) {
for (var s in Strikes ['sig']) {
var x= projection_x (map["west"], map["east"], map["width"], Strikes ['sig'][s].lon);
// var x= projection_x (map["west"], map["east"], map["width"], Stations [s][1]);
var y= projection_y (map["west"], map["east"], map["north"], map["height"], Strikes ['sig'][s].lat, map['projection']);
var Detector = new Array(y, x, Strikes ['sig'][s].status);
first_Strike.Detectors.push(Detector);
if (first_Strike.Detectors.length >= 100) {
first_Strike.Detectors.shift();
}
}
}
}
if ('timeout' in Strikes) {
Delay.innerHTML = '<div style="height: 6px; width: 1px;">time out</div>';
}
};
ws.onclose = function()
{
};
}
else {
alert("WebSocket NOT supported by your Browser!"); }
}
loadStrikes ();
//
//
//
function handleVisibilityChange() {
if (document[hidden]) {
if ((!(ws === undefined))&&(ws.readyState == 1)) {
ws.send('{"send":false}');
ws.close();
Delay.innerHTML = L_ac_disconnected;
}
} else {
if ((!(ws === undefined))&&(ws.readyState == 1)) {
ws.send('{}');
}
else {
loadStrikes ();
}
}
}
document.addEventListener(visibilityChange, handleVisibilityChange, false);
function StrikesOnOff()
{
if (display_Strikes) {
Strikes.src= C_r.src;
display_Strikes= false;
}
else {
Strikes.src= C_g.src;
display_Strikes= true;
}
write_Cookie('display_Strikes', display_Strikes, 365);
}
function DetectorsOnOff()
{
if (display_detectors) {
Detectors.src= D_r.src;
display_detectors= false;
ws.send('{"sig":false}');
}
else {
Detectors.src= D_g.src;
display_detectors= true;
ws.send('{"sig":true}');
}
write_Cookie('display_detectors', display_detectors, 365);
}
function SoundOnOff()
{
if (use_Sound) {
Sound.src= S_r.src;
use_Sound= false;
}
else {
Sound.src= S_g.src;
use_Sound= true;
}
write_Cookie('useSound', use_Sound, 365);
}
function newBackground()
{
var Datum = new Date();
var Time = Datum.getTime();
var t = Math.ceil(Time/60000);
Buffer.src= P_Bild_url+'?t='+String(t++);
Buffer.onload= function () {
Canvas.style.backgroundImage= "url(" + this.src + ")";
}
}
function drawStrikes()
{
var Datum = new Date();
var Time = Datum.getTime();
Context.clearRect(0,0,Canvas.width,Canvas.height)
var s = first_Strike;
while (s != 0) {
if (s.Time > Time-60000) {
s.draw();
s= s.next;
}
else {
s.next = 0;
s = 0;
}
}
}
function Strike (Context, x, y, Image, Detectors, Time, Next, Deviation, StrikeTime, Status)
{
this.Context = Context;
this.Context.lineWidth = 1.0;
this.x = parseInt(x);
this.y = parseInt(y);
this.Image = Image;
this.Detectors = Detectors;
this.Time = Time;
this.StrikeTime = StrikeTime;
this.Status = Status;
this.next = Next;
this.deviation = Deviation;
this.cnt = 0;
this.ray_cnt = 40;
this.detector_cnt = 200;
};
Strike.prototype =
{
draw:
function()
{
var alpha1= (this.ray_cnt-this.cnt)/10;
if (alpha1 > 1) {
alpha1 = 1;
}
var alpha2= alpha1*0.7;
var alpha3= alpha1*0.2;
if (this.cnt < this.detector_cnt) {
// if ((display_detectors) && (isFocused != false)) {
if (display_detectors) {
for (var i=0; i < this.Detectors.length; i++) {
var y = this.Detectors [i][0];
var x = this.Detectors [i][1];
var s = this.Detectors [i][2];
if (this.cnt < this.ray_cnt) {
this.Context.beginPath()
this.Context.moveTo(this.x,this.y);
this.Context.lineTo(x,y);
if (strike_line_type == 0) {
if ((s&0x80) == 0) {
this.Context.strokeStyle= 'rgba(0,255,128,'+alpha2.toString()+')';
}
}
else if (strike_line_type == 1) {
if ((s&0x04) > 0) {
this.Context.strokeStyle= 'rgba(64,192,255,'+alpha2.toString()+')';
}
else if ((s&0x80) == 0) {
this.Context.strokeStyle= 'rgba(0,255,128,'+alpha2.toString()+')';
}
}
else if (strike_line_type == 2) {
if ((s&0x10) > 0) {
this.Context.strokeStyle= 'rgba(0,255,128,'+alpha2.toString()+')';
}
else if ((s&0x20) > 0) {
this.Context.strokeStyle= 'rgba(255,96,96,'+alpha2.toString()+')';
}
else if ((s&0x40) > 0) {
this.Context.strokeStyle= 'rgba(64,192,255,'+alpha2.toString()+')';
}
}
this.Context.stroke();
}
if (strike_line_type == 2) {
if ((s&0x10) > 0) {
this.Context.drawImage(DetectorImageg,parseInt(x-DetectorImageg.width/2),parseInt(y-DetectorImageg.height/2));
}
else if ((s&0x20) > 0) {
this.Context.drawImage(DetectorImager,parseInt(x-DetectorImager.width/2),parseInt(y-DetectorImager.height/2));
}
else if ((s&0x40) > 0) {
this.Context.drawImage(DetectorImageb,parseInt(x-DetectorImageb.width/2),parseInt(y-DetectorImageb.height/2));
}
}
else {
this.Context.drawImage(DetectorImageb,parseInt(x-DetectorImageb.width/2),parseInt(y-DetectorImageb.height/2));
}
}
}
// if ((display_Strikes) && (isFocused != false)) {
if (display_Strikes) {
if (this.cnt < this.ray_cnt) {
this.Context.beginPath();
this.Context.arc(this.x,this.y,this.ray_cnt-this.cnt,0,2*Math.PI,1);
if (parseInt(this.Status) == 1) {
this.Context.strokeStyle= 'rgba(255,255,0,'+alpha1.toString()+')';
this.Context.fillStyle= 'rgba(255,0,0,'+alpha3.toString()+')';
}
else if (parseInt(this.Status) == 2) {
this.Context.strokeStyle= 'rgba(0,255,255,'+alpha1.toString()+')';
this.Context.fillStyle= 'rgba(255,0,0,'+alpha3.toString()+')';
}
else if (parseInt(this.Status) == 3) {
this.Context.strokeStyle= 'rgba(255,0,255,'+alpha1.toString()+')';
this.Context.fillStyle= 'rgb(255,0,0,'+alpha3.toString()+')';
}
else {
this.Context.strokeStyle= 'rgba(255,255,255,'+alpha1.toString()+')';
this.Context.fillStyle= 'rgba(255,0,0,'+alpha3.toString()+')';
}
this.Context.stroke();
this.Context.fill();
}
}
}
// if (isFocused != false) {
// this.Context.drawImage(this.Image,parseInt(this.x-this.Image.width/2),parseInt(this.y-this.Image.height/2));
// }
if (this.cnt < this.detector_cnt) {
this.cnt++; }
},
}
</script>
</body>
</html>