1// INFOLISTEN AT: DIAGRAMM (MAP CHART) 2// Wird verwendet für Reisekosten (infolist_list_content) 3// ------------------------------------------------------------------------------------------------- 4 5// Datensammlung 6 7(function(document) { 8 var MapChartData = function($map_chart) { 9 this.$map_chart = $map_chart; 10 }; 11 12 MapChartData.prototype = { 13 init: function() { 14 var $countries = this.$map_chart.querySelectorAll('path'); 15 var country_codes = { 16 'AC': 'Ascension', 17 'AD': 'Andorra', 18 'AE': 'Vereinigte Arabische Emirate', 19 'AF': 'Afghanistan', 20 'AG': 'Antigua und Barbuda', 21 'AI': 'Anguilla', 22 'AL': 'Albanien', 23 'AM': 'Armenien', 24 'AN': 'Niederländische Antillen', 25 'AO': 'Angola', 26 'AQ': 'Antarktika', 27 'AR': 'Argentinien', 28 'AS': 'Amerikanisch-Samoa', 29 'AT': 'Ãsterreich', 30 'AU': 'Australien', 31 'AW': 'Aruba', 32 'AX': 'à land', 33 'AZ': 'Aserbaidschan', 34 'BA': 'Bosnien - Herzegowina', 35 'BB': 'Barbados', 36 'BD': 'Bangladesch', 37 'BE': 'Belgien', 38 'BF': 'Burkina Faso', 39 'BG': 'Bulgarien', 40 'BH': 'Bahrain', 41 'BI': 'Burundi', 42 'BJ': 'Benin', 43 'BL': 'Saint-Barthélemy', 44 'BM': 'Bermuda', 45 'BN': 'Brunei', 46 'BO': 'Bolivien', 47 'BQ': 'Bonaire, Sint Eustatius und Saba(Niederlande)', 48 'BR': 'Brasilien', 49 'BS': 'Bahamas', 50 'BT': 'Bhutan', 51 'BU': 'Burma (Myanmar)', 52 'BV': 'Bouvetinsel', 53 'BW': 'Botswana', 54 'BY': 'Belarus', 55 'BZ': 'Belize', 56 'CA': 'Kanada', 57 'CC': 'Kokosinseln', 58 'CD': 'Demokrat. Republik Kongo', 59 'CE': 'Europäische Gemeinschaft', 60 'CF': 'Zentralafrikanische Republik', 61 'CG': 'Republik Kongo', 62 'CH': 'Schweiz', 63 'CI': 'Côte d`lvoire', 64 'CK': 'Cookinseln', 65 'CL': 'Chile', 66 'CM': 'Kamerun', 67 'CN': 'China', 68 'CO': 'Kolumbien', 69 'CP': 'Clipperton', 70 'CR': 'Costa Rica', 71 'CS': 'Tschechoslowakei (ehemalig)', 72 'CU': 'Kuba', 73 'CV': 'Kap Verde', 74 'CW': 'Curaçao', 75 'CX': 'Weihnachtsinsel', 76 'CY': 'Zypern', 77 'CZ': 'Tschechien', 78 'DE': 'Deutschland und österreichische Zollausschlussgebiete', 79 'DG': 'Diego Garcia', 80 'DJ': 'Dschibuti', 81 'DK': 'Dänemark', 82 'DM': 'Dominica', 83 'DO': 'Dominikanische Republik', 84 'DZ': 'Algerien', 85 'EA': 'Ceuta, Melilla', 86 'EC': 'Ecuador', 87 'EE': 'Estland', 88 'EG': 'Ãgypten', 89 'EH': 'Westsahara', 90 'ER': 'Eritrea', 91 'ES': 'Spanien', 92 'ET': 'Ãthiopien', 93 'EU': 'Europäische Union', 94 'FI': 'Finnland', 95 'FJ': 'Fidschi', 96 'FK': 'Falklandinseln', 97 'FM': 'Mikronesien', 98 'FO': 'Färöer', 99 'FR': 'Frankreich', 100 'FX': 'Frankreich, France métropolitaine', 101 'GA': 'Gabun', 102 'GB': 'GroÃbritannien und Nordirland', 103 'GD': 'Grenada', 104 'GE': 'Georgien', 105 'GF': 'Französisch-Guayana', 106 'GG': 'Guernsey (Kanalinsel)', 107 'GH': 'Ghana', 108 'GI': 'Gibraltar', 109 'GL': 'Grönland', 110 'GM': 'Gambia', 111 'GN': 'Guinea', 112 'GP': 'Guadeloupe', 113 'GQ': 'Ãquatorialguinea', 114 'GR': 'Griechenland', 115 'GS': 'Südgeorgien und die Südlichen Sandwichinseln', 116 'GT': 'Guatemala', 117 'GU': 'Guam', 118 'GW': 'Guinea-Bissau', 119 'GY': 'Guyana', 120 'HK': 'Hongkong', 121 'HM': 'Heard und McDonaldinseln', 122 'HN': 'Honduras', 123 'HR': 'Kroatien', 124 'HT': 'Haiti', 125 'HU': 'Ungarn', 126 'IC': 'Kanarische Inseln', 127 'ID': 'Indonesien', 128 'IE': 'Irland', 129 'IL': 'Israel', 130 'IM': 'Insel Man', 131 'IN': 'Indien', 132 'IO': 'Britisches Territorium im Indischen Ozean', 133 'IQ': 'Irak', 134 'IR': 'Iran', 135 'IS': 'Island', 136 'IT': 'Italien', 137 'JE': 'Jersey (Kanalinsel)', 138 'JM': 'Jamaika', 139 'JO': 'Jordanien', 140 'JP': 'Japan', 141 'KE': 'Kenia', 142 'KG': 'Kirgisistan', 143 'KH': 'Kambodscha', 144 'KI': 'Kiribati', 145 'KM': 'Komoren', 146 'KN': 'St. Kitts und Nevis', 147 'KP': 'Korea, Demokratische Volksrepublik', 148 'KR': 'Korea, Republik', 149 'KW': 'Kuwait', 150 'KY': 'Kaimaninseln', 151 'KZ': 'Kasachstan', 152 'LA': 'Laos', 153 'LB': 'Libanon', 154 'LC': 'St. Lucia', 155 'LI': 'Liechtenstein', 156 'LK': 'Sri Lanka', 157 'LR': 'Liberia', 158 'LS': 'Lesotho', 159 'LT': 'Litauen', 160 'LU': 'Luxemburg', 161 'LV': 'Lettland', 162 'LY': 'Libyen', 163 'MA': 'Marokko', 164 'MC': 'Monaco', 165 'MD': 'Moldawien (Republik Moldau)', 166 'ME': '"Jugoslawien"',
167 'MF': 'Saint-Martin (franz. Teil)', 168 'MG': 'Madagaskar', 169 'MH': 'Marshallinseln', 170 'MK': 'Mazedonien, ehem. jugoslawische Republik', 171 'ML': 'Mali', 172 'MM': 'Myanmar', 173 'MN': 'Mongolei', 174 'MO': 'Macao', 175 'MP': 'Nördliche Marianen', 176 'MQ': 'Martinique', 177 'MR': 'Mauretanien', 178 'MS': 'Montserrat', 179 'MT': 'Malta', 180 'MU': 'Mauritius', 181 'MV': 'Malediven', 182 'MW': 'Malawi', 183 'MX': 'Mexiko', 184 'MY': 'Malaysia', 185 'MZ': 'Mosambik', 186 'NA': 'Namibia', 187 'NC': 'Neukaledonien', 188 'NE': 'Niger', 189 'NF': 'Norfolkinsel', 190 'NG': 'Nigeria', 191 'NI': 'Nicaragua', 192 'NL': 'Niederlande', 193 'NO': 'Norwegen', 194 'NP': 'Nepal', 195 'NR': 'Nauru', 196 'NT': 'Neutrale Zone', 197 'NU': 'Niue', 198 'NZ': 'Neuseeland', 199 'OM': 'Oman', 200 'PA': 'Panama', 201 'PE': 'Peru', 202 'PF': 'Französisch-Polynesien', 203 'PG': 'Papua-Neuguinea', 204 'PH': 'Philippinen', 205 'PK': 'Pakistan', 206 'PL': 'Polen', 207 'PM': 'Saint-Pierre und Miquelon', 208 'PN': 'Pitcairninseln', 209 'PR': 'Puerto Rico', 210 'PS': 'Palästinensische Autonomiegebiete', 211 'PT': 'Portugal', 212 'PW': 'Palau', 213 'PY': 'Paraguay', 214 'QA': 'Katar', 215 'RE': 'Réunion', 216 'RO': 'Rumänien', 217 'RS': '"Jugoslawien"', 218 'RU': 'Russische Föderation', 219 'RW': 'Ruanda', 220 'SA': 'Saudi-Arabien', 221 'SB': 'Salomonen', 222 'SC': 'Seychellen', 223 'SD': 'Sudan', 224 'SE': 'Schweden', 225 'SG': 'Singapur', 226 'SH': 'St. Helena', 227 'SI': 'Slowenien', 228 'SJ': 'Svalbard und Jan Mayen', 229 'SK': 'Slowakei', 230 'SL': 'Sierra Leone', 231 'SM': 'San Marino', 232 'SN': 'Senegal', 233 'SO': 'Somalia', 234 'SR': 'Suriname', 235 'SS': 'Südsudan', 236 'ST': 'São Tomé und PrÃncipe', 237 'SU': 'UdSSR (jetzt: Russische Föderation)', 238 'SV': 'El Salvador', 239 'SX': 'Sint Maarten (niederl. Teil)', 240 'SY': 'Syrien', 241 'SZ': 'Swasiland', 242 'TA': 'Tristan da Cunha (verwaltet von St. Helena, reserviert für UPU)', 243 'TC': 'Turks- und Caicosinseln', 244 'TD': 'Tschad', 245 'TF': 'Französische Süd- und Antarktisgebiete', 246 'TG': 'Togo', 247 'TH': 'Thailand', 248 'TJ': 'Tadschikistan', 249 'TK': 'Tokelau', 250 'TL': 'Osttimor (Timor-Leste)', 251 'TM': 'Turkmenistan', 252 'TN': 'Tunesien', 253 'TO': 'Tonga', 254 'TR': 'Türkei', 255 'TT': 'Trinidad und Tobago', 256 'TV': 'Tuvalu', 257 'TW': 'Taiwan', 258 'TZ': 'Tansania', 259 'UA': 'Ukraine', 260 'UG': 'Uganda', 261 'UM': 'United States Minor Outlying Islands', 262 'US': 'USA', 263 'UY': 'Uruguay', 264 'UZ': 'Usbekistan',
265 'VA': 'Vatikanstadt', 266 'VC': 'St. Vincent und die Grenadinen', 267 'VE': 'Venezuela', 268 'VG': 'Britische Jungferninseln', 269 'VI': 'Amerikanische Jungferninseln', 270 'VN': 'Vietnam', 271 'VU': 'Vanuatu', 272 'WF': 'Wallis und Futuna', 273 'WS': 'Samoa', 274 'YE': 'Jemen', 275 'YT': 'Mayotte', 276 'YU': '"Jugoslawien"', 277 'ZA': 'Südafrika', 278 'ZM': 'Sambia', 279 'ZR': 'Zaire (jetzt Demokratische Republik Kongo)', 280 'ZW': 'Simbabwe' 281 }; 282 283 var $sections = document.querySelectorAll('.infolist_section table tbody tr'), 284 costs_by_country_name = {}, 285 country_codes_by_name = {}, 286 parent_country; 287 288 for (var code in country_codes) { 289 if (country_codes.hasOwnProperty(code)) { 290 country_codes_by_name[country_codes[code]] = code; 291 } 292 } 293 294 for (var i = 0; i < $sections.length; i++) { 295 var tds = $sections[i].children, 296 country = '', 297 daily_fee, 298 nightly_fee; 299 300 301 if (tds.length > 2) { // Tabellenzeile hat 3 Spalten mit Land, Tag- und Nachtgeld 302 country = tds[0].textContent; 303 daily_fee = tds[1].textContent; 304 nightly_fee = tds[2].textContent; 305
306 if (country in country_codes_by_name) { 307 parent_country = country; 308 309 costs_by_country_name[country] = { 310 'additional_values' : '', 311 'daily_fee' : daily_fee, 312 'nightly_fee' : nightly_fee, 313 'total' : parseInt(parseInt(daily_fee.split('â¬')[1], 10) + parseInt(nightly_fee.split('â¬')[1], 10)) 314 }; 315 } 316 else if (country[0] === '-' && parent_country) { 317 var additional_values = '<br>' + '<strong>' + country + '</strong><br>Tagesgebühr: ' + daily_fee + '<br>Nachtgebühr: ' + nightly_fee; 318 costs_by_country_name[parent_country].additional_values += additional_values; 319 } 320 } 321 } 322 323 for (var h = 0; h < $countries.length; h++) { 324 if (costs_by_country_name[country_codes[$countries[h].getAttribute('id')]]) { 325 $countries[h].country_name = country_codes[$countries[h].getAttribute('id')]; 326 $countries[h].costs = costs_by_country_name[$countries[h].country_name]; 327 } 328 } 329 } 330 }; 331 332 var $map_chart = document.getElementById('map_chart'); 333 334 if ($map_chart) { 335 new MapChartData($map_chart).init(); 336 } 337})(document); 338 339// User-Interface 340 341(function(document) { 342 var MapChart = function($map_chart) { 343 344 var _this = this; 345 _this.$map_chart = $map_chart; 346 _this.$map_chart_image = _this.$map_chart.querySelector('svg'); 347 _this.$zoom_in = _this.$map_chart.querySelector('.zoom_in'); 348 _this.$zoom_out = _this.$map_chart.querySelector('.zoom_out'); 349 _this.$drag_area = _this.$map_chart.querySelector('.drag_area'); 350 _this.$countries = _this.$map_chart.querySelectorAll('path'); 351 _this.$output = _this.$map_chart.querySelector('.output'); 352 _this.$touch_info = _this.$map_chart.querySelector('.touch_info'); 353 _this.$switch_view = document.querySelector('.switch_view'); 354 _this.$infolist_section = document.querySelectorAll('.infolist_section'); 355 _this.zoom = 1.00; 356 _this.zoom_increase = 1.3; 357 _this.min_zoom = 1; 358 _this.max_zoom = 10; 359 _this.x_offset = 0; 360 _this.y_offset = 0; 361 _this.start_event; 362 _this.old_event; 363 }; 364 365 MapChart.prototype = { 366 367 init: function() { 368 var _this = this; 369 370 _this.$zoom_in.addEventListener('click', function(event) { // Zoom-In-Button: Click 371 _this._zoom_in(event); 372 }); 373 374 _this.$zoom_in.addEventListener('touchstart', function(event) { // Zoom-In-Button: Touch 375 _this._zoom_in(event); 376 }); 377 378 _this.$zoom_out.addEventListener('click', function(event) { // Zoom-Out-Button: Click 379 _this._zoom_out(event); 380 }); 381 382 _this.$zoom_out.addEventListener('touchstart', function(event) { // Zoom-Out-Button: Touch 383 _this._zoom_out(event); 384 }); 385 386 _this.$map_chart.addEventListener('mousedown', function(event) { // Start moving map with mousedown 387 event.preventDefault(); 388 _this.old_event = event; 389 _this.$drag_area.classList.add('visible'); 390 391 _this.$drag_area.addEventListener('mousemove', function(event) { 392 _this._drag(event, _this); 393 }); 394 }, false); 395 396 document.addEventListener('mouseup', function() { // End moving map (with mouseup) 397 _this.$drag_area.classList.remove('visible'); 398 399 _this.$drag_area.removeEventListener('mousemove', function(event) { 400 _this._drag(event); 401 }); 402 }, false); 403 404 document.addEventListener('resize', function() { 405 _this.$output.classList.remove('show'); 406 }, false); 407 408 // Scrollen in Karte mittels touch 409 _this.$map_chart.addEventListener('touchstart', function(event) { // Start moving map on touch-device 410 if (!event.touches || event.touches.length > 1) { 411 event.preventDefault(); 412 } 413 414 _this.old_event = event; 415 _this.start_event = event; 416 _this.$drag_area.classList.remove('visible'); 417 418 _this.$map_chart.addEventListener('touchmove', function(event) { // Moving map on touch-device 419 _this._drag(event); 420 }); 421 }, false); 422 423 _this.$map_chart.addEventListener('touchend', function() { // End moving map on touch-device 424 _this.$touch_info.classList.add('hideme'); 425 }, false); 426 427 _this.$switch_view.addEventListener('click', function(event) { // Switch between table-view and map-view 428 event.preventDefault(); 429 var i; 430 431 if (this.classList.contains('data')) { 432 _this.$map_chart.classList.remove('hideme'); 433 434 for (i = 0; i < _this.$infolist_section.length; i++) { 435 _this.$infolist_section[i].classList.add('visible_for_screen_reader'); 436 } 437 438 this.classList.remove('data'); 439 this.querySelector('.text').innerHTML = 'zur Tabellenansicht'; 440 } 441 else { 442 _this.$map_chart.classList.add('hideme'); 443 444 for (i = 0; i < _this.$infolist_section.length; i++) { 445 _this.$infolist_section[i].classList.remove('visible_for_screen_reader'); 446 } 447 448 this.classList.add('data'); 449 this.querySelector('.text').innerHTML = 'zur grafischen Ansicht'; 450 } 451 }, false); 452 453 _this._setup_map_chart(); 454 }, 455 456 _zoom_in: function(event) { 457 event.preventDefault(); 458 var _this = this; 459 460 _this.$map_chart_image.style.transition = 'transform 0.2s'; 461 _this.$map_chart_image.addEventListener('transitionend', function() {
462 this.style.transition = 'none'; 463 }, false); 464 465 if (_this.zoom <= _this.max_zoom) { 466 _this.zoom = _this.zoom * _this.zoom_increase; 467 _this._update_map_chart(); 468 } 469 }, 470 471 _zoom_out: function(event) { 472 event.preventDefault(); 473 var _this = this; 474 475 _this.$map_chart_image.style.transition = 'transform 0.2s'; 476 _this.$map_chart_image.addEventListener('transitionend', function() { 477 this.style.transition = 'none'; 478 }, false); 479 480 if (_this.zoom > _this.min_zoom) { 481 _this.zoom = _this.zoom / _this.zoom_increase; 482 _this._update_map_chart(); 483 } 484 }, 485 486 _proof_zoom: function() { // checks zoom-parameters 487 var _this = this; 488 489 if (_this.zoom <= _this.min_zoom) { 490 _this.zoom = _this.min_zoom; 491 _this.$zoom_out.classList.add('disabled'); 492 _this.x_offset = 0; 493 _this.y_offset = 0; 494 } 495 else { 496 _this.$zoom_in.classList.remove('disabled'); 497 } 498 499 if (_this.zoom >= _this.max_zoom) { 500 _this.zoom = _this.max_zoom; 501 _this.$zoom_in.classList.add('disabled'); 502 } 503 else if (_this.zoom > _this.min_zoom) { 504 _this.$zoom_out.classList.remove('disabled'); 505 } 506 }, 507 508 _proof_offest: function() { // Checks, if map is in frame 509 var _this = this; 510 511 if (_this.x_offset > 70 * _this.zoom) { 512 _this.x_offset = 70 * _this.zoom; 513 } 514 515 if (_this.x_offset < -70 * _this.zoom) { 516 _this.x_offset = -70 * _this.zoom; 517 } 518 519 if (_this.y_offset > 45 * _this.zoom) { 520 _this.y_offset = 45 * _this.zoom; 521 } 522 523 if (_this.y_offset < -45 * _this.zoom) { 524 _this.y_offset = -45 * _this.zoom; 525 } 526 }, 527 528 _update_map_chart: function() { 529 var _this = this; 530 531 _this._proof_offest(); 532 _this._proof_zoom(); 533 _this.$map_chart_image.style.transform = 'scale(' + _this.zoom + ') translateX(' + _this.x_offset + 'px) translateY(' + _this.y_offset + 'px)'; 534 _this.$map_chart_image.style.WebkitTransform = 'scale(' + _this.zoom + ') translateX(' + _this.x_offset + 'px) translateY(' + _this.y_offset + 'px)'; 535 _this.$map_chart_image.style.msTransform = 'scale(' + _this.zoom + ') translateX(' + _this.x_offset + 'px) translateY(' + _this.y_offset + 'px)'; 536 }, 537 538 _convert_event: function(event) { 539 var result; 540 541 if (event.changedTouches) { 542 result = { 543 x:event.changedTouches[0].pageX, 544 y:event.changedTouches[0].pageY 545 }; 546 } else { 547 result = { 548 x:event.pageX, 549 y:event.pageY 550 }; 551 } 552 553 return result; 554 }, 555 556 _calc_offset_for_drag: function(event) { 557 var _this = this; 558 559 _this.x_offset = _this.x_offset + (-_this._convert_event(_this.old_event)['x'] + _this._convert_event(event)['x']) / _this.zoom; 560 _this.y_offset = _this.y_offset + (-_this._convert_event(_this.old_event)['y'] + _this._convert_event(event)['y']) / _this.zoom; 561 }, 562 563 _drag: function(event) { 564 event.preventDefault(); 565 var _this = this; 566 567 if (event.touches) { // Touch 568 if (event.touches.length <= 1) { // 1 Finger 569 _this.$touch_info.classList.remove('hideme'); 570 _this.$output.classList.remove('show'); 571 } 572 else { // > 1 Finger 573 _this._manage_touch_interaction(event); 574 _this.$output.classList.remove('show'); 575 } 576 } 577 else { // Mouse 578 _this._calc_offset_for_drag(event); 579 } 580 581 _this._update_map_chart(); 582 _this.old_event = event; 583 }, 584 585 _manage_touch_interaction: function(event) { 586 var _this = this, 587 hypotenuse_now = Math.sqrt(Math.pow(event.touches[0].pageX - event.touches[1].pageX, 2) + 588 Math.pow(event.touches[0].pageY - event.touches[1].pageY, 2)), 589 hypotenuse_start = Math.sqrt(Math.pow(_this.start_event.touches[0].pageX - _this.start_event.touches[1].pageX, 2) + 590 Math.pow(_this.start_event.touches[0].pageY - _this.start_event.touches[1].pageY, 2)); 591 592 if (hypotenuse_now < 40) { 593 _this._calc_offset_for_drag(event); 594 return; 595 } 596 597 if (hypotenuse_now > hypotenuse_start - 30 && Math.abs(event.touches[0].pageX - event.touches[1].pageX) < Math.abs(_this.start_event.touches[0].pageX - _this.start_event.touches[1].pageX) + 30) { 598 _this._calc_offset_for_drag(event); 599 return; 600 } 601 602 if (hypotenuse_now > hypotenuse_start - 30 && Math.abs(event.touches[0].pageY - event.touches[1].pageY) < Math.abs(_this.start_event.touches[0].pageY - _this.start_event.touches[1].pageY) + 30) { 603 _this._calc_offset_for_drag(event); 604 return; 605 } 606 if (hypotenuse_now > 400) { 607 hypotenuse_now = 400; 608 } 609 610 if (hypotenuse_now < hypotenuse_start) { 611 hypotenuse_now = -hypotenuse_now; 612 } 613 614 _this.zoom = _this.zoom + hypotenuse_now / 50000; 615 }, 616 617 _setup_map_chart: function() { // set styling and classes 618 var _this = this; 619 620 for (var i = 0; i < _this.$countries.length; i++) { 621 var $country = _this.$countries[i]; 622 623 $country.style.removeProperty('fill'); 624 625 if ($country.costs && $country.costs['total']) { 626 627 // IE11-Fallback (don't likes classList.add on
627svgs) 628 $country.setAttribute('class', 'hasData'); 629 $country.style.fillOpacity = ($country.costs['total'] - 20) / 100; 630 631 $country.addEventListener('mousemove', function(event) { // Infobox moves with mouse 632 _this._show_output(event); 633 }); 634 635 $country.addEventListener('mouseleave', function() { 636 this.style.fillOpacity = (this.costs['total'] - 20) / 100; 637 }, false); 638 639 _this.$map_chart.addEventListener('mouseleave', function() { 640 _this.$output.classList.remove('show'); 641 }, false); 642 643 $country.addEventListener('touchstart', function(event) { 644 _this._show_output(event); 645 }, false); 646 647 } 648 else { 649 $country.setAttribute('class', 'noData'); 650 } 651 } 652 }, 653 654 _show_output: function(event) { // Shows country-information-box 655 var _this = this, 656 $country = event.target, 657 offsetTop = _this.$map_chart.offsetTop + _this.$map_chart.offsetParent.offsetTop, 658 offsetLeft = _this.$map_chart.offsetLeft + _this.$map_chart.offsetParent.offsetLeft; 659 660 _this.$output.innerHTML = '<strong>' + $country.country_name + '</strong><br>Tagesgebühr: ' + $country.costs['daily_fee'] + '<br>Nachtgebühr: ' + $country.costs['nightly_fee'] + $country.costs['additional_values']; 661 662 if (_this._convert_event(event)['x'] + _this.$output.offsetWidth > _this.$map_chart.offsetWidth + offsetLeft - 15) { 663 _this.$output.style.left = _this.$map_chart.offsetWidth - _this.$output.offsetWidth - 15 + 'px'; 664 } 665 else { 666 _this.$output.style.left = _this._convert_event(event)['x'] - offsetLeft + 15 + 'px'; 667 } 668 669 _this.$output.style.top = _this._convert_event(event)['y'] - offsetTop + 15 + 'px'; 670 _this.$output.classList.add('show'); 671 $country.style.fillOpacity = ($country.costs['total'] - 20) / 100 + 0.3; 672 673 } 674 }; 675 676 var $map_chart = document.getElementById('map_chart'); 677 678 if ($map_chart) { 679 new MapChart($map_chart).init(); 680 } 681})(document);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.