PageSourceSearch

https://www.medalsofamerica.com/static/version1789184493/frontend/…/js/custom_ribbons_builder.js

js medalsofamerica.com collected 2026-09-24 09:52:56 UTC 44,983 bytes, 1,007 lines download raw bytes

1require(['jquery', 'Magento_Ui/js/modal/modal', 'domReady!'], function($, modal) {
2    function addBlankBoxes(target, count) {
3        for (var i = 0; i <= count; i++) {
4            $('<div />')
5                .addClass('blank_g_box')
6                .insertAfter('#selection_item_palceholder > div:last-child');
7        }
8    }
9    addBlankBoxes('#selection_item_palceholder > div:last-child', 7);
10    $('input').keypress(function(e) {
11        if (e.keyCode == 13) {
12            return false;
13        }
14    });
15    var armyAttachmentRibbonLimit = 4;
16    sRack = '';
17    sPattern = '';
18    sType = '';
19    clearSelectedFlag = false;
20    sectionsLoaded = {
21        regular_ribbons: 0,
22        mini_ribbons: 0,
23        slideon_ribbons: 0,
24        decal_ribbons: 0
25    };
26
27    $('.main_overlay').css({
28        'height': $(window).height() + 'px'
29    });
30    $(document).on('click', ".input_type_radio_css_pop", function() {
31        var selectedBranch = this.value;
32        $(".option_popup_inner_right_inner .select_attachment_images").find('li .branch_attachement_patterns_multiple').each(function() {
33            var needtoCheckin = this.value;
34            var $this = $(this);
35            if (needtoCheckin.indexOf(selectedBranch) != -1) {
36                $this.parent().show();
37            } else {
38                $this.parent().hide();
39            }
40        });
41    });
42
43    $(window).resize(function() {
44        $('.main_overlay').css({
45            'height': $(window).height() + 'px'
46        });
47    });
48    var ulwidth = 0;
49    $(document).on('click', "#builder_preview .selected_elem li span", function() {
50        var $this = $(this);
51        var hideEl = $this.data('removeid');
52        var checkEl = $this.data('uncheck');
53        $('#' + checkEl).trigger('click');
54
55        $('#' + checkEl).prop('checked', false);
56        $('#' + hideEl).hide();
57        $('#' + checkEl).parent().removeClass('item_added_into_q');
58        $('#' + checkEl).parent().children('.added_button_remove_mian').hide();
59        $('#' + checkEl).parent().children('.see_details_pop_mian').show();
60
61        if ($('.field-regular').find('input[type=checkbox]:checked').length > 0) {
62            $('#builder_preview').addClass('builder_previewing');
63            $('.step2_preview').show();
64            $('.heading_3_main_second.inner_custom_width').addClass('heading_3_main_activated');
65            $('.heading_3_main_second .step3_msg_holder').hide();
66        } else if ($('.field-com').find('input[type=checkbox]:checked').length > 0) {
67            $('#builder_preview').addClass('builder_previewing');
68            $('.step2_preview').show();
69            $('.heading_3_main_second.inner_custom_width').addClass('heading_3_main_activated');
70            $('.heading_3_main_second .step3_msg_holder').hide();
71        } else {
72            $('#builder_preview').removeClass('builder_previewing');
73            $('.step2_preview').hide();
74            $('.heading_3_main_second.inner_custom_width').removeClass('heading_3_main_activated');
75            $('.heading_3_main_second .step3_msg_holder').show();
76            $('.header_3').removeClass('active_accord');
77            $('.header_3_content_main').hide();
78            $('#preview_selected_edit').hide();
79            $('.product-header').hide();
80        }
81
82        $('#sticky-' + hideEl).remove();
83        $('.page-wrapper').removeClass('main_overlay');
84        setGlobalPriceValue();
85    });
86
87    // scroll to checked item
88    $(document).on('click', '#builder_preview .selected_elem li label', function() {
89        var $this = $(this);
90        var $container = $("html,body");
91        var clspath = $this.data('scrollid');
92        var $scrollTo = $('.' + clspath);
93        $container.animate({
94            scrollTop: $scrollTo.offset().top - $container.offset().top,
95            scrollLeft: 0
96        }, 300);
97        var $showEl = $('#' + $this.parent().data('addid'));
98        $showEl.show();
99        $showEl.find('.add_medal_btns').hide();
100        $showEl.find('.update_medal_btns').show();
101        if ($(window).width() <= 767) {
102            $('.page-wrapper').addClass("main_overlay");
103        }
104    });
105
106    // Closing popup of step#2
107    $(document).on('click', '.close_me', function() {
108        $('#' + $(this).data('close')).hide();
109        $('.page-wrapper').removeClass('main_overlay');
110    });
111
112    $('.option-popup').on('click', function(e) {
113        if (e.target != this){
114            return true;
115        } else {
116            $('.close_me').trigger('click');
117        }
118    });
119
120    // Removing selected medal
121    $(document).on('click', '.remove_medal_from_pop', function() {
122        var $this = $(this);
123        var hideEl = $this.data('close');
124        var elementScrollId = $this.data('scrollid');
125        var checkEl = $this.data('id');
126        var $checkEl = $('#' + checkEl);
127        if ($checkEl.prop('checked') == true) {
128            $checkEl.prop('checked', false);
129        }
130        $('#' + hideEl).hide();
131
132        $checkEl.parent().removeClass('item_added_into_q');
133        $checkEl.parent().children('.added_button_remove_mian').hide();
134        $checkEl.parent().children('.see_details_pop_mian').show();
135        if ($('.field-regular').find('input[type=checkbox]:checked').length > 0) {
136            $('#builder_preview').addClass('builder_previewing');
137            $('.step2_preview').show();
138            $('.heading_3_main_second.inner_custom_width').addClass('heading_3_main_activated');
139            $('.heading_3_main_second .step3_msg_holder').hide();
140        } else {
141            $('#builder_preview').removeClass('builder_previewing');
142            $('.step2_preview').hide();
143            $('.heading_3_main_second.inner_custom_width').removeClass('heading_3_main_activated');
144            $('.heading_3_main_second .step3_msg_holder').show();
145            $('.header_3').removeClass('active_accord');
146            $('.header_3_content_main').hide();
147            $('#preview_selected_edit').hide();
148            $('.product-header').hide();
149        }
150        $('#sticky-' + hideEl).remove();
151        ulwidth = $('.selected_elem li').length * 160;
152        $('.selected_elem').css({
153            "width": ulwidth
154        });
155        setGlobalPriceValue();
156        $('.page-wrapper').removeClass('main_overlay');
157        var $container = $('html,body');
158        var $scrollTo = $('.' + elementScrollId);
159        $container.animate({
160            scrollTop: $scrollTo.offset().top - $container.offset().top,
161            scrollLeft: 0
162        }, 300);
163    });
164
165    //adding medal
166    $(document).on('click', ".add_medal_from_pop", function() {
167        var attachments = 0;
168        $(this).parent().siblings('div .select_attachment_images').each(function() {
169            $(this).find('li').each(function() {
170                var $this  = $(this);
171                if ($this.find('select').length >= 1) {
172                    labelAtt = $this.find('select').prev().text();
173                    if (~labelAtt.toLowerCase().indexOf("numerals")) {
174                        attachments += parseInt(1);
175                    } else if (~labelAtt.toLowerCase().indexOf("knot")) {
176                        attachments += parseInt(1);
177                    } else {
178                        attachments += parseInt($this.find('select').find(":selected").text());
179                    }
180                } else {
181                    attachments += parseInt(0);
182                }
183                if ($this.find('input[type="checkbox"]').prop("checked") == true) {
184                    attachments += parseInt(1);
185                } else {
186                    attachments += parseInt(0);
187                }
188            });
189        });
190        var branchValue = $("input[name='" + $(this).data("radioid") + "']:checked").val();
191        if (branchValue == 'army' && attachments > armyAttachmentRibbonLimit) {
192            return alert(
193                'Cannot add more than ' + armyAttachmentRibbonLimit +
194                'Attachments for this branch.'
195            );
196        }
197        $('.product-header').show();
198        var $this = $(this);
199        var checkEl = $this.data("id");
200        var $checkEl = $('#' + checkEl);
201        var elementScrollId = $this.data("scrollid");
202        if ($checkEl.prop('checked') == false) {
203            $checkEl.prop('checked', true);
204        }
205        var status = true;
206        var hideEl = $(this).data('close');
207        var $hideEl = $('#' + hideEl);
208        var $hideElement = $("div[data-role='"+hideEl+"']");
209        $hideEl.hide();
210        $hideElement.find('.added_button_remove_mian').show();
211        $hideElement.find('.see_details_pop_mian').hide();
212        $hideElement.addClass('item_added_into_q');
213        $('#builder_preview').addClass('builder_previewing');
214        $('.step2_preview').show();
215        $('.heading_3_main_second.inner_custom_width').addClass('heading_3_main_activated');
216        $('.heading_3_main_second .step3_msg_holder').hide();
217        $("#builder_preview").each(function() {
218            $(this).find('li').each(function() {
219                var dataaddId = $(this).data("addid");
220                if (dataaddId == hideEl) {
221                    status = false;
222                }
223            });
224        });
225        if (status) {
226            var productImage = $('.image_' + checkEl).prop('src');
227            $('#builder_preview .selected_elem')
228                .append(
229                    '<li id="sticky-' + hideEl + '" data-addid=' + hideEl + '>' +
230                        '<label data-scrollid="' + elementScrollId + '">' +
231                            '<img class="sticky_preview_img" src="' + productImage + '" />' +
232                        '</label>' +
233                        '<span data-uncheck=' + checkEl + ' data-removeid=' + hideEl + ' >x</span>' +
234                    '</li>'
235                );
236            ulwidth = $('.selected_elem li').length * 160;
237            $('.selected_elem').css({
238                "width": ulwidth
239            });
240            if ((ulwidth - $('.slider_container').width()) > 0) {
241                $('.right_slide').show();
242            }
243        }
244        setGlobalPriceValue();
245        $('.page-wrapper').removeClass('main_overlay');
246        if ($('.header_3').hasClass('active_accord')) {
247            $('.header_3_content_main').hide();
248            $('.header_3').removeClass('active_accord');
249            $('#preview_selected_edit').css({
250                "display": "none"
251            });
252            $('.step3_msg_holder').html("Ribbons updated. Click on Preview Now to reload this section.");
253            $('.step3_updated_holder').css({
254                "display": "inline-block"
255            });
256        }
257    });
258
259    // Show checkmark on the step#1a
260    $('.seldiv input.input_type_radio_css_1').click(function() {
261        if (window.selectedRibbonType !== undefined) {
262            var resetForm = confirm('Changing your Ribbon type will reset your selections! Continue?');
263            if (resetForm === false) {
264                $('.builder_selections').slideDown();
265                $('.builder_selections.ribbons.button-move-bottom').hide();
266                $('.builder_selections_selected_val').show();
267                $('.box_border_step2_inner').show();
268                $('.fieldset-builder-options').show();
269                $('.box_border_step2').addClass('active_accord');
270                $('.heading_2_main_second.inner_custom_width').addClass('heading_2_main_activated');
271                return;
272            } else {
273                $('#product_addtocart_form').trigger('reset');
274                $('.step2_preview').hide();
275                $('.header_3_content_main.inner_custom_width').hide();
276                $('.heading_3_main_second.inner_custom_width').removeClass('heading_3_main_activated');
277                $('.ribbons_mounting_spacing_options').hide();
278            }
279        }
280        $('.box_border_heading2_1').css("position", "initial");
281        $(this).parent().parent().addClass('input_type_radio_css_marked');
282        $("#branch_type_tab").removeClass("inactive");
283        $("#branch_type_tab").trigger("click");
284        var selectedValBranchRack = $('input[name=select_builder_rack]:checked').next().text();
285        $("#selection_type_tab").html(selectedValBranchRack);
286    });
287
288    $(".input_type_radio_css:radio").click(function() {
289        var curBranch = this.value;
290        $(':radio[name=' + this.name + ']').parent().parent().removeClass('input_type_radio_css_marked');
291        var $parent = $(this).parent().parent();
292        $parent.addClass('input_type_radio_css_marked');
293        var selectedValBranchRack = $('input[name=select_builder_rack]:checked').next().text();
294        var selectedRibbonType = $('input[name=select_builder_rack]:checked').val();
295        $("#branch_type_tab").html(curBranch);
296        $parent.addClass('input_type_radio_css_marked_1');
297        $('.builder_next_selection').show();
298        if ($('#builder_state_ribbons_button_edit').is(':visible') === false &&
299            (selectedRibbonType === 'regular_ribbons' || selectedRibbonType === 'slideon_ribbons')
300        ) {
301            $('#builder_state_ribbons_button_add').show();
302        }
303        $('.builder_selections.ribbons').addClass('button-move-bottom');
304        $('.heading_2_main_second.inner_custom_width').addClass('heading_2_main_activated');
305        selectedValBranchRack = $('input[name=select_builder_rack]:checked').next().text();
306        $("#selection_type_tab").html(selectedValBranchRack);
307        var branchRack = $('input[name="select_builder_rack"]:checked').val();
308        $('.spacing_mounting_options').hide();
309        $('.spacing_mounting_options').prop('selectedIndex', 0);
310        $('.ribbons_additional_options').hide();
311        if ($('#spacing_' + branchRack).length > 0) {
312            $('#spacing_' + branchRack).parent().show();
313            $('#spacing_' + branchRack).show();
314        }
315
316        if ($('#mounting_' + branchRack).length > 0) {
317            $('#mounting_' + branchRack).parent().show();
318            $('#mounting_' + branchRack).show();
319        }
320
321        if ($('input[name=select_builder_rack]:checked').val() == 'slideon_ribbons') {
322            $("#slideon-mounting-fee").find(":checkbox").prop("checked", true);
323        } else {
324            $("#slideon-mounting-fee").find(":checkbox").prop("checked", false);
325            $('.custom_builder_slideonmouning_items').prop('selectedIndex', 0);
326            $('.custom_builder_slideonmouning_items').change();
327        }
328    });
329
330    //show checkmark on the step#1b
331    $(".input_type_radio_css_1:radio").click(function() {
332        $(':radio[name=' + this.name + ']').parent().parent().removeClass('input_type_radio_css_marked_1');
333    });
334
335    //show checkmark on the step#1c
336    $(".input_type_radio_css_2:radio").click(function() {
337        $(':radio[name=' + this.name + ']').parent().parent().removeClass('input_type_radio_css_marked_2');
338        $(this).parent().parent().addClass('input_type_radio_css_marked_2');
339        $('.checked_element_icon_2').addClass('checked_element_icon_marked');
340        $('.builder_next_selection_buttom').addClass('builder_next_selection_buttom_active');
341    });
342
343    // Search functionality
344    $("#search_builder").keyup(function() {
345        var filter = $(this).val();
346        $('.field-regular').each(function() {
347            var $this = $(this);
348            var count = 0;
349            $this.find('.field .product-name').each(function() {
350                if ($(this).parent().parent().hasClass('active_sort')) {
351                    var parent = $(this).parent().parent(),
352                        length = $(this).text().length > 0;
353                    if (length && $(this).text().search(new RegExp(filter, "i")) < 0) {
354                        parent.hide();
355                    } else {
356                        parent.show();
357                        count++;
358                    }
359                }
360            });
361            if (filter.length > 0) {
362                var state = $this.data('state');
363                if (state) {
364                    $('.state-tab[data-state="' + state +'"] > .search-result-count')
365                        .html(count)
366                        .css({'display': 'inline-block'});
367                } else {
368                    $('.main-tab > .search-result-count')
369                        .html(count)
370                        .css({'display': 'inline-block'});
371                }
372            } else {
373                $('.search-result-count').hide();
374            }
375        });
376    });
377    // State Ribbon Button & Modal functionality
378    $(document).on('click', '#builder_state_ribbons_button_add,#builder_state_ribbons_button_edit', function() {
379        var options = {
380            type: 'popup',
381            responsive: true,
382            title: 'Select Your State Ribbons',
383            subTitle: 'Select current or most recent state first',
384            modalClass: 'state-ribbon-selector',
385            buttons: [{
386                text: $.mage.__('Build It'),
387                class: 'state-ribbon-state-build-it',
388                click: function () {
389                    $('#builder_state_ribbons_button_add').hide();
390                    $('#builder_state_ribbons_button_edit').show();
391                    var states = [];
392                    $('.state-ribbon-pill').each(function(idx, el) {
393                        var $element = $(el);
394                        var count = parseInt($element.data('order') || 0);
395                        if (count > 0) {
396                            count--;
397                        }
398                        var state =  $element.data('state');
399                        states[count] = state;
400                    });
401                    // Ensure Commemorative medals go to the end
402                    states.push('CM');
403                    states.reverse();
404                    for (var i = 0; i < states.length; i++) {
405                        // Desktop tabs
406                        var $desktopTab = $('.state-tab[data-state="' + states[i] + '"]');
407                        $desktopTab.parent().insertAfter($('.search-sort-builder-right-wrapper-tab.main-tab'));
408                        var $mobileTab = $('.search-sort-builder-right-wrapper-tab.header-tab.state[data-state="' + states[i] + '"]');
409                        $mobileTab.insertAfter($('#selection_item_palceholder'));
410                        $('#selection_item_palceholder_' + states[i]).insertAfter($mobileTab);
411                    }
412                    this.closeModal();
413                    $('.modal-subtitle').removeProp('style');
414                    nextClick();
415                }
416            },
417            {
418                text: $.mage.__('Clear All Selected'),
419                class: 'state-ribbon-state-clear-btn',
420                click: function () {
421                    $('.state-ribbon-state input').prop('checked', false);
422                    $('#state_ribbon_selections_labels span').remove();
423                }
424            }]
425        };
426        var $modal = $('#state_modal');
427        modal(options, $modal);
428        $('.modal-subtitle').css({
429            'display': 'block',
430            'font-size': '18px'
431        });
432        $modal.show().modal('openModal');
433    });
434    // State input click
435    $(document).on('click', '.state-ribbon-state input', function() {
436        var $this = $(this);
437        if ($this.prop('checked') === true) {
438            // Add Pill
439            var count = $('#state_ribbon_selections_labels span').length;
440            count++;
441            var element = $('<span>')
442                .addClass('state-ribbon-pill')
443                .html(count + '. ' + $this.data('name') + ' x ')
444                .data('state', $this.val())
445                .data('order', count);
446            $this.data('order', count);
447            $('#state_ribbon_selections_labels').append(element);
448        } else {
449            var removedOrder = $this.data('order');
450            // Remove Pill
451            $('#state_ribbon_selections_labels span').each(function(idx, el) {
452                var $element = $(el);
453                if ($this.val() === $element.data('state')) {
454                    $element.remove();
455                }
456            });
457            // Reorder Pills
458            $('.state-ribbon-pill').each(function(idx, el) {
459                var $element = $(el);
460                var count = parseInt($element.data('order') || 0);
461                if (count > 1 && removedOrder > count) {
462                    var state =  $element.data('state');
463                    count--;
464                    $element.html(count + '. ' + state + ' x ');
465                    // Update the input with the new count
466                    $('.state-ribbon-state input[value="' + state + '"]')
467                        .data('order', count);
468                }
469            });
470        }
471    });
472    // State Pill Click
473    $(document).on('click', '.state-ribbon-pill', function() {
474        var $pill = $(this);
475        // Remove pill by clicking the corresponding input
476        $('.state-ribbon-state input').each(function(idx, el) {
477            var $element = $(el);
478            if ($element.val() === $pill.data('state')) {
479                $element.click();
480            }
481        });
482    });
483    // State & Main Tab Click On Desktop
484    $(document).on('click', '.state-tab', function() {
485        var $this = $(this);
486        $('.state-tab>.state-tab-text.active').removeClass('active');
487        $this.find('.state-tab-text').addClass('active');
488        $('#selection_item_palceholder').addClass('hide');
489        $('.state-container').addClass('hide');
490        $('.state-container[data-state="'+ $this.data('state') +'"]').removeClass('hide').show();
491        $('.lazy').each(function(){
492            $(this).Lazy({
493                afterLoad: function(element) {
494                    $(element).parent().removeClass('lazyadd');
495                },
496                scrollDirection: 'vertical',
497                effect: 'fadeIn',
498                visibleOnly: true
499            });
500        });
501    });
502    $(document).on('click', '.search-sort-builder-right-wrapper-tab.main-tab', function() {
503        $('.state-tab>.state-tab-text.active').removeClass('active');
504        $('.state-container').addClass('hide');
505        $('#selection_item_palceholder').removeClass('hide').show();
506    });
507    // State & Main Tab Click On Mobile
508    $(document).on('click', '.header-tab', function() {
509        var $this = $(this);
510        var state = $this.data('state');
511        var selector = (state) ? '.state-container[data-state="' + state + '"]' : '#selection_item_palceholder';
512        var $expandBtn = $this.find('.expand-button');
513        if ($expandBtn.hasClass('open')) {
514            $(selector).addClass('hide');
515            $expandBtn.addClass('closed').removeClass('open');
516        } else {
517            $(selector).removeClass('hide').show();
518            $expandBtn.addClass('open').removeClass('closed');
519        }
520        $('.lazy').each(function(){
521            $(this).Lazy({
522                afterLoad: function(element) {
523                    $(element).parent().removeClass('lazyadd');
524                },
525                scrollDirection: 'vertical',
526                effect: 'fadeIn',
527                visibleOnly: true
528            });
529        });
530    });
531
532    // Sorting functionality
533    $("#sort_builder").change(function() {
534        var sort = $(this).val();
535        var $divs = $(".field-regular div.builder_product_list");
536        var $divs1 = $(".fieldcommemorative div.builder_product_list");
537        var selectedBranch = $('input[name=select_builder]:checked').next().text();
538        var numericallyOrderedDivs, numericallyOrderedDivs1, alphabeticallyOrderedDivs, alphabeticallyOrderedDivs1;
539        var branchOrder = {
540            'Army': '.army_order_of_precendece',
541            'Navy': '.navy_order_of_precendece',
542            'Marines': '.marines_order_of_precendece',
543            'Air Force': '.airforce_order_of_precendece',
544            'Coast Guard': '.coastguard_order_of_precendece'
545        };
546        var oop = branchOrder[selectedBranch];
547        switch (sort) {
548            case '0':
549                numericallyOrderedDivs = $divs.sort(function(a, b) {
550                    return parseInt($(a).find(oop).text()) - parseInt($(b).find(oop).text());
551                });
552                numericallyOrderedDivs1 = $divs1.sort(function(a, b) {
553                    return parseInt($(a).find(oop).text()) - parseInt($(b).find(oop).text());
554                });
555                $('.field-regular').html(numericallyOrderedDivs);
556                $(".field-com").html(numericallyOrderedDivs1);
557                break;
558            case '1':
559                setTimeout(function() {
560                    numericallyOrderedDivs = $divs.sort(function(a, b) {
561                        return parseInt($(b).find(oop).text()) - parseInt($(a).find(oop).text());
562                    });
563                    numericallyOrderedDivs1 = $divs1.sort(function(a, b) {
564                        return $(b).find(oop).text() - $(a).find(oop).text();
565                    });
566                    $('.field-regular').html(numericallyOrderedDivs);
567                    $(".field-com").html(numericallyOrderedDivs1);
568                    addBlankBoxes('#selection_item_palceholder > div:last-child', 7);
569                }, 1000);
570                break;
571            case '2':
572                alphabeticallyOrderedDivs = $divs.sort(function(a, b) {
573                    return $(a).find(".product-name").text().toUpperCase().localeCompare($(b).find(".product-name").text().toUpperCase());
574                });
575                alphabeticallyOrderedDivs1 = $divs1.sort(function(a, b) {
576                    return $(a).find(".product-name").text().toUpperCase().localeCompare($(b).find(".product-name").text().toUpperCase());
577                });
578                $('.field-regular').html(alphabeticallyOrderedDivs);
579                $(".fieldcommemorative").html(alphabeticallyOrderedDivs1);
580                break;
581            case '3':
582                alphabeticallyOrderedDivs = $divs.sort(function(a, b) {
583                    return $(b).find(".product-name").text().toUpperCase().localeCompare($(a).find(".product-name").text().toUpperCase());
584                });
585                alphabeticallyOrderedDivs1 = $divs1.sort(function(a, b) {
586                    return $(b).find(".product-name").text().toUpperCase().localeCompare($(a).find(".product-name").text().toUpperCase());
587                });
588                $('.field-regular').html(alphabeticallyOrderedDivs);
589                $(".fieldcommemorative").html(alphabeticallyOrderedDivs1);
590                break;
591            default:
592                break;
593        }
594        addBlankBoxes('#selection_item_palceholder > div:last-child', 7);
595    });
596
597    function nextClick() {
598        var branchRack = $('input[name="select_builder_rack"]:checked').val();
599        var selectedBranchPattern = branchRack;
600        var states = [];
601        $('.state-ribbon-state input:checked').each(function(idx, el) {
602            states.push(el.value);
603        });
604        // Order them so we hit cache more often
605        states.sort();
606        $('.state-container').each(function() {
607            $(this).html('').hide();
608        });
609        window.selectedRibbonType = $("#selection_type_tab").html();
610        if (sectionsLoaded[selectedBranchPattern] != 1) {
611            $('.state-tab, .header-tab.state').addClass('hide');
612            $(".step_loader").show();
613            $("#maincontent").addClass("cursor_eve_none");
614            var pid = $('input[name="product"]').val();
615            var baseUrl = $('#base-url').val();
616            $.ajax({
617                url: baseUrl + 'builderpreview/index/builderoption?isAjax=1&type=' + selectedBranchPattern + '&product=' + pid + '&regions=' + states.join(','),
618                type: 'GET',
619                cache: true,
620                success: function(parsedData) {
621                    // Append Commemorative so they are unhidden
622                    states.push('CM');
623                    // Unhide the selector tabs and containers
624                    for (var i = 0; i < states.length; i++) {
625                        var state = states[i];
626                        $('.state-tab[data-state="' + state +'"], state-tab, .header-tab.state[data-state="' + state +'"]').removeClass('hide');
627                        $('#selection_item_palceholder_' + state).html(parsedData[state]);
628                    }
629                    $("#selection_item_palceholder").html(parsedData.html);
630                    afterAjaxSuccess();
631                    $(".step_loader").fadeOut();
632                    $("#maincontent").removeClass("cursor_eve_none");
633                    addBlankBoxes('#selection_item_palceholder > div:last-child', 7);
634                    sectionsLoaded[selectedBranchPattern] = 1;
635                    $('.lazy').each(function(){
636                        $(this).Lazy({
637                            afterLoad: function(element) {
638                                $(element).parent().removeClass('lazyadd');
639                            },
640                            scrollDirection: 'vertical',
641                            effect: 'fadeIn',
642                            visibleOnly: true
643                            });
644                    });
645                },
646                error: function() {
647                    alert("something went wrong. Please try again.");
648                }
649            });
650        } else {
651            afterAjaxSuccess();
652        }
653    }
654
655    function afterAjaxSuccess() {
656        var selectedValBranchRack = $('input[name=select_builder_rack]:checked').next().text();
657        var selectedValBranchType = $('input[name=select_builder]:checked').next().text();
658        var branchRack = $('input[name="select_builder_rack"]:checked').val();
659        var clearSelectedFlag = false;
660        var selectedBranchPattern = branchRack;
661        if (sRack != selectedValBranchRack) {
662            sRack = selectedValBranchRack;
663            clearSelectedFlag = true;
664        }
665        if (sType != selectedValBranchType) {
666            sType = selectedValBranchType;
667            clearSelectedFlag = true;
668        }
669
670        if (selectedValBranchType) {
671            $('.box_border_step2_inner').show();
672            $('.fieldset-builder-options').show();
673            $('.box_border_step2').addClass('active_accord');
674            $('.builder_selections').slideUp();
675            $('.builder_selections_selected_val').show();
676            $('.accord-content').addClass('active');
677        } else {
678            alert("Please choose Branch of Service");
679            return false;
680        }
681        var branchOrder = {
682            'Army': '.army_order_of_precendece',
683            'Navy': '.navy_order_of_precendece',
684            'Marines': '.marines_order_of_precendece',
685            'Air Force': '.airforce_order_of_precendece',
686            'Coast Guard': '.coastguard_order_of_precendece'
687        };
688        var oop = branchOrder[selectedValBranchType];
689        if (clearSelectedFlag) {
690            $('.field-regular').each(function() {
691                var $this = $(this);
692                var $divs = $this.find('.builder_product_list');
693                var numericallyOrderedDivs = $divs.sort(function(a, b) {
694                    return parseInt($(a).find(oop).text()) - parseInt($(b).find(oop).text());
695                });
696                $this.html(numericallyOrderedDivs);
697            });
698            $('.selected_categoty_value').text(selectedValBranchType + ',');
699            $('.selected_anodized_selected_miniature').text(selectedValBranchRack);
700
701            $(".field-regular .builder_product_list").hide();
702            $(".field-regular .builder_product_list").removeClass("active_sort");
703            $(".field-regular .builder_product_list." + selectedBranchPattern).show();
704            $(".field-regular .builder_product_list." + selectedBranchPattern).addClass("active_sort");
705            $(".field-com .builder_product_list").addClass('active_sort');
706            $('.field-regular').find('input[type=checkbox]:checked').parent().each(function() {
707                var $this = $(this);
708                $("#" + $this.data("role") + " .update_medal_btns").hide();
709                $("#" + $this.data("role") + " .add_medal_btns").show();
710                $(this).removeClass('item_added_into_q');
711            });
712            $('.field-regular').find('input[type=checkbox]:checked').removeClass('item_added_into_q');
713            $('.field-regular').find('input[type=checkbox]:checked').siblings('.see_details_pop_mian').show();
714            $('.field-regular').find('input[type=checkbox]:checked').siblings('.added_button_remove_mian').hide();
715            $('.field-regular').find('input[type=checkbox]:checked').prop('checked', false);
716            $('#builder_preview .selected_elem').empty();
717            clearSelectedFlag = false;
718        }
719
720        $('#builder_preview').removeClass('builder_previewing');
721        $('.step2_preview').hide();
722        $('.heading_3_main_second.inner_custom_width').removeClass('heading_3_main_activated');
723        $('.heading_2_main_second.inner_custom_width').addClass('heading_2_main_activated');
724        $('.heading_3_main_second .step3_msg_holder').show();
725        $('.header_3').removeClass('active_accord');
726        $('.header_3_content_main').hide();
727        $('#preview_selected_edit').hide();
728        var $container = $("html,body");
729        var $scrollTo = $('.page-wrapper');
730        $container.animate({
731            scrollTop: $scrollTo.offset().top - $container.offset().top + 75,
732            scrollLeft: 0
733        }, 1000);
734    }
735
736
737    // NEXT button logic of step#1
738    $('#next_step_button').click(function() {
739        nextClick();
740    });
741
742    $('#next_step_button_header').click(function() {
743        nextClick();
744    });
745
746    //open popup on selecting medals
747    $(document).on('click', ".accord-content fieldset.fieldset.fieldset-builder
747-options .field.choice", function() {
748        var $this = $(this);
749        var showEl = $this.data('role');
750        var $showEl = $('#' + showEl);
751        $showEl.show();
752        if ($this.hasClass('item_added_into_q')) {
753            $showEl.find('.add_medal_btns').hide();
754            $showEl.find('.update_medal_btns').show();
755        } else {
756            $showEl.find('.add_medal_btns').show()
757                .css('text-align', 'center');
758            $showEl.find('.update_medal_btns').hide();
759        }
760        $('.page-wrapper').addClass('main_overlay');
761        if ($showEl.find('.option_popup_inner_left_img img').data("src")) {
762            var dataSrc = $('#' + showEl).find('.option_popup_inner_left_img img').data("src");
763            $showEl.find('.option_popup_inner_left_img img').prop("src", dataSrc);
764            $showEl.find('.option_popup_inner_left_img img').parent().removeClass("lazyadd");
765        }
766        var branchName = $(this).data("branch");
767        var curBranch = $(".input_type_radio_css:radio:checked").val();
768        var curValue = $('input:radio[name="' + branchName + '"]:checked').val();
769        if (typeof curValue === "undefined" || curBranch === curValue) {
770            var $branchInput = $('input:radio[name="' + branchName + '"][value="' + curBranch + '"]');
771            $branchInput.trigger('click').prop('checked', true);
772        }
773        if ($(window).width() <= 480) {
774            var thisTopOffsetis = $this.offset().top;
775            $('.option_popup_inner').css({
776                "top": +(thisTopOffsetis - 500) + "px"
777            });
778        }
779    });
780
781    // Brand Edit click on Step#1
782    $('#branch_selected_edit').click(function() {
783        $('.builder_selections').slideDown();
784        $('.builder_selections_selected_val').hide();
785        $('.box_border_step2_inner').hide();
786        $('.fieldset-builder-options').hide();
787        $('.box_border_step2').removeClass('active_accord');
788        $('.heading_2_main_second.inner_custom_width').removeClass('heading_2_main_activated');
789    });
790
791    // Brand Edit click on Step#1
792    $('#preview_selected_edit').click(function() {
793        var $container = $("html,body");
794        var $scrollTo = $('#product-options-wrapper');
795        $container.animate({
796            scrollTop: $scrollTo.offset().top - $container.offset().top,
797            scrollLeft: 0
798        }, 500);
799    });
800
801    $('#clear_all_selected').click(function() {
802        var r = confirm("Are you sure to clear all the selected medals ?");
803        if (r === false) {
804            return;
805        }
806        // Clear Search Results / Text
807        $('#search_builder').val(null);
808        $('.search-result-count').hide();
809        // Reset Search Results
810        $('.field-regular > .field .product-name').each(function() {
811            $(this).parent().parent().show();
812        });
813        $('.fieldset-builder-options').find('input[type=checkbox]:checked').prop('checked', false);
814        $('.fieldset-builder-options').find('.builder_product_list ').removeClass('item_added_into_q');
815        $('.fieldset-builder-options').find('.builder_product_list ').children('.added_button_remove_mian').hide();
816        $('.fieldset-builder-options').find('.builder_product_list ').children('.see_details_pop_mian').show();
817        $('#builder_preview').removeClass('builder_previewing');
818        $('.step2_preview').hide();
819        $('.heading_3_main_second.inner_custom_width').removeClass('heading_3_main_activated');
820        $('.heading_3_main_second .step3_msg_holder').show();
821        $('.header_3').removeClass('active_accord');
822        $('.header_3_content_main').hide();
823        $('#preview_selected_edit').hide();
824        $('#builder_preview .selected_elem').empty();
825        $('.page-wrapper').scrollTop($('.builder-options-container').offset().top - 100);
826        var $container = $("html,body");
827        var $scrollTo = $('.page-wrapper');
828        $container.animate({
829            scrollTop: $scrollTo.offset().top - $container.offset().top,
830            scrollLeft: 0
831        }, 300);
832        $('.product-header').hide();
833    });
834
835    function showPopupBox() {
836        $("#popup_box").fadeIn();
837        $("#popup_box").css({
838            "visibility": "visible",
839            "display": "block"
840        });
841    }
842
843    function hidePopupBox() {
844        $("#popup_box").fadeOut();
845        $("#popup_box").css({
846            "visibility": "hidden",
847            "display": "none"
848        });
849    }
850    $('#confirm_button').click(function() {
851        $('.fieldset-builder-options').find('input[type=checkbox]:checked').prop('checked', false);
852        $('.fieldset-builder-options').find('.builder_product_list ').removeClass('item_added_into_q');
853        $('.fieldset-builder-options').find('.builder_product_list ').children('.added_button_remove_mian').hide();
854        $('.fieldset-builder-options').find('.builder_product_list ').children('.see_details_pop_mian').show();
855        $('#builder_preview').removeClass('builder_previewing');
856        $('.step2_preview').hide();
857        $('.heading_3_main_second.inner_custom_width').removeClass('heading_3_main_activated');
858        $('.heading_3_main_second .step3_msg_holder').show();
859        $('.header_3').removeClass('active_accord');
860        $('.header_3_content_main').hide();
861        $('#preview_selected_edit').hide();
862        $('#builder_preview .selected_elem').empty();
863        $('.page-wrapper').scrollTop($('.builder-options-container').offset().top - 100);
864        var $container = $("html,body");
865        var $scrollTo = $('.page-wrapper');
866        $container.animate({
867            scrollTop: $scrollTo.offset().top - $container.offset().top,
868            scrollLeft: 0
869        }, 300);
870        $('.product-header').hide();
871        hidePopupBox();
872    });
873    $('#cancel_button').click(function() {
874        hidePopupBox();
875    });
876    $('#clear_all_selected_footer').click(function() {
877        showPopupBox();
878    });
879
880    $(window).scroll(function() {
881        var sticky = $('.product-header'),
882            scroll = $(window).scrollTop();
883
884        if (scroll >= 120) {
885            sticky.addClass('fixed');
886            $('#builder_preview').css({
887                "width": "100%",
888                "display": "block"
889            });
890            $('#builder_preview .selected_elem').show();
891        } else {
892            sticky.removeClass('fixed');
893            $('#builder_preview').css({
894                "width": "auto",
895                "display": "none"
896            });
897            $('#builder_preview .selected_elem').hide();
898        }
899
900        if ($("#builder_preview").offset().top >= $('#builderSummary').offset().top - 100) {
901            $('div#builder_preview label.preview_button').addClass('in_preview_mode');
902            $('#builder_preview label.preview_button span').html("Previewing");
903        } else {
904            $('div#builder_preview label.preview_button').removeClass('in_preview_mode');
905            $('#builder_preview label.preview_button span').html("Preview Now");
906        }
907    });
908    function setGlobalPriceValue() {
909        var pirceText = $('.price-box span span span.price').text();
910        pirceText = pirceText.replace("$", '');
911        var finalPrice = parseFloat(pirceText);
912        globalPrice = finalPrice;
913    }
914
915    $('.left_slide').click(function() {
916        if ($('.selected_elem').position().left < 0) {
917            $('.selected_elem').animate({
918                left: "+=160px"
919            }, 1000, function() {
920                if ($('.selected_elem').position().left >= 0) {
921                    $('.left_slide').hide();
922                }
923                ulwidth = $('.selected_elem li').length * 160;
924                if ((ulwidth - $('.slider_container').width()) > 80) {
925                    $('.right_slide').show();
926                }
927            });
928        }
929    });
930
931    $('.right_slide').click(function() {
932        $('.left_slide').show();
933        $('.selected_elem').animate({
934            left: "-=160px"
935        }, 1000, function() {
936            ulwidth = $('.selected_elem li').length * 160;
937            if ((ulwidth - $('.slider_container').width() + $('.selected_elem').position().left) < 0) {
938                $('.right_slide').hide();
939            }
940        });
941    });
942
943    $('#builder_preview_content').click(function() {
944        $('.preview_img_full img').prop("src", $('#builder_preview_image').val());
945        $('.img_overlay').fadeIn();
946        $('.preview_img_full').show();
947    });
948    $('.img_overlay').click(function() {
949        $('.img_overlay').fadeOut();
950        $('.preview_img_full').hide();
951    });
952
953    $(document).on('click', '.optradiobtn:radio', function() {
954        var $this = $(this);
955        $("#builder_preview_content").prop("src", $this.val());
956        $('#builder_preview_image').val($this.val());
957        $('#builder_stag_pattern').val($('#' + $this.data("patternoption")).val());
958        var hiddendata = $this.next().next('.hidden_preview_data').html();
959        $('#builderSummary .accord-content_prod_details').html('');
960        $('#builderSummary .accord-content_prod_details').html(hiddendata);
961    });
962
963    $(document).on('click', '.tab_container .tab_content', function() {
964        var $this = $(this);
965        if ($this.hasClass('inactive')) {
966            return alert("Please Choose Ribbon Type.");
967        }
968        $('.tab_container .tab_content').removeClass('active');
969        $this.addClass('active');
970        var divId = $(this).prop('id');
971        if (divId == "branch_type_tab") {
972            $(".box_border_heading2_1").hide();
973            $(".heading_2_main_top").show();
974        } else if (divId == "selection_type_tab") {
975            $('#builder_state_ribbons_button_add').hide();
976            $('#builder_state_ribbons_button_edit').hide();
977            $('.builder_next_selection').hide();
978            var selectedValBranchType = $('input[name=select_builder]:checked').next().text();
979            $(".heading_2_main_top").hide();
980            $(".box_border_heading2_1").show();
981            if (selectedValBranchType != '') {
982                $("#branch_type_tab").html(selectedValBranchType);
983            }
984        }
985    });
986    $(document).on('ajax:addToCart', function() {
987        // Once the cart item has been added, remove the loader and redirect
988        $('.loader_summary').fadeOut(1000);
989        window.location = '/checkout/cart';
990    });
991
992    $('#product-addtocart-button').click(function() {
993        var totalSlideOn = parseInt($("#total_slideon").val() || 0);
994        if (totalSlideOn !== 0) {
995            var skuToAdd = 'RH-' + totalSlideOn;
996            $('.custom_builder_slideonmouning_items').find('option').each(function() {
997                var $this = $(this);
998                if ($this.data('mounting') == skuToAdd) {
999                    $this.prop('selected', true);
1000                    $('.custom_builder_slideonmouning_items').val($this.val()).change();
1001                } else {
1002                    $this.removeProp('selected');
1003                }
1004            });
1005        }
1006    });
1007});

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.