PageSourceSearch

https://seorch.de/keywordmonitor/js/util_de.js

js seorch.de collected 2026-10-04 00:16:26 UTC 31,618 bytes, 1,159 lines download raw bytes

1var SKWM = {};
2
3SKWM = {
4
5  pdfloader: '<img src="//seorch.net/gfx/ajax-loader-pdf.gif" alt="rendering" />',
6  pdfdownload: '<img src="//seorch.net/gfx/pdf-download.png" alt="download" />',
7  pdfdownloaderror: '<img src="//seorch.net/gfx/pdf-download-error.png" alt="error" />',
8  ajaxloader: '<img src="//seorch.net/gfx/ajax-loader.svg" alt="loading" style="display:block; margin: 0 auto;" />',
9  ajaxloadermini: '<img class="ctaminiloader" src="//seorch.net/gfx/ajax-loader-mini.gif" alt="loading" />',
10  rankingsUp: 0,
11  rankingsDown: 0,
12  rankingsEqual: 0,
13  rankingsNew: 0,
14
15
16  init: function() {
17
18    this.rankNew   = $('#skwm_ranknew');
19    this.rankUp    = $('#skwm_rankup');
20    this.rankEqual = $('#skwm_rankequal');
21    this.rankDown  = $('#skwm_rankdown');
22
23  },
24
25
26  urlmonitor: function () {
27
28    if ($(".difftable")) {
29      $("#selectall").change(function(){
30        $(".removekeyword").prop('checked', $(this).prop("checked"));
31      });      
32    }
33
34  },
35
36
37  niceForms: function () {
38
39    $('.formsection').each(function() {
40
41      var label = $(this).children("label");
42      var input = $(this).children("textarea");
43
44      if (input.val() !== '') {
45        input = $(this).children("input");
46      }
47
48      label.click(function() {
49         input.focus();
50      });
51
52      SKWM.niceFormshideLabel(input, label);
53
54      input.bind('keyup change click', function() {
55        SKWM.niceFormshideLabel(input, label);
56      });
57    });
58
59  },
60
61
62  niceFormshideLabel: function (input, label) {
63
64    if (input.val() !== '') {
65      label.addClass('hidden');
66     } else {
67      label.removeClass('hidden');
68     }
69
70  },
71
72
73  targetBlank: function() {
74
75    var externalLinks = $('a[rel="external"]');
76
77    externalLinks.each(function(i) {
78      $(this).attr('target', '_blank');
79    });
80
81  },
82
83
84  calcRankingDelta: function(row) {
85
86    var shittySelector = $('tr>td:nth-child(4)>.kw-posneg');
87
88    shittySelector.each(function() {
89
90      attributeValue = $(this).attr('alt');
91
92      if (attributeValue === 'up') {
93        SKWM.rankingsUp = SKWM.rankingsUp + 1;
94      } else if (attributeValue === 'down') {
95        SKWM.rankingsDown = SKWM.rankingsDown + 1;
96      } else if (attributeValue === 'equal') {
97        SKWM.rankingsEqual = SKWM.rankingsEqual + 1;
98      } else {
99        SKWM.rankingsNew = SKWM.rankingsNew + 1;
100      }
101
102    });
103
104    //render
105    this.rankNew.html(SKWM.rankingsNew);
106    this.rankUp.html(SKWM.rankingsUp);
107    this.rankEqual.html(SKWM.rankingsEqual);
108    this.rankDown.html(SKWM.rankingsDown);
109
110  },
111
112
113  pieChartTable: function() {
114
115    $('.toggle').click(function(){
116      $(this).next().toggle();
117    });
118
119  },
120
121
122  pieChart: function(elem, pieSeries1, pieDesc1) {
123
124    var elen = document.getElementById(elem);
125
126    if (elen) {
127
128      Highcharts.chart(elen, {
129          chart: {
130              plotBackgroundColor: null,
131              plotBorderWidth: 0,
132              plotShadow: false
133          },
134          credits: {enabled: false},
135          title: {
136              text: pieDesc1,
137              align: 'center',
138              verticalAlign: 'middle',
139              y: -10,
140              style: {
141                  fontSize: '1.3em'
142              }
143          },
144          tooltip: {pointFormat: '<b>{point.percentage:.1f}%</b>'},
145          accessibility: {point: {valueSuffix: '%'}},
146          plotOptions: {
147              pie: {
148                  dataLabels: {
149                      enabled: true,
150                      distance: -50,
151                      style: {fontWeight: 'bold', color: 'white', fontSize: '.9em'}
152                  },
153                  center: ['50%', '50%'],
154                  size: '100%'
155              }
156          },
157          exporting: {
158            buttons: {contextButton: { menuItems: ['downloadPNG', 'downloadJPEG', 'downloadSVG', 'downloadPDF'] }}
159          },          
160          series: pieSeries1
161      });
162
163    }
164
165  },
166
167  lineChart: function() {
168
169    var elen = document.getElementById('linechart');
170
171    if (elen) {
172
173      elen.innerHTML = this.ajaxloader;
174
175      var kw        = elen.getAttribute('data-keyword');
176      var domain    = elen.getAttribute('data-url');
177      var lang      = elen.getAttribute('data-lang');
178      var loc       = elen.getAttribute('data-loc');
179      var timeframe = elen.getAttribute('data-timeframe');
180
181      $.getJSON( SKWM.domain+"linechart.json", { kw: kw, url: domain, lang: lang, loc: loc, timeframe: timeframe } )
182      
183        .done(function(json) {
184
185          var chart = json.charts;
186          var series_data = new Array();
187          var i = 0;
188
189          if (chart !== null) {
190            chart.forEach(function(entry) {
191              var entries = JSON.parse('[' + entry.series + ']');
192              series_data[i] = {visible: true, name: entry.name, yAxis: 0, data: entries};
193              i++;
194            });            
195          }
196
197          let kw_out = kw.replace('+', ' ');
198
199          Highcharts.chart('linechart', {
200            chart:  {type: 'spline'},
201            yAxis:  [{type: 'logarithmic', startOnTick: false, endOnTick: false, min:1, max:100, minRange:1, labels: {formatter: function () {if (this.value  == 0) { return 1 } else { return this.value };}}, alternateGridColor: '#f8f8f8', title: { text: 'POSITION' }, reversed: true, minorTickInterval: 0.5}],
202            xAxis:  {categories: json.categories, reversed: true},              
203            title:  {text: 'Rankings: ' + kw_out, align: 'center'},
204            credits: {enabled: false},
205            tooltip: {shared: true, pointFormat: '<span style="color:{point.color}">-</span> {series.name}: <b>{point.y}</b><br/>'},
206            plotOptions: {
207              series: {
208                  marker: { fillColor: '#FFFFFF', lineWidth: 1, radius: 3, lineColor: null },
209                }
210            },
211            series: series_data,
212            exporting: {
213              buttons: {
214                  contextButton: { menuItems: ['downloadPNG', 'downloadJPEG', 'downloadSVG', 'downloadPDF'] }
215              }
216            },
217            lang: {
218                noData: 'Aus den letzten drei Monaten sind keine Rankings vorhanden!'
219            },
220            responsive: {
221              rules: [{
222                  condition: { maxWidth: 1500 },
223                  chartOptions: { legend: { layout: 'horizontal', align: 'center', verticalAlign: 'bottom' } }
224              }]
225            }
226          });
227
228        })
229        .fail(function( jqxhr, textStatus, error ) {
230          var err = textStatus + ", " + error;
231      });
232
233    }
234
235  },
236
237
238  lineChartVisibility: function() {
239
240    var elen = document.getElementById('vischart-first');
241
242    if (elen) {
243      
244      document.getElementById('vischart-second').innerHTML = this.ajaxloader;
245
246      elen.innerHTML = this.ajaxloader;
247
248      var domain    = elen.getAttribute('data-url');
249      var lang      = elen.getAttribute('data-lang');
250      var loc       = elen.getAttribute('data-loc');
251      var timeframe = elen.getAttribute('data-timeframe');
252
253      $.getJSON( SKWM.domain+"linechart-visibility.json", { url: domain, lang: lang, loc: loc, timeframe: timeframe } )
254      
255        .done(function(json) {
256
257          SKWM.HighChartAllInverse('vischart-first', json.first, false);
258          SKWM.HighChartAllInverse('vischart-second', json.second, false);
259
260        })
261        .fail(function( jqxhr, textStatus, error ) {
262          var err = textStatus + ", " + error;
263      });
264
265    }
266
267  },
268
269  lineChartAll: function() {
270
271    var elen = document.getElementById('linechart-first');
272
273    if (elen) {
274
275      elen.innerHTML = this.ajaxloader;
276      document.getElementById('linechart-second').innerHTML = this.ajaxloader;
277      document.getElementById('linechart-third').innerHTML = this.ajaxloader;
278
279      var domain    = elen.getAttribute('data-url');
280      var lang      = elen.getAttribute('data-lang');
281      var loc       = elen.getAttribute('data-loc');
282      var timeframe = elen.getAttribute('data-timeframe');
283
284      $.getJSON( SKWM.domain+"linechart-all.json", { url: domain, lang: lang, loc: loc, timeframe: timeframe } )
285      
286        .done(function(json) {
287
288          SKWM.HighChartAllInverse('linechart-first', json.first, true);
289          SKWM.HighChartAllNormal('linechart-second', json.second, 'Keywords die mehr als 20 Plätze gewonnen haben');
290          SKWM.HighChartAllNormal('linechart-third', json.third, 'Keywords die mehr als 20 Plätze verloren haben');
291
292        })
293        .fail(function( jqxhr, textStatus, error ) {
294          var err = textStatus + ", " + error;
295      });
296
297    }
298
299  },
300
301  HighChartAllInverse: function(elem, json, inverse) {
302
303    var chart = json.charts;
304    var series_data = new Array();
305    var i = 0;
306
307    chart.forEach(function(entry) {
308      var entries = JSON.parse('[' + entry.series + ']');
309      series_data[i] = {visible: true, name: entry.name, yAxis: 0, data: entries};
310      i++;
311    });
312
313    Highcharts.chart(elem, {
314      chart:  {type: 'spline'},
315      yAxis:  [{type: 'linear', tickInterval:5, labels: {formatter: function () {if (this.value  == 0) { return 1 } else { return this.value };}}, alternateGridColor: '#f8f8f8',  title: { text: json.yaxis }, reversed: false}],
316      xAxis:  {categories: json.categories, reversed: inverse},              
317      title:  {text: json.title, align: 'center'},
318      credits: {enabled: false},
319      tooltip: {shared: true, pointFormat: '<span style="color:{point.color}">-</span> {series.name}: <b>{point.y}</b><br/>'},
320      plotOptions: {
321        series: {
322            marker: { fillColor: '#FFFFFF', lineWidth: 1, radius: 3, lineColor: null }
323          }
324      },
325      series: series_data,
326      exporting: {
327        buttons: {
328            contextButton: { menuItems: ['downloadPNG', 'downloadJPEG', 'downloadSVG', 'downloadPDF'] }
329        }
330      },
331      responsive: {
332        rules: [{
333            condition: { maxWidth: 1500 },
334            chartOptions: { legend: { layout: 'horizontal', align: 'center', verticalAlign: 'bottom' } }
335        }]
336      }
337    });
338
339  },
340
341
342  HighChartAllNormal: function(elem, json, title) {
343
344    var chart = json.charts;
345    var series_data = new Array();
346    var i = 0;
347
348    chart.forEach(function(entry) {
349      var entries = JSON.parse('[' + entry.series + ']');
350      series_data[i] = {visible: true, name: entry.name, yAxis: 0, data: entries};
351      i++;
352    });
353
354    Highcharts.chart(elem, {
355      chart:  {type: 'spline'},
356      yAxis:  [{type: 'linear', tickInterval:5, labels: {formatter: function () {if (this.value  == 0) { return 1 } else { return this.value };}}, alternateGridColor: '#f8f8f8', min:1, max:100, title: { text: 'POSITION' }, reversed: true}],
357      xAxis:  {categories: json.categories, reversed: true},
358      title:  {text: title, align: 'center'},
359      credits: {enabled: false},
360      tooltip: {shared: false, pointFormat: '<span style="color:{point.color}">-</span> {series.name}: <b>{point.y}</b><br/>'},
361      plotOptions: {
362        series: {
363            marker: { fillColor: '#FFFFFF', lineWidth: 1, radius: 3, lineColor: null }
364          }
365      },
366      series: series_data,
367      exporting: {
368        buttons: {
369            contextButton: { menuItems: ['downloadPNG', 'downloadJPEG', 'downloadSVG', 'downloadPDF'] }
370        }
371      },
372      lang: {
373          noData: 'Keine Ergebnisse'
374      },
375      responsive: {
376        rules: [{
377            condition: { maxWidth: 1500 },
378            chartOptions: { legend: { layout: 'horizontal', align: 'center', verticalAlign: 'bottom' } }
379        }]
380      }
381    });
382
383  },
384
385
386  exportSpreadSheet: function() {
387
388    var makecsv    = $('#rendercsv');
389    var makeexcel  = $('#renderexcel');
390    var makegdrive = $('#gdriverender');
391
392    makecsv.click(function(e) {
393      e.preventDefault();
394      SKWM.saveSpreadsheet(makecsv, 'csv', '&#x21d3;');
395    });
396
397    makegdrive.click(function(e) {
398      e.preventDefault();
399      SKWM.saveSpreadsheet(makegdrive, 'gdrive', '&#x2197;');
400    });
401
402    makeexcel.click(function(e) {
403      e.preventDefault();
404      SKWM.saveSpreadsheet(makeexcel, 'excel', '&#x21d3;');
405    });    
406
407  },
408
409  exportSpreadSheetDetail: function() {
410
411    var makecsv    = $('#rendercsvdetail');
412    var makeexcel  = $('#renderexceldetail');
413    var makegdrive = $('#gdriverenderdetail');
414
415    makecsv.click(function(e) {
416      e.preventDefault();
417      SKWM.saveSpreadsheetDetail(makecsv, 'csv', '&#x21d3;');
418    });
419
420    makegdrive.click(function(e) {
421      e.preventDefault();
422      SKWM.saveSpreadsheetDetail(makegdrive, 'gdrive', '&#x2197;');
423    });
424
425    makeexcel.click(function(e) {
426      e.preventDefault();
427      SKWM.saveSpreadsheetDetail(makeexcel, 'excel', '&#x21d3;');
428    });    
429
430  },
431 
432  saveSpreadsheet: function (elem, flavor, icon) {
433
434    var that = this;
435
436    elem.html('<span class="downloadspin">&#8635;</span>');    
437
438    var data = Array();
439    var head = Array();
440
441    // URL RANKINGS
442    if ( $('.kwsmall').length > 0 ) {
443
444      var hclass = $('.keywordmonitor>tbody>tr');
445      var hhead  = $('.keywordmonitor>thead>tr');
446
447      hhead.each(function(i, v) {
448        head[i] = Array();
449        $(this).children('td').each(function(ii, vv){
450          head[i][ii] = $(this).text().trim();
451        });
452
453      });
454
455      hclass.each(function(i, v) {
456        
457        data[i] = Array();
458        
459        $(this).children('td').each(function(ii, vv){
460          
461          if ( $(this).find('.kwsmall').length === 0 ) {
462            data[i][ii] = $(this).text().trim();
463          } else {
464            data[i][ii] = $(this).find('.kwsmall tr td:eq(2)').text().trim() + ' / ' + $(this).find('.kwsmall tr td:eq(3)').text().trim();
465          }
466
467        });
468
469      });
470
471      data = head.concat(data); 
472
473    // ALL OTHER RANKINGS
474    } else {
475
476      var hclass = $('.keywordmonitor tr').not('.not');
477
478      hclass.each(function(i, v){
479        data[i] = Array();
480        $(this).children('td').each(function(ii, vv){
481          if ($(this).data('csv')) {
482            data[i][ii] = $(this).data('csv');
483          } else {
484            data[i][ii] = $(this).text().trim();
485          }
486        });
487      });
488
489    }
490
491
492    data = (JSON.stringify(data));
493
494    $.ajax({
495      type: "POST",
496      url: SKWM.domain+"dataexport",
497      data: { data: data, type: flavor },
498      error:function (xhr, ajaxOptions, thrownError){
499        elem.parent().html('<a class="download" target="_blank">&#x2715;</a>');
500      },
501      success: function(data){
502        elem.off('click');
503
504        if (flavor == 'gdrive') {
505
506          var datax = $.trim(data);
507
508          $.ajax({
509            type: "POST",
510            url: SKWM.domain+"googledrive-csv",
511            data: { filepath: datax, filename: 'Dataexport' },
512            error:function (xhr, ajaxOptions, thrownError){
513              elem.parent().html('<a class="download" target="_blank">&#x2715;</a>');
514            },
515            success: function(data){
516              elem.off('click');
517              elem.parent().html('<a class="download" href="' + $.trim(data) + '" target="_blank">'+icon+'</a>');          
518            }
519          });
520
521        } else {
522          elem.parent().html('<a class="download" href="' + $.trim(data) + '" target="_blank">'+icon+'</a>');          
523        }
524
525      }
526
527    });    
528
529  },
530
531  saveSpreadsheetDetail: function (elem, flavor, icon) {
532
533    var that = this;
534
535    elem.html('<span class="downloadspin">&#8635;</span>');
536
537    var data = Array();
538
539    $(".top100urls tbody tr").each(function(i, v){
540        data[i] = Array();
541        $(this).children('td').each(function(ii, vv){
542          data[i][ii] = $(this).data('csv');
543        });
544    });
545
546    data = (JSON.stringify(data));
547
548    $.ajax({
549      type: "POST",
550      url: SKWM.domain+"dataexport",
551      data: { data: data, type: flavor },
552      error:function (xhr, ajaxOptions, thrownError){
553        elem.parent().html('<a class="download" target="_blank">&#x2715;</a>');
554      },
555      success: function(data){
556
557        elem.off('click');
558
559        if (flavor == 'gdrive') {
560
561          var datax = $.trim(data);
562
563          $.ajax({
564            type: "POST",
565            url: SKWM.domain+"googledrive-csv",
566            data: { filepath: datax, filename: 'Dataexport' },
567            error:function (xhr, ajaxOptions, thrownError){
568              elem.parent().html('<a class="download" target="_blank">&#x2715;</a>');
569            },
570            success: function(data){
571              elem.off('click');
572              elem.parent().html('<a class="download" href="' + $.trim(data) + '" target="_blank">'+icon+'</a>');          
573            }
574          });
575
576        } else {
577
578          elem.parent().html('<a class="download" href="' + $.trim(data) + '" target="_blank">'+icon+'</a>');          
579
580        }
581
582      }
583    });
584
585  },
586
587
588  savePDF: function () {
589
590    var that = this,
591        makepdf = $('#renderpdf');
592
593    makepdf.click(function(e) {
594
595      e.preventDefault();
596
597      makepdf.html('<span class="downloadspin">&#8635;</span>'); 
598
599      var data = $(".screenwrapper-max").html();
600
601      $.ajax({
602        type: "POST",
603        url: SKWM.domain+"dataexport",
604        data: { data: data, type:'pdf' },
605        error:function (xhr, ajaxOptions, thrownError){
606          makepdf.parent().html('<a class="download" target="_blank">&#x2715;</a>');
607        },
608        success: function(data){
609          makepdf.off('click');
610          makepdf.parent().html('<a class="download" href="' + $.trim(data) + '" target="_blank">&#x21d3;</a>');
611        }
612      });
613
614    });
615
616  },
617
618  datepick: function (selector, target) {
619
620    var dates     = $(selector),
621        start     = dates.data('start'),
622        end       = dates.data('end'),
623        timeframe = dates.data('timeframe');
624
625    if (timeframe == 'weekly') {
626      $(target).pickmeup({
627          format : "Y-m-d",
628          min : start,
629          max : end,
630          render: function (date) {
631            var weekday = date.toLocaleString('en-us', {weekday:'long'});
632            if (weekday != 'Monday') {
633              return {disabled : true, class_name : 'date-in-past'};  
634            } 
635          }
636      });      
637    } else {
638      $(target).pickmeup({
639          format : "Y-m-d",
640          min : start,
641          max : end
642      });      
643    }
644
645  },
646
647  comments: function() {
648
649    var kwcomment = $('.kwcomment');
650    var datatableobject = this.datatable;
651
652    kwcomment.each(function() {
653
654      var that = $(this);
655
656      // DELETE
657      that.children('.kwcommentdelete').click(function() {
658
659        that.children('textarea').val('');
660        that.children('.kwsaved').hide();
661        that.children('.kwsaving').show();
662
663        $.ajax({
664          type: "POST",
665          url: SKWM.domain+"commentsave",
666          data: { kid: that.data('kid'), did: that.data('did'), token: that.data('token'), del: 'true' },
667          error:function (xhr, ajaxOptions, thrownError){},
668          success: function(data){
669            that.children('.kwsaving').hide();
670            that.children('.kwsaved').show();
671            that.children('textarea').html('');
672          }
673        });
674      });
675
676      // EDIT
677      $(this).children('textarea').focus(function() {
678
679        that.children('.kwsaved').hide();
680
681      }).blur(function() {
682
683        var ctext = $(this).val();
684
685        if (ctext) {
686          that.children('.kwsaved').hide();
687          that.children('.kwsaving').show();
688          $.ajax({
689            type: "POST",
690            url: SKWM.domain+"commentsave",
691            data: { kid: that.data('kid'), did: that.data('did'), token: that.data('token'), comment: ctext },
692            error:function (xhr, ajaxOptions, thrownError){},
693            success: function(data){
694              that.children('.kwsaving').hide();
695              that.children('.kwsaved').show();
696              that.children('textarea').html(ctext);
697            }
698          });
699        }
700
701      });
702
703    });
704
705  },
706
707
708  columRangeBalancer: function (col) {
709    $.fn.dataTable.ext.search.push (
710      function( settings, data, dataIndex ) {
711        var min = parseInt( $('#min'+col).val(), 10 );
712        var max = parseInt( $('#max'+col).val(), 10 );
713        var val = 0;
714        if (data[col]) {
715          val = data[col].replace(/<\/?[^>]+(>|$)/g, "");
716        }
717        var age = parseFloat( val ) || 0;
718        if ( ( isNaN( min ) && isNaN( max ) ) ||
719             ( isNaN( min ) && age <= max ) ||
720             ( min <= age && isNaN( max ) ) ||
721             ( min <= age && age <= max ) )
722        {
723          return true;
724        }
725        return false;
726      }
727    );
728
729  },
730
731
732  dataTableInit: function() {
733
734    if ($('#datatableoverview').length > 0) {
735
736      SKWM.columRangeBalancer(2);
737      SKWM.columRangeBalancer(3);
738      SKWM.columRangeBalancer(4);
739      SKWM.columRangeBalancer(5);
740      SKWM.columRangeBalancer(6);
741      SKWM.columRangeBalancer(7);
742      SKWM.columRangeBalancer(8);
743
744      $('#datatableoverview thead tr td.sf').each( function () {
745        $(this).append( '<br /><input class="columnsearch print" type="text" placeholder="SEARCH" />' );
746      });
747
748      this.datatable = $('#datatableoverview').DataTable({
749        'paging': false,
750        'info'  : true,
751        'searching': true,
752        'autoWidth': false,
753        'fixedHeader': true,
754        'order': [[ 0, "asc" ]],
755        'dom': '<"table-header print"filp<"clear">>'
756      });
757
758
759    } else if ($('#overviewscall').length > 0) {
760
761      SKWM.columRangeBalancer(2);
762      SKWM.columRangeBalancer(3);
763      SKWM.columRangeBalancer(4);
764      SKWM.columRangeBalancer(5);
765      SKWM.columRangeBalancer(6);
766      SKWM.columRangeBalancer(7);
767      SKWM.columRangeBalancer(8);
768      SKWM.columRangeBalancer(9);
769
770      $('#overviewscall thead tr td.sf').each( function () {
771        $(this).append( '<br /><input class="columnsearch print" type="text" placeholder="SEARCH" />' );
772      });
773
774      this.datatable = $('#overviewscall').DataTable({
775        'paging': false,
776        'info'  : true,
777        'searching': true,
778        'autoWidth': false,
779        'fixedHeader': true,
780        'order': [[ 3, "desc" ]],
781        'dom': '<"table-header print"filp<"clear">>'
782      });
783
784    } else if ($('#overviewanalytics').length > 0) {
785
786      SKWM.columRangeBalancer(2);
787      SKWM.columRangeBalancer(3);
788      SKWM.columRangeBalancer(4);
789      SKWM.columRangeBalancer(5);
790      SKWM.columRangeBalancer(6);
791      SKWM.columRangeBalancer(7);
792      SKWM.columRangeBalancer(8);
793      SKWM.columRangeBalancer(9);
794      SKWM.columRangeBalancer(10);
795      SKWM.columRangeBalancer(11);
796      SKWM.columRangeBalancer(12);
797
798      $('#overviewanalytics thead tr td.sf').each( function () {
799        $(this).append( '<br /><input class="columnsearch print" type="text" placeholder="SEARCH" />' );
800      });
801
802      this.datatable = $('#overviewanalytics').DataTable({
803        'paging': false,
804        'info'  : true,
805        'searching': true,
806        'autoWidth': false,
807        'fixedHeader': true,
808        'order': [[ 2, "desc" ]],
809        'dom': '<"table-header print"filp<"clear">>'
810      });
811
812    } else if ($('#overviewsc').length > 0) {
813
814      SKWM.columRangeBalancer(2);
815      SKWM.columRangeBalancer(3);
816      SKWM.columRangeBalancer(4);
817      SKWM.columRangeBalancer(5);
818      SKWM.columRangeBalancer(6);
819      SKWM.columRangeBalancer(7);
820      SKWM.columRangeBalancer(8);
821      SKWM.columRangeBalancer(9);
822      SKWM.columRangeBalancer(10);
823      SKWM.columRangeBalancer(11);
824      SKWM.columRangeBalancer(12);
825      SKWM.columRangeBalancer(13);
826      SKWM.columRangeBalancer(14);
827      SKWM.columRangeBalancer(15);
828      SKWM.columRangeBalancer(16);
829
830      $('#overviewsc thead tr td.sf').each( function () {
831        $(this).append( '<br /><input class="columnsearch print" type="text" placeholder="SEARCH" />' );
832      });
833
834      this.datatable = $('#overviewsc').DataTable({
835        'paging': false,
836        'info'  : true,
837        'searching': true,
838        'autoWidth': false,
839        'fixedHeader': true,
840        'order': [[ 2, "desc" ]],
841        'dom': '<"table-header print"filp<"clear">>'
842      });
843
844    } else if ($('#datatableoverviewcompetition').length > 0) {
845
846      SKWM.columRangeBalancer(2);
847      SKWM.columRangeBalancer(3);
848      SKWM.columRangeBalancer(4);
849      SKWM.columRangeBalancer(5);
850      SKWM.columRangeBalancer(6);
851      SKWM.columRangeBalancer(7);
852
853      $('#datatableoverviewcompetition thead tr td.sf').each( function () {
854        $(this).append( '<br /><input class="columnsearch print" type="text" placeholder="SEARCH" />' );
855      });
856
857      this.datatable = $('#datatableoverviewcompetition').DataTable({
858        'paging': false,
859        'info'  : true,
860        'searching': true,
861        'autoWidth': false,
862        'fixedHeader': true,
863        'order': [[ 2, "desc" ]],
864        'dom': '<"table-header print"filp<"clear">>'
865      });
866
867    } else if ($('#datatableoverviewblt').length > 0) {
868
869      $('#datatableoverviewblt thead tr td.sf').each( function () {
870        $(this).append( '<br /><input class="columnsearch print" type="text" placeholder="SEARCH" />' );
871      });
872
873      this.datatable = $('#datatableoverviewblt').DataTable({
874        'paging': false,
875        'info'  : true,
876        'searching': true,
877        'autoWidth': false,
878        'fixedHeader': true,
879        'order': [[ 7, "desc" ]],
880        'dom': '<"table-header print"filp<"clear">>'
881      });
882
883    } else if ($('.datatable').length > 0) {
884
885      $('.datatable thead tr td.sf').each( function () {
886        $(this).append( '<br /><input class="columnsearch print" type="text" placeholder="SEARCH" />' );
887      });
888
889      this.datatable = $('.datatable').DataTable({
890        'paging': false,
891        'info'  : true,
892        'searching': true,
893        'autoWidth': false,
894        'fixedHeader': true,
895        'dom': '<"table-header print"filp<"clear">>'
896      });
897
898    } 
899
900    if (typeof(this.datatable) != 'undefined') {
901
902      $('#min2, #max2, #min4, #max4, #min6, #max6, #min8, #max8, #min10, #max10, #min12, #max12, #min14, #max14').keyup( function() {
903        table.draw();
904      });
905
906       // columnsearch
907       var table = this.datatable;
908       table.columns().every( function () {
909         var that = this;
910         $( '.columnsearch', this.header() ).on( 'keyup change', function () {
911             if ( that.search() !== this.value ) {
912               that.search(this.value).draw();
913             }
914         });
915       });
916
917      $("#selectall").change(function(){
918        $(".removekeyword").prop('checked', $(this).prop("checked"));
919      });
920
921      // PHANTOM PRINT FIX FOR DATA TABLES
922      $('#DataTables_Table_0').css("width", "100%");
923
924    }
925
926  },
927
928
929  domainSelect: function() {
930    var select = $('#domainselect');
931    select.on('change', function() {
932      window.location = this.value;
933    });
934  },
935
936
937  emailrankchange: function() {
938
939    var checkbox = $('#emailrankchange');
940    var select   = $('select[name="emaildays"]');
941    var chkval   = $('input[name="emailrankchange"]')
942
943    if (select.val() != 7) {
944      checkbox.show();      
945    }
946
947    select.on('change', function() {
948      if (this.value != 7) {
949        checkbox.show();
950      } else {
951        chkval.prop('checked', false);
952        checkbox.hide();
953      }
954    })
955
956  },
957
958
959  changeCurrency: function() {
960
961    var usdbutton = $('#radio-usd');
962    var eurbutton = $('#radio-eur');
963    var usd = $('#usd');
964    var eur = $('#eur');
965
966    $('input:radio').click(function(){
967
968      if(usdbutton.attr('checked') === 'checked') {
969        usd.show();
970        eur.hide();
971      } else {
972        usd.hide();
973        eur.show();
974      }
975
976    });
977
978  },
979
980  changeLocation: function() {
981
982    var loc = $('#changecustomloc');
983
984    if (loc.length) {
985  
986
987      $('#changecustomloc').keyup(function(e) {
988        
989        if (e.keyCode !== 40 && e.keyCode !== 38) {
990
991          var string = $(this).val();
992          var result = $('#changecustomlocresult');
993         
994          result.show();
995
996          $('.locationsubmit').hide();
997          $('#loc_select').show();
998
999          if (string.length > 3) {
1000          
1001            $.ajax({
1002              type: "GET",
1003              url: "../local/local.php?",
1004              data: {q: string},
1005              error:function (xhr, ajaxOptions, thrownError){
1006                result.html(data);
1007              },
1008              success: function(data){
1009                result.html(data);
1010                $('.locationsubmit').prop("disabled",true);
1011                SKWM.selectLocation();
1012              }
1013
1014            });
1015          }
1016
1017        }
1018      });
1019
1020    }
1021
1022  },
1023
1024  selectLocation: function() {
1025
1026    $('.selectlocation').click(function() {
1027      $('.locationsubmit').prop("disabled",false);
1028      var loc = $(this).text();
1029      var uule = $(this).attr('data-uule');
1030      $('#changecustomloc').val(loc);
1031      $('#uule').val(uule);
1032      $('#changecustomlocresult').hide();
1033      $('.locationsubmit').show();
1034      $('#loc_select').hide();
1035    });
1036
1037  },
1038
1039  setFocus: function() {
1040
1041    $('#setcompetition-close').click(function(){
1042      setTimeout(function() {  
1043       $('#competition').focus();
1044      }, 1000);
1045    });
1046
1047  },
1048
1049  toggleComparisson: function() {
1050
1051    $('.togglecomparisson.hide').click(function(){
1052      $(".comparisson tr:not(:first-child)").hide();
1053      $('.togglecomparisson.hide').hide();
1054      $('.togglecomparisson.show').show();
1055    });
1056
1057    $('.togglecomparisson.show').click(function(){
1058      $(".comparisson tr:not(:first-child)").show(); 
1059      $('.togglecomparisson.show').hide();
1060      $('.togglecomparisson.hide').show();
1061    });
1062
1063  },
1064
1065  deleteDomain: function() {
1066
1067    var deletedomain = $('#deletedomain');
1068    
1069    if (deletedomain.length > 0) {
1070      
1071      deletedomain.click(function(){  
1072        var answer = window.confirm('Sicher?');
1073        if (answer) {
1074          return true;
1075        } else {
1076          return false;
1077        }
1078      });
1079
1080    }
1081
1082  },
1083
1084  liveranking: function() {
1085
1086    var liverankingform   = $('#liveranking'),
1087        liverankingsubmit = $('#liverankingsubmit'),
1088        inputarea         = $('#liverankinginput'),
1089        outputarea        = $('#liverankingoutput');
1090
1091    if (liverankingform.length > 0) {
1092    
1093      liverankingform.submit(function() {
1094  
1095        var formdata = liverankingform.serialize();
1096
1097        inputarea.html(SKWM.ajaxloader);
1098
1099        $.ajax({
1100          type: "POST",
1101          url: SKWM.domain + "liverankingfetch",
1102          data: { data:formdata },
1103          error:function (xhr, ajaxOptions, thrownError){},
1104          success: function(data){
1105            inputarea.hide();
1106            outputarea.show();
1107            outputarea.html(data);
1108            SKWM.exportSpreadSheetDetail();
1109          }
1110        });
1111
1112        return false;
1113
1114      });
1115
1116    }
1117
1118  }    
1119
1120};
1121
1122
1123$(document).ready(function() {
1124
1125  var host  = $(location).attr('hostname');
1126  var first = $(location).attr('pathname');
1127  first.indexOf(1);
1128  first = first.split("/")[1];
1129  SKWM.domain = 'https://'+host+'/'+first+'/';
1130
1131  SKWM.init();
1132  SKWM.deleteDomain();
1133  SKWM.changeCurrency();
1134  SKWM.dataTableInit();
1135  SKWM.toggleComparisson();
1136  SKWM.domainSelect();
1137  SKWM.comments();
1138  SKWM.emailrankchange();
1139  SKWM.urlmonitor();
1140  SKWM.niceForms();
1141  SKWM.targetBlank();
1142  SKWM.exportSpreadSheet();
1143  SKWM.exportSpreadSheetDetail();
1144  SKWM.savePDF();
1145  SKWM.lineChart();
1146  SKWM.lineChartAll();
1147  SKWM.lineChartVisibility();
1148  SKWM.datepick('#date_compare', '.datepicker');
1149  SKWM.datepick('#date_compare_week', '.datepickerweek');
1150  SKWM.changeLocation();
1151  SKWM.setFocus();
1152
1153  if ($('#piechart1').length) {
1154    SKWM.pieChart('piechart1', pieSeries1, pieDesc1);
1155    SKWM.pieChart('piechart2', pieSeries2, pieDesc2);  
1156  }
1157
1158  SKWM.pieChartTable();
1159});

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.