1var scroll_y = 0; 2var has_scrolled = false; 3var isMobile = { 4 Android: function () { 5 return navigator.userAgent.match(/Android/i); 6 }, 7 BlackBerry: function () { 8 return navigator.userAgent.match(/BlackBerry/i); 9 }, 10 iOS: function () { 11 return navigator.userAgent.match(/iPhone|iPad|iPod/i); 12 }, 13 Opera: function () { 14 return navigator.userAgent.match(/Opera Mini/i); 15 }, 16 Windows: function () { 17 return navigator.userAgent.match(/IEMobile/i); 18 }, 19 any: function () { 20 return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); 21 } 22}; 23 24 25if (typeof Cookies.get('pids') == 'undefined') { 26 Cookies.set('pids', postID, { expires: 1, domain: translate['cookie_domain'], path: '/' }); 27} else { 28 var temp_pids = Cookies.get('pids').split(','); 29 var last_pid = temp_pids.slice(-1)[0]; 30 if (last_pid != postID) { 31 Cookies.set('pids', Cookies.get('pids') + ',' + postID, { expires: 1, domain: translate['cookie_domain'], path: '/' }); 32 } 33} 34 35 36if (typeof Cookies.get('VLOG') == 'undefined') { 37 jQuery.ajax({ 38 type: 'POST', 39 url: '/global/classes/class.ajax-functions.php?class=ajax&func=get_cookie_value', 40 success: function (data) { 41 data = jQuery.parseJSON(data); 42 if (data.result != null) { 43 Cookies.set('VLOG', data.result, { expires: 365, domain: translate['cookie_domain'], path: '/' }); 44 xVlog = Cookies.get('VLOG'); 45 } 46 } 47 }); 48} else { 49 xVlog = Cookies.get('VLOG'); 50} 51 52if (typeof Cookies.get('ip_country') == 'undefined') { 53 /* 54jQuery.ajax({ 55 type: 'POST', 56 url: '/global/classes/class.ajax-functions.php?class=ajax&func=get_ip_country', 57 success: function (data) { 58 data = jQuery.parseJSON(data); 59 if (data.result != null) { 60 Cookies.set('ip_country', data.result, { expires: 14, domain: translate['cookie_domain'], path: '/' }); 61 } 62 } 63}); 64 */ 65} 66 67if (typeof Cookies.get('VISITED') == 'undefined') { 68 if (xLanguage == 'de' && postID == '2') { 69 //triggerHeatmap(); 70 } 71 Cookies.set('VISITED', 1, { expires: 7, domain: translate['cookie_domain'], path: '/' }); 72 window.localStorage.clear(); 73} 74 75 76jQuery(document).on('submit', '.ajax-form', function (e) { 77 e.preventDefault(); 78 var form = jQuery(this); 79 var formdata = form.serializeArray(); 80 var values = {}; 81 jQuery.each(formdata, function () { 82 values[this.name] = this.value; 83 }); 84 form.find('input[type=checkbox], input[type="radio"]').each(function () { 85 if (this.value == 0) { 86 values[this.name] = this.value; 87 } 88 }); 89 if (typeof values['class'] == 'undefined') { 90 values['class'] = 'ajax'; 91 } 92 //var url = form.attr('action'); 93 if (values['func'] == 'contactMail') { 94 var captchaToken = jQuery('input[name="cf-turnstile-response"]').val(); 95 if (!captchaToken) { 96 //alert('Bitte Captcha bestätigen.'); 97 return; 98 } 99 values['captcha_token'] = captchaToken; 100 } 101 var url = '/global/classes/class.ajax-functions.php?class=' + values['class'] + '&func=' + values['func']; 102 if (ValidateForm(form)) { 103 jQuery.ajax({ 104 type: 'POST', 105 url: url, 106 dataType: 'json', 107 data: { params: values }, 108 success: function (data) { 109 if (data.error == 0) { 110 if (form.find('input[name="ajax_callback"]').length) { 111 var func_callback = form.find('input[name="ajax_callback"]').val(); 112 window[func_callback](form, data['result']); 113 } else { 114 SwitchSubmitBtn(form, data['result']); 115 } 116 } else { 117 OpenErrorBox('<p>' + data.error + '</p>'); 118 } 119 120 } 121 }); 122 } 123}); 124 125 126jQuery(document).ready(function ($) { 127 128 /*------------------------------------*\ 129 # PLUGINS 130 \*------------------------------------*/ 131 132 $('select.custom-select-contact').selectBoxIt({ 133 defaultText: translate['callback_select'], 134 }); 135 $('select.custom-select-formats').selectBoxIt({ 136 dynamicPositioning: false 137 }); 138 139 if ($('.template-slider').length) { 140 var start_slide = $('.js-template-slider').attr('data-start'); 141 var template_slider = new Siema({ 142 selector: '.js-template-slider', 143 easing: 'ease-out', 144 perPage: 1, 145 startIndex: start_slide, 146 draggable: true, 147 multipleDrag: true, 148 threshold: 20, 149 loop: true, 150 rtl: false, 151 onInit: function () { 152 $('.js-template-slider').addClass('finished'); 153 $('.js-template-slider').imagesLoaded(function () { 154 ChangeTemplateSlider(parseInt(start_slide)); 155 }); 156 }, 157 onChange: function () { 158 ChangeTemplateSlider(template_slider.currentSlide); 159 } 160 });
161 162 $('.template-slider .js-next').on('click', function () { 163 template_slider.next(); 164 }); 165 $('.template-slider .js-prev').on('click', function () { 166 template_slider.prev(); 167 }); 168 } 169 170 if (xLanguage == 'en' && Cookies.get('ip_country') == 'US' && typeof Cookies.get('usa_dismissed') == 'undefined') { 171 setTimeout(function () { 172 $.fancybox.open({ 173 src: '/wp-content/themes/FME/js/templates/us_visitor.php', 174 type: 'ajax', 175 opts: { 176 /* 177 clickSlide: false, 178 clickOutside: false, 179 closeClick: false, 180 */ 181 touch: false, 182 beforeClose: function (instance, current, e) { 183 Cookies.set('usa_dismissed', 1, { expires: 14, domain: translate['cookie_domain'], path: '/' }); 184 } 185 } 186 }); 187 }, 2000); 188 } 189 190 if (typeof Cookies.get('cookieconsent_dismissed') == 'undefined') { 191 Cookies.set('cookieconsent_dismissed', 'yes', { expires: 30, path: '/' }); 192 } 193 194 195 196 197 /*------------------------------------*\ 198 # GENERAL 199 \*------------------------------------*/ 200 201 /* 202 if (getParameterByName(window.location.href, 'tracking_no')) { 203 ShowTrackingInfo(getParameterByName(window.location.href, 'tracking_no')); 204 } 205 if (getParameterByName(window.location.href, 'order_no')) { 206 var cid = getParameterByName(window.location.href, 'order_no'); 207 var zip = getParameterByName(window.location.href, 'zip'); 208 $('input[name="cid"]').val(cid); 209 $('input[name="plz"]').val(zip); 210 $('form[name="order-status"]').submit(); 211 } 212 */ 213 214 var temp_date = new Date(); 215 if (xLanguage == 'de') { 216 $('.js-date-1').text(temp_date.getDate() + '. ' + translate['month_' + (temp_date.getMonth() + 1)]); 217 } else if (xLanguage == 'en') { 218 $('.js-date-1').text(temp_date.getDate() + ' ' + translate['month_' + (temp_date.getMonth() + 1)]); 219 } 220 /* 221 $('.fb-help-box .btn').on('click', function(){ 222 var parser = new UAParser(); 223 var detection = parser.getResult(); 224 var params = new Object(); 225 params['vlog'] = xVlog; 226 params['step'] = parseInt(jQuery('body').attr('data-step')); 227 params['message'] = jQuery('.fb-help-box textarea').val(); 228 params['contact'] = jQuery('.fb-help-box input[name="contact"]').val(); 229 params['browser'] = detection.browser.name+' '+detection.browser.version; 230 params['os'] = detection.os.name+' '+detection.os.version; 231 232 jQuery.ajax({ 233 type: 'POST', 234 data: { params: params }, 235 url: 'https://api2.xxlpix.com/b2c/functions/class.Functions.php?class=ajax&func=submitHelpBox', 236 success: function (data) { 237 $('.fb-help-box button').hide(); 238 $('.fb-help-box .js-response').show(); 239 } 240 }); 241 }); 242 */ 243 244 $('.js-popup').fancybox({ 245 arrows: false, 246 infobar: false, 247 protect: true, 248 wheel: false, 249 buttons: [ 250 'close' 251 ], 252 touch: false, 253 }); 254 255 /* 256 $('.js-zoom').on('click', function(){ 257 if (isMobile.any() != null) { 258 var src = $(this).attr('data-magnify-src'); 259 window.open(src); 260 } else { 261 // fix 262 var counter = 0; 263 var element = $(this); 264 element.off('click'); 265 ToggleAreaLoading(element, 1); 266 var image = new Image(); 267 image.src = element.attr('data-magnify-src'); 268 image.onload = function(){ 269 counter++; 270 if (counter == 1) { 271 element.children('img').remove(); 272 element.prepend(image); 273 ToggleAreaLoading(element, 0); 274 wheelzoom(element.children('img')); 275 } 276 }; 277 } 278 }); 279 */ 280 281 $('.js-link').on('click', function () { 282 var link = $(this).attr('data-link'); 283 window.location.href = link; 284 }); 285 286 $('.js-zoom').on('click', function () { 287 if (isMobile.any() != null) { 288 var src = $(this).attr('data-magnify-src'); 289 window.open(src); 290 } 291 }); 292 $('.js-zoom').on('mouseenter', function () { 293 var element = $(this); 294 if (!$(this).hasClass('initialized')) { 295 element.addClass('initialized'); 296 // fix 297 var counter = 0; 298 element.off('click'); 299 element.prop('title', translate['zoom_title_2']); 300 toggleLoadingNew(element, 1); 301 var zoom_max = 500 302 if (typeof element.attr('data-zoom-max') != 'undefined') { 303 zoom_max = parseInt(element.attr('data-zoom-max')); 304 } 305 var image = new Image(); 306 image.src = element.attr('data-magnify-src'); 307 image.onload = function () { 308 counter++; 309 if (counter == 1) { 310 element.children('img').remove();
311 element.prepend(image); 312 toggleLoadingNew(element, 0); 313 element.zoom({ 314 url: image.src, 315 magnify: 0.5, 316 }); 317 } 318 }; 319 } 320 }); 321 322 /* 323 $('.js-zoom').on('mouseenter', function(e){ 324 var element = $(this); 325 if (!$(this).hasClass('initialized')) { 326 $(this).addClass('initialized'); 327 if (isMobile.any() != null) { 328 var src = $(this).attr('data-magnify-src'); 329 window.open(src); 330 } else { 331 // fix 332 var counter = 0; 333 element.off('click'); 334 element.prop('title', translate['zoom_title_2']); 335 ToggleAreaLoading(element, 1); 336 var zoom_max = 500 337 if (typeof element.attr('data-zoom-max') != 'undefined') { 338 zoom_max = parseInt(element.attr('data-zoom-max')); 339 } 340 var image = new Image(); 341 image.src = element.attr('data-magnify-src'); 342 image.onload = function(){ 343 counter++; 344 if (counter == 1) { 345 element.children('img').remove(); 346 element.prepend(image); 347 element.children('img').smoothZoom({ 348 width: '100%', 349 zoom_MAX: zoom_max, 350 pan_BUTTONS_SHOW: false, 351 zoom_BUTTONS_SHOW: false, 352 zoom_OUT_TO_FIT: false, 353 on_IMAGE_LOAD: function(a, b){ 354 setTimeout(function(){ 355 ToggleAreaLoading(element, 0); 356 var target = element.find('img'); 357 var zoomData = target.smoothZoom('getZoomData'); 358 target.smoothZoom('focusTo', { 359 y: zoomData.centerY, 360 x: zoomData.centerX, 361 zoom: 350, 362 //zoom: 200, 363 speed: 10, 364 }); 365 }, 500); 366 } 367 368 }); 369 } 370 }; 371 } 372 } else { 373 var target = element.find('img'); 374 var zoomData = target.smoothZoom('getZoomData'); 375 if (typeof zoomData != 'undefined') { 376 //var parentOffset = element.offset(); 377 //var x = e.pageX - parentOffset.left; 378 //var y = e.pageY - parentOffset.top; 379 target.smoothZoom('focusTo', { 380 y: zoomData.centerY, 381 x: zoomData.centerX, 382 //x: x, 383 //y: y, 384 zoom: 350, 385 speed: 10, 386 }); 387 } 388 389 } 390 }); 391 $('.js-zoom').on('mouseleave', function(e){ 392 if ($(this).hasClass('initialized')) { 393 var element = $(this); 394 var target = element.find('img'); 395 var zoomData = target.smoothZoom('getZoomData'); 396 target.smoothZoom('focusTo', { 397 y: zoomData.centerY, 398 x: zoomData.centerX, 399 zoom: 1, 400 speed: 10, 401 }); 402 } 403 }); 404 */ 405 406 407 $('.js-toggle-more').on('click', function () { 408 var id = $(this).attr('data-id'); 409 $('.hidden[data-id="' + id + '"]').slideToggle('fast'); 410 }); 411 412 413 $('.js-show-tip .js-trigger').on('click', function () { 414 $(this).parents('.js-show-tip').find('.hidden').slideToggle('fast'); 415 }); 416 417 418 if ($('.delivery-calendar').length) { 419 var delivery_refresh_counter = setInterval(function () { 420 if (BerlinTime() > 12) { 421 ChangeDelivery($('.js-select-size')); 422 clearInterval(delivery_refresh_counter); 423 } 424 }, 1000); 425 } 426 427 if ($('.js-delivery-date').length) { 428 if (BerlinTime() > 12) { 429 $.ajax({
430 type: 'POST', 431 url: 'https://api2.xxlpix.com/b2c/functions/class.Functions.php?class=ajax&func=getShippingDate', 432 success: function (data) { 433 data = jQuery.parseJSON(data); 434 if (data.result != null) { 435 $('.js-delivery-date').each(function () { 436 $(this).text(data.result); 437 }); 438 } 439 } 440 }); 441 } 442 } 443 444 $('.form-coupon-creator input, .form-coupon-creator select').on('blur', function () { 445 var title = $('.form-coupon-creator input[name="title"]').val(); 446 var from = $('.form-coupon-creator input[name="name_from"]').val(); 447 var to = $('.form-coupon-creator input[name="name_for"]').val(); 448 var value = $('.form-coupon-creator select option:selected').text(); 449 450 if (title != '') { 451 $('.js-title').text(title); 452 } 453 if (from != '') { 454 $('.js-name-from').text(from); 455 } 456 if (to != '') { 457 $('.js-name-for').text(to); 458 } 459 $('.js-value').text(value); 460 }); 461 462 $('.form-coupon-creator .js-submit').on('click', function () { 463 var params = new Object(); 464 params['ref'] = 'FME'; 465 params['language'] = xLanguage; 466 params['value'] = $('select[name="coupon_value"]').val(); 467 params['currency'] = xCurrency; 468 params['cart_id'] = xVlog; 469 470 jQuery.ajax({ 471 type: 'POST', 472 dataType: 'jsonp', 473 jsonp: 'jsonp_callback', 474 data: { params: params }, 475 url: translate['lwf_url'] + 'global/ajax/ajax-functions.php?func=coupon_submit', 476 success: function (data) { 477 window.location.href = translate['lwf_order_url'] + '?step=2&vlog=' + xVlog; 478 } 479 }); 480 }); 481 482 483 $('.js-open-fb').on('click', function () { 484 OpenFancyBox($(this)); 485 }); 486 487 488 $('.js-tabify .navi li').on('click', function () { 489 if (!$(this).hasClass('disabled')) { 490 TabifySwitchState($(this), $(this).index() + 1); 491 } 492 }); 493 494 $('.js-switch-tab').on('click', function () { 495 TabifySwitchState($('.js-tabify .navi li:first-child'), $(this).attr('data-target')); 496 }); 497 498 $('.js-image-viewer .thumbs li').on('click', function () { 499 $(this).addClass('active').siblings('li').removeClass('active'); 500 var src = $(this).find('img').attr('data-switch'); 501 var target = $(this).parents('.js-image-viewer').children('.wrap'); 502 var image = new Image(); 503 image.src = src; 504 ToggleAreaLoading(target, 1); 505 image.onload = function () { 506 target.html(image); 507 ToggleAreaLoading(target, 0); 508 }; 509 }); 510 511 512 513 514 515 /*------------------------------------*\ 516 # SPECIFIC 517 \*------------------------------------*/ 518 519 $('.full-layouts-wrap .big-filter li, .full-layouts-wrap .big-filter h3, .full-layouts-wrap .top-filter li').on('click', function () { 520 FilterLayouts($(this)); 521 }); 522 523 524 $('.price-table .js-show-info').on('click', function () { 525 TogglePriceTableInfo($(this)); 526 }); 527 $('.price-table .nav span').on('click', function () { 528 SwitchPriceTable($(this)); 529 }); 530 $('.js-price-table-switch').on('click', function () { 531 SwitchPriceTablePrice($(this)); 532 }); 533 $('.js-landing-price-switch').on('click', function () { 534 SwitchLandingPrice($(this)); 535 }); 536 537 538 $('.js-select-region, .js-select-size').on('change', function () { 539 ChangeDelivery($(this)); 540 }); 541 542 543 $('.accordion li').on('click', function () { 544 var el = $(this); 545 el.toggleClass('active').siblings().removeClass('active'); 546 }); 547 548 549 $('.order-status-new').on('click', '.js-edit', function () { 550 var cid = $(this).attr('data-cid'); 551 jQuery.fancybox.open({ 552 src: '/apps/lwf_agf_global/themes/LWF_new/js/templates/change-address.php?cid=' + cid + '&language=' + xLanguage, 553 type: 'ajax', 554 touch: false 555 }); 556 }); 557 558 559 $('.js-cart-popover').hover( 560 function (e) { 561 RenderCartPopover(); 562 }, 563 function (e) { 564 RenderCartPopover(); 565 } 566 ); 567 568 UpdateCartCounter(); 569 570 571 $('.suspensions .btn').on('click', function () { 572 var id = $(this).attr('data-id'); 573 var quantity = $(this).parents('.suspensions').find('[name="quantity"]').val(); 574 AddSuspensionToCart(id, quantity); 575 }); 576 577 $('.js-content-switcher .thumbs li').on('click', function () { 578 var element = $(this); 579 var parent = element.parents('.js-content-switcher'); 580 var insert = element.html(); 581 if (element.hasClass('js-360')) { 582 insert = '<div class="threesixty-wrapper"><div class="threesixty rotate-360"><div class="spinner"><span>0%</span></div><ol class="threesixty_images"></ol></div><div class="marker"><img src="http://www.leinwandfoto.de/global/images/assets/360.png" alt="360_Grad" /></div></div>'; 583 } 584 parent.find('.preview').html(insert); 585 element.addClass('active').siblings().removeClass('active'); 586 587 if (element.hasClass('js-360')) { 588 var target = parent.find('.rotate-360'); 589 var path = element.attr('data-path'); 590 var prefix = element.attr('data-prefix'); 591 var ext = element.attr('data-ext'); 592 var width = element.attr('data-width'); 593 var height = element.attr('data-height'); 594 var frames = element.attr('data-frames');; 595 var fps = element.attr('data-fps');; 596 597 Init360(target, path, prefix, ext, width, height, frames, fps); 598 } 599 }); 600 601 602 /*------------------------------------*\ 603 # MOBILE FIX 604 \*------------------------------------*/ 605 606 if (isMobile.any() != null) { 607 608 if ($('.header-contact').length) { 609 var mobile_nr = $('.header-contact .icon').prop('title'); 610 $('.header-contact .icon-phone').wrap('<a style="color: #fff; display: inline-block;" href="tel:+' + mobile_nr + '"></a>') 611 } 612 613 } 614 615 616}); 617 618 619function Init360(target, path, prefix, ext, width, height, frames, fps) { 620 jQuery(target).ThreeSixty({ 621 totalFrames: frames, 622 framerate: fps, 623 imgList: '.threesixty_images', 624 progress: '.spinner', 625 imagePath: path, 626 filePrefix: prefix, 627 ext: ext, 628 height: height, 629 width: width, 630 navigation: false, 631 autoplayDirection: -1, 632 disableSpin: true, 633 responsive: true 634 }); 635} 636 637 638function AddSuspensionToCart(pid, quantity) { 639 var params = new Object(); 640 params['cart_id'] = xVlog; 641 params['currency'] = xCurrency; 642 params['product_id'] = pid; 643 params['quantity'] = quantity; 644 645 jQuery.ajax({ 646 type: 'POST', 647 data: { params: params }, 648 url: '/global/ajax/class.ajax-functions.php?func=add_suspension_to_cart', 649 success: function (data) { 650 Redirect(translate['lwf_order_url'], 'fakeref=fme&step=2&vlog=' + xVlog); 651 } 652 }); 653} 654 655 656 657/*------------------------------------*\ 658 # GENERAL 659\*------------------------------------*/ 660 661// get GET parameter of url 662function getParameterByName(url, name) { 663 var match = RegExp('[?&]' + name + '=([^&]*)').exec(url); 664 return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); 665} 666 667 668jQuery(window).scroll(function () { 669 has_scrolled = true; 670}); 671 672 673setInterval(function () { 674 if (has_scrolled) { 675 var temp_scroll_y = jQuery(document).scrollTop(); 676 var window_w = window.innerWidth; 677 if (window_w <= 970) { 678 ToggleFixedHeader('show'); 679 //PositionSiteNavi(); 680 } else { 681 ToggleFixedHeader('hide'); 682 } 683 684 if (temp_scroll_y >= 1100 && temp_scroll_y < scroll_y) { 685 ToggleTopArrow('show'); 686 } else { 687 ToggleTopArrow('hide'); 688 } 689 690 scroll_y = temp_scroll_y; 691 has_scrolled = false; 692 } 693}, 250); 694 695 696function Redirect(url, params) { 697 if (typeof params != 'undefined') { 698 if (url.indexOf('?') != -1) { 699 url = url + '&' + params; 700 } else { 701 url = url + '?' + params; 702 } 703 } 704 ToggleAreaLoading('fixed', 1); 705 window.location.href = url; 706} 707 708 709function TabifySwitchState(element, state) { 710 element = element.parents('.tabify-wrapper'); 711 var nav = element.find('.navi li'); 712 var content = element.find('.content'); 713 714 nav.removeClass('active'); 715 nav.eq(state - 1).addClass('active'); 716 content.hide();
717 element.find('.content[data-tab-content="' + state + '"]').show(); 718} 719 720 721// Check if number is decimal or not 722function isDecimal(number) { 723 number = String(number); 724 if (number.indexOf('.') !== -1 || number.indexOf(',') !== -1) { 725 return true; 726 } 727} 728 729 730// converts the price into the typical format 731function priceFormat(price, language, option) { 732 price = String(price); 733 if (isDecimal(price)) { 734 price = String(price.match(/\d*[,.]\d*/g)); 735 var integer = String(price.match(/\d*[,.]/g)).substr(0, String(price.match(/\d*[,.]/g)).length - 1);; 736 var decimal = String(price.match(/[,.]\d*/g)).substring(1); 737 if (decimal.length == 1) { 738 decimal = decimal + '0'; 739 } 740 price = integer + ',' + decimal; 741 } else { 742 price = price + ',00'; 743 } 744 745 if (option == 'currency') { 746 switch (language) { 747 case 'en': 748 price = '£ ' + String(price).replace(',', '.'); 749 break; 750 default: 751 price = String(price).replace('.', ',') + ' â¬'; 752 } 753 } 754 755 return price; 756} 757 758 759function ToggleAreaLoading(target, mode) { 760 if (mode == 1) { 761 if (target == 'fixed') { 762 jQuery('body').addClass('no-scroll').prepend('<div class="js-area-loading fixed"><div class="table"><div class="table-cell"><span class="icon icon-spin5 animate-spin"></span></div></div></div>'); 763 } else { 764 target.prepend('<div class="js-area-loading"><div class="table"><div class="table-cell"><span class="icon icon-spin5 animate-spin"></span></div></div></div>'); 765 } 766 } else { 767 jQuery('body').removeClass('no-scroll'); 768 jQuery('.js-area-loading').fadeOut(400, function () { 769 jQuery(this).remove(); 770 }); 771 } 772} 773 774 775function OpenFancyBox(element, mode) { 776 if (mode == 'error') { 777 jQuery.fancybox.open({ 778 modal: true, 779 smallBtn: 'auto', 780 baseClass: 'error-box', 781 src: '<div class="fb-wrap t-center">' + element + '<p><a title="Close" class="btn btn-orange btn-small btn-close" href="javascript:jQuery.fancybox.close();">Ok</a></p></div>', 782 type: 'html', 783 afterShow: function (instance, current) { 784 785 } 786 787 }); 788 } else { 789 if (mode == 'upload') { 790 var target = '.fb-upload'; 791 } else { 792 var target = '.fb-' + element.attr('data-fb'); 793 } 794 jQuery.fancybox.open({ 795 src: target, 796 type: 'inline', 797 opts: { 798 touch: false, 799 } 800 }); 801 } 802} 803 804 805function ScrollToTop() { 806 jQuery('html, body').animate({ 807 scrollTop: 0 808 }, 400); 809} 810 811 812function ToggleTopArrow(mode) { 813 var element = jQuery('.js-arrow-top'); 814 if (mode == 'show' && !element.is(':visible')) { 815 element.show(); 816 } else if (mode == 'hide' && element.is(':visible')) { 817 element.hide(); 818 } 819} 820 821 822function Share(element, provider) { 823 element = jQuery(element); 824 if (typeof element.attr('data-share-url') != 'undefined') { 825 var url = encodeURIComponent(element.attr('data-share-url')); 826 } 827 if (typeof element.attr('data-share-text') != 'undefined') { 828 var text = encodeURIComponent(element.attr('data-share-text')); 829 } 830 if (typeof element.attr('data-share-image') != 'undefined') { 831 var image = encodeURIComponent(element.attr('data-share-image')); 832 } 833 834 switch (provider) { 835 case 'facebook': 836 window.open('http://www.facebook.com/sharer.php?u=' + url, 'Share', 'width=600, height=300, resizable=yes'); 837 break; 838 case 'gplus': 839 window.open('http://plus.google.com/share?url=' + url, 'Share', 'width=600, height=300, resizable=yes'); 840 break; 841 case 'twitter': 842 window.open('https://twitter.com/intent/tweet?text=' + text + '&url=', 'Share', 'width=600, height=300, resizable=yes'); 843 break; 844 case 'pinterest': 845 window.open('https://pinterest.com/pin/create/button/?url=' + url + '&media=' + image + '&description=' + text, 'Share', 'width=600, height=300, resizable=yes'); 846 break; 847 } 848} 849 850 851function callback_OrderStatusNew(form, data) { 852 data['language'] = xLanguage; 853 jQuery.ajax({ 854 type: 'POST', 855 data: { params: data }, 856 url: '/global/ajax/class.ajax-functions.php?func=renderOrderStatus', 857 async: false, 858 success: function (data) { 859 data = jQuery.parseJSON(data); 860 jQuery('.order-status-new .js-request').hide(); 861 jQuery('.order-status-new .js-response').html(data.result).show(); 862 863 jQuery('.js-response .js-next').click(function () { 864 jQuery(this).parents('ul[data-item]').removeClass('active').next('ul').addClass('active'); 865 }); 866 jQuery('.js-response .js-prev').click(function () { 867 jQuery(this).parents('ul[data-item]').removeClass('active').prev('ul').addClass('active'); 868 }); 869 } 870 }); 871} 872 873 874 875 876/*------------------------------------*\ 877 # PRICE TABLES 878\*------------------------------------*/ 879 880function TogglePriceTable(element) { 881 if (!element.hasClass('active')) { 882 if (element.is('.section')) { 883 var target = element.attr('id'); 884 target = target.substring(4); 885 element.addClass('active').siblings('.section').removeClass('active'); 886 } else { 887 var target = element.attr('data-target'); 888 target = target.substring(4); 889 } 890 891 jQuery('.price-table .nav a').removeClass('active'); 892 jQuery('.price-table .nav a[data-target="cat-' + target + '"]').addClass('active'); 893 jQuery('.price-table table').removeClass('active'); 894 jQuery('.price-table table[data-id="' + target + '"]').addClass('active'); 895 } 896} 897 898 899function SwitchPriceTable(element) { 900 var target = element.attr('data-target'); 901 902 if (!element.hasClass('active')) { 903 jQuery('.price-table .nav span').removeClass('active'); 904 jQuery('.price-table .nav span[data-target="' + target + '"]').addClass('active'); 905 jQuery('.price-table .wrap').hide(); 906 jQuery('.price-table .wrap[data-id="' + target + '"]').show(); 907 } 908} 909 910 911function SwitchPriceTablePrice(element) { 912 var target = element.attr('data-target'); 913 914 jQuery('.js-price-table-switch').addClass('link').removeClass('active'); 915 element.addClass('active').removeClass('link'); 916 jQuery('.price-table .js-switch-price').removeClass('active'); 917 jQuery('.price-table .js-switch-price[data-id="' + target + '"]').addClass('active'); 918 919 if (target == 'max') { 920 jQuery('.price-table .js-switch-price[data-id="' + target + '"]').parents('td').siblings('td').find('span.line-through').addClass('hide'); 921 } else { 922 jQuery('.price-table .js-switch-price[data-id="' + target + '"]').parents('td').siblings('td').find('span.line-through').removeClass('hide'); 923 } 924} 925 926 927function SwitchLandingPrice(element) { 928 var target = element.attr('data-target'); 929 930 jQuery('.js-landing-price-switch').addClass('link').removeClass('active'); 931 element.addClass('active').removeClass('link'); 932 933 if (target == 'max') { 934 var new_price = jQuery('.js-sim-price p strong').attr('data-price-max'); 935 jQuery('.js-sim-price small').css('opacity', 0); 936 jQuery('.js-sim-price p strong').removeClass('red'); 937 } else { 938 var new_price = jQuery('.js-sim-price p strong').attr('data-price-min'); 939 if (jQuery('.js-sim-price small strong').text().substring(0, 1) != '0') { 940 jQuery('.js-sim-price small').css('opacity', 1); 941 jQuery('.js-sim-price p strong').addClass('red'); 942 } 943 } 944 945 jQuery('.js-sim-price p strong').text(new_price); 946} 947 948 949 950 951 952/*------------------------------------*\ 953 # RESPONSIVE 954\*------------------------------------*/ 955 956function ToggleFixedHeader(mode) { 957 var wrapper = jQuery('.header-wrap'); 958 959 if (mode == 'show') { 960 var promo_h = jQuery('.promotion-header').outerHeight(); 961 var header_h = jQuery('.header-site').outerHeight(); 962 963 if (jQuery(document).scrollTop() > promo_h) { 964 wrapper.addClass('fixed'); 965 } else { 966 wrapper.removeClass('fixed'); 967 } 968 969 if (wrapper.hasClass('fixed')) { 970 jQuery('#page').css('padding-top', header_h); 971 } else { 972 jQuery('#page').css('padding-top', 0); 973 } 974 } else { 975 if (wrapper.hasClass('fixed')) { 976 wrapper.removeClass('fixed'); 977 jQuery('#page').css('padding-top', 0); 978 } 979 } 980} 981 982 983function ToggleSiteNavi() { 984 jQuery('.site-navi').slideToggle('fast'); 985} 986 987 988 989 990/*------------------------------------*\ 991 # MISC 992\*------------------------------------*/ 993 994function BerlinTime() { 995 var offset_germany = '+2'; 996 var d = new Date(); 997 var utc = d.getTime() + (d.getTimezoneOffset() * 60000); 998 var nd = new Date(utc + (3600000 * offset_germany)); 999
1000 //return nd.toLocaleString(); 1001 return nd.getHours(); 1002} 1003 1004function ShowAllDeliveryTable(element) { 1005 element = jQuery(element); 1006 jQuery('.delivery-table').toggleClass('full'); 1007 if (element.text() == element.attr('data-text-show')) { 1008 element.text(element.attr('data-text-hide')); 1009 } else { 1010 element.text(element.attr('data-text-show')); 1011 jQuery('html, body').animate({ 1012 scrollTop: jQuery('.delivery-table').offset().top 1013 }, 0); 1014 } 1015} 1016 1017function ChangeDelivery(element) { 1018 var target_size = jQuery('.js-select-size option:selected'); 1019 var target_region = jQuery('.js-select-region option:selected'); 1020 1021 if (element.is('.js-select-region')) { 1022 target_region = element.find('option:selected'); 1023 } 1024 1025 if (jQuery('.delivery-table').length) { 1026 var params = new Object; 1027 params['country'] = target_region.val(); 1028 params['language'] = xLanguage; 1029 params['mode'] = jQuery('.delivery-table').attr('data-mode'); 1030 params['pg'] = 1; 1031 if (jQuery('.delivery-table')[0].hasAttribute('data-pg')) { 1032 params['pg'] = jQuery('.delivery-table').attr('data-pg'); 1033 } 1034 if (jQuery('.delivery-table')[0].hasAttribute('data-ref')) { 1035 params['ref'] = jQuery('.delivery-table').attr('data-ref'); 1036 } 1037 jQuery.ajax({ 1038 type: 'POST', 1039 data: { params: params }, 1040 url: 'https://api2.xxlpix.com/b2c/functions/class.Functions.php?class=shortcode&func=delivery_table', 1041 success: function (data) { 1042 data = jQuery.parseJSON(data); 1043 jQuery('.delivery-table').replaceWith(data.result); 1044 } 1045 }); 1046 } 1047 1048 if (jQuery('.delivery-calendar').length) { 1049 var params = new Object; 1050 params['type_key'] = target_size.val(); 1051 params['pg'] = target_size.attr('data-pg'); 1052 params['pid'] = target_size.attr('data-pid'); 1053 params['size'] = target_size.attr('data-size'); 1054 params['price'] = target_size.attr('data-price'); 1055 params['language'] = xLanguage; 1056 params['country'] = target_region.val(); 1057 ToggleAreaLoading(jQuery('.delivery-calendar'), 1); 1058 1059 jQuery.ajax({ 1060 type: 'POST', 1061 data: { params: params }, 1062 url: 'https://api2.xxlpix.com/b2c/functions/class.Functions.php?class=shortcode&func=delivery_calendar', 1063 success: function (data) { 1064 data = jQuery.parseJSON(data); 1065 jQuery('.delivery-calendar table').html(data.result); 1066 ToggleAreaLoading(jQuery('.delivery-calendar'), 0); 1067 } 1068 }); 1069 } 1070 1071 if (jQuery('.js-select-region').length > 1) { 1072 jQuery('.js-select-region option[value="' + params['country'] + '"]').prop('selected', true); 1073 } 1074 if (jQuery('.js-delivery-country').length) { 1075 jQuery('.js-delivery-country').text(params['country']); 1076 } 1077} 1078 1079 1080function InsertNewHint(target) { 1081 var values = CalcNewHint(target); 1082 setTimeout(function () { 1083 var element = jQuery('<img class="hint" src="' + values.img_url + '" data-hint-target="' + target + '" data-align="' + values.align + '" style="position: absolute; top: ' + values.pos_y + 'px; left: ' + values.pos_x + 'px; z-index: 1;" />').appendTo('#page'); 1084 1085 jQuery(window).resize(function () { 1086 var values = CalcNewHint(target); 1087 element.css({ 1088 left: values.pos_x + 'px', 1089 top: values.pos_y + 'px' 1090 }); 1091 }); 1092 }, 500); 1093} 1094 1095 1096function CalcNewHint(target) { 1097 var values = new Object(); 1098 var w = parseInt(target.outerWidth()); 1099 var h = parseInt(target.outerHeight()); 1100 var x = target.offset().left; 1101 var y = target.offset().top; 1102 values['arrow'] = parseInt(target.attr('data-arrow')); 1103 1104 switch (values['arrow']) { 1105 case 1: 1106 values['align'] = 'right'; 1107 values['img_url'] = '/wp-content/themes/FCE/images/hint-arrow-1-' + xLanguage + '.png'; 1108 values['img_w'] = 175; 1109 values['img_h'] = 75; 1110 values['puffer'] = 10; 1111 values['pos_x'] = x + w + values['puffer']; 1112 break; 1113 case 2: 1114 values['align'] = 'left'; 1115 values['img_url'] = '/wp-content/themes/FCE/images/hint-arrow-2-' + xLanguage + '.png'; 1116 values['img_w'] = 188; 1117 values['img_h'] = 75; 1118 values['puffer'] = 20; 1119 values['pos_x'] = x + values['puffer'] - values['img_w']; 1120 break; 1121 } 1122 values['pos_y'] = y + (h / 2) - (values['img_h'] / 2) - 30; 1123 1124 return values; 1125} 1126 1127function SendB2BMail() { 1128 var element = jQuery('.b2b-contact'); 1129 if (ValidateForm(jQuery(element))) { 1130 var params = new Object(); 1131 params['ref'] = xRef; 1132 params['language'] = xLanguage; 1133 params['action'] = 'b2b-contact'; 1134 params['copy'] = '0'; 1135 if (jQuery('#check-copy').is(':checked')) { 1136 params['copy'] = '1'; 1137 } 1138 params['firstname'] = element.find('input[name="firstname"]').val(); 1139 params['lastname'] = element.find('input[name="lastname"]').val(); 1140 params['email'] = element.find('input[name="email"]').val(); 1141 params['company'] = element.find('input[name="company"]').val(); 1142 params['phone'] = element.find('input[name="phone"]').val(); 1143 params['message'] = element.find('textarea').val(); 1144 1145 jQuery.ajax({ 1146 type: 'POST', 1147 data: { params: params }, 1148 url: 'https://www.leinwandfoto.de/global/ajax/ajax-functions.php?func=send_mail', 1149 success: function (data) { 1150 jQuery('.js-b2b-contact .btn').replaceWith('<strong class="green">' + translate['contact_mail_success'] + '</strong>'); 1151 } 1152 });
1153 } 1154} 1155 1156 1157function getMaxOfArray(numArray) { 1158 return Math.max.apply(null, numArray); 1159} 1160 1161 1162jQuery(function ($) { 1163 $('a[href*="#"]:not([href="#"])').on('click', function (event) { 1164 if ( 1165 location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '') && 1166 location.hostname === this.hostname 1167 ) { 1168 let target = $(this.hash); 1169 1170 target = target.length 1171 ? target 1172 : $('[name="' + this.hash.slice(1) + '"]'); 1173 1174 if (target.length) { 1175 event.preventDefault(); 1176 1177 $('html, body').animate({ 1178 scrollTop: target.offset().top 1179 }, 400); 1180 } 1181 } 1182 }); 1183}); 1184 1185 1186function CouponSubmit(value) { 1187 var params = new Object(); 1188 var element = jQuery('.coupon-form'); 1189 params['ref'] = xRef; 1190 params['language'] = xLanguage; 1191 params['value'] = value; 1192 params['currency'] = xCurrency; 1193 params['cart_id'] = xVlog; 1194 1195 jQuery.ajax({ 1196 type: 'POST', 1197 data: { params: params }, 1198 url: '/global/ajax/ajax-functions.php?func=coupon_submit', 1199 complete: function (data) { 1200 Redirect(translate['lwf_order_url'], 'step=2&fakeref=fme&vlog=' + xVlog); 1201 } 1202 }); 1203} 1204 1205 1206function SwitchSubmitBtn(form, data) { 1207 form.find('[type="submit"]').replaceWith('<strong class="green">' + translate['contact_mail_success'] + '</strong>'); 1208} 1209 1210 1211function OpenErrorBox(text) { 1212 jQuery.fancybox.open({ 1213 src: '<div class="fancybox-content"><div class="headline wrap t-center"><span class="icon icon-emo-unhappy"></span>' + translate['error_popup_headline'] + '</div><div class="wrap"><p>' + text + '</p></div></div>', 1214 type: 'inline', 1215 opts: { 1216 modal: false, 1217 touch: false, 1218 slideClass: 'error', 1219 beforeClose: function () { 1220 1221 }, 1222 afterClose: function () { 1223 1224 } 1225 }, 1226 }); 1227} 1228 1229 1230function ShowTrackingInfo(tracking_no) { 1231 jQuery('input[name="tracking_number"]').val(tracking_no); 1232 jQuery('form[name="order-status"]').submit(); 1233} 1234 1235 1236function RenderCartPopover(mode) {
1237 if (jQuery('.cart-popover').length) { 1238 jQuery('.cart-popover').remove(); 1239 } else { 1240 //jQuery('.js-cart-popover').append('<div class="cart-popover"></div>'); 1241 jQuery('.js-cart-popover').append('<div class="cart-popover"></div>'); 1242 jQuery('.cart-popover').load('/wp-content/themes/FME/js/templates/cart.php'); 1243 } 1244 if (typeof mode !== 'undefined') { 1245 RenderCartPopover(); 1246 } 1247} 1248 1249 1250function UpdateCartCounter() { 1251 var values = { 1252 rid: xRID 1253 }; 1254 jQuery.ajax({ 1255 type: 'POST', 1256 url: '/global/classes/class.ajax-functions.php?class=global&func=getCartCounter', 1257 data: { params: values }, 1258 success: function (data) { 1259 data = jQuery.parseJSON(data); 1260 if (data.result != null) { 1261 jQuery('.js-cart-counter').text('(' + data.result + ')'); 1262 } 1263 } 1264 }); 1265 1266}
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.