File: /home4/cca63905/.trash/wp-content/themes/accesspress-store/js/theme-customizer.js
// Holds the status of whether or not the rest of the code should be run
var cstmzr_multicat_js_run = true;
jQuery(window).load(function() {
// Prevents code from running twice due to live preview window.load firing in addition to the main customizer window.
if( true == cstmzr_multicat_js_run ) {
cstmzr_multicat_js_run = false;
} else {
return;
}
var api = wp.customize;
// Loops through each instance of the category checkboxes control.
jQuery('.cstmzr-hidden-categories').each(function(){
var id = jQuery(this).prop('id');
var categoryString = api.instance(id).get();
var categoryArray = categoryString.split(',');
// Checks/unchecks category checkboxes based on saved data.
jQuery('#' + id).closest('li').find('.cstmzr-category-checkbox').each(function() {
var elementID = jQuery(this).prop('id').split('-');
if( jQuery.inArray( elementID[1], categoryArray ) < 0 ) {
jQuery(this).prop('checked', false);
} else {
jQuery(this).prop('checked', true);
}
});
});
// Sets listeners for checkboxes
jQuery('.cstmzr-category-checkbox').on('change', function(){
var id = jQuery(this).closest('li').find('.cstmzr-hidden-categories').prop('id');
var elementID = jQuery(this).prop('id').split('-');
if( jQuery(this).prop('checked' ) == true ) {
addCategory(elementID[1], id);
} else {
removeCategory(elementID[1], id);
}
});
// Adds category ID to hidden input.
function addCategory( catID, controlID ) {
var categoryString = api.instance(controlID).get();
var categoryArray = categoryString.split(',');
if ( '' == categoryString ) {
var delimiter = '';
} else {
var delimiter = ',';
}
// Updates hidden field value.
if( jQuery.inArray( catID, categoryArray ) < 0 ) {
api.instance(controlID).set( categoryString + delimiter + catID );
}
}
// Removes category ID from hidden input.
function removeCategory( catID, controlID ) {
var categoryString = api.instance(controlID).get();
var categoryArray = categoryString.split(',');
var catIndex = jQuery.inArray( catID, categoryArray );
if( catIndex >= 0 ) {
// Removes element from array.
categoryArray.splice(catIndex, 1);
// Creates new category string based on remaining array elements.
var newCategoryString = '';
jQuery.each( categoryArray, function() {
if ( '' == newCategoryString ) {
var delimiter = '';
} else {
var delimiter = ',';
}
newCategoryString = newCategoryString + delimiter + this;
});
// Updates hidden field value.
api.instance(controlID).set( newCategoryString );
}
}
});