PageSourceSearch

https://directorslibrary.com/wp-content/themes/directors-library-2026/assets/js/custom.js?ver=1789855495

js directorslibrary.com collected 2026-09-24 21:45:42 UTC 50,370 bytes, 1,532 lines download raw bytes

1/* WordPress loads jQuery in no-conflict mode. Keep the theme's long-standing
2 * `$` shorthand local to this script without loading a second jQuery runtime. */
3var $ = jQuery;
4
5function toggleSecondDropdown() {
6    // Get the value of the main dropdown
7    var mainDropdown = document.getElementById("mainDropdown");
8    var selectedOption = mainDropdown.options[mainDropdown.selectedIndex].value;
9
10    // Show or hide the second dropdown based on the selected option
11    var secondDropdown = document.getElementById("secondDropdown");
12    secondDropdown.style.display = (selectedOption === "latest") ? "block" : "none";
13
14    if (mainDropdown.value === "sort") {
15        // Reset second dropdown and show all posts
16        secondDropdown.style.display = "none";
17        // Perform the action you need to display all posts, like reloading the page or triggering an AJAX call.
18        location.reload(); // This will reload the page and show all posts.
19    }else if(mainDropdown.value === "all") {
20        // Reset second dropdown and show all posts
21        secondDropdown.style.display = "none";
22        // Perform the action you need to display all posts, like reloading the page or triggering an AJAX call.
23        location.reload(); // This will reload the page and show all posts.
24    } else {
25        // Show the second dropdown for category selection
26        secondDropdown.style.display = "block";
27        // Perform any other actions you need when selecting other options.
28    }
29
30  }
31
32
33
34	  jQuery(document).ready(function($) {
35	    var currentUrl = window.location.pathname;
36	    var menuParentSlug = currentUrl.split('/')[1].toLowerCase(); // Convert to lowercase
37	    var mainSlug = $('input[name="main-slug"]').val();
38
39	    // This field only exists on templates that need manual menu highlighting.
40	    if (typeof mainSlug !== 'string' || mainSlug.length === 0) {
41	        return;
42	    }
43
44	    var slug = mainSlug.toLowerCase();
45
46    $('.dl-site-header__menu, .main-menu .menu').find('a').each(function() {
47        // Get the text of the menu item and convert to lowercase for comparison
48        var menuItemText = $(this).text().toLowerCase();
49    
50        // Log menu item text for debugging
51        console.log(menuItemText);
52    
53        // Check if the lowercase menu item text matches the lowercase menuParentSlug
54        if (menuItemText == slug) {
55            // console.log("Match found");
56            $(this).parent().addClass("current-menu-item");
57        }
58    });
59
60  })
61
62jQuery(document).ready(function ($) {
63    // Get URL Parameter
64    function getUrlParameter(name) {
65        name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
66        var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
67        var results = regex.exec(location.search);
68        return results === null ? null : decodeURIComponent(results[1].replace(/\+/g, ' '));
69    }
70
71    // ==========================
72    // Watch=true Auto Play + Loop
73    // (text + image fade out together)
74    // ==========================
75    var watch = getUrlParameter('watch');
76    if (watch === 'true') {
77        setTimeout(function () {
78            // --- Fade image AND text at the same time ---
79            $('.heroVideoCover img').fadeOut(750);
80            $('.featureTxt').fadeOut(750);
81            $('.titleCate').fadeOut(750);
82            $('.hero-banner .main-video a').addClass("bg-black");
83
84            // --- Build the video URL and start it right away ---
85            var iframe = $('#video1 iframe');
86            var currentSrc = iframe.attr('src');
87            var dataSrc = iframe.attr('data-src');
88
89            // If iframe is still about:blank then use data-src
90            if (!currentSrc || currentSrc.indexOf('about:blank') !== -1) {
91                currentSrc = dataSrc;
92            }
93
94            if (currentSrc) {
95                // Remove existing params if present
96                currentSrc = currentSrc.replace(/([?&])autoplay=1/g, '');
97                currentSrc = currentSrc.replace(/([?&])loop=1/g, '');
98                currentSrc = currentSrc.replace(/([?&])mute=[01]/g, '');
99
100                var separator = currentSrc.indexOf('?') > -1 ? '&' : '?';
101                currentSrc += separator + 'autoplay=1&loop=1&mute=0&rel=0';
102
103                // YouTube requires a playlist param (same video ID) for loop to work
104                if (currentSrc.indexOf('youtube.com') > -1 || currentSrc.indexOf('youtube-nocookie.com') > -1) {
105                    var idMatch = currentSrc.match(/embed\/([a-zA-Z0-9_-]{11})/);
106                    if (idMatch && currentSrc.indexOf('playlist=') === -1) {
107                        currentSrc += '&playlist=' + idMatch[1];
108                    }
109                }
110
111                iframe.attr('src', currentSrc);
112            }
113
114            // --- After 1400ms hide cover & show player ---
115            setTimeout(function () {
116                $('.heroVideoCover').hide();
117                $('.heroVp').addClass("active");
118                $('.single-directors .heroVp').addClass("heroVpProduction");
119                $('.single-production .heroVp').addClass("heroVpProduction");
120                $('.single-crew .heroVp').addClass("heroVpProduction");
121                $('.single-video .heroVp').addClass("active");
122            }, 1400);
123        }, 550);
124    }
125
126    // ==========================
127    // Homepage
128    // ==========================
129    $(".top4seemore0").click(function () {
130        $(".relatedsearchbtn1").click();
131    });
132    $(".top4seemore1").click(function () {
133        $(".relatedsearchbtn2").click();
134    });
135    $(".top4seemore2").click(function () {
136        $(".relatedsearchbtn3").click();
137    });
138    $(".top4seemore3").click(function () {
139        $(".relatedsearchbtn4").click();
140    });
141    $(".top4seemore").click(function () {
142        $(this).closest('.artistBox ul li').next().find('.relatedsearchbtn').click();
143    });
144});
145
146
147jQuery(".tabs-inner .main-image").hover(function(){
148    jQuery(this).parent().find(".main-content .tabcontent-gallery a").css("color","#828282");
149}, function(){
150    jQuery(this).parent().find(".main-content .tabcontent-gallery a").css("color","");
151});
152
153function getUrlParameter(name) {
154    name = name.replace(/[[]/, '\\[').replace(/[\]]/, '\\]');
155    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
156    var results = regex.exec(location.search);
157    return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
158};
159
160jQuery(document).ready(function ($) {
161	
162    $('.thumbnail-slider .slick-slide').on('click', function() {
163        var index = $(this).data('slick-index');
164        $('.latest-list.flex5b5').slick('slickGoTo', index);
165      });
166	
167	 /* Video Detail Page Slider */
168    var $thumSlider = $('.thumbnail-slider');
169	var $mainSlider = $('.mainSlider');
170    var $totalSlides = $('.total-slides');
171
172    $thumSlider.on('init', function(event, slick) {
173        $thumSlider.find('.slick-slide').eq(0).addClass('current');
174    });
175    $thumSlider.slick({
176        dots: false,
177        infinite: true,
178        speed: 300,
179        slidesToShow: 2,
180        slidesToScroll: 1,
181        autoplay: false,
182        // centerMode: true,
183        focusOnSelect: true,
184        arrows: true,
185	//	asNavFor: $mainSlider,
186        responsive: [
187          {
188            breakpoint: 1024,
189            settings: {
190              slidesToShow: 1,
191              slidesToScroll: 1,
192              infinite: true,
193              dots: false,
194              centerMode: true,
195              arrows: false,
196              focusOnSelect: true
197            }
198          },
199          {
200            breakpoint: 600,
201            settings: {
202              slidesToShow: 1,
203              slidesToScroll: 1,
204              centerMode: true,
205            centerPadding: '60px',
206            }
207          },
208          {
209            breakpoint: 480,
210            settings: {
211              slidesToShow: 1,
212              slidesToScroll: 1,
213              infinite: true,
214              dots: false,
215              centerMode: true,
216              centerPadding: '60px',
217              arrows: false,
218              focusOnSelect: true
219            }
220          }
221        ]
222      });
223    	
224	$mainSlider.slick({
225    slidesToShow: 1,
226    slidesToScroll: 1,
227    asNavFor: $thumSlider,
228    arrows: false,
229    fade: true
230});
231
232// jQuery(".hero-banner .main-video > a").on("click", function(e) {
233//     e.preventDefault(); // This prevents the default behavior of the anchor element
234//     // Add your custom actions here or leave this function empty if you just want to prevent the default behavior
235// });
236jQuery(document).on("click", "#playvideo, .play-video-trigger", function() {
237
238    jQuery('.heroVideoCover img').fadeOut(750);
239    jQuery('.featureTxt').hide();
240    jQuery('.titleCate').hide();
241    jQuery('.hero-banner .main-video a').addClass("bg-black");
242    
243    setTimeout(function(){
244        // $('.heroVp').show();
245        jQuery('.heroVideoCover').hide();
246        $('.heroVp').addClass("active");
247        $('.single-directors .heroVp').addClass("heroVpProduction");
248        $('.single-production .heroVp').addClass("heroVpProduction");
249        $('.single-crew .heroVp').addClass("heroVpProduction");
250        $('.single-video .heroVp').addClass("active");
251    }, 1400);
252  });
253
254jQuery(document).on("keydown", ".play-video-trigger", function (event) {
255    if (event.key === "Enter" || event.key === " ") {
256        event.preventDefault();
257        jQuery(this).trigger("click");
258    }
259});
260  
261
262  // $('.heroVideoCover').click(function() {
263  //   $('.titleCate').hide();
264  //   $('.heroVp').show();
265  // });
266
267
268  
269  jQuery('.inSeries').on('click',function () {
270      if(!jQuery(this).hasClass("active")){
271          
272          var seriesIframe = jQuery(this).parent().find('.insVideo').find('iframe').first();
273          var videoSrc = seriesIframe.attr('data-src') || seriesIframe.attr('src');
274          $('#video1').find('iframe').attr('src', videoSrc);
275          jQuery('.heroVideoCover').fadeOut(750);
276          jQuery('.featureTxt').fadeOut(750);
277          $('.titleCate').hide();
278          setTimeout(function(){
279                // $('.heroVp').show();
280                $('.heroVp').addClass("active");
281                $('.single-directors .heroVp').addClass("heroVpProduction");
282                $('.single-production .heroVp').addClass("heroVpProduction");
283                $('.single-crew .heroVp').addClass("heroVpProduction");
284                $('.single-video .heroVp').addClass("active");
285            }, 750);
286
287        }
288        })
289
290    jQuery('.inSeries').on('click',function () {
291            if(!jQuery(this).hasClass("active")){
292        jQuery('#video1 iframe').attr('src', function(i, val) {
293            return val + '&autoplay=1'; // appending &autoplay=1 to the src attribute
294        });
295    }
296    })
297/*jQuery(document).on("click", "#playvideo", function() {
298    jQuery('.heroVp iframe').attr('src', function(i, val) {
299        return val + '&autoplay=1'; // appending &autoplay=1 to the src attribute
300    });
301});
302jQuery(document).on("click", "#playvideo", function() {
303    jQuery('#video1 iframe').attr('src', function(i, val) {
304        return val + '&autoplay=1'; // appending &autoplay=1 to the src attribute
305    });
306});*/
307jQuery(document).on("click", "#playvideo, .play-video-trigger", function () {
308    jQuery('#video1 iframe, .heroVp iframe').each(function () {
309        var src = this.getAttribute('src'),
310            data = this.getAttribute('data-src');
311        if ((!src || src.indexOf('about:blank') === 0) && data) src = data;
312        if (src && src.indexOf('autoplay=1') === -1)
313            src += (src.indexOf('?') >
313 -1 ? '&' : '?') + 'autoplay=1';
314        this.setAttribute('src', src);
315    });
316});
317
318
319
320jQuery('.inSeries').on('click',function () {
321    if(!jQuery(this).hasClass("active")){
322        jQuery('.inSeries').removeClass("active");
323          jQuery(this).addClass("active");
324    jQuery('.videoThumHolder').find('a').removeClass('active');
325    jQuery(this).find('a').addClass('active');
326}
327})
328
329
330
331jQuery(document).on("click", "section.bts-section-for-interview .main-bts-content .image", function () {
332	var $image  = jQuery(this);
333	var $iframe = $image.find("iframe");
334
335	$image.find("img").fadeOut(750);
336	$image.removeClass("play-icon");
337
338	setTimeout(function () {
339		$iframe.addClass("active");
340	}, 750);
341
342	// Source of truth: data-src (LiteSpeed lazyload) falling back to src.
343	var src = $iframe.attr("data-src") || $iframe.attr("src") || "";
344
345	// Never act on the lazyload placeholder.
346	if ( ! src || 0 === src.indexOf("about:blank") ) {
347		return;
348	}
349
350	// Idempotent autoplay append (handles URLs with or without existing "?").
351	if ( -1 === src.indexOf("autoplay=1") ) {
352		src += ( -1 !== src.indexOf("?") ? "&" : "?" ) + "autoplay=1";
353	}
354
355	// Only reload the iframe if the src actually changes (prevents restart on re-click).
356	if ( $iframe.attr("src") !== src ) {
357		$iframe.attr("src", src);
358	}
359});
360
361
362
363
364  
365
366/* Video Detail Page Slider */
367
368
369    // Open modal
370    // $(".btn-patron").click(function () {
371    //     $("#myModal").css("display", "block");
372    //     $("body").addClass("modal-open");
373    // });
374
375    // Close modal
376    $("#closeModal").click(function () {
377        $("#myModal").css("display", "none");
378        $("body").removeClass("modal-open");
379    });
380
381    // Close modal on outside click
382    $(window).click(function (e) {
383        if (e.target.id === "myModal") {
384            $("#myModal").css("display", "none");
385            $("body").removeClass("modal-open");
386        }
387    });
388	
389
390	
391	/***** Script Name Here *****/
392    
393    var slickConfig = {
394        // mobileFirst: true, 
395		slidesToShow: 3,
396		slidesToScroll: 1,
397		autoplay: false,
398		centerMode: false,
399		infinite: false,
400		initialSlide: 0,
401		arrows:false,
402		dots: false,
403
404        responsive: [
405
406            {
407                breakpoint: 1025,
408                settings: {
409                    slidesToShow: 3,
410                    slidesToScroll: 1,
411                    autoplay: false,
412					centerMode: false,
413                    arrows:false,
414                    dots: false,
415                }
416            },
417            {
418                breakpoint: 767,
419                settings: {
420                    slidesToShow: 2,
421                    slidesToScroll: 1,
422                    autoplay: false,
423					centerMode: false,
424                    arrows:false,
425                    dots: false,
426                }
427            },
428            {
429                breakpoint: 560,
430                settings: {
431                    slidesToShow: 1,
432                    slidesToScroll: 1,
433					centerMode: false,
434                    autoplay: false,
435                    arrows:false,
436                    dots: false,
437                }
438            },
439            
440        ]
441    };
442
443    // Initialize Slick slider on document ready if the screen width is less than or equal to 992
444	const hm_slider = $(".latest-list.flex5b5");
445
446function initSlider() {
447    if ($(window).innerWidth() <= 1024) {
448        if (!hm_slider.hasClass('slick-initialized')) {
449            hm_slider.slick(slickConfig);
450        }
451    } else {
452        if (hm_slider.hasClass('slick-initialized')) {
453            hm_slider.slick('unslick');
454        }
455    }
456}
457
458initSlider();
459
460        // Reinitialize the current page's slider on resize. The namespace
461        // prevents stale handlers accumulating after same-document visits.
462        $(window)
463            .off('resize.dlHomeSlider')
464            .on('resize.dlHomeSlider', initSlider);
465
466    
467	/***** Script Name Here *****/
468    // $(".btn-search-link").click(function(){
469    //     $(".search-submit").click();
470    // });
471
472
473    $(document).on('change', '#mainDropdown', function(){
474        sortProjectItems($(this).val(), '.alm-listing', 'li.item');
475    });
476
477    $(document).on('change', '#mainDropdown_video', function(){
478        sortProjectItems($(this).val(), '.list-of-tab', 'article.item');
479    });
480
481    function sortProjectItems(sortValue, containerSelector, itemSelector) {
482        var attribute = sortValue === 'az' ? 'ptext' : 'pdate';
483        var order = sortValue === 'desc' ? 'desc' : 'asc';
484        var $container = $(containerSelector);
485        var posts = $container.find(itemSelector).get();
486
487        posts.sort(function(a, b) {
488            var aValue = $(a).data(attribute);
489            var bValue = $(b).data(attribute);
490
491            if($.isNumeric(aValue) && $.isNumeric(bValue)) {
492                aValue = parseFloat(aValue);
493                bValue = parseFloat(bValue);
494            }
495
496            if(order === "asc") {
497                return aValue < bValue ? -1 : (aValue > bValue ? 1 : 0);
498            }
499
500            return bValue < aValue ? -1 : (bValue > aValue ? 1 : 0);
501        });
502
503        $container.append(posts);
504    }
505
506
507});
508
509/* Production Detail Page Script */
510
511    $(document).ready(function() {
512
513        // var locationList = $('#locationDiv ul');
514        // var founderList = $('#founderEp ul');
515        // var roster = $('#roster ul');
516
517
518    });
519
520/* Production Detail Page Script Close */
521
522
523
524
525/***** Script Name Here *****/
526function openCity(evt, cityName) {
527    var $button = $(evt.currentTarget);
528    var $section = $button.closest(".home-tab-section");
529
530    if (!$section.length) {
531        return;
532    }
533
534    var tabBar = $section.find(".tab").get(0);
535    var tabBarTop = tabBar ? tabBar.getBoundingClientRect().top : null;
536
537    $section.find(".tabcontent").hide();
538    $section.find(".tablinks").removeClass("active");
539    $section.find(".tabcontent").filter(function () {
540        return this.id === cityName;
541    }).show();
542    $button.addClass("active");
543
544    // Keep the tab bar in the same viewport position while panels are swapped.
545    function restoreTabBarPosition() {
546        if (!tabBar || tabBarTop === null) {
547            return;
548        }
549
550        var movement = tabBar.getBoundingClientRect().top - tabBarTop;
551        if (Math.abs(movement) > 0.5) {
552            window.scrollBy(0, movement);
553        }
554    }
555
556    restoreTabBarPosition();
557    window.requestAnimationFrame(restoreTabBarPosition);
558}
559
560
561
562
563jQuery(document).ready(function () {
564    function openCity(evt, cityName) {
565        var tabcontent = jQuery(".tabcontent-gallery");
566        var tabcontentimg = jQuery(".tabcontent-gallery-img");
567        tabcontent.hide();
568        tabcontentimg.hide();
569
570        var tablinks = jQuery(".tablinks-gallery");
571        tablinks.removeClass("active");
572
573        jQuery("[data-city='" + cityName + "']").show();
574        jQuery(evt.currentTarget).addClass("active");
575    }
576
577    // Set up click event for each button
578    jQuery(document).on("click",".tablinks-gallery", function (event) {
579        console.log("clicked");
580        var cityName = jQuery(this).data("city");
581        openCity(event, cityName);
582    });
583});
584
585
586
587
588$(document).ready(function () {
589  updateIndexes();
590
591  $(".fancybox-infobar span[data-fancybox-index]").each(function () {
592    var index = parseInt($(this).text(), 10);
593    if (index < 10) {
594      $(this).text("0" + index);
595    }
596  });
597  $(".fancybox-infobar span[data-fancybox-count]").each(function () {
598    var index = parseInt($(this).text(), 10);
599    if (index < 10) {
600      $(this).text("0" + index);
601    }
602  });
603
604	
605function initGallery() {
606
607    if ($(window).width() <= 767) {
608
609        $("[data-fancybox='gallery']").each(function () {
610
611            if (!$(this).attr("data-href")) {
612                $(this).attr("data-href", $(this).attr("href"));
613            }
614
615            $(this)
616                .removeAttr("data-fancybox")
617                .removeAttr("href")
618                .css("cursor", "default");
619        });
620
621    } else {
622
623        $("[data-href]").each(function () {
624
625            $(this)
626                .attr("href", $(this).attr("data-href"))
627                .attr("data-fancybox", "gallery");
628
629        });
630
631        if (!$("[data-fancybox='gallery']").hasClass("fb-init")) {
632
633            $("[data-fancybox='gallery']")
634                .addClass("fb-init")
635                .fancybox({
636
637                    smallBtn: true,
638                    zoom: false,
639
640                    animationEffect: "fade",
641                    animationDuration: 400,
642
643                    transitionEffect: "fade",
644                    transitionDuration: 350,
645
646                    clickContent: false,
647
648                    iframe: {
649                        preload: false,
650                    },
651
652                    image: {
653                        preload: true,
654                    },
655
656                    btnTpl: {
657                        smallBtn:
658                            '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}">' +
659                            '<img src="/wp-content/uploads/2024/01/Frame-1160.svg" alt="Close">' +
660                            "</button>",
661                    },
662
663                    tpl: {
664                        arrowLeft:
665                            '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div></div></button>',
666
667                        arrowRight:
668                            '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div></div></button>',
669                    },
670
671                    onInit: function (instance) {
672                        var $controls = $('<div class="dl-gallery-controls" aria-label="Gallery navigation"></div>');
673                        var $previous = instance.$refs.navigation.find('[data-fancybox-prev]');
674                        var $next = instance.$refs.navigation.find('[data-fancybox-next]');
675
676                        /* Fancybox normally positions these three pieces in t
676wo
677                         * unrelated layers. Put the actual native controls and
678                         * counter into one flex row so their alignment is structural. */
679                        $controls
680                            .append($previous)
681                            .append(instance.$refs.infobar)
682                            .append($next);
683
684                        instance.$refs.inner.append($controls);
685                    },
686
687                    caption: function () {
688                        return $(this).find("figcaption").html();
689                    },
690
691                    beforeLoad: function () {
692                        updateIndexes();
693                    },
694
695                    afterLoad: function () {
696                        updateIndexes();
697                    },
698
699                    beforeShow: function () {
700
701                        $(".fancybox-inner > .fancybox-caption").css("opacity", "0");
702
703                        setTimeout(function () {
704
705                            var contentWidth = $(".fancybox-slide--current .fancybox-content").width();
706                            var contentHeight = $(".fancybox-slide--current .fancybox-content").height();
707
708                            $(".fancybox-inner > .fancybox-caption").css({
709                                width: contentWidth,
710                                height: contentHeight,
711                                opacity: "1",
712                                top: "50%",
713                                transform: "translateY(-50%)",
714                                "margin-top": "30px",
715                            });
716
717                        }, 500);
718                    }
719
720                });
721        }
722    }
723}
724
725$(document).ready(function () {
726
727    initGallery();
728
729    $(window).on("resize orientationchange", function () {
730        initGallery();
731    });
732
733});
734
735$(document).ready(function () {
736
737    initGallery();
738
739    $(window).on("resize orientationchange", function () {
740        initGallery();
741    });
742
743});
744
745	
746	
747$(document).ready(function () {
748
749    initGallery();
750
751    $(window).on("resize orientationchange", function () {
752        initGallery();
753    });
754
755});
756
757  $(document).ready(function () {
758    initGallery();
759
760    $(window).on("resize orientationchange", function () {
761      initGallery();
762    });
763  });
764
765  function updateIndexes() {
766    $(".fancybox-infobar span[data-fancybox-index]").each(function () {
767      var index = parseInt($(this).text(), 10);
768      if (index < 10) {
769        $(this)
770          .hide()
771          .text("0" + index)
772          .show();
773      }
774    });
775    $(".fancybox-infobar span[data-fancybox-count]").each(function () {
776      var index = parseInt($(this).text(), 10);
777      if (index < 10) {
778        $(this)
779          .hide()
780          .text("0" + index)
781          .show();
782      }
783    });
784
785    // var imageWidth = $('.fancybox-slide--image .fancybox-content img.fancybox-image:nth-child(2)').width();
786    // $('.fancybox-caption.fancybox-caption--separate.caption--bottom.caption--image').css('max-width', imageWidth + 'px');
787  }
788  $(".awardImg").fancybox({
789    buttons: ["close"],
790    loop: false,
791    protect: true,
792    zoom: false,
793    animationEffect: false,
794    clickContent: false,
795    btnTpl: {
796      smallBtn:
797        '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}">' +
798        '<img src="/wp-content/uploads/2024/01/Frame-1160.svg" alt="Close">' +
799        "</button>",
800    },
801
802    tpl: {
803      tpl: {
804        closeBtn:
805          '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',
806      },
807    },
808    afterLoad: function (instance, current) {
809      instance.$refs.container.addClass("single-video-lightbox");
810    },
811  });
812});
813
814$(document).ready(function() {
815    $('section.bts-section-for-interview').each(function() {
816      if ($(this).next().hasClass('bts-section-for-interview')) {
817        $(this).addClass('has-padding-bottom');
818        $(this).next().addClass('has-padding-top');
819      }
820    });
821  });
822  
823
824
825jQuery(document).ready(function () {
826    jQuery('.search-field').attr('placeholder', 'Search Directors\' Library');
827    jQuery(document).on("click", "form.search-form label", function() {
828        console.log("clicked");
829        jQuery('.search-field').val("");
830    });
831    
832});
833
834if ($('body.post-type-archive-frames').length || $('body.post-type-archive-bts').length || $('body.post-type-archive-interviews').length) {
835
836   
837
838    var pType = '';
839    var postsPerPage = 15; // Default value
840    
841    if ($('body.post-type-archive-frames').length) {
842        pType = 'frames';
843        postsPerPage = 16;
844        var page = 2;
845
846        var $loadMoreButton = $('#btnBTSF');
847        var $loader = $('#loader'); // Loader element
848        $loader.hide();
849        $loadMoreButton.text('See More');
850
851    } else if ($('body.post-type-archive-bts').length) {
852        pType = 'bts';
853        postsPerPage = 20;
854        var page = 2;
855
856        var $loadMoreButton = $('#btnBTSF');
857        var $loader = $('#loader'); // Loader element
858        $loader.hide();
859        $loadMoreButton.text('See More');
860
861    } else if ($('body.post-type-archive-interviews').length) {
862        pType = 'interviews';
863        postsPerPage = 15;
864        var page = 2;
865
866        var $loadMoreButton = $('#btnBTSF');
867        var $loader = $('#loader'); // Loader element
868        $loader.hide();
869        $loadMoreButton.text('See More');
870
871    }
872
873
874    //jQuery(document).ready(function ($) {
875      
876        var loading = false;
877        var $loadMoreButton = $('#btnBTSF');
878        var $postsContainer = $('#primary');
879        var $loader = $('#loader'); // Loader element
880        var $cpType = pType;
881        var scrollEnabled = false;
882        var $siteMain = $("#lmcFBTS");
883    
884
885        // jQuery('#main').addClass('active');
886
887        // Function to load posts via AJAX
888        function loadPosts() {
889            if (!loading) {
890                loading = true;
891                $loader.show();
892                $loadMoreButton.text('Loading...');
893                $siteMain.addClass('active');
894        
895                $.ajax({
896                    url: custVar.ajax_url,
897                    type: 'post',
898                    data: {
899                        action: 'load_more_posts_fbts',
900                        page: page,
901                        cpType: $cpType,
902                        posts_per_page: postsPerPage
903                    },
904                    success: function (response) {
905                        var responseHtml = $.trim(response);
906
907                        if (responseHtml && responseHtml !== '0') {
908                            $postsContainer.append(responseHtml);
909                            page++;
910        
911                            // Get all lazy images
912                            // var $lazyImages = $(".lazy-img");
913                            // var imagesLoaded = 0;
914        
915                        } else {
916                            scrollEnabled = false;
917                            $loadMoreButton.hide();
918                        }
919                        $loadMoreButton.text('See More');
920                        loading = false;
921                        $loader.hide();
922                        $('.hide-section').show();
923                        $siteMain.removeClass('active');
924                      //  $('section.b-top').css('opacity','1');
925                      //  $('.latest-list.flex5b5').slick('refresh')
926                        $('.see-more').removeClass("padding-bottom-90");
927                        initImgLazyLoad();
928                    }
929                });
930            }
931        }
932        
933            // $(".lazy-img").fadeIn(400);
934
935        // Load more posts on button click
936        $loadMoreButton.on('click', function () {
937            loadPosts(false);
938        });
939    //});
940}
941
942$(document).ready(function() {
943    $(document).ready(function() {
944        if ($(window).width() <= 768) {
945            $('.btn-watch').click(function() {  
946                var src = $('#video1 iframe').attr('src') + '&allow="fullscreen"';
947                $('#video1 iframe').attr('src', src);
948            });
949        }
950    });
951});
952
953
954function hideShowElements() {
955    var mydummyList = document.querySelector('.mydummyList5');
956    if (mydummyList) {
957      mydummyList.style.display = 'none';
958    }
959
960    var latestList = document.querySelector('.loadall');
961    if (latestList) {
962      latestList.classList.remove('display-none-sm');
963    }
964}
965
966window.addEventListener('load', hideShowElements);
967
968window.addEventListener('resize', function() {
969    // Check screen width
970    if (window.innerWidth <= 1024) {
971        hideShowElements();
972    }
973});
974
975
976// Production detail
977
978
979
980document.addEventListener('DOMContentLoaded', function () {
981    var myList = document.getElementById('myList');
982    var counter = document.getElementById('counter');
983    updateCounter();
984    
985    function updateCounter() {
986        //var numberOfItems = myList.getElementsByTagName('li').length;
987        //counter.textContent = numberOfItems < 10 ? '0' + numberOfItems : numberOfItems;
988    }
989});
990
991// Give selected Cognito form section headings stable, page-scoped hooks.
992function dlTagSubmitFormHeadings(root) {
993    var isSharedFormPage = document.body.classList.contains('page-id-62233')
994        || document.body.classList.contains('page-id-67410');
995
996    if (!isSharedFormPage) {
997        return;
998    }
999
1000    var submitSectionHeadings = [
1001        'Project Details',
1002        'Screening Link',
1003        'Project Description',
1004        'Technical Information',
1005        'Electronic Press Kit',
1006        'DIRECTORY',
1007        'Credits',
1008        'Crew Credits',
1009        'Ethics & Attribution',
1010        'Terms & Conditions',
1011        'Conduct',
1012        'Selection Criteria',
1013        'Release Details.'
1014    ];
1015
1016    (root || document).querySelectorAll('.cog-html p').forEach(function (paragraph) {
1017        var headingText = paragraph.textContent.replace(/\u00a0/g, ' ').trim();
1018
1019        if (submitSectionHeadings.indexOf(headingText) !== -1) {
1020            paragraph.classList.add('dl-submit-section-heading');
1021        }
1022    });
1023}
1024
1025document.addEventListener('DOMContentLoaded', function () {
1026    dlTagSubmitFormHeadings(document);
1027
1028    if (
1029        document.body.classList.contains('page-id-62233')
1030        || document.body.classList.contains('page-id-67410')
1031    ) {
1032        new MutationObserver(function (mutations) {
1033            mutations.forEach(function (mutation) {
1034                mutation.addedNodes.forEach(function (node) {
1035                    if (node.nodeType === 1) {
1036                        dlTagSubmitFormHeadings(node);
1037                    }
1038                });
1039            });
1040        }).observe(document.body, { childList: true, subtree: true });
1041    }
1042});
1043
1044
1045jQuery(function ($) {
1046    var homepageLoaders = [
1047        { button: 'aVideos', postType: 'video' },
1048        { button: 'filmTv', postType: 'video', categoryName: 'Film & Tv', categorySlug: 'film-tv' },
1049        { button: 'vShorts', postType: 'video', categoryName: 'Shorts', categorySlug: 'shorts' },
1050        { button: 'musicVideos', postType: 'video', categoryName: 'Music Videos', categorySlug: 'music-videos' },
1051        { button: 'vCampaigns', postType: 'video', categoryName: 'Campaigns', categorySlug: 'campaigns' },
1052        { button: 'vGallery', postType: 'video', categoryName: 'Galleries', categorySlug: 'galleries' },
1053        { button: 'hInterviews', postType: 'interviews', categoryName: 'Interviews' },
1054        { button: 'hBTS', postType: 'bts', categoryName: 'BTS' },
1055        { button: 'hFrames', postType: 'frames', categoryName: 'FRAMES' }
1056    ];
1057
1058    $('.home-tab-section .tablinks').on('click', function (event) {
1059        openCity(event, $(this).data('tab'));
1060    });
1061
1062    $.each(homepageLoaders, function (_, config) {
1063        config.page = 2;
1064
1065        $('.' + config.button).on('click', function (event) {
1066            event.preventDefault();
1067
1068            var $button = $(this);
1069            if ($button.hasClass('is-loading')) {
1070                return;
1071            }
1072
1073            $button.addClass('is-loading').text('Loading...');
1074            $button.after(
1075                '<div class="homepage-tab-loader" style="width:100%;">' +
1076                '<img src="' + custVar.theme_url + '/assets/css/ajax-loader.gif" alt="">' +
1077                '</div>'
1078            );
1079
1080            $.ajax({
1081                url: custVar.ajax_url,
1082                type: 'POST',
1083                data: {
1084                    action: 'load_more_seemore',
1085                    postType: config.postType,
1086                    catName: config.categoryName || '',
1087                    catSlug: config.categorySlug || '',
1088                    page: config.page
1089                }
1090            }).done(function (response) {
1091                $button.before(response);
1092                config.page++;
1093                $button.text('See More');
1094            }).fail(function () {
1095                $button.text('Try Again');
1096            }).always(function () {
1097                $button.removeClass('is-loading');
1098                $button.siblings('.homepage-tab-loader').remove();
1099            });
1100        });
1101    });
1102});
1103
1104
1105/*share button */
1106$('.sharing .classic-heading').on('click', function () {
1107    // Find the closest '.sharing' element to the clicked '.classic-heading'
1108    var parentSharing = $(this).closest('.sharing');
1109    
1110    // Toggle 'active' class only on this '.sharing' element
1111    parentSharing.toggleClass('active');
1112    
1113    // Find the corresponding '.widget-area' within this '.sharing' element and toggle it
1114    parentSharing.find('.widget-area').toggle('slow');
1115});
1116
1117
1118
1119
1120// Detect Browser Script
1121
1122
1123var os 
1124if (navigator.userAgent.indexOf('Mac OS X') != -1) {
1125    // console.log("mac");
1126    var os = "Mac"
1127    // detectBrowser(os)
1128    $('body').addClass('mac-os')
1129} else {
1130  os = "Windows"
1131    // console.log("window");
1132  // detectBrowser(os);
1133  $('body').addClass('window-os')
1134}
1135
1136
1137// Helper if element exist then call function
1138function isElementExist(_el, _cb) {
1139    var elem = document.querySelector(_el);
1140
1141    if (document.body.contains(elem)) {
1142        _cb();
1143    }
1144}
1145
1146jQuery(window).on('load', function () {
1147    isElementExist(".initImg", initImgLazyLoad);
1148})
1149
1150function initImgLazyLoad() {
1151    var images = document.querySelectorAll('.initImg');
1152
1153    if (!window.IntersectionObserver) {
1154        [].forEach.call(images, function (item) { item.style.opacity = 1 });
1155    } else {
1156        var isFirst = false;
1157
1158        var observer = new IntersectionObserver(function (entries, observer) {
1159            entries.forEach(function (entry) {
1160                var raf, time, lastFrame;
1161
1162                var speed = 0.025, value = 0;
1163                var step = 1 / speed;
1164                var bottom = entry.boundingClientRect.bottom;
1165
1166                if (!entry.isIntersecting) return;
1167
1168                // Check if the opacity is already 1
1169                if (entry.target.style.opacity === '1') {
1170                    observer.unobserve(entry.target); // End observation if fully visible
1171                    return; // Skip further processing for this image
1172                }
1173
1174                function loop(now) {
1175                    lastFrame = performance.now();
1176                    time = 0;
1177
1178                    raf = requestAnimationFrame(loop);
1179
1180                    var deltaT = now - lastFrame;
1181
1182                    if (deltaT < 160) {
1183                        time += deltaT;
1184
1185                        // Animation
1186                        if (step >= 0) {
1187                            step--;
1188                            value += speed;
1189                        } else {
1190                            cancelAnimationFrame(raf);
1191                        }
1192
1193                        entry.target.style.opacity = value < 1 ? value.toFixed(2) : 1;
1194                    }
1195
1196                    lastFrame = now;
1197                }
1198
1199                // In viewport
1200                if (bottom >= 0 && entry.intersectionRatio >= 0.8) {
1201                    setTimeout(function () {
1202                        isFirst = true;
1203                        loop();
1204                    }, isFirst ? 1 : 800);
1205
1206                    observer.unobserve(entry.target); // End observation for this target
1207                }
1208            });
1209        }, {
1210            root: null,
1211            rootMargin: "0px",
1212            threshold: [0, 0.5, 1]
1213        });
1214
1215        // Observe each image
1216        images.forEach(function (img) { observer.observe(img); });
1217    }
1218}
1219
1220// Share profiles and videos natively on touch devices, with a desktop copy fallback.
1221jQuery(document).on('click', '.copy-page-url', function () {
1222    var button = this;
1223    var pageUrl = window.location.href;
1224    var label = button.querySelector('span');
1225    var originalLabel = button.getAttribute('data-label') || 'SHARE';
1226
1227    function showCopiedState() {
1228        window.clearTimeout(button.copyStateTimer);
1229        button.style.width = button.getBoundingClientRect().width + 'px';
1230        button.classList.remove('is-copied');
1231        void button.offsetWidth;
1232        button.classList.add('is-copied');
1233        if (label) {
1234            label.textContent = 'COPIED';
1235        }
1236        button.setAttribute('aria-label', 'Page URL copied');
1237        button.copyStateTimer = window.setTimeout(function () {
1238            button.classList.remove('is-copied');
1239            if (label) {
1240                label.textContent = originalLabel;
1241            }
1242            button.style.width = '';
1243            button.setAttribute('aria-label', 'Copy page URL');
1244        }, 2000);
1245    }
1246
1247    function showCopyFallback() {
1248        window.prompt('Copy this page link:', pageUrl);
1249    }
1250
1251    function copyPageUrl() {
1252        if (navigator.clipboard && window.isSecureContext) {
1253            navigator.clipboard.writeText(pageUrl).then(showCopiedState).catch(showCopyFallback);
1254            return;
1255        }
1256
1257        var textArea = document.createElement('textarea');
1258        textArea.value = pageUrl;
1259        textArea.setAttribute('readonly', '');
1260        textArea.style.position = 'fixed';
1261        textArea.style.opacity = '0';
1262        document.body.appendChild(textArea);
1263        textArea.select();
1264
1265        try {
1266            if (document.execCommand('copy')) {
1267                showCopiedState();
1268            } else {
1269                showCopyFallback();
1270            }
1271        } catch (error) {
1272            showCopyFallback();
1273        }
1274
1275        document.body.removeChild(textArea);
1276    }
1277
1278    var prefersNativeShare = window.matchMedia('(hover: none) and (pointer: coarse)').matches;
1279    if (prefersNativeShare && navigator.share) {
1280        navigator.share({
1281            title: document.title,
1282            url: pageUrl
1283        }).catch(function (error) {
1284            if (error.name !== 'AbortError') {
1285                copyPageUrl();
1286            }
1287        });
1288        return;
1289    }
1290
1291    copyPageUrl();
1292});
1293// Keep mobile search categories in two independent, predictable columns.
1294function dlArrangeSuggestedTermColumns(root) {
1295    var navs = (root || document).querySelectorAll('.suggested-nav');
1296
1297    navs.forEach(function (nav) {
1298        if (nav.querySelector(':scope > .suggested-column')) {
1299            return;
1300        }
1301
1302        var left = document.createElement('div');
1303        var right = document.createElement('div');
1304        left.className = 'suggested-column suggested-column-left';
1305        right.className = 'suggested-column suggested-column-right';
1306
1307        ['.suggested-director', '.suggested-format', '.suggested-festival'].forEach(function (selector) {
1308            var item = nav.querySelector(':scope > ' + selector);
1309            if (item) left.appendChild(item);
1310        });
1311
1312        ['.suggested-location', '.suggested-production', '.suggested-record-label', '.suggested-agency'].forEach(function (selector) {
1313            var item = nav.querySelector(':scope > ' + selector);
1314            if (item) right.appendChild(item);
1315        });
1316
1317        nav.appendChild(left);
1318        nav.appendChild(right);
1319    });
1320}
1321
1322document.addEventListener('DOMContentLoaded', function () {
1323    dlArrangeSuggestedTermColumns(document);
1324
1325    var suggestedResults = document.querySelector('.suggested-results');
1326    if (suggestedResults) {
1327        new MutationObserver(function () {
1328            dlArrangeSuggestedTermColumns(suggestedResults);
1329        }).observe(suggestedResults, { childList: true, subtree: true });
1330    }
1331});
1332
1333/*
1334 * Temporary Chrome/iOS navigation diagnostics. This is completely dormant
1335 * unless the current tab has first visited a URL containing
1336 * ?dl-chrome-debug=1. The flag and event history then persist in sessionStorage
1337 * across same-origin navigations so an iPhone test can capture the outgoing
1338 * page and the incoming page in one log.
1339 */
1340(function dlChromeNavigationDiagnostics() {
1341    var enabledKey = 'dlChromeNavigationDebugEnabled';
1342    var logKey = 'dlChromeNavigationDebugLog';
1343    var query = new URLSearchParams(window.location.search);
1344
1345    try {
1346        if (query.get('dl-chrome-debug') === '1') {
1347            window.sessionStorage.setItem(enabledKey, '1');
1348            window.sessionStorage.removeItem(logKey);
1349        } else if (query.get('dl-chrome-debug') === '0') {
1350            window.sessionStorage.removeItem(enabledKey);
1351            window.sessionStorage.removeItem(logKey);
1352        }
1353
1354        if (window.sessionStorage.getItem(enabledKey) !== '1') {
1355            return;
1356        }
1357    } catch (error) {
1358        return;
1359    }
1360
1361    function readLog() {
1362        try {
1363            return JSON.parse(window.sessionStorage.getItem(logKey) || '[]');
1364        } catch (error) {
1365            return [];
1366        }
1367    }
1368
1369    function elementSummary(element) {
1370        if (!element || element === document.body) {
1371            return element === document.body ? 'body' : '';
1372        }
1373
1374        var result = element.tagName ? element.tagName.toLowerCase() : '';
1375        if (element.id) result += '#' + element.id;
1376        if (element.classList && element.classList.length) {
1377            result += '.' + Array.prototype.slice.call(element.classList, 0, 3).join('.');
1378        }
1379        return result;
1380    }
1381
1382    function record(name, details) {
1383        var header = document.querySelector('#site-header');
1384        var headerRect = header ? header.getBoundingClientRect() : null;
1385        var viewport = window.visualViewport;
1386        var entries = window.performance && window.performance.getEntriesByType
1387            ? window.performance.getEntriesByType('navigation')
1388            : [];
1389        var logs = readLog();
1390
1391        logs.push({
1392            event: name,
1393            at: Date.now(),
1394            perf: window.performance ? Math.round(window.performance.now()) : null,
1395            path: window.location.pathname + window.location.search,
1396            navigationType: entries[0] ? entries[0].type : null,
1397            scrollX: Math.round(window.scrollX),
1398            scrollY: Math.round(window.scrollY),
1399            innerHeight: Math.round(window.innerHeight),
1400            clientHeight: Math.round(document.documentElement.clientHeight),
1401            viewport: viewport ? {
1402                pageTop: Math.round(viewport.pageTop),
1403                offsetTop: Math.round(viewport.offsetTop),
1404                height: Math.round(viewport.height),
1405                scale: viewport.scale
1406            } : null,
1407            header: headerRect ? {
1408                top: Math.round(headerRect.top),
1409                bottom: Math.round(headerRect.bottom),
1410                height: Math.round(headerRect.height)
1411            } : null,
1412            active: elementSummary(document.activeElement),
1413            details: details || null
1414        });
1415
1416        if (logs.length > 120) {
1417            logs = logs.slice(logs.length - 120);
1418        }
1419
1420        try {
1421            window.sessionStorage.setItem(logKey, JSON.stringify(logs));
1422        } catch (error) {
1423            /* Diagnostic storage must never affect the live page. */
1424        }
1425    }
1426
1427    function addCopyButton() {
1428        if (!document.body || document.getElementById('dl-copy-chrome-debug')) {
1429            return;
1430        }
1431
1432        var button = document.createElement('button');
1433        button.id = 'dl-copy-chrome-debug';
1434        button.type = 'button';
1435        button.textContent = 'COPY DL DEBUG';
1436        button.style.cssText = 'position:fixed;left:10px;bottom:10px;z-index:2147483647;padding:8px 10px;border:0;border-radius:2px;background:#1a1919;color:#fff;font:11px/1.2 sans-serif;letter-spacing:.02em;';
1437
1438        button.addEventListener('click', function () {
1439            record('copy-debug');
1440            var value = window.sessionStorage.getItem(logKey) || '[]';
1441
1442            function copied() {
1443                button.textContent = 'COPIED';
1444                window.setTimeout(function () {
1445                    button.textContent = 'COPY DL DEBUG';
1446                }, 1200);
1447            }
1448
1449            if (window.navigator.clipboard && window.isSecureContext) {
1450                window.navigator.clipboard.writeText(value).then(copied);
1451                return;
1452            }
1453
1454            var field = document.createElement('textarea');
1455            field.value = value;
1456            field.setAttribute('readonly', '');
1457            field.style.position = 'fixed';
1458            field.style.opacity = '0';
1459            document.body.appendChild(field);
1460            field.select();
1461            document.execCommand('copy');
1462            document.body.removeChild(field);
1463            copied();
1464        });
1465
1466        document.body.appendChild(button);
1467    }
1468
1469    var scrollQueued = false;
1470    function recordScroll(name) {
1471        if (scrollQueued) return;
1472        scrollQueued = true;
1473        window.requestAnimationFrame(function () {
1474            scrollQueued = false;
1475            record(name);
1476        });
1477    }
1478
1479    record('script-ready', {
1480        userAgent: window.navigator.userAgent,
1481        chromeIosNativeNavigation: document.documentElement.classList.contains('dl-crios-native-navigation'),
1482        chromeIosSameDocumentNavigation: document.documentElement.classList.contains('dl-crios-same-document-navigation'),
1483        startViewTransition: typeof document.startViewTransition === 'function',
1484        pageSwapEvent: typeof window.PageSwapEvent === 'function'
1485    });
1486
1487    document.addEventListener('touchstart', function (event) {
1488        var link = event.target && event.target.closest ? event.target.closest('a[href]') : null;
1489        record('touchstart', { href: link ? link.href : null });
1490    }, { capture: true, passive: true });
1491
1492    document.addEventListener('click', function (event) {
1493        var link = event.target && event.target.closest ? event.target.closest('a[href]') : null;
1494        record('click', { href: link ? link.href : null, prevented: event.defaultPrevented });
1495    }, true);
1496
1497    document.addEventListener('visibilitychange', function () {
1498        record('visibilitychange', { state: document.visibilityState });
1499    });
1500    window.addEventListener('scroll', function () { recordScroll('window-scroll'); }, { passive: true });
1501    window.addEventListener('beforeunload', function () { record('beforeunload'); });
1502    window.addEventListener('pagehide', function (event) { record('pagehide', { persisted: event.persisted }); });
1503    window.addEventListener('pageswap', function (event) { record('pageswap', { hasViewTransition: Boolean(event.viewTransition) }); });
1504    window.addEventListener('pagereveal', function (event) { record('pagereveal', { hasViewTransition: Boolean(event.viewTransition) }); });
1505    window.addEventListener('pageshow', function (event) { record('pageshow', { persisted: event.persisted }); });
1506    window.addEventListener('load', function () { record('load'); });
1507
1508    document.addEventListener('turbo:before-visit', function (event) {
1509        record('turbo-before-visit', { url: event.detail && event.detail.url ? event.detail.url.href : null });
1510    });
1511    document.addEventListener('turbo:before-render', function () { record('turbo-before-render'); });
1512    document.addEventListener('turbo:render', function () { record('turbo-render'); });
1513    document.addEventListener('turbo:load', function () {
1514        record('turbo-load');
1515        addCopyButton();
1516    });
1517
1518    if (window.visualViewport) {
1519        window.visualViewport.addEventListener('scroll', function () { recordScroll('viewport-scroll'); }, { passive: true });
1520        window.visualViewport.addEventListener('resize', function () { recordScroll('viewport-resize'); }, { passive: true });
1521    }
1522
1523    if (document.readyState === 'loading') {
1524        document.addEventListener('DOMContentLoaded', function () {
1525            record('dom-content-loaded');
1526            addCopyButton();
1527        });
1528    } else {
1529        record('dom-already-ready');
1530        addCopyButton();
1531    }
1532}());

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.