PageSourceSearch

https://www.photo-mosaic.co.uk/wp-content/themes/FME/js/simulator.js

js photo-mosaic.co.uk collected 2026-09-26 05:36:15 UTC 8,895 bytes, 210 lines download raw bytes

1jQuery(document).ready(function($){
2	
3	if ($('.js-slider').length) {
4        $('.js-slider').slider({
5            value: 1,
6            max: 1,
7            min: 1
8        }).slider('pips');
9    }
10    
11    
12    $('.js-landing-simulator-1 .nav span').on('click', function(){
13        ChangeLandingSlider($(this));
14    });
15    if ($('.js-landing-simulator-1').length) {
16        ToggleAreaLoading($('.js-landing-simulator-1'), 1);
17    }
18	
19});
20
21
22function ChangeSimPreview(selector, key, values) {
23    var image = jQuery(selector+' .preview img');
24    var mode = jQuery(selector+' .nav .active').attr('data-target');
25    var factor = 204 / 120;
26        
27    var temp_sizes = values[key]['size'].split(' ');
28    var temp_w = parseInt(temp_sizes[0]);
29    var temp_h = parseInt(temp_sizes[2]);
30    var ratio = temp_w / temp_h;
31    var new_w = factor * temp_w;
32    var new_h = new_w / ratio;
33    
34    var price_mode = 'min';
35    if (jQuery('.js-landing-price-switch').length) {
36        price_mode = jQuery('.js-landing-price-switch.active').attr('data-target');
37    }
38    
39    if (selector == '.js-landing-simulator-1') {
40        if (price_mode == 'max') {
41            jQuery('.js-sim-price small').css('opacity', 0);
42            var data_price = values[key]['price_4cm'];
43        } else {
44            var data_price = values[key]['price'];
45        }
46        jQuery('.js-sim-price p strong').text(priceFormat(data_price, xLanguage, 'currency'));
47        jQuery('.js-sim-price p strong').attr({
48            'data-price-max': priceFormat(values[key]['price_4cm'], xLanguage, 'currency'),
49            'data-price-min': priceFormat(values[key]['price'], xLanguage, 'currency')
50        });
51        
52        //if (values[key]['size_inch'] != '' && values[key]['size_inch'] != null) {
53        if (false) {
54            jQuery('.js-sim-size strong').html(values[key]['size_inch']);
55            jQuery('.js-sim-size small').html(values[key]['size']);
56        } else {
57            jQuery('.js-sim-size small').html('');
58            jQuery('.js-sim-size strong').html(values[key]['size']);
59        }
60        if (typeof values[key]['price_regular'] == 'undefined' || price_mode == 'max') {
61            jQuery('.js-sim-price small').css('opacity', 0);
62            jQuery('.js-sim-price p strong').removeClass('red');
63        } else {
64            jQuery('.js-sim-price small').css('opacity', 1);
65            jQuery('.js-sim-price small span').text(priceFormat(values[key]['price_regular'], xLanguage, 'currency'));
66            jQuery('.js-sim-price p strong').addClass('red');
67        }
68    }
69    jQuery(selector+' .preview img').width(new_w).height(new_h);
70}
71
72
73function ChangeLandingSlider(element) {
74    element.siblings('.active').removeClass('active').addClass('link');
75    element.addClass('active').removeClass('link');
76    var values = new Object();
77    values['target'] = element.attr('data-target');
78    values['pg'] = element.attr('data-pg');
79    values['language'] = xLanguage;
80    values['currency'] = xCurrency;
81    ToggleAreaLoading(jQuery('.js-landing-simulator-1'), 1);
82    
83    jQuery('.js-landing-simulator-1 .preview img').prop('src', '/wp-content/themes/FCE/images/slider-preview-image-'+values['target']+'.jpg');
84    var new_url = jQuery('.js-sim-button a').attr('data-base-url');
85    if (values['target'] == '43') {
86        new_url = new_url+'?slots=7&format=43&text=&version=1&orientation=L&motif=&placeholder=';
87    } else {
88        new_url = new_url+'?slots=4&format=11&text=&version=2&orientation=L&motif=&placeholder=';
89    }
90    jQuery('.js-sim-button a').prop('href', new_url);
91            
92    jQuery.ajax({
93        type: 'POST',
94        dataType: 'jsonp',
95        jsonp: 'jsonp_callback',
96        data: { params: values },
97        url: '/wp-content/themes/FME/inc/ajax-functions.php?func=LandingSimulator1',
98        success: function (data) {
99            var count = 0;
100            var pin_array = []
101            
102            for (x in data.result) {
103                count++;
104                pin_array[count] = new Object();
105                pin_array[count]['price_regular'] = data.result[x]['price_regular'];
106                pin_array[count]['price'] = data.result[x]['price'];
107                pin_array[count]['price_4cm'] = data.result[x]['price_4cm'];
108                pin_array[count]['id'] = data.result[x]['id'];
109                pin_array[count]['pg'] = data.result[x]['pg'];
110                pin_array[count]['size'] = x;
111                pin_array[count]['size_inch'] = null;
112                
113                //if (xLanguage == 'en') {
114                if (false) {
115                    pin_array[count]['size_inch'] = data.result[x]['format_inch'];
116                }
117                
118                pin_array.sort(function(a,b) {
119                    return parseFloat(a.price) - parseFloat(b.price);
120                });
121            }
122            
123            jQuery('.js-slider').slider('option', {
124                animate: 'fast',
125                value: Math.round(count/2),
126                max: count-1,
127                min: 0,
128                slide: function(event, ui) {
129                    ChangeSimPreview('.js-landing-simulator-1', ui.value, pin_array);
130                },
131            }).slider('pips', 'refresh');
132            ChangeSimPreview('.js-landing-simulator-1', Math.round(count/2), pin_array);
133            ToggleAreaLoading(jQuery('.js-landing-simulator-1'), 0);
134        }
135    });
136}
137
138
139function ChangeTemplateSlider(index) {
140    index = index+1;
141    var max = jQuery('.template-slider .js-max').text();
142    jQuery('.template-slider .js-current').text(index);
143    //jQuery('.js-template-slider [data-template]').removeClass('active');
144    //jQuery('.js-template-slider [data-template]').eq(index).addClass('active');
145    
146    var slide = jQuery('.js-template-slider [data-template]').eq(index).find('img[data-nr]');
147    var slide_h = jQuery('.js-template-slider [data-template]').eq(index).height();
148        var t_nr = slide.attr('data-nr');
149        var t_slots = slide.attr('data-slots');
150        var t_format = slide.attr('data-format');
151        var t_orientation = slide.attr('data-orientation');
152        var t_version = slide.attr('data-version');
153        var t_text = slide.attr('data-text');
154        var t_placeholder = slide.attr('data-placeholder');
155        var t_motif = slide.attr('data-motif');
156        var t_mask = slide.attr('data-mask');
157        var t_number = slide.attr('data-number');
158        var t_letter = slide.attr('data-letters');
159        if (typeof t_mask == 'undefined') {
160            t_mask = '';
161        }
162        if (typeof t_number == 'undefined') {
163            t_number = '';
164        }
165        if (typeof t_letter == 'undefined') {
166            t_letter = '';
167        }
168        var fake_slots = t_slots;
169        if (typeof slide.attr('data-fake-slots') != 'undefined') {
170            fake_slots = slide.attr('data-fake-slots');
171        }
172    // update slider height
173    jQuery('.template-slider .wrap').css('max-height', slide_h);
174    // update name
175    if (index == max) {
176        var name = jQuery('.js-template-slider [data-template]').eq(index).attr('data-template');
177    } else {
178        var name = translate['template_slider_name'].replace('xxx', t_nr).replace('yyy', fake_slots);
179    }
180    jQuery('.template-slider .js-name').text(name);
181    // update bob
182    // link the image - dc wants it that way
183    var link_target = jQuery('.js-template-slider [data-template]').eq(index);
184    jQuery('.template-slider [data-template]').removeClass('active');
185    link_target.addClass('active');
186    if (index == max) {
187        jQuery('.template-slider a.btn').text(translate['template_slider_all_btn']).prop('href', translate['layout_url']);
188        if (!link_target.find('a').length) {
189            link_target.find('img').wrap('<a href="'+translate['layout_url']+'">');
190        }
191    } else {
192        jQuery('.template-slider a.btn').text(translate['template_slider_use_btn']).prop('href', translate['editor_url']+'?slots='+t_slots+'&format='+t_format+'&text='+t_text+'&version='+t_version+'&orientation='+t_orientation+'&motif='+t_motif+'&placeholder='+t_placeholder+'&mask='+t_mask+'&number='+t_number+'&letters='+t_letter+'&visited');
193        if (!link_target.find('a').length) {
194            link_target.find('img').wrap('<a href="'+translate['editor_url']+'?slots='+t_slots+'&format='+t_format
194+'&text='+t_text+'&version='+t_version+'&orientation='+t_orientation+'&motif='+t_motif+'&placeholder='+t_placeholder+'&mask='+t_mask+'&number='+t_number+'&letters='+t_letter+'&visited">');
195        }
196    }
197    // update arrows
198    /*
199    if (index == 0) {
200        jQuery('.template-slider .js-prev').fadeOut();
201    } else {
202       jQuery('.template-slider .js-prev').fadeIn();
203    }
204    if (index == max - 1) {
205        jQuery('.template-slider .js-next').fadeOut();
206    } else {
207        jQuery('.template-slider .js-next').fadeIn();
208    }
209    */
210}

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.