PageSourceSearch

https://www.seniorenplatz-vermittlung.de/website/static/landingpage/functions.js

js seniorenplatz-vermittlung.de collected 2026-10-07 04:59:46 UTC 24,800 bytes, 787 lines download raw bytes

1/* ===================================================
2 * bootstrap-transition.js v2.0.4
3 * http://twitter.github.com/bootstrap/javascript.html#transitions
4 * ===================================================
5 * Copyright 2012 Twitter, Inc.
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ========================================================== */
19
20
21!function ($) {
22
23  $(function () {
24
25    "use strict"; // jshint ;_;
26
27
28    /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
29     * ======================================================= */
30
31    $.support.transition = (function () {
32
33      var transitionEnd = (function () {
34
35        var el = document.createElement('bootstrap')
36          , transEndEventNames = {
37               'WebkitTransition' : 'webkitTransitionEnd'
38            ,  'MozTransition'    : 'transitionend'
39            ,  'OTransition'      : 'oTransitionEnd'
40            ,  'msTransition'     : 'MSTransitionEnd'
41            ,  'transition'       : 'transitionend'
42            }
43          , name
44
45        for (name in transEndEventNames){
46          if (el.style[name] !== undefined) {
47            return transEndEventNames[name]
48          }
49        }
50
51      }())
52
53      return transitionEnd && {
54        end: transitionEnd
55      }
56
57    })()
58
59  })
60
61}(window.jQuery);
62/* ========================================================
63 * bootstrap-tab.js v2.0.4
64 * http://twitter.github.com/bootstrap/javascript.html#tabs
65 * ========================================================
66 * Copyright 2012 Twitter, Inc.
67 *
68 * Licensed under the Apache License, Version 2.0 (the "License");
69 * you may not use this file except in compliance with the License.
70 * You may obtain a copy of the License at
71 *
72 * http://www.apache.org/licenses/LICENSE-2.0
73 *
74 * Unless required by applicable law or agreed to in writing, software
75 * distributed under the License is distributed on an "AS IS" BASIS,
76 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
77 * See the License for the specific language governing permissions and
78 * limitations under the License.
79 * ======================================================== */
80
81
82!function ($) {
83
84  "use strict"; // jshint ;_;
85
86
87 /* TAB CLASS DEFINITION
88  * ==================== */
89
90  var Tab = function ( element ) {
91    this.element = $(element)
92  }
93
94  Tab.prototype = {
95
96    constructor: Tab
97
98  , show: function () {
99      var $this = this.element
100        , $ul = $this.closest('ul:not(.dropdown-menu)')
101        , selector = $this.attr('data-target')
102        , previous
103        , $target
104        , e
105
106      if (!selector) {
107        selector = $this.attr('href')
108        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
109      }
110
111      if ( $this.parent('li').hasClass('active') ) return
112
113      previous = $ul.find('.active a').last()[0]
114
115      e = $.Event('show', {
116        relatedTarget: previous
117      })
118
119      $this.trigger(e)
120
121      if (e.isDefaultPrevented()) return
122
123      $target = $(selector)
124
125      this.activate($this.parent('li'), $ul)
126      this.activate($target, $target.parent(), function () {
127        $this.trigger({
128          type: 'shown'
129        , relatedTarget: previous
130        })
131      })
132    }
133
134  , activate: function ( element, container, callback) {
135      var $active = container.find('> .active')
136        , transition = callback
137            && $.support.transition
138            && $active.hasClass('fade')
139
140      function next() {
141        $active
142          .removeClass('active')
143          .find('> .dropdown-menu > .active')
144          .removeClass('active')
145
146        element.addClass('active')
147
148        if (transition) {
149          element[0].offsetWidth // reflow for transition
150          element.addClass('in')
151        } else {
152          element.removeClass('fade')
153        }
154
155        if ( element.parent('.dropdown-menu') ) {
156          element.closest('li.dropdown').addClass('active')
157        }
158
159        callback && callback()
160      }
161
162      transition ?
163        $active.one($.support.transition.end, next) :
164        next()
165
166      $active.removeClass('in')
167    }
168  }
169
170
171 /* TAB PLUGIN DEFINITION
172  * ===================== */
173
174  $.fn.tab = function ( option ) {
175    return this.each(function () {
176      var $this = $(this)
177        , data = $this.data('tab')
178      if (!data) $this.data('tab', (data = new Tab(this)))
179      if (typeof option == 'string') data[option]()
180    })
181  }
182
183  $.fn.tab.Constructor = Tab
184
185
186 /* TAB DATA-API
187  * ============ */
188
189  $(function () {
190    $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
191      e.preventDefault()
192      $(this).tab('show')
193    })
194  })
195
196}(window.jQuery);
197/* ==========================================================
198 * bootstrap-alert.js v2.0.4
199 * http://twitter.github.com/bootstrap/javascript.html#alerts
200 * ==========================================================
201 * Copyright 2012 Twitter, Inc.
202 *
203 * Licensed under the Apache License, Version 2.0 (the "License");
204 * you may not use this file except in compliance with the License.
205 * You may obtain a copy of the License at
206 *
207 * http://www.apache.org/licenses/LICENSE-2.0
208 *
209 * Unless required by applicable law or agreed to in writing, software
210 * distributed under the License is distributed on an "AS IS" BASIS,
211 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
212 * See the License for the specific language governing permissions and
213 * limitations under the License.
214 * ========================================================== */
215
216
217!function ($) {
218
219  "use strict"; // jshint ;_;
220
221
222 /* ALERT CLASS DEFINITION
223  * ====================== */
224
225  var dismiss = '[data-dismiss="alert"]'
226    , Alert = function (el) {
227        $(el).on('click', dismiss, this.close)
228      }
229
230  Alert.prototype.close = function (e) {
231    var $this = $(this)
232      , selector = $this.attr('data-target')
233      , $parent
234
235    if (!selector) {
236      selector = $this.attr('href')
237      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
238    }
239
240    $parent = $(selector)
241
242    e && e.preventDefault()
243
244    $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
245
246    $parent.trigger(e = $.Event('close'))
247
248    if (e.isDefaultPrevented()) return
249
250    $parent.removeClass('in')
251
252    function removeElement() {
253      $parent
254        .trigger('closed')
255        .remove()
256    }
257
258    $.support.transition && $parent.hasClass('fade') ?
259      $parent.on($.support.transition.end, removeElement) :
260      removeElement()
261  }
262
263
264 /* ALERT PLUGIN DEFINITION
265  * ======================= */
266
267  $.fn.alert = function (option) {
268    return this.each(function () {
269      var $this = $(this)
270        , data = $this.data('alert')
271      if (!data) $this.data('alert', (data = new Alert(this)))
272      if (typeof option == 'string') data[option].call($this)
273    })
274  }
275
276  $.fn.alert.Constructor = Alert
277
278
279 /* ALERT DATA-API
280  * ============== */
281
282  $(function () {
283    $('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
284  })
285
286}(window.jQuery);
287
288
289
290
291
292/*!
293 * jQuery Scrollspy Plugin
294 * Author: @sxalexander
295 * Licensed under the MIT license
296 */
297;(function ( $, window, document, undefined ) {
298
299    $.fn.extend({
300      scrollspy: function ( options ) {
301        
302          var defaults = {
303            min: 0,
304            max: 0,
305            mode: 'vertical',
306            buffer: 0,
307            container: window,
308            onEnter: options.onEnter ? options.onEnter : [],
309            onLeave: options.onLeave ? options.onLeave : [],
310            onTick: options.onTick ? options.onTick : []
311          }
312          
313          var options = $.extend( {}, defaults, options );
314
315          return this.each(function (i) {
316
317              var element = this;
318              var o = options;
319              var $container = $(o.container);
320              var mode = o.mode;
321              var buffer = o.buffer;
322              var enters = leaves = 0;
323              var inside = false;
324                            
325              /* add listener to container */
326              $container.bind('scroll', function(e){
327                  var position = {top: $(this).scrollTop(), left: $(this).scrollLeft()};
328                  var xy = (mode == 'vertical') ? position.top + buffer : position.left + buffer;
329                  var max = o.max;
330                  var min = o.min;
331                  
332                  /* fix max */
333                  if($.isFunction(o.max)){
334                    max = o.max();
335                  }
336
337                  /* fix max */
338                  if($.isFunction(o.min)){
339                    min = o.min();
340                  }
341
342                  if(max == 0){
343                      max = (mode == 'vertical') ? $container.height() : $container.outerWidth() + $(element).outerWidth();
344                  }
345                  
346                  /* if we have reached the minimum bound but are below the max ... */
347                  if(xy >= o.min && xy <= max){
348                    /* trigger enter event */
349                    if(!inside){
350                       inside = true;
351                       enters++;
352                       
353                       /* fire enter event */
354                       $(element).trigger('scrollEnter', {position: position})
355                       if($.isFunction(o.onEnter)){
356                         o.onEnter(element, position);
357                       }
358                      
359                     }
360                     
361                     /* triger tick event */
362                     $(element).trigger('scrollTick', {position: position, inside: inside, enters: enters, leaves: leaves})
363                     if($.isFunction(o.onTick)){
364                       o.onTick(element, position, inside, enters, leaves);
365                     }
366                  }else{
367                    
368                    if(inside){
369                      inside = false;
370                      leaves++;
371                      /* trigger leave event */
372                      $(element).trigger('scrollLeave', {position: position, leaves:leaves})
373
374                      if($.isFunction(o.onLeave)){
375                        o.onLeave(element, position);
376                      }
377                    }
378                  }
379              }); 
380
381          });
382      }
383
384    })
385
386    
387})( jQuery, window );
388
389/**
390* author Remy Sharp
391* url http://remysharp.com/tag/marquee
392*/
393 
394(function ($) {
395$.fn.marquee = function (klass) {
396var newMarquee = [],
397last = this.length;
398 
399// works out the left or right hand reset position, based on scroll
400// behavior, current direction and new direction
401function getReset(newDir, marqueeRedux, marqueeState) {
402var behavior = marqueeState.behavior, width = marqueeState.width, dir = marqueeState.dir;
403var r = 0;
404if (behavior == 'alternate') {
405r = newDir == 1 ? marqueeRedux[marqueeState.widthAxis] - (width*2) : width;
406} else if (behavior == 'slide') {
407if (newDir == -1) {
408r = dir == -1 ? marqueeRedux[marqueeState.widthAxis] : width;
409} else {
410r = dir == -1 ? marqueeRedux[marqueeState.widthAxis] - (width*2) : 0;
411}
412} else {
413r = newDir == -1 ? marqueeRedux[marqueeState.widthAxis] : 0;
414}
415return r;
416}
417 
418// single "thread" animation
419function animateMarquee() {
420var i = newMarquee.length,
421marqueeRedux = null,
422$marqueeRedux = null,
423marqueeState = {},
424newMarqueeList = [],
425hitedge = false;
426while (i--) {
427marqueeRedux = newMarquee[i];
428$marqueeRedux = $(marqueeRedux);
429marqueeState = $marqueeRedux.data('marqueeState');
430if ($marqueeRedux.data('paused') !== true) {
431// TODO read scrollamount, dir, behavior, loops and last from data
432marqueeRedux[marqueeState.axis] += (marqueeState.scrollamount * marqueeState.dir);
433 
434// only true if it's hit the end
435hitedge = marqueeState.dir == -1 ? marqueeRedux[marqueeState.axis] <= getReset(marqueeState.dir * -1, marqueeRedux, marqueeState) : marqueeRedux[marqueeState.axis] >= getReset(marqueeState.dir * -1, marqueeRedux, marqueeState);
436if ((marqueeState.behavior == 'scroll' && marqueeState.last == marqueeRedux[marqueeState.axis]) || (marqueeState.behavior == 'alternate' && hitedge && marqueeState.last != -1) || (marqueeState.behavior == 'slide' && hitedge && marqueeState.last != -1)) {
437if (marqueeState.behavior == 'alternate') {
438marqueeState.dir *= -1; // flip
439}
440marqueeState.last = -1;
441 
442$marqueeRedux.trigger('stop');
443 
444marqueeState.loops--;
445if (marqueeState.loops === 0) {
446if (marqueeState.behavior != 'slide') {
447marqueeRedux[marqueeState.axis] = getReset(marqueeState.dir, marqueeRedux, marqueeState);
448} else {
449// corrects the position
450marqueeRedux[marqueeState.axis] = getReset(marqueeState.dir * -1, marqueeRedux, marqueeState);
451}
452 
453$marqueeRedux.trigger('end');
454} else {
455// keep this marquee going
456newMarqueeList.push(marqueeRedux);
457$marqueeRedux.trigger('start');
458marqueeRedux[marqueeState.axis] = getReset(marqueeState.dir, marqueeRedux, marqueeState);
459}
460} else {
461newMarqueeList.push(marqueeRedux);
462}
463marqueeState.last = marqueeRedux[marqueeState.axis];
464 
465// store updated state only if we ran an animation
466$marqueeRedux.data('marqueeState', marqueeState);
467} else {
468// even though it's paused, keep it in the list
469newMarqueeList.push(marqueeRedux);
470}
471}
472 
473newMarquee = newMarqueeList;
474if (newMarquee.length) {
475setTimeout(animateMarquee, 25);
476}
477}
478// TODO consider whether using .html() in the wrapping process could lead to loosing predefined events...
479this.each(function (i) {
480var $marquee = $(this),
481width = $marquee.attr('width') || $marquee.width(),
482height = $marquee.attr('height') || $marquee.height(),
483$marqueeRedux = $marquee.after('<div ' + (klass ? 'class="' + klass + '" ' : '') + 'style="display: block-inline; width: ' + width + 'px; height: ' + height + 'px; overflow: hidden;"><div style="float: left; white-space: nowrap;">' + $marquee.html() + '</div></div>').next(),
484marqueeRedux = $marqueeRedux.get(0),
485hitedge = 0,
486direction = ($marquee.attr('direction') || 'left').toLowerCase(),
487marqueeState = {
488dir : /down|right/.test(direction) ? -1 : 1,
489axis : /left|right/.test(direction) ? 'scrollLeft' : 'scrollTop',
490widthAxis : /left|right/.test(direction) ? 'scrollWidth' : 'scrollHeight',
491last : -1,
492loops : $marquee.attr('loop') || -1,
493scrollamount : $marquee.attr('scrollamount') || this.scrollAmount || 2,
494behavior : ($marquee.attr('behavior') || 'scroll').toLowerCase(),
495width : /left|right/.test(direction) ? width : height
496};
497// corrects a bug in Firefox - the default loops for slide is -1
498if ($marquee.attr('loop') == -1 && marqueeState.behavior == 'slide') {
499marqueeState.loops = 1;
500}
501 
502$marquee.remove();
503// add padding
504if (/left|right/.test(direction)) {
505$marqueeRedux.find('> div').css('padding', '0 ' + width + 'px');
506} else {
507$marqueeRedux.find('> div').css('padding', height + 'px 0');
508}
509// events
510$marqueeRedux.bind('stop', function () {
511$marqueeRedux.data('paused', true);
512}).bind('pause', function () {
513$marqueeRedux.data('paused', true);
514}).bind('start', function () {
515$marqueeRedux.data('paused', false);
516}).bind('unpause', function () {
517$marqueeRedux.data('paused', false);
518}).data('marqueeState', marqueeState); // finally: store the state
519// todo - rerender event allowing us to do an ajax hit and redraw the marquee
520 
521newMarquee.push(marqueeRedux);
522 
523marqueeRedux[marqueeState.axis] = getReset(marqueeState.dir, marqueeRedux, marqueeState);
524$marqueeRedux.trigger('start');
525// on the very last marquee, trigger the animation
526if (i+1 == last) {
527animateMarquee();
528}
529});
530 
531return $(newMarquee);
532};
533}(jQuery));
534
535/* CUSTOM FUNCTIONS */
536$(document).ready(function(){
537	
538	//alert(document.documentElement.clientWidth);
539	if (document.documentElement.clientWidth > 750 && document.documentElement.clientWidth < 1025) $('#teaser-image-3').hide();
540
541	
542	$('marquee').marquee('pointer').mouseover(function () {
543		  $(this).trigger('stop');
544		}).mouseout(function () {
545		  $(this).trigger('start');
546		}).mousemove(function (event) {
547		  if ($(this).data('drag') == true) {
548		    this.scrollLeft = $(this).data('scrollX') + ($(this).data('x') - event.clientX);
549		  }
550		}).mousedown(function (event) {
551		  $(this).data('drag', true).data('x', event.clientX).data('scrollX', this.scrollLeft);
552		}).mouseup(function () {
553		  $(this).data('drag', false);
554		});	
555	
556	$('#request-form').submit(function(){
557
558		var action = $(this).attr('action');
559
560		$('#request-type').css('background-color', 'white');
561		$('#request-time').css('background-color', 'white');
562		$('#request-location').css('background-color', 'white');
563		$('#request-salutation').css('background-color', 'white');
564		$('#request-name').css('background-color', 'white');
565		$('#request-phone').css('background-color', 'white');
566		$('#request-email').css('background-color', 'white');
567		$('#request-submit').after('<img src="/website/static/landingpage/ajax-loader.gif" class="loader" id="request-form-loader" />');
568
569		$.post(action, {
570			requestTime: $('#request-time').val(),
571			requestType: $('#request-type').val(),
572			requestLocation: $('#request-location').val(),
573			requestSalutation: $('#request-salutation').val(),
574			requestName: $('#request-name').val(),
575			requestPhone: $('#request-phone').val(),
576			requestEmail: $('#request-email').val(),
577			//verify: $('#verify').val()
578		},
579			function(data){
580				if(data.match('SUCCESS!') != null) {
581					window.location.href = 'details';
582				} else {
583					//alert(data); exit;
584					var responseData = jQuery.parseJSON(data);
585					for(var key in responseData) {
586						//alert(key + '=' + responseData[key]);
587						if (responseData[key] == 'type') $('#request-type').css('background-color', '#ff6600');
588						if (responseData[key] == 'time') $('#request-time').css('background-color', '#ff6600');
589						if (responseData[key] == 'location') $('#request-location').css('background-color', '#ff6600');
590						if (responseData[key] == 'salutation') $('#request-salutation').css('background-color', '#ff6600');
591						if (responseData[key] == 'name') $('#request-name').css('background-color', '#ff6600');
592						if (responseData[key] == 'phone') $('#request-phone').css('background-color', '#ff6600');
593						if (responseData[key] == 'email') $('#request-email').css('background-color', '#ff6600');
594					}
595					$('#request-form-loader').remove();
596				}
597			}
598		);
599		
600		return false;
601	});	
602	
603	$('#contact-form').submit(function(){
604
605		var action = $(this).attr('action');
606
607		$('#contact-submit').after('<img src="/website/static/landingpage/ajax-loader.gif" class="loader" />');
608
609		$("#ajax-console").slideUp(750,function() {
610		$('#ajax-console').hide();
611		$('#ajax-console-success').hide();
612
613		$.post(action, {
614			name: $('#contact-name').val(),
615			email: $('#contact-email').val(),
616			website: $('#contact-website').val(),
617			comments: $('#contact-comments').val(),
618			verify: $('#verify').val()
619		},
620			function(data){
621				if(data.match('success') != null) {
622					$('#contact-form').slideUp('slow', function(){
623						$('#ajax-console-success').slideDown('slow');
624					});
625					document.getElementById('ajax-console-success').innerHTML = data;
626				} else {
627					document.getElementById('ajax-console').innerHTML = data;
628					$('#ajax-console').slideDown('slow');
629					$('#contact-form img.loader').fadeOut('fast',function(){$(this).remove()});
630				}
631			}
632		);
633
634		});
635
636		return false;
637
638	});
639	
640	/* Adding Automatic Navigation for the Tour */
641	var navParentLinkPrev = null, navParentTextPrev = null, navParentLinkNext = null, navParentTextNext = null, tourNav = null;
642
643    $('.tour-navigation ul li').each(function(i, elem){
644    	navParentLinkPrev = $(elem).prev().children().attr('href');
645    	navParentTextPrev = $(elem).prev().children().text();
646    	navParentLinkNext = $(elem).next().children().attr('href');
647    	navParentTextNext = $(elem).next().children().text();
648    	
649    	if (navParentLinkPrev == null) {
650    		tourNav = '<div class="tour-nav-container clearfix">'+
651			'<a href="'+navParentLinkNext+'" data-toggle="tab" class="external-tab-hook fr neutral-button icon-right">' + navParentTextNext + ' <i class="icon-arrow-right"></i></a>' +
652        	'</div>';
653        } else if (navParentLinkNext == null) {
654    		tourNav = '<div class="tour-nav-container clearfix">'+
655			'<a href="'+navParentLinkPrev+'" data-toggle="tab" class="external-tab-hook fl neutral-button icon-left"><i class="icon-arrow-left"></i> ' + navParentTextPrev + '</a>' +
656        	'</div>';
657        } else {
658    		tourNav = '<div class="tour-nav-container clearfix">'+
659			'<a href="'+navParentLinkNext+'" data-toggle="tab" class="external-tab-hook fr neutral-button icon-right">' + navParentTextNext + ' <i class="icon-arrow-right"></i></a>' +
660			'<a href="'+navParentLinkPrev+'" data-toggle="tab" class="external-tab-hook fl neutral-button icon-left"><i class="icon-arrow-left"></i> ' + navParentTextPrev + '</a>' +
661        	'</div>';
662        }
663    	
664        $($(elem).children().attr("href")).prepend(tourNav);
665    });	
666	
667	
668	
669	// Dynamically create the floating nav
670	$('h2.spy-hook').each(function(){
671		$('.floating-nav ul').append('<li><a href="#'+$(this).attr('id')+'">'+$(this).text()+'</a></li>');
672	});
673
674	// Extending Bootstrap tabs by adding support for outside links
675	// Once clicked, these act as a tab
676	$('.external-tab-hook').click(function(){
677		var targetTab = $(this).attr("href");
678		
679		$('a[href="' + targetTab + '"]').tab('show');
680	});
681
682
683	// Scrollspy
684	// Only activating this if viewed on a screen > 960px
685	if ($(window).width() > 960) {
686		$('.floating-nav').scrollspy({
687			min: $('.floating-nav').offset().top,
688			max: 99999,
689			onEnter: function(element, position) {
690				$(".floating-nav").addClass('fixed').removeClass('container');
691				$(".floating-nav div").addClass('container');
692				$("body").addClass('fixed-nav');
693			},
694			onLeave: function(element, position) {
695				$(".floating-nav").removeClass('fixed').addClass('container');
696				$(".floating-nav div").removeClass('container');
697				$("body").removeClass('fixed-nav');
698			}
699		});
700		
701		$('.spy-hook').each(function(i) {
702			var position = $(this).position();
703			$(this).scrollspy({
704				min: position.top-220,
705				max: position.top + $(this).parent().height()-220,
706				onEnter: function(element, position) {
707					$('a[href$=' + element.id + ']').parent().addClass('active')
708				},
709				onLeave: function(element, position) {
710					$('a[href$=' + element.id + ']').parent().removeClass('active');
711				}
712			});
713		});
714	}
715	
716
717		
718	/* Smooth Scrolling */
719	$('.floating-nav ul li a, a[href$="top"]').click(function(event){		
720		event.preventDefault();
721		$('html, body').animate({scrollTop:$(this.hash).offset().top-100}, 500);
722	});
723	
724	
725	/* jQuery Slider for Testimonials */
726	$('.slider li').each(function(i){
727		$(this).attr('id', 'slide-' + (i+1));
728		$('.slider-controls').append('<li><a href="#slide-'+(i+1)+'">'+ (i+1) +'</a></li>')
729	});
730	
731	$('.slider li:gt(0)').hide();
732	$('.slider-controls li a:lt(1)').addClass('controls-active');
733	
734	$('.slider-controls a').click(function(event){
735		event.preventDefault();
736		$('.slider-controls a').removeClass('controls-active');
737		$(this).addClass('controls-active');
738		$('.slider li:visible').fadeOut();
739		var targetSlide = $(this).attr('href');
740		$(targetSlide).fadeIn();
741	});
742	
743	
744	
745	/* Create a secondary menu for the responsive navigation */
746	$("<select />").addClass('responsive-nav').appendTo(".floating-nav");
747	
748	$("<option />", {
749		"selected": "selected",
750		"value"   : "",
751		"text"    : "Jump to..."
752	}).appendTo(".floating-nav select");
753	
754	/* Populate dropdown with menu items */
755	$(".floating-nav ul li a").each(function() {
756		var el = $(this);
757		$("<option />", {
758			"value"   : el.attr("href"),
759			"text"    : el.text()
760		}).appendTo(".floating-nav select");
761	});
762	
763	/* Make the drop-down work */
764	$(".floating-nav select").change(function() {
765		window.location = $(this).find("option:selected").val();
766	});
767
768	/*
769		$.ajax({
770		      url: 'http://s.trustpilot.com.s3-external-3.amazonaws.com/tpelements/2662978/f.jsonp',
771		      dataType: 'jsonp',
772		      jsonp: 'jsonp_callback',
773		      cache: false,
774		      type: 'GET',
775			  crossDomain: true,
776			  success: function(data) {
777				  alert(data);
778				  //$("#mswitchQuickRfpContainer").html(data);
779			  },
780			  error: function(data) {
781				  alert('error'); 
782				  //$("#mswitchQuickRfpContainer").html("Auf Grund eines technischen Problems konnte das Formular nicht geladen werden");  
783			  }  
784		});	
785	*/
786	
787});

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.