/* global jQuery */
/* global wp */
function awpbusinesspress_media_upload(button_class) {
'use strict';
jQuery( 'body' ).on(
'click',
button_class,
function () {
var button_id = '#' + jQuery( this ).attr( 'id' );
var display_field = jQuery( this ).parent().children( 'input:text' );
var _custom_media = true;
wp.media.editor.send.attachment = function (props, attachment) {
if (_custom_media) {
if (typeof display_field !== 'undefined') {
switch (props.size) {
case 'full':
display_field.val( attachment.sizes.full.url );
display_field.trigger( 'change' );
break;
case 'medium':
display_field.val( attachment.sizes.medium.url );
display_field.trigger( 'change' );
break;
case 'thumbnail':
display_field.val( attachment.sizes.thumbnail.url );
display_field.trigger( 'change' );
break;
default:
display_field.val( attachment.url );
display_field.trigger( 'change' );
}
}
_custom_media = false;
} else {
return wp.media.editor.send.attachment( button_id, [props, attachment] );
}
};
wp.media.editor.open( button_class );
window.send_to_editor = function (html) {
};
return false;
}
);
}
/********************************************
* ** Generate unique id ***
*********************************************/
function awpbusinesspress_customizer_repeater_uniqid(prefix, more_entropy) {
'use strict';
if (typeof prefix === 'undefined') {
prefix = '';
}
var retId;
var php_js;
var formatSeed = function (seed, reqWidth) {
seed = parseInt( seed, 10 )
.toString( 16 ); // to hex str.
if (reqWidth < seed.length) { // so long we split.
return seed.slice( seed.length - reqWidth );
}
if (reqWidth > seed.length) { // so short we pad.
return new Array( 1 + (reqWidth - seed.length) )
.join( '0' ) + seed;
}
return seed;
};
// BEGIN REDUNDANT.
if ( ! php_js) {
php_js = {};
}
// END REDUNDANT.
if ( ! php_js.uniqidSeed) { // init seed with big random int.
php_js.uniqidSeed = Math.floor( Math.random() * 0x75bcd15 );
}
php_js.uniqidSeed++;
retId = prefix; // start with prefix, add current milliseconds hex string.
retId += formatSeed(
parseInt(
new Date()
.getTime() / 1000,
10
),
8
);
retId += formatSeed( php_js.uniqidSeed, 5 ); // add seed hex string.
if (more_entropy) {
// for more entropy we add a float lower to 10.
retId += (Math.random() * 10)
.toFixed( 8 )
.toString();
}
return retId;
}
/********************************************
* ** General Repeater ***
*********************************************/
function awpbusinesspress_customizer_repeater_refresh_social_icons(th) {
'use strict';
var icons_repeater_values = [];
th.find( '.customizer-repeater-social-repeater-container' ).each(
function () {
var icon = jQuery( this ).find( '.icp' ).val();
var link = jQuery( this ).find( '.customizer-repeater-social-repeater-link' ).val();
var id = jQuery( this ).find( '.customizer-repeater-social-repeater-id' ).val();
if ( ! id) {
id = 'customizer-repeater-social-repeater-' + awpbusinesspress_customizer_repeater_uniqid();
jQuery( this ).find( '.customizer-repeater-social-repeater-id' ).val( id );
}
if (icon !== '' && link !== '') {
icons_repeater_values.push(
{
'icon': icon,
'link': link,
'id': id
}
);
}
}
);
th.find( '.social-repeater-socials-repeater-colector' ).val( JSON.stringify( icons_repeater_values ) );
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
function awpbusinesspress_customizer_repeater_refresh_general_control_values() {
'use strict';
jQuery( '.customizer-repeater-general-control-repeater' ).each(
function () {
var values = [];
var th = jQuery( this );
th.find( '.customizer-repeater-general-control-repeater-container' ).each(
function () {
var icon_value = jQuery( this ).find( '.icp' ).val();
var text = jQuery( this ).find( '.customizer-repeater-text-control' ).val();
var button_text = jQuery( this ).find( '.customizer-repeater-button-text-control' ).val();
var link = jQuery( this ).find( '.customizer-repeater-link-control' ).val();
var color = jQuery( this ).find( '.customizer-repeater-color-control' ).val();
var designation = jQuery( this ).find( '.customizer-repeater-designation-control' ).val();
var open_new_tab = jQuery( this ).find( '.customizer-repeater-checkbox' ).val();
var image_url = jQuery( this ).find( '.custom-media-url' ).val();
var choice = jQuery( this ).find( '.customizer-repeater-image-choice' ).val();
var title = jQuery( this ).find( '.customizer-repeater-title-control' ).val();
var subtitle = jQuery( this ).find( '.customizer-repeater-subtitle-control' ).val();
var slide_format = jQuery( this ).find( '.customizer-repeater-slide-format' ).val();
var video_url = jQuery( this ).find( '.customizer-repeater-video-url-control' ).val();
var id = jQuery( this ).find( '.social-repeater-box-id' ).val();
if ( ! id) {
id = 'social-repeater-' + awpbusinesspress_customizer_repeater_uniqid();
jQuery( this ).find( '.social-repeater-box-id' ).val( id );
}
var social_repeater = jQuery( this ).find( '.social-repeater-socials-repeater-colector' ).val();
var shortcode = jQuery( this ).find( '.customizer-repeater-shortcode-control' ).val();
if (text !== '' || image_url !== '' || title !== '' || subtitle !== '' || icon_value !== '' || link !== '' || designation !== '' || open_new_tab !== '' || choice !== '' || social_repeater !== '' || shortcode !== '' || color !== '' || button_text !== '' || slide_format !== '' || video_url !== '') {
values.push(
{
'icon_value': (choice === 'customizer_repeater_none' ? '' : icon_value),
'color': color,
'text': awpbusinesspress_escapeHtml( text ),
'link': link,
'image_url': (choice === 'customizer_repeater_none' ? '' : image_url),
'choice': choice,
'title': awpbusinesspress_escapeHtml( title ),
'subtitle': awpbusinesspress_escapeHtml( subtitle ),
'social_repeater': awpbusinesspress_escapeHtml( social_repeater ),
'id': id,
'shortcode': awpbusinesspress_escapeHtml( shortcode ),
'button_text' : button_text,
'designation' : designation,
'open_new_tab' : open_new_tab,
'slide_format' : slide_format,
'video_url' : video_url
}
);
}
}
);
th.find( '.customizer-repeater-colector' ).val( JSON.stringify( values ) );
th.find( '.customizer-repeater-colector' ).trigger( 'change' );
}
);
}
jQuery( document ).ready(
function () {
'use strict';
var theme_conrols = jQuery( '#customize-theme-controls' );
theme_conrols.on(
'click',
'.customizer-repeater-customize-control-title',
function () {
jQuery( this ).next().slideToggle(
'medium',
function () {
if (jQuery( this ).is( ':visible' )) {
jQuery( this ).prev().addClass( 'repeater-expanded' );
jQuery( this ).css( 'display', 'block' );
} else {
jQuery( this ).prev().removeClass( 'repeater-expanded' );
}
}
);
}
);
theme_conrols.on(
'change',
'.icp',
function(){
awpbusinesspress_customizer_repeater_refresh_general_control_values();
return false;
}
);
theme_conrols.on(
'change',
'.customizer-repeater-slide-format',
function(){
if (jQuery( this ).val() === 'customizer_repeater_slide_forma_video') {
jQuery( this ).parent().parent().find( '.customizer-repeater-video-url-control' ).show();
jQuery( this ).parent().parent().find( '.Video' ).show();
} else {
jQuery( this ).parent().parent().find( '.customizer-repeater-video-url-control' ).hide();
jQuery( this ).parent().parent().find( '.Video' ).hide();
}
awpbusinesspress_customizer_repeater_refresh_general_control_values();
return false;
}
);
theme_conrols.on(
'change',
'.customizer-repeater-image-choice',
function () {
if (jQuery( this ).val() === 'customizer_repeater_image') {
jQuery( this ).parent().parent().find( '.social-repeater-general-control-icon' ).hide();
jQuery( this ).parent().parent().find( '.customizer-repeater-image-control' ).show();
}
if (jQuery( this ).val() === 'customizer_repeater_icon') {
jQuery( this ).parent().parent().find( '.social-repeater-general-control-icon' ).show();
jQuery( this ).parent().parent().find( '.customizer-repeater-image-control' ).hide();
}
if (jQuery( this ).val() === 'customizer_repeater_none') {
jQuery( this ).parent().parent().find( '.social-repeater-general-control-icon' ).hide();
jQuery( this ).parent().parent().find( '.customizer-repeater-image-control' ).hide();
}
awpbusinesspress_customizer_repeater_refresh_general_control_values();
return false;
}
);
awpbusinesspress_media_upload( '.customizer-repeater-custom-media-button' );
jQuery( '.custom-media-url' ).on(
'change',
function () {
awpbusinesspress_customizer_repeater_refresh_general_control_values();
return false;
}
);
var color_options = {
change: function(event, ui){
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
};
/**
* This adds a new box to repeater
*/
theme_conrols.on(
'click',
'.customizer-repeater-new-field',
function () {
var parentid = jQuery( this ).parent().attr( "id" );
if (parentid == 'customize-control-awpbusinesspress_main_slider_content') {
var numItems = jQuery( "#customize-control-awpbusinesspress_main_slider_content .customizer-repeater-general-control-repeater-container" ).length
if (numItems >= 2) {
jQuery( "#customize-control-awpbusinesspress_slider_upgrade .awpbusinesspress-upgrade-pro-message" ).show();
return false;
}
}
if (parentid == 'customize-control-awpbusinesspress_top_info_content') {
var numItems = jQuery( "#customize-control-awpbusinesspress_top_info_content .customizer-repeater-general-control-repeater-container" ).length
if (numItems >= 3) {
jQuery( "#customize-control-awpbusinesspress_top_info_upgrade .awpbusinesspress-upgrade-pro-message" ).show();
return false;
}
}
if (parentid == 'customize-control-awpbusinesspress_service_content') {
var numItems = jQuery( "#customize-control-awpbusinesspress_service_content .customizer-repeater-general-control-repeater-container" ).length
if (numItems >= 3) {
jQuery( "#customize-control-awpbusinesspress_service_upgrade .awpbusinesspress-upgrade-pro-message" ).show();
return false;
}
}
if (parentid == 'customize-control-awpbusinesspress_funfact_content') {
var numItems = jQuery( "#customize-control-awpbusinesspress_funfact_content .customizer-repeater-general-control-repeater-container" ).length
if (numItems >= 3) {
jQuery( "#customize-control-awpbusinesspress_funfact_upgrade .awpbusinesspress-upgrade-pro-message" ).show();
return false;
}
}
if (parentid == 'customize-control-awpbusinesspress_team_content') {
var numItems = jQuery( "#customize-control-awpbusinesspress_team_content .customizer-repeater-general-control-repeater-container" ).length
if (numItems >= 3) {
jQuery( "#customize-control-awpbusinesspress_team_upgrade .awpbusinesspress-upgrade-pro-message" ).show();
return false;
}
}
if (parentid == 'customize-control-awpbusinesspress_project_content') {
var numItems = jQuery( "#customize-control-awpbusinesspress_project_content .customizer-repeater-general-control-repeater-container" ).length
if (numItems >= 4) {
jQuery( "#customize-control-awpbusinesspress_project_upgrade .awpbusinesspress-upgrade-pro-message" ).show();
return false;
}
}
if (parentid == 'customize-control-awpbusinesspress_testimonial_content') {
var numItems = jQuery( "#customize-control-awpbusinesspress_testimonial_content .customizer-repeater-general-control-repeater-container" ).length
if (numItems >= 3) {
jQuery( "#customize-control-awpbusinesspress_testimonial_upgrade .awpbusinesspress-upgrade-pro-message" ).show();
return false;
}
}
if (parentid == 'customize-control-awpbusinesspress_client_content') {
var numItems = jQuery( "#customize-control-awpbusinesspress_client_content .customizer-repeater-general-control-repeater-container" ).length
if (numItems >= 4) {
jQuery( "#customize-control-awpbusinesspress_client_upgrade .awpbusinesspress-upgrade-pro-message" ).show();
return false;
}
}
var th = jQuery( this ).parent();
var id = 'customizer-repeater-' + awpbusinesspress_customizer_repeater_uniqid();
if (typeof th !== 'undefined') {
/* Clone the first box*/
var field = th.find( '.customizer-repeater-general-control-repeater-container:first' ).clone( true, true );
if (typeof field !== 'undefined') {
/*Set the default value for choice between image and icon to icon*/
field.find( '.customizer-repeater-image-choice' ).val( 'customizer_repeater_icon' );
/*Show icon selector*/
field.find( '.social-repeater-general-control-icon' ).show();
/*Hide image selector*/
if (field.find( '.social-repeater-general-control-icon' ).length > 0) {
field.find( '.customizer-repeater-image-control' ).hide();
}
/*Show delete box button because it's not the first box*/
field.find( '.social-repeater-general-control-remove-field' ).show();
/* Empty control for icon */
field.find( '.input-group-addon' ).find( '.fa' ).attr( 'class', 'fa' );
/*Remove all repeater fields except first one*/
field.find( '.customizer-repeater-social-repeater' ).find( '.customizer-repeater-social-repeater-container' ).not( ':first' ).remove();
field.find( '.customizer-repeater-social-repeater-link' ).val( '' );
field.find( '.social-repeater-socials-repeater-colector' ).val( '' );
/*Remove value from icon field*/
field.find( '.icp' ).val( '' );
/*Remove value from text field*/
field.find( '.customizer-repeater-text-control' ).val( '' );
/*Remove value from button text field*/
field.find( '.customizer-repeater-button-text-control' ).val( '' );
field.find( '.customizer-repeater-video-url-control' ).val( '' );
/*Remove value from designation text field*/
field.find( '.customizer-repeater-designation-control' ).val( '' );
/*Set the default value in slide format*/
field.find( '.customizer-repeater-slide-format' ).val( 'left' );
/*Remove value from link field*/
field.find( '.customizer-repeater-link-control' ).val( '' );
/*Set box id*/
field.find( '.social-repeater-box-id' ).val( id );
/*Remove value from media field*/
field.find( '.custom-media-url' ).val( '' );
/*Remove value from title field*/
field.find( '.customizer-repeater-title-control' ).val( '' );
/*Remove value from color field*/
field.find( '.wp-picker-container' ).replaceWith( '' );
field.find( '.customize-control-notifications-container' ).remove();
field.find( '.customizer-repeater-color-control' ).wpColorPicker( color_options );
/*Remove value from subtitle field*/
field.find( '.customizer-repeater-subtitle-control' ).val( '' );
/*Remove value from shortcode field*/
field.find( '.customizer-repeater-shortcode-control' ).val( '' );
/*Set the default value in checkbox*/
field.find( '.customizer-repeater-checkbox' ).val( '' );
/*Append new box*/
th.find( '.customizer-repeater-general-control-repeater-container:first' ).parent().append( field );
/*Refresh values*/
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
}
return false;
}
);
theme_conrols.on(
'click',
'.social-repeater-general-control-remove-field',
function () {
if (typeof jQuery( this ).parent() !== 'undefined') {
jQuery( this ).parent().hide(
500,
function(){
var main_slider_items = jQuery( "#customize-control-awpbusinesspress_main_slider_content .customizer-repeater-general-control-repeater-container" ).length
if (main_slider_items < 3) {
jQuery( "#customize-control-awpbusinesspress_slider_upgrade .awpbusinesspress-upgrade-pro-message" ).hide();
}
var theme_info_items = jQuery( "#customize-control-awpbusinesspress_top_info_content .customizer-repeater-general-control-repeater-container" ).length
if (theme_info_items < 5) {
jQuery( "#customize-control-awpbusinesspress_top_info_upgrade .awpbusinesspress-upgrade-pro-message" ).hide();
}
var theme_service_items = jQuery( "#customize-control-awpbusinesspress_service_content .customizer-repeater-general-control-repeater-container" ).length
if (theme_service_items < 4) {
jQuery( "#customize-control-awpbusinesspress_service_upgrade .awpbusinesspress-upgrade-pro-message" ).hide();
}
var theme_funfact_items = jQuery( "#customize-control-awpbusinesspress_funfact_content .customizer-repeater-general-control-repeater-container" ).length
if (theme_funfact_items < 4) {
jQuery( "#customize-control-awpbusinesspress_funfact_upgrade .awpbusinesspress-upgrade-pro-message" ).hide();
}
var theme_team_items = jQuery( "#customize-control-awpbusinesspress_team_content .customizer-repeater-general-control-repeater-container" ).length
if (theme_team_items < 4) {
jQuery( "#customize-control-awpbusinesspress_team_upgrade .awpbusinesspress-upgrade-pro-message" ).hide();
}
var project_items = jQuery( "#customize-control-awpbusinesspress_project_content .customizer-repeater-general-control-repeater-container" ).length
if (project_items < 5) {
jQuery( "#customize-control-awpbusinesspress_project_upgrade .awpbusinesspress-upgrade-pro-message" ).hide();
}
var testimonial_items = jQuery( "#customize-control-awpbusinesspress_testimonial_content .customizer-repeater-general-control-repeater-container" ).length
if (testimonial_items < 4) {
jQuery( "#customize-control-awpbusinesspress_testimonial_upgrade .awpbusinesspress-upgrade-pro-message" ).hide();
}
var client_items = jQuery( "#customize-control-awpbusinesspress_client_content .customizer-repeater-general-control-repeater-container" ).length
if (client_items < 4) {
jQuery( "#customize-control-awpbusinesspress_client_upgrade .awpbusinesspress-upgrade-pro-message" ).hide();
}
jQuery( this ).parent().remove();
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
);
}
return false;
}
);
theme_conrols.on(
'keyup',
'.customizer-repeater-title-control',
function () {
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
);
jQuery( '.customizer-repeater-color-control' ).wpColorPicker( color_options );
theme_conrols.on(
'keyup',
'.customizer-repeater-subtitle-control',
function () {
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
);
theme_conrols.on(
'keyup',
'.customizer-repeater-shortcode-control',
function () {
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
);
theme_conrols.on(
'keyup',
'.customizer-repeater-video-url-control',
function () {
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
);
theme_conrols.on(
'keyup',
'.customizer-repeater-text-control',
function () {
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
);
theme_conrols.on(
'keyup',
'.customizer-repeater-button-text-control',
function(){
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
)
theme_conrols.on(
'keyup',
'.customizer-repeater-link-control',
function () {
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
);
theme_conrols.on(
'keyup',
'.customizer-repeater-designation-control',
function(){
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
);
theme_conrols.on(
'change',
'.customizer-repeater-checkbox',
function(){
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
);
/*Drag and drop to change icons order*/
jQuery( '.customizer-repeater-general-control-droppable' ).sortable(
{
axis: 'y',
update: function () {
awpbusinesspress_customizer_repeater_refresh_general_control_values();
}
}
);
/*----------------- Socials Repeater ---------------------*/
theme_conrols.on(
'click',
'.social-repeater-add-social-item',
function (event) {
event.preventDefault();
var th = jQuery( this ).parent();
var id = 'customizer-repeater-social-repeater-' + awpbusinesspress_customizer_repeater_uniqid();
if (typeof th !== 'undefined') {
var field = th.find( '.customizer-repeater-social-repeater-container:first' ).clone( true, true );
if (typeof field !== 'undefined') {
field.find( '.icp' ).val( '' );
field.find( '.input-group-addon' ).find( '.fa' ).attr( 'class','fa' );
field.find( '.social-repeater-remove-social-item' ).show();
field.find( '.customizer-repeater-social-repeater-link' ).val( '' );
field.find( '.customizer-repeater-social-repeater-id' ).val( id );
th.find( '.customizer-repeater-social-repeater-container:first' ).parent().append( field );
}
}
return false;
}
);
theme_conrols.on(
'click',
'.social-repeater-remove-social-item',
function (event) {
event.preventDefault();
var th = jQuery( this ).parent();
var repeater = jQuery( this ).parent().parent();
th.remove();
awpbusinesspress_customizer_repeater_refresh_social_icons( repeater );
return false;
}
);
theme_conrols.on(
'keyup',
'.customizer-repeater-social-repeater-link',
function (event) {
event.preventDefault();
var repeater = jQuery( this ).parent().parent();
awpbusinesspress_customizer_repeater_refresh_social_icons( repeater );
return false;
}
);
theme_conrols.on(
'change',
'.customizer-repeater-social-repeater-container .icp',
function (event) {
event.preventDefault();
var repeater = jQuery( this ).parent().parent().parent();
awpbusinesspress_customizer_repeater_refresh_social_icons( repeater );
return false;
}
);
}
);
var entityMap = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
'\'': ''',
'/': '/'
};
function awpbusinesspress_escapeHtml(string) {
'use strict';
// noinspection JSUnresolvedFunction.
string = String( string ).replace( new RegExp( '\r?\n', 'g' ), '
' );
string = String( string ).replace( /\\/g, '\' );
return String( string ).replace(
/[&<>"'\/]/g,
function (s) {
return entityMap[s];
}
);
}