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.