PageSourceSearch

https://www.madminutemusic.com/wp-content/plugins/filter-custom-fields-taxonomies-light/res/sf.js?ver=6.9.9

js madminutemusic.com collected 2026-10-02 22:04:57 UTC 9,050 bytes, 253 lines download raw bytes

1function sf_adjust_elements_waitimg(){
2	jQuery( '.sf-result' ).find( 'img' ).load( function(){
3		sf_adjust_elements();
4	});
5}
6
7function sf_adjust_elements(){
8	if( typeof( jQuery( '.sf-result' ).attr( 'sf-stop-adjust-elements' ) ) != 'undefined' )
9		return false;
10
11	jQuery( '.sf-result > li' ).css( {'height':'auto'} );
12	var resultlist = jQuery( '.sf-result > li' );
13	var i = 1;
14	var h = 0;
15	var elements = [];
16	resultlist.each( function(){
17		if( h < jQuery( this ).outerHeight() )
18			h = jQuery( this ).outerHeight();
19		if( i <= sf_columns )
20			elements.push( this );
21		if( i == sf_columns ){
22			jQuery( elements ).each( function(){
23				jQuery( this ).css({height:h+'px'});
24			});
25			elements = [];
26			h = 0;
27			i = 0;
28		} else {
29		
30		}
31		i++;
32	});
33}
34
35function collect_data( wrapper ){
36
37		var data = {};
38		wrapper.find('select').each( function(){
39			if( ( jQuery( this ).attr( 'name' ) != 'orderby' || jQuery( this ).val() != null ) && jQuery( this ).attr( 'disabled' ) != 'disabled' ){				
40				if( jQuery( this ).val() != '' ){
41					data[ jQuery( this ).attr( 'name' ) ] = jQuery( this ).val() ;
42				}
43			}
44		});
45		
46		wrapper.find('input').each( function(){
47			if( typeof( jQuery( this ).attr( 'name' ) ) != 'undefined' && ( typeof jQuery( this ).attr( 'disabled' ) == 'undefined' || jQuery( this ).attr( 'disabled' ) == false ) ){
48				if( jQuery( this ).hasClass( 'sf-date' ) || jQuery( this ).attr( 'type' ) == 'hidden' || jQuery( this ).attr( 'name' ).substr( jQuery( this ).attr( 'name' ).length - 2, 2 ) != '[]' ){
49					if( jQuery( this ).val() != '' ){
50						if( jQuery( this ).attr( 'type' ) != 'radio' || jQuery( this ).prop( 'checked' ) ){
51							if( jQuery( this ).attr( 'name' ).substr( jQuery( this ).attr( 'name' ).length - 2, 2 ) != '[]' ){
52								data[ jQuery( this ).attr( 'name' ) ] = jQuery( this ).val() ;
53							} else {
54								var data_name = jQuery( this ).attr( 'name' ).substr( 0, jQuery( this ).attr( 'name' ).length - 2 )
55								if( typeof( data[ data_name ] ) == 'undefined' )
56									data[ data_name ] = [];
57								data[ data_name ].push( jQuery( this ).val() );
58							}
59						}
60					}
61				} else{
62					var n = jQuery( this ).attr( 'name' ).substr( 0, jQuery( this ).attr( 'name' ).length - 2 );
63				
64					if( jQuery( this ).prop( 'checked' ) ){
65						if( typeof data[n] == 'undefined' )
66							data[n] = [];					
67						data[n].push( jQuery( this ).val() );
68					}
69				}
70			}
71		});
72		return data;
73	}
74
75function get_filter_results( start, $form ){
76
77		var wrapper = jQuery( '.sf-wrapper' );
78		var data = {
79				action	:	'sf-search',
80				data	:	collect_data( wrapper )
81		};
82		
83		
84		if( typeof start == 'undefined' ){
85			location.href = '#sf-' + JSON.stringify( data.data );
86		} else {
87			if( typeof $form != 'undefined' ){
88				var url = $form.attr( 'action' );
89				url += '#sf-' + JSON.stringify( collect_data( $form ) );
90				location.href = url;
91				return;
92			}
93		}
94		wrapper.css({opacity:.1});
95		search_data = data.data;
96		jQuery.post(
97					sf_ajax_root,
98					data,
99					function( response ){
100						response = JSON.parse( response );
101						if( JSON.stringify( search_data ) != JSON.stringify( response.post ) )
102							return;
103						wrapper.css({opacity:1});
104						
105						var txt = '';
106						if( response.result.length > 0 ){
107							for( var i = 0; i < response.result.length; i++ ){
108								txt += response.result[i];
109							}
110						} else {
111							txt = '<li class="no-result">Keine Ergebnisse gefunden</li>';
112						}
113						jQuery( wrapper ).find( '.sf-result' ).html( txt );
114						if( response.result.length > 0 ){
115							sf_adjust_elements_waitimg();
116						}
117						
118						var txt = '';
119						if( response.nav.length > 0 ){
120							for( var i = 0; i < response.nav.length; i++ ){
121								txt += response.nav[i];
122							}
123						}
124						jQuery( wrapper ).find('ul.sf-nav').html( txt );
125						if( typeof( response.head ) != 'undefined' )
126							jQuery( wrapper ).find('.sf-result-head').html( response.head );
127						
128						
129						if (document.createEvent) {
130							sfLoadEvent = document.createEvent( 'HTMLEvents' );
131							sfLoadEvent.initEvent( 'sfLoadEvent', true, true, response );
132						} else {
133							sfLoadEvent = document.createEventObject();
134							sfLoadEvent.eventType = 'sfLoadEvent';
135						}
136						sfLoadEvent.eventName = 'sfLoadEvent';
137						sfLoadEvent.data = { 'response': response, 'fields' : data.data };
138						
139						var eventElement = document.getElementsByClassName( 'sf-wrapper' );
140						eventElement = eventElement[0];
141						if (document.createEvent) {
142							eventElement.dispatchEvent(sfLoadEvent);
143						} else {
144							eventElement.fireEvent("on" + sfLoadEvent.eventType, sfLoadEvent);
145						}
146					}
147					);
148	}
149
150
151jQuery( document ).ready( function(){
152
153	
154	jQuery( '.sf-wrapper' ).find( 'input' ).keyup( function( event ){
155		if(event.which == 13)
156			get_filter_results();
157	});
158
159
160	
161	jQuery( document ).on( 'change', '.sf-filter input, .sf-filter select', function(){
162		var possible_cond_key = jQuery( this ).closest( '.sf-element' ).attr( 'data-id' );
163		var possible_cond_val = jQuery( this ).val();
164		if( ( jQuery( this ).attr('type') == 'checkbox' || jQuery( this ).attr('type') == 'radio' ) && !jQuery( this ).prop( 'checked' ) )
165			possible_cond_val = -2;
166		jQuery( '.sf-element-hide' ).each( function(){
167			if( jQuery( this ).attr( 'data-condkey' ) == possible_cond_key ){
168				if( possible_cond_val == jQuery( this ).attr( 'data-condval' ) ){
169					jQuery( this ).fadeIn();
170					jQuery( this ).addClass( 'sf-element' );
171					jQuery( this ).find( 'input, select' ).attr( 'disabled', false );
172				}else{
173					jQuery( this ).hide();
174					jQuery( this ).removeClass( 'sf-element' );
175					jQuery( this ).find( 'input, select' ).attr( 'disabled', true );
176				}
177			}
178		});
179		jQuery( '.sf-wrapper' ).find( 'input[name="page"]' ).remove();
180		if( jQuery( '.sf-wrapper' ).find( '.sf-button-btnsearch' ).length == 0 )
181			get_filter_results();
182	});
183	
184	jQuery( document ).on( 'click','.sf-nav-click', function( event ){
185		event.preventDefault();
186		jQuery( '.sf-wrapper' ).find( 'input[name="page"]' ).remove();
187		var txt = '<input type="hidden" name="page" value="' + jQuery( this ).attr( 'data-href' ) + '" />';
188		jQuery( txt ).appendTo( '.sf-wrapper' );
189		get_filter_results();
190		jQuery('html, body').animate({ scrollTop: ( jQuery('.sf-wrapper').offset().top - 25 )}, 'slow');
191	});
192	
193	if( location.hash.substr( 0, 4 ) == '#sf-' ){
194		var range_max = '';
195		var range_min = '';
196		var	hash = JSON.parse( location.hash.substr( 4 ) );
197		var do_ajax_request = true;
198		for ( property in hash ) {
199			jQuery( '.sf-element-hide[data-condkey="'+property+'"]' ).each( function(){
200				if( jQuery( this ).attr( 'data-condval' ) == hash[property] ){
201					jQuery( this ).show();
202					jQuery( this ).addClass( 'sf-element' );
203				}
204			});
205				
206			if( jQuery( '.sf-filter *[name="' + property + '"]' ).attr( 'type' ) != 'radio' )
207				jQuery( '.sf-filter *[name="' + property + '"]' ).val( hash[property] );
208			jQuery( '.sf-filter input[name="' + property + '[]"]' ).each( function(){
209				if( jQuery( this ).attr( 'type' ) == 'checkbox' ){
210					for( var i = 0; i < hash[property].length; i++ )
211						if( jQuery( this ).val() == hash[property][i] )
212							jQuery( this ).prop( 'checked', true );
213				}
214			});
215			
216			var date_index = 0;
217			jQuery( '.sf-filter input.sf-date[name="' + property + '[]"]' ).each( function(){
218				jQuery( this ).val( hash[property][ date_index ] );
219				date_index++;
220			});
221			
222			jQuery( '.sf-filter input[type="radio"][name="' + property + '"][value="' + hash[property] +'"]' ).prop('checked',true);
223			if( jQuery( '.sf-filter *[name="' + property + '"]' ).parent().hasClass( 'sf-range-wrapper' ) ){
224				var arrange_slider = true;
225				jQuery( '.sf-filter *[name="' + property + '"]' ).parent().find( 'input[type="hidden"]' ).each( function(){
226					if( jQuery( this ).val() != hash[ jQuery( this ).attr( 'name') ] )
227						arrange_slider = false;
228				});
229				if( arrange_slider ){
230					var parent = jQuery( '.sf-filter *[name="' + property + '"]' ).parent()
231					parent.find( 'input[type="hidden"]' ).each( function(){						
232						if( jQuery( this ).attr( 'name' ).match(/max/i) )
233							range_max = parseInt( jQuery( this ).val() );
234						else
235							range_min = parseInt( jQuery( this ).val() );
236					});
237					parent.find( '.sf-range' ).slider( "option", "values", [range_min,range_max] );	
238					if( parent.attr( 'data-unitfront' ) == 1 )
239						var pricetxt = parent.attr( 'data-unit' ) + range_min + ' - ' + parent.attr( 'data-unit' ) + range_max;
240					else
241						var pricetxt = range_min + parent.attr( 'data-unit' ) + ' - ' + range_max + parent.attr( 'data-unit' );
242					parent.find( '.sf-write' ).text( pricetxt );
243				}
244			}
245		}
246		if( do_ajax_request )
247			get_filter_results( true );
248	}
249});
250/**
251 * The load event
252 */
253var sfLoadEvent;

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.