Sindbad~EG File Manager
/*================================================
[ Table of contents ]
================================================
======================================
[ End table content ]
======================================*/
( function( $ ) {
"use strict";
// Check element exists.
$.fn.exists = function () {
return this.length > 0;
};
jQuery(document).ready( function( $ ) {
var form_data = '';
$( document ).on( 'change', '.select-sort-filters', function() {
var current_clicked_attr = $(this).attr('data-id');
var current_clicked_value = $(this).val();
var form_data = '';
var buil_data = '';
$( 'select.sort_' + $(this).attr('data-id') ).val( $(this).val() );
jQuery('select').select2();
form_data += get_form_field( this, cd_get_slider_filter_var() );
if ( current_clicked_value != '' ) {
var current_value = current_clicked_value;
form_data +="¤t_value="+current_value;
form_data +="¤t_attr="+current_clicked_attr;
}
do_ajax_call( form_data );
});
$( document.body ).on( 'cardealer_filter_ajax_done', function(e , response ) {
cardealer_filter_generate_filter_stripe();
if ( response.hasOwnProperty('vehicle_make') && $.trim( response.vehicle_make ) ) {
jQuery.each( response.vehicle_make, function( key, value ) {
$( '#' + key + ' .cardealer-make-logos-wrap' ).html( value );
} );
}
});
/********************************************
:: Search for car listing page with full width
*********************************************/
$('#pgs_cars_pp_sold,#pgs_cars_orderby_sold').on('change',function(){
var form_data = get_sold_filter_fields(this);
$(form_data).appendTo('.sold-filter-frm');
$('.sold-filter-frm').submit();
});
$('#pgs_cars_order_sold,#pgs_price_filter_btn-sold,.catlog-layout-sold').on('click',function(e){
e.preventDefault();
var form_data = get_sold_filter_fields(this);
$(form_data).appendTo('.sold-filter-frm');
$('.sold-filter-frm').submit();
});
dealer_price_filter();
dealer_year_range_filter();
if(typeof vehicle_filter_js_object != 'undefined' && vehicle_filter_js_object.cars_filter_with == 'yes'){
/*
* With ajax post dynamic filters
*/
$(document).on('click','#submit_all_filters',function(){
form_data = get_form_field(this);
do_ajax_call(form_data);
});
$(document).on( 'click', '.pgs-price-filter-btn, .year-range-filter-btn, .pgs_cars_search_btn, #pgs_cars_order, .catlog-layout', function(){
form_data = get_form_field(this, cd_get_slider_filter_var());
if ( ! $(this).hasClass( 'catlog-layout' ) ) {
do_ajax_call( form_data );
}
});
$( '#pgs_cars_pp, #pgs_cars_orderby' ).on( 'change', function() {
form_data = get_form_field( this, cd_get_slider_filter_var() );
do_ajax_call( form_data );
});
$( document ).on( 'click', '.cars-pagination-nav ul li a', function() {
var pgntn = $(this).parents( '.cars-pagination-nav' );
var page_link = $(this).text();
var prev = $(this).hasClass('prev');
var next = $(this).hasClass('next');
form_data = get_form_field( this, cd_get_slider_filter_var() );
if ( prev ) {
pgntn.find( 'ul li span' ).each( function(){
if($(this).hasClass('current')){
var cuernt_page = $(this).text();
page_link = parseInt(cuernt_page)-1;
}
});
}
if ( next ) {
pgntn.find( 'ul li span' ).each(function(){
if($(this).hasClass('current')){
var cuernt_page = $(this).text();
page_link = parseInt(cuernt_page)+1;
}
});
}
jQuery.ajax({
url : vehicle_filter_js_object.ajaxurl,
type: 'post',
dataType: 'json',
data:'action=cardealer_cars_filter_query&paged='+page_link+form_data+'&query_nonce='+vehicle_filter_js_object.cardealer_cars_filter_query_nonce,
beforeSend: function(){
jQuery('.filter-loader').html('<span class="filter-loader"><i class="cd-loader"></i></span>');
jQuery('.pagination-loader').html('<span class="pagination-loader"><i class="cd-loader"></i></span>');
if( jQuery('.cars-top-filters-box').length ){
jQuery('.cars-top-filters-box').append('<span class="filter-loader"><i class="cd-loader"></i></span>');
}
jQuery('.select-sort-filters').prop('disabled',true);
jQuery('#submit_all_filters').prop('disabled',true);
if ( $( '.vehicle-listing.vehicle-listing-featured' ).hasClass('owl-carousel') ) {
$( '.vehicle-listing.vehicle-listing-featured.owl-carousel' ).removeClass('owl-loaded');
}
},
success: function(response){
set_result_filters(response);
jQuery('.filter-loader').html('');
jQuery('.pagination-loader').html('');
if( jQuery('.cars-top-filters-box .filter-loader').length ){
jQuery('.cars-top-filters-box .filter-loader').remove();
}
jQuery('.vehicle-listing.vehicle-listing-main').html(response.data_html);
if ( response.featured_cars_count > 0 ) {
if ( $( '.vehicle-listing.vehicle-listing-featured' ).hasClass('owl-carousel') ) {
$( '.featured-vehicles-listing-wrapper' ).slideDown( 'fast' );
$( '.vehicle-listing.vehicle-listing-featured.owl-carousel' ).trigger('replace.owl.carousel', response.featured_cars).trigger('refresh.owl.carousel');
$( '.vehicle-listing.vehicle-listing-featured.owl-carousel' ).on( 'refreshed.owl.carousel', function(event) {
$( '.vehicle-listing.vehicle-listing-featured.owl-carousel' ).addClass('owl-loaded');
});
} else {
$( '.vehicle-listing.vehicle-listing-featured' ).html(response.featured_cars);
$( '.featured-vehicles-listing-wrapper' ).slideDown( 'fast' );
}
} else {
$( '.featured-vehicles-listing-wrapper' ).hide();
}
$('.cars-pagination-nav').html(response.pagination_html);
$('.cars-order').html(response.order_html);
jQuery('.select-sort-filters:not(.disabled)').prop('disabled',false);
jQuery('#submit_all_filters').prop('disabled',false);
$( document.body ).trigger( 'cardealer_set_layout_height_event' );
// masonry style
if( jQuery('.masonry-main .all-cars-list-arch.masonry').length > 0 ){
setTimeout(function(){
$( document.body ).trigger( 'cardealer_load_masonry_event' ); // Reload shuffle masonry
}, 1000);
}
jQuery('select').select2();
$( document.body ).trigger( 'cd_data_tooltip_event' );
var url = window.location.href.split('?')[0];
var url_arr = url.split( '/page/' );
window.history.pushState(null, null, url_arr[0]+'?paged='+page_link+form_data);
if( jQuery( '.cars-top-filters-box' ).length ){
jQuery("html, body").animate( { scrollTop: jQuery('.cars-top-filters-box').offset().top }, 200 );
}
},
error: function(msg){
alert( vehicle_filter_js_object.error_msg );
jQuery('.filter-loader').html('');
jQuery('.pagination-loader').html('');
}
});
return false;
});
$(document).on('click', '.reset_filters', function( event ){
event.preventDefault();
var reset_filters_btn = this,
reset_filters_form_wrapper = $(this).closest('.listing_sort');
var get_id = $(this).attr('id');
var form_data = '';
var sort_by = vehicle_filter_js_object.default_sort_by;//default dropdown sort option
$('.select-sort-filters:not(.disabled)').each(function(){
var sel_val = $(this).val('');
});
$('.pgs_cars_search').val('');
$('#pgs_cars_pp').val($("#pgs_cars_pp option:first").val());
$('#pgs_cars_orderby').val(sort_by);
$('.price_slider_wrapper').each(function( index, el ) {
var price_slider_wrap = this,
price_slider_el = $( price_slider_wrap ).find('.slider-range'),
price_slider_prices_el = $( price_slider_wrap ).find('.dealer-slider-amount'),
price_slider_min_el = $( price_slider_wrap ).find('.pgs-price-slider-min'),
price_slider_max_el = $( price_slider_wrap ).find('.pgs-price-slider-max'),
price_slider_options = $( price_slider_el ).slider('option');
$( price_slider_el ).slider( 'values', [price_slider_options.min, price_slider_options.max] );
$( price_slider_min_el ).val( price_slider_options.min );
$( price_slider_max_el ).val( price_slider_options.max );
price_slider_display_values( price_slider_options.min, price_slider_options.max, price_slider_prices_el );
});
if ( vehicle_filter_js_object.is_year_range_active ) {
$('.slider-year-range').each(function(){
var year_slider_el = this,
year_slider_wrap = $( year_slider_el ).closest('.year-range-slider-wrapper'),
year_slider_years_el = $( year_slider_wrap ).find('.dealer-slider-year-range'),
year_slider_min_el = $( year_slider_wrap ).find( '.pgs-year-range-min' ),
year_slider_max_el = $( year_slider_wrap ).find( '.pgs-year-range-max' ),
year_slider_options = $( year_slider_el ).slider('option');
$( this ).slider( 'values', [year_slider_options.min, year_slider_options.max] );
$( year_slider_min_el ).val( year_slider_options.min );
$( year_slider_max_el ).val( year_slider_options.max );
year_range_display_values( year_slider_options.min, year_slider_options.max, year_slider_years_el );
});
}
form_data = get_form_field(this);
do_ajax_call(form_data);
});
} else {
$(document).on('click','#submit_all_filters',function(){
get_form_field(this);
});
$( '.pgs-price-filter-btn, .pgs_cars_search_btn, #pgs_cars_order,.catlog-layout' ).on( 'click', function() {
const args = [];
if ( $(this).hasClass('pgs-price-filter-btn') ) {
let price_slider_wrap = $(this).closest('.price_slider_wrapper'),
price_slider_min_el = $( price_slider_wrap ).find('.pgs-price-slider-min'),
price_slider_max_el = $( price_slider_wrap ).find('.pgs-price-slider-max');
args['price_range_values'] = [];
args['price_range_values']['pgs_min_price'] = $( price_slider_min_el ).val();
args['price_range_values']['pgs_max_price'] = $( price_slider_max_el ).val();
args['price_range_values']['default_min_val'] = $( price_slider_min_el ).attr('data-min');
args['price_range_values']['default_max_val'] = $( price_slider_max_el ).attr('data-max');
}
get_form_field(this, args);
});
$('.pgs_cars_search').keypress(function(e){
if(e.which == 13){//Enter key pressed
$('.pgs_cars_search_btn').click();
}
});
$( '#pgs_cars_pp, #pgs_cars_orderby' ).on( 'change', function() {
get_form_field( this, cd_get_slider_filter_var() );
});
$(document).on('click', '.reset_filters', function( event ){
event.preventDefault();
var get_id = $(this).attr('id');
var form_data = '';
$('.select-sort-filters').each(function(){
var sel_val = $(this).val('');
});
$('.pgs_cars_search').val('');
var url = window.location.href.split('?')[0];
var url_arr = url.split( '/page/' );
$('<form>', {
"id": "getCarsData",
"html": form_data,
"action": url_arr[0]
}).appendTo(document.body).submit();
});
}
if( ! jQuery('#dealer-slider-year-range').hasClass('dealer-slider-year-range') ){
jQuery('#dealer-slider-year-range').addClass('dealer-slider-year-range');
}
$( document.body ).on( 'cdhl_custom_filters_event', function() {
if ( jQuery('select.cd-select-box').length ) {
jQuery('select.cd-select-box').select2();
}
dealer_price_filter();
dealer_year_range_filter();
});
// remove a filter
$( 'ul.stripe-item' ).on( 'click', 'li:not(.disabled)', function(e){
e.preventDefault();
var data_type = $( this ).attr( 'data-type' );
if ( data_type ) {
$( this ).fadeOut( 400, function() {
$( 'ul.stripe-item' ).find( "[data-type='" + data_type + "']").remove();
$( '.sort_' + data_type ).val( '' );
$( '.vehicle-location-input' ).val('');
form_data = get_form_field( this, cd_get_slider_filter_var() );
do_ajax_call( form_data );
});
}
});
});
function set_result_filters( response ) {
var sel_obj = {};
var all_filters = {};
jQuery( '.select-sort-filters' ).each(function(){
var tid = jQuery( this ).attr( 'data-id' );
var sel_val = jQuery(this).val();
if ( sel_val != "" ) {
sel_obj[tid] = sel_val;
}
});
if ( 'all_filters' in response && typeof response.all_filters == 'object' ) {
all_filters = response.all_filters;
}
if ( $('.sort-filters').exists() ) {
$('.sort-filters').each(function (i, el) {
var $filters = $( el );
$filters.find('select.cd-select-box').each(function (i, el) {
if ( ! $( this ).hasClass( 'disabled' ) ) {
var filter_field = $( this ),
filter_id = filter_field.attr('data-id'),
filter_label = filter_field.attr('data-tax'),
filter_options = '<option value="">' + filter_label + '</option>',
filter_value = filter_field.val(),
selected_val = '';
if ( filter_id in all_filters ) {
$.each( all_filters[ filter_id ], function( index, items ) {
$.each( items, function( item_k, item_v ) {
if ( item_k == filter_value ) {
selected_val = 'selected="selected"';
}
filter_options += '<option value="' + item_k + '" ' + selected_val + '>' + item_v + '</option>';
});
});
}
if ( filter_id !== 'car_mileage' ) {
filter_field.html( filter_options );
}
}
});
});
}
}
function get_query_parameters( str ) {
return str.toString().replace(/(^\?)/,'').split("&").map(function(n){return n = n.split("="),this[n[0]] = n[1],this}.bind({}))[0];
}
/*
* Get data using ajax method
*/
function do_ajax_call(form_data){
var make_widgets = {},
form_data_new = form_data;
// Prepapre make_widget data.
if ( $( '.widget.widget-vehicle-make-logos' ).length > 0 ) {
$( '.widget.widget-vehicle-make-logos' ).each(function( index ) {
make_widgets[ $(this).attr('id') ] = $( this ).find('.cardealer-make-logos-wrap').data('widget_params');
});
}
form_data_new = get_query_parameters( 'action=cardealer_cars_filter_query'+form_data_new+'&query_nonce='+vehicle_filter_js_object.cardealer_cars_filter_query_nonce );
form_data_new.make_widgets = make_widgets;
if(typeof vehicle_filter_js_object != 'undefined' && vehicle_filter_js_object.cars_filter_with == 'yes'){
jQuery.ajax({
url: vehicle_filter_js_object.ajaxurl,
type: 'post',
dataType: 'json',
data:form_data_new,
beforeSend: function(){
jQuery('.filter-loader').html('<span class="filter-loader"><i class="cd-loader"></i></span>');
jQuery('.pagination-loader').html('<span class="pagination-loader"><i class="cd-loader"></i></span>');
if( jQuery('.cars-top-filters-box').length ){
jQuery('.cars-top-filters-box').append('<span class="filter-loader"><i class="cd-loader"></i></span>');
}
jQuery('.select-sort-filters').prop('disabled',true);
jQuery('#submit_all_filters').prop('disabled',true);
if ( $( '.vehicle-listing.vehicle-listing-featured' ).hasClass('owl-carousel') ) {
$( '.vehicle-listing.vehicle-listing-featured.owl-carousel' ).removeClass('owl-loaded');
}
},
success: function(response){
// Lazyload
var cars_pp = '';
if( jQuery('section.lazyload').length > 0 ) {
if ( jQuery('#pgs_cars_pp').length > 0 ) {
cars_pp = response.tot_result;
jQuery('#pgs_cars_pp').val( cars_pp );
}
if(typeof response.tot_result != 'undefined' && response.tot_result < 1){
jQuery('.all-cars-list-arch').attr('data-records', 0);
} else {
if( typeof response.found_posts != 'undefined' && typeof response.tot_result != 'undefined' && response.tot_result >= response.found_posts ) {
jQuery('.all-cars-list-arch').attr('data-records', -2);
} else {
jQuery('.all-cars-list-arch').removeAttr('data-records');
}
}
}
jQuery('.vehicle-listing.vehicle-listing-main').html(response.data_html);
if ( response.featured_cars_count > 0 ) {
if ( $( '.vehicle-listing.vehicle-listing-featured' ).hasClass('owl-carousel') ) {
$( '.featured-vehicles-listing-wrapper' ).slideDown( 'fast' );
$( '.vehicle-listing.vehicle-listing-featured.owl-carousel' ).trigger('replace.owl.carousel', response.featured_cars).trigger('refresh.owl.carousel');
$( '.vehicle-listing.vehicle-listing-featured.owl-carousel' ).on( 'refreshed.owl.carousel', function(event) {
$( '.vehicle-listing.vehicle-listing-featured.owl-carousel' ).addClass('owl-loaded');
});
} else {
$( '.vehicle-listing.vehicle-listing-featured' ).html(response.featured_cars);
$( '.featured-vehicles-listing-wrapper' ).slideDown( 'fast' );
}
} else {
$( '.featured-vehicles-listing-wrapper' ).hide();
}
jQuery('.pagination-nav').html(response.pagination_html);
jQuery('.cars-order').html(response.order_html);
set_result_filters(response);
jQuery('.select-sort-filters:not(.disabled)').prop('disabled',false);
jQuery('#submit_all_filters').prop('disabled',false);
jQuery('.filter-loader').html('');
if( jQuery('.cars-top-filters-box .filter-loader').length ){
jQuery('.cars-top-filters-box .filter-loader').remove();
}
jQuery('.pagination-loader').html('');
jQuery('.number_of_listings').html(response.tot_result_filter);
$(window).data('records_processed', response.tot_result);
$( document.body ).trigger( 'cardealer_set_layout_height_event' );
// masonry style
if( jQuery('.masonry-main .all-cars-list-arch.masonry').length > 0 ){
setTimeout(function(){
$( document.body ).trigger( 'cardealer_load_masonry_event' ); // Reload shuffle masonry
}, 1000);
}
jQuery('select').select2();
$( document.body ).trigger( 'cd_data_tooltip_event' );
var url = window.location.href.split('?')[0];
var url_arr = url.split( '/page/' );
var form_data_params = new URLSearchParams( form_data ),
cars_form_addr = new URL( url_arr );
// Add cars_pp.
if ( cars_pp ) {
form_data_params.set( 'cars_pp', cars_pp );
}
// Remove vehicle_cat from params on vehicle_cat page.
if ( vehicle_filter_js_object.is_vehicle_cat ) {
form_data_params.delete( 'vehicle_cat' );
}
// Get current URL params.
let cars_form_addr_params = new URLSearchParams( cars_form_addr.search );
// Merge current URL params and form data params.
let cars_form_params = new URLSearchParams({
...Object.fromEntries( cars_form_addr_params ),
...Object.fromEntries( form_data_params )
});
cars_form_addr.search = cars_form_params.toString();
window.history.pushState( null, null, cars_form_addr );
if( jQuery( '.cars-top-filters-box' ).length ){
jQuery("html, body").animate( { scrollTop: jQuery('.cars-top-filters-box').offset().top }, 200 );
}
$( document.body ).trigger( 'cardealer_filter_ajax_done', [ response ] );
},
error: function(msg){
alert( vehicle_filter_js_object.error_msg );
jQuery('.filter-loader').html('');
jQuery('.pagination-loader').html('');
}
});
}
return false;
}
function cardealer_filter_generate_filter_stripe() {
var serch_filter = '';
var selected_filter = [];
$( 'select.select-sort-filters' ).each( function() {
var is_disabled = jQuery(this).attr( 'disabled' );
var tid = jQuery(this).attr('data-id');
var sel_val = jQuery(this).val();
var sel_txt = jQuery(this).attr('data-tax');
var sel_term = jQuery(this).find('option:selected').html();
if ( sel_val != '' ) {
if ( jQuery.inArray( tid, selected_filter ) == -1 ) {
selected_filter.push( tid );
var sel_term_safe = $('<textarea />').html( sel_term ).text();
sel_term_safe = $('<textarea />').html( sel_term_safe ).text();
if ( typeof is_disabled !== 'undefined' && is_disabled !== false ) {
serch_filter += '<li class="stripe-single-item disabled stripe-item-'+tid+'" data-type="'+tid+'" > '+sel_txt+' : <span data-key="'+sel_val+'">'+sel_term_safe+'</span></li>';
} else {
serch_filter += '<li class="stripe-single-item stripe-item-'+tid+'" data-type="'+tid+'" ><a href="javascript:void(0)"><i class="far fa-times-circle"></i> '+sel_txt+' : <span data-key="'+sel_val+'">'+sel_term_safe+'</span></a></li>';
}
}
}
});
$('.stripe-item').html( serch_filter );
}
/*
* Create dynamically form fields for filtering
*/
function get_form_field( $this, args ){
var get_id = jQuery($this).attr('id');
var lay_style = "view-grid";
var form_data = '';
var form_data_ajax = '';
var serch_filter = '';
var selected_filter = [];
// Check if value set for widget/shortcode
var pgs_widget_vehicle_category = jQuery( '.pgs_widget_vehicle_category' ).val();
var pgs_widget_car_make = jQuery( '.pgs_widget_car_make' ).val();
var pgs_widget_car_condition = jQuery( '.pgs_widget_car_condition' ).val();
var pgs_widget_car_col = jQuery( '.pgs_widget_car_col' ).val();
if ( pgs_widget_car_make ) {
selected_filter.push( 'car_make' );
form_data += '<input type="text" name="car_make" value="' + pgs_widget_car_make + '" />';
form_data_ajax += "&car_make="+pgs_widget_car_make;
}
if ( pgs_widget_car_condition ) {
selected_filter.push( 'car_condition' );
form_data += '<input type="text" name="car_condition" value="' + pgs_widget_car_condition + '" />';
form_data_ajax += "&car_condition="+pgs_widget_car_condition;
}
if ( pgs_widget_vehicle_category ) {
form_data += '<input type="text" name="vehicle_cat" value="' + pgs_widget_vehicle_category + '" />';
form_data_ajax += "&vehicle_cat="+pgs_widget_vehicle_category;
}
if ( pgs_widget_car_col ) {
form_data += '<input type="text" name="car_col" value="' + pgs_widget_car_col + '" />';
form_data_ajax += "&car_col="+pgs_widget_car_col;
}
jQuery( '.select-sort-filters' ).each(function(){
var tid = jQuery(this).attr('data-id');
var sel_val = jQuery(this).val();
var sel_txt = jQuery(this).attr('data-tax');
var sel_term = jQuery(this).find('option:selected').html();
if ( sel_val != "" ) {
if ( jQuery.inArray( tid, selected_filter ) == -1 ) {
selected_filter.push( tid );
var sel_term_safe = $('<textarea />').html( sel_term ).text();
sel_term_safe = $('<textarea />').html( sel_term_safe ).text();
form_data += '<input type="text" name="'+tid+'" value="' + sel_val + '" />';
form_data_ajax += "&"+tid+"="+sel_val;
serch_filter += '<li class="stripe-single-item stripe-item-'+tid+'" data-type="'+tid+'" ><a href="javascript:void(0)"><i class="far fa-times-circle"></i> '+sel_txt+' : <span data-key="'+sel_val+'">'+sel_term_safe+'</span></a></li>';
}
}
});
jQuery( '.stripe-item' ).html( serch_filter );
var pgs_cars_pp = jQuery( '#pgs_cars_pp' ).val();
if ( pgs_cars_pp ) {
form_data += '<input type="text" name="cars_pp" value="' + pgs_cars_pp + '" />';
form_data_ajax += "&cars_pp="+pgs_cars_pp;
} else {
var pgs_widget_cars_pp = jQuery( '.pgs_widget_cars_pp' ).val();
if ( pgs_widget_cars_pp ) {
form_data += '<input type="text" name="cars_pp" value="' + pgs_widget_cars_pp + '" />';
form_data_ajax += "&cars_pp="+pgs_widget_cars_pp;
}
}
var cars_orderby = jQuery('#pgs_cars_orderby').val();
if ( cars_orderby ) {
form_data += '<input type="text" name="cars_orderby" value="' + cars_orderby + '" />';
form_data_ajax += "&cars_orderby="+cars_orderby;
} else {
var pgs_widget_cars_orderby = jQuery( '.pgs_widget_cars_orderby' ).val();
if ( pgs_widget_cars_orderby ) {
form_data += '<input type="text" name="cars_orderby" value="' + pgs_widget_cars_orderby + '" />';
form_data_ajax += "&cars_orderby="+pgs_widget_cars_orderby;
}
}
var pgs_widget_car_no_sold = jQuery( '.pgs_widget_car_no_sold' ).val();
if ( pgs_widget_car_no_sold ) {
form_data += '<input type="text" name="car_no_sold" value="' + pgs_widget_car_no_sold + '" />';
form_data_ajax += "&car_no_sold="+pgs_widget_car_no_sold;
}
if ( 'undefined' !== typeof(args) && args !== null ) {
if ( 'price_range_values' in args ) {
var pgs_min_price = args['price_range_values']['pgs_min_price'];
var pgs_max_price = args['price_range_values']['pgs_max_price'];
var default_min_val = args['price_range_values']['default_min_val'];
var default_max_val = args['price_range_values']['default_max_val'];
if(default_min_val != pgs_min_price || pgs_max_price != default_max_val){
form_data += '<input type="text" name="min_price" value="' + pgs_min_price + '" />';
form_data += '<input type="text" name="max_price" value="' + pgs_max_price + '" />';
form_data_ajax += "&min_price="+pgs_min_price;
form_data_ajax += "&max_price="+pgs_max_price;
}
}
//check is active year range slider
if( vehicle_filter_js_object.is_year_range_active && 'year_range_values' in args ){
var pgs_year_range_min = args['year_range_values']['pgs_year_range_min'];
var pgs_year_range_max = args['year_range_values']['pgs_year_range_max'];
var default_year_min_val = args['year_range_values']['default_year_min_val'];
var default_year_max_val = args['year_range_values']['default_year_max_val'];
if(default_year_min_val != pgs_year_range_min || pgs_year_range_max != default_year_max_val){
form_data += '<input type="text" name="min_year" value="' + pgs_year_range_min + '" />';
form_data += '<input type="text" name="max_year" value="' + pgs_year_range_max + '" />';
form_data_ajax += "&min_year="+pgs_year_range_min;
form_data_ajax += "&max_year="+pgs_year_range_max;
}
}
}
var cars_order = '';
if( get_id == "pgs_cars_order" ) {
cars_order = jQuery($this).attr('data-order');
if(cars_order && cars_order != "" && cars_order != 'undefined'){
form_data += '<input type="text" name="cars_order" value="' + cars_order + '" />';
form_data_ajax += "&cars_order="+cars_order;
}
} else {
cars_order = jQuery('#pgs_cars_order').attr('data-current_order');
if(cars_order && cars_order != "" && cars_order != 'undefined'){
form_data += '<input type="text" name="cars_order" value="' + cars_order + '" />';
form_data_ajax += "&cars_order="+cars_order;
}
}
if ( ! cars_order ) {
var pgs_widget_cars_order = jQuery( '.pgs_widget_cars_order' ).val();
if ( pgs_widget_cars_order ) {
form_data += '<input type="text" name="cars_order" value="' + pgs_widget_cars_order + '" />';
form_data_ajax += "&cars_order="+pgs_widget_cars_order;
}
}
if(jQuery($this).hasClass('catlog-layout')){
lay_style = jQuery($this).attr('data-id');
cookies.set( 'lay_style' , lay_style);
form_data += '<input type="text" name="lay_style" value="'+lay_style+'"/>';
var cn_paged = null;
jQuery('.pagination-nav ul li span').each(function(){
if(jQuery(this).hasClass('current')){
var cuernt_page = jQuery(this).text();
if(cuernt_page != null){
cn_paged = parseInt(cuernt_page);
}
}
});
if ( typeof vehicle_filter_js_object.cdfs_dashboard === 'undefined' ) {
form_data += '<input type="text" name="paged" value="' + cn_paged + '" />';
}
} else {
//if cookies not set then get default option value
var lay_style;
if(vehicle_filter_js_object.lay_style != ''){
lay_style = vehicle_filter_js_object.lay_style;
}
var laystyle = cookies.get('lay_style');
if(laystyle != null){
lay_style = laystyle;
}
form_data += '<input type="text" name="lay_style" value="'+lay_style+'"/>';
form_data_ajax += "&lay_style="+lay_style;
}
var pgs_cars_search;
if ( jQuery( '.pgs_cars_search' ).length > 1 ) {
jQuery( '.pgs_cars_search' ).each( function (i, el) {
if ( $(this).val() ) {
pgs_cars_search = $(this).val();
return;
}
});
} else {
pgs_cars_search = jQuery( '.pgs_cars_search' ).val();
}
if ( jQuery( $this ).hasClass( 'pgs_cars_search_btn' ) ) {
pgs_cars_search = jQuery( $this ).parent( '.cd-search-wrap' ).find( '.pgs_cars_search' ).val();
}
if ( jQuery( '.pgs_cars_search' ).length > 1 ) {
jQuery( '.pgs_cars_search' ).val( pgs_cars_search );
}
if(pgs_cars_search && pgs_cars_search != '' && pgs_cars_search != 'undefined'){
form_data += '<input type="search" name="s" value="' + pgs_cars_search + '" />';
form_data += '<input type="hidden" name="post_type" value="cars" />';
form_data_ajax += "&s="+pgs_cars_search;
form_data_ajax += "&post_type=cars";
}
if(vehicle_filter_js_object.is_vehicle_cat){
if ( typeof vehicle_filter_js_object != 'undefined' && vehicle_filter_js_object.cars_filter_with == 'no' ) {
form_data += '<input type="hidden" name="is_vehicle_cat" value="yes" />';
}
form_data_ajax += "&is_vehicle_cat=yes";
form_data_ajax += "&vehicle_cat="+vehicle_filter_js_object.vehicle_cat;
}
var vehicle_location = jQuery('.vehicle-location-input').val();
if(vehicle_location){
form_data_ajax += "&vehicle_location="+vehicle_location;
form_data += '<input type="hidden" name="vehicle_location" value="' + vehicle_location + '" />';
}
if(typeof vehicle_filter_js_object != 'undefined' && vehicle_filter_js_object.cars_filter_with == 'yes'){
var url = window.location.href.split('?')[0];
var url_arr = url.split( '/page/' );
if(jQuery($this).hasClass('catlog-layout')){
jQuery('<form>', {
"id": "getCarsData",
"html": form_data,
"action": url_arr[0]
}).appendTo(document.body).submit();
} else {
return form_data_ajax;
}
} else {
var url = window.location.href.split('?')[0];
var url_arr = url.split( '/page/' );
var cars_form_url_patams = getQueryParams( url_arr[0] );
if ( Object.keys( cars_form_url_patams ).length > 0 ) {
Object.keys( cars_form_url_patams ).forEach(function(key) {
form_data = '<input type="text" name="' + key + '" value="' + cars_form_url_patams[ key ] + '" />' + form_data;
});
}
var url = window.location.href.split('?')[0];
var url_arr = url.split( '/page/' );
jQuery('<form>', {
"id": "getCarsData",
"html": form_data,
"action": url_arr[0]
}).appendTo(document.body).submit();
}
}
function getQueryParams( url ) {
// Initialize an empty object
let result = {};
// get URL query string
if ( url.indexOf('?') !== -1 ) {
// remove the '?' character
let queryParamArray = url.substring(url.indexOf('?') + 1).split('&');
// iterate over parameter array
queryParamArray.forEach(function(queryParam) {
// split the query parameter over '='
let item = queryParam.split("=");
result[item[0]] = decodeURIComponent(item[1]);
});
}
return result;
}
function price_slider_display_values( min, max, dealer_slider_amt_el ) {
var currency_symbol = vehicle_filter_js_object.currency_symbol;
if ( min ) {
min = cardealer_addCommas(min);
}
if ( max ) {
max = cardealer_addCommas(max);
}
switch( vehicle_filter_js_object.currency_pos ){
case 'left':
$(dealer_slider_amt_el).html( '<bdi><span class="currency">' + currency_symbol + '</span>' + min + '</bdi> - <bdi><span class="currency">' + currency_symbol + '</span>' + max + '</bdi>' );
break;
case 'left-with-space':
$(dealer_slider_amt_el).html( '<bdi><span class="currency">' + currency_symbol + '</span> ' + min + '</bdi> - <bdi><span class="currency">' + currency_symbol + '</span> ' + max + '</bdi>' );
break;
case 'right-with-space':
$(dealer_slider_amt_el).html( '<bdi>' + min + ' <span class="currency">' + currency_symbol + '</span></bdi> - <bdi>' + max + ' <span class="currency">' + currency_symbol + '</span></bdi>' );
break;
default:
$(dealer_slider_amt_el).html( '<bdi>' + min + '<span class="currency">' + currency_symbol + '</span></bdi> - <bdi>' + max + '<span class="currency">' + currency_symbol + '</span></bdi>' );
}
jQuery( document.body ).trigger( 'price_slider_updated', [ min, max ] );
};
function year_range_display_values( min, max, year_slider_years_el ) {
$( year_slider_years_el ).val( min + " - " + max);
jQuery( document.body ).trigger( 'year_range_slider_updated', [ min, max ] );
};
function dealer_year_range_filter(){
if ( typeof vehicle_filter_js_object === 'undefined' ) {
return false;
}
$( '.year-range-slider-wrapper' ).each(function( index, el ) {
var year_slider_wrap = this,
year_slider_location = $( year_slider_wrap ).data( 'range-location' ),
year_slider_el = $( year_slider_wrap ).find('.slider-year-range'),
year_slider_years_el = $( year_slider_wrap ).find('.dealer-slider-year-range'),
year_slider_min_el = $( year_slider_wrap ).find('.pgs-year-range-min'),
year_slider_max_el = $( year_slider_wrap ).find('.pgs-year-range-max'),
pgs_year_range_min = $( year_slider_min_el ).data( 'yearmin' ),
pgs_year_range_max = $( year_slider_max_el ).data( 'yearmax' ),
pgs_current_min_year = parseInt( pgs_year_range_min, 10 ),
pgs_current_max_year = parseInt( pgs_year_range_max, 10 );
if ( vehicle_filter_js_object.min_year ) {
pgs_current_min_year = parseFloat( vehicle_filter_js_object.min_year, 10 );
}
if ( vehicle_filter_js_object.max_year ) {
pgs_current_max_year = parseFloat( vehicle_filter_js_object.max_year, 10 );
}
if ( jQuery.isFunction(jQuery.fn.slider) ) {
jQuery( year_slider_el ).slider({
range: true,
min: pgs_year_range_min,
max: pgs_year_range_max,
values: [pgs_current_min_year, pgs_current_max_year],
create: function() {
$( year_slider_min_el ).val( pgs_current_min_year );
$( year_slider_max_el ).val( pgs_current_max_year );
year_range_display_values( pgs_current_min_year, pgs_current_max_year, year_slider_years_el );
jQuery( document.body ).trigger( 'pgs_year_range_slider_create', [ pgs_current_min_year, pgs_current_max_year ] );
},
slide: function( event, ui ) {
var min = ui.values[0],
max = ui.values[1];
$( year_slider_min_el ).val( min );
$( year_slider_max_el ).val( max );
year_range_display_values( min, max, year_slider_years_el );
$( '.year-range-slider-wrapper' ).not( year_slider_wrap ).each( function( index ) {
$( $( this ).find('.pgs-year-range-min') ).val( min );
$( $( this ).find('.pgs-year-range-max') ).val( max );
year_range_display_values( min, max, $( this ).find( '.dealer-slider-year-range' ) );
jQuery( $( this ).find( '.slider-year-range' ) ).slider({
range: true,
min: pgs_year_range_min,
max: pgs_year_range_max,
values: [min, max],
});
});
jQuery( document.body ).trigger( 'pgs_year_range_slider_slide', [ ui.values[0], ui.values[1] ] );
},
change: function( event, ui ) {
jQuery( document.body ).trigger( 'pgs_year_range_slider_change', [ ui.values[0], ui.values[1] ] );
},
stop: function( event, ui ) {
if ( 'widgets' !== year_slider_location ) {
var is_cfb = jQuery(this).attr('data-cfb');
var args = [];
args['year_range_values'] = [];
args['year_range_values']['pgs_year_range_min'] = $( year_slider_min_el ).val();
args['year_range_values']['pgs_year_range_max'] = $( year_slider_max_el ).val();
args['year_range_values']['default_year_min_val'] = pgs_year_range_min;
args['year_range_values']['default_year_max_val'] = pgs_year_range_max;
let price_slider_wrap = $('.price_slider_wrapper').first(),
price_slider_min_el = $( price_slider_wrap ).find('.pgs-price-slider-min'),
price_slider_max_el = $( price_slider_wrap ).find('.pgs-price-slider-max');
args['price_range_values'] = [];
args['price_range_values']['pgs_min_price'] = $( price_slider_min_el ).val();
args['price_range_values']['pgs_max_price'] = $( price_slider_max_el ).val();
args['price_range_values']['default_min_val'] = $( price_slider_min_el ).attr('data-min');
args['price_range_values']['default_max_val'] = $( price_slider_max_el ).attr('data-max');
if ( 'yes' === is_cfb ) {
$( document.body ).trigger( 'do_cfb_ajax_call_event', this, args );
} else {
var form_data = get_form_field( this, args );
do_ajax_call( form_data );
}
}
}
});
}
});
}
function dealer_price_filter(){
if ( typeof vehicle_filter_js_object === 'undefined' ) {
return false;
}
$('.price_slider_wrapper').each(function( index, el ) {
var price_slider_wrap = this,
price_slider_el = $( price_slider_wrap ).find('.slider-range'),
dealer_slider_amt_el = $( price_slider_wrap ).find('.dealer-slider-amount'),
price_slider_min_el = $( price_slider_wrap ).find('.pgs-price-slider-min'),
price_slider_max_el = $( price_slider_wrap ).find('.pgs-price-slider-max'),
pgs_min_price = $( price_slider_min_el ).data( 'min' ),
pgs_max_price = $( price_slider_max_el ).data( 'max' ),
pgs_current_min_price = parseInt( pgs_min_price, 10 ),
pgs_current_max_price = parseInt( pgs_max_price, 10 ),
pgs_price_range_step = $( price_slider_max_el ).data( 'step' ),
range_step = ( pgs_price_range_step ) ? pgs_price_range_step : 100;
if ( vehicle_filter_js_object.min_price ) {
pgs_current_min_price = parseInt( vehicle_filter_js_object.min_price, 10 );
}
if ( vehicle_filter_js_object.max_price ) {
pgs_current_max_price = parseInt( vehicle_filter_js_object.max_price, 10 );
}
if ( jQuery.isFunction(jQuery.fn.slider) ) {
jQuery(price_slider_el).slider({
range: true,
min: pgs_min_price,
max: pgs_max_price,
values: [pgs_current_min_price, pgs_current_max_price],
step: range_step,
create: function() {
$( price_slider_min_el ).val( pgs_current_min_price );
$( price_slider_max_el ).val( pgs_current_max_price );
price_slider_display_values( pgs_current_min_price, pgs_current_max_price, dealer_slider_amt_el );
$( document.body ).trigger( 'pgs_price_slider_create', [ pgs_current_min_price, pgs_current_max_price ] );
},
slide: function( event, ui ) {
var min = ui.values[0],
max = ui.values[1];
$( price_slider_min_el ).val( min );
$( price_slider_max_el ).val( max );
price_slider_display_values( min, max, dealer_slider_amt_el );
$( document.body ).trigger( 'pgs_price_slider_slide', [ ui.values[0], ui.values[1] ] );
$( '.price_slider_wrapper' ).not( price_slider_wrap ).each( function( index ) {
$( $( this ).find('.pgs-price-slider-min') ).val( min );
$( $( this ).find('.pgs-price-slider-max') ).val( max );
price_slider_display_values( min, max, $( this ).find( '.dealer-slider-amount' ) );
jQuery( $( this ).find( '.range-slide-slider' ) ).slider({
range: true,
min: pgs_min_price,
max: pgs_max_price,
values: [min, max],
});
});
},
change: function( event, ui ) {
$( document.body ).trigger( 'pgs_price_slider_change', [ ui.values[0], ui.values[1] ] );
}
});
}
});
}
function cardealer_addCommas(nStr){
return cardealer_number_format(nStr, parseInt(vehicle_filter_js_object.decimal_places), vehicle_filter_js_object.decimal_separator_symbol, vehicle_filter_js_object.thousand_seperator_symbol);
}
function cardealer_number_format(number, decimals, decPoint, thousandsSep){
decimals = decimals || 0;
number = parseFloat(number);
if(!decPoint || !thousandsSep){
decPoint = '.';
thousandsSep = ',';
}
var roundedNumber = Math.round( Math.abs( number ) * ('1e' + decimals) ) + '';
var numbersString = decimals ? roundedNumber.slice(0, decimals * -1) : roundedNumber;
var decimalsString = decimals ? roundedNumber.slice(decimals * -1) : '';
var formattedNumber = "";
while(numbersString.length > 3){
formattedNumber = thousandsSep + numbersString.slice(-3) + formattedNumber;
numbersString = numbersString.slice(0,-3);
}
return (number < 0 ? '-' : '') + numbersString + formattedNumber + (decimalsString ? (decPoint + decimalsString) : '');
}
/**
* get cars sold page template filters fields function
*/
function get_sold_filter_fields($this){
var form_data = '';
var order_sold = '';
if($($this).hasClass('cars-order-sold')){
order_sold = $($this).attr('data-order');
} else {
order_sold = $('#pgs_cars_order_sold').attr('data-current_order');
}
form_data += '<input type="hidden" name="cars_order" value="'+order_sold+'"/>';
var sold_layout = '';
if($($this).hasClass('catlog-layout-sold')){
sold_layout = $($this).attr('data-id');
} else {
var sts = jQuery('.view-grid-sold').attr('data-sts');
if(sts == 'act'){
sold_layout = 'view-grid';
} else {
sold_layout = 'view-list';
}
}
form_data += '<input type="hidden" name="lay_style" value="'+sold_layout+'"/>';
return form_data;
}
function updateQueryStringParameter( uri, key, value ) {
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
} else {
return uri + separator + key + "=" + value;
}
}
function cd_get_slider_filter_var() {
const args = [];
if ( $('.price_slider_wrapper').length > 0 ) {
var price_slider_wrap = $('.price_slider_wrapper').first();
var price_slider_min_el = $( price_slider_wrap ).find( '.pgs-price-slider-min' );
var price_slider_max_el = $( price_slider_wrap ).find('.pgs-price-slider-max');
args['price_range_values'] = [];
args['price_range_values']['pgs_min_price'] = $( price_slider_min_el ).val();
args['price_range_values']['pgs_max_price'] = $( price_slider_max_el ).val();
args['price_range_values']['default_min_val'] = $( price_slider_min_el ).attr('data-min');
args['price_range_values']['default_max_val'] = $( price_slider_max_el ).attr('data-max');
}
if ( $('.year-range-slider-wrapper').length > 0 ) {
var year_slider_wrap = $('.year-range-slider-wrapper').first();
var year_slider_min_el = $( year_slider_wrap ).find( '.pgs-year-range-min' );
var year_slider_max_el = $( year_slider_wrap ).find('.pgs-year-range-max');
args['year_range_values'] = [];
args['year_range_values']['pgs_year_range_min'] = $( year_slider_min_el ).val();
args['year_range_values']['pgs_year_range_max'] = $( year_slider_max_el ).val();
args['year_range_values']['default_year_min_val'] = $( year_slider_min_el ).attr('data-yearmin');
args['year_range_values']['default_year_max_val'] = $( year_slider_max_el ).attr('data-yearmax');
}
return args;
}
}( jQuery ) );
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists