Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- jQuery(document).ready(function($){
- var $workshops = $('article.workshop');
- /////////// FILTER BY AGE ////////////
- var $removeBtn = $('.filter .remove');
- var $pottyTrained = $('.filter .potty-trained');
- var $pottyTrainedInput = $pottyTrained.find('input[type=checkbox]');
- var $slider = $('.filter .slider');
- var $rangeValues = $(".value");
- var rangeValueSel = ".value.val-";
- var ageFilter = -1;
- $slider.noUiSlider({
- start: [2.0],
- step: 0.5,
- //margin: 0.5,
- range: {
- 'min': 2.0,
- '9.09%' : 2.5,
- '18.18%' : 3.0,
- '27.27%' : 3.5,
- '36.36%' : 4.0,
- '43.43%' : 5.0,
- '50.50%' : 6.0,
- '56.56%' : 7.0,
- '63.63%' : 8.0,
- '69.69%' : 9.0,
- '76.76%' : 10.0,
- '85.85%' : 11.0,
- 'max': 12
- },
- snap : true,
- serialization: {
- lower: [
- //customToolTip
- ],
- upper : [
- //customToolTip
- ],
- format: {
- decimals: 2,
- mark: ','
- }
- },
- }).on('set slide', function(){
- var current = $slider.val();
- // Filter active
- $removeBtn.show();
- // Highlight
- var selector = current.replace(',','-').replace(/(50)/g, '5').replace(/(00)/g, '0');
- $rangeValues.removeClass('active');
- $(rangeValueSel + selector).toggleClass('active');
- // Filter
- current = current.replace(',','.').replace(/(50)/g, '5').replace(/(00)/g, '0');
- current = parseFloat(current);
- if( current >= 2 && current <= 4){
- $pottyTrainedInput.removeAttr('disabled');
- }
- else {
- $pottyTrainedInput.attr('disabled','disabled');
- }
- ageFilter = current;
- apply_filters($workshops, ageFilter, weekFilter);
- });
- $('.noUi-handle.noUi-handle-lower').mousedown(function(){
- $slider.trigger('set');
- })
- $removeBtn.on('click', function(){
- $(this).fadeOut('fast');
- ageFilter = -1;
- $pottyTrainedInput.attr('disabled', 'disabled');
- apply_filters($workshops, ageFilter, weekFilter);
- $rangeValues.removeClass('active');
- })
- /////////// FILTER BY WEEK ////////////
- var $widgetWeeks = $('.widget.weeks');
- var $weeks = $widgetWeeks.find('.week');
- var $allWeeks = $widgetWeeks.find('.week[data-week=all-weeks]');
- var weekFilter = ['all-weeks'];
- $widgetWeeks.find('.week:not(.active)').on('click', function() {
- var $this = $(this);
- var weekVal = $this.attr('data-week');
- if( weekFilter.indexOf(weekVal) == -1 )
- weekFilter.push(weekVal);
- apply_filters($workshops, ageFilter, weekFilter);
- $this.addClass('active');
- });
- $weeks.find('.remove-week').on('click', function(e) {
- $week = $(this).parent();
- $week.removeClass('active');
- var weekVal = $week.attr('data-week');
- var index = weekFilter.indexOf(weekVal);
- if( index > -1 )
- weekFilter.splice(index, 1);
- apply_filters($workshops, ageFilter, weekFilter);
- e.stopPropagation();
- });
- ////////////// FILTER POTTY TRAINED/////////////
- $pottyTrainedInput.attr('disabled', 'disabled');
- $pottyTrained.find('input[type=checkbox]').on('click', function(){
- apply_filters($workshops, ageFilter, weekFilter);
- })
- })
- function apply_filters($workshops, ageFilter, weekFilter)
- {
- $ = jQuery;
- $workshops.each(function(){
- // This workshop
- var $workshop = $(this);
- // Workshop weeks
- var workshopWeeks = $workshop.attr('data-weeks');
- workshopWeeks = workshopWeeks.split(',');
- var matchWeeks = false;
- // Workshop ages
- var from = parseFloat($workshop.attr('data-age-from'));
- var to = parseFloat($workshop.attr('data-age-to'));
- var matchAge = false;
- // Potty trained
- var pottyTrainedInput = $('.filter .potty-trained').find('input[type=checkbox]:checked');
- var workshopRequirements = $workshop.attr('data-requirements');
- var matchRequirements = false;
- if( (ageFilter > 4 || ageFilter == -1) || pottyTrainedInput.size() > 0) {
- matchRequirements = true;
- }
- if( weekFilter.length > 1 ){
- for(var i=0; i < weekFilter.length; i++)
- {
- if( workshopWeeks.indexOf(weekFilter[i]) > -1 ){
- matchWeeks = true;
- }
- }
- }else {
- matchWeeks = true;
- }
- ////////////////////
- if( ageFilter != -1 ){
- if( (ageFilter >= from) && (ageFilter <= to) ){
- matchAge = true;
- }
- else if( ageFilter == 12 ){
- if( from >= ageFilter && to >= ageFilter ){
- matchAge = true;
- }
- else{
- }
- }
- else {
- matchAge = false;
- }
- }else {
- matchAge = true;
- }
- if( matchAge && matchWeeks )
- if( !matchRequirements && workshopRequirements == "potty_trained" )
- $workshop.fadeOut('fast');
- else
- $workshop.fadeIn('fast');
- else
- $workshop.fadeOut('fast');
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement