/**
* @version 1.0
* @package Support Functions
* @subpackage BackEnd Main Script Lib
* @category Scripts
* @author wpdevelop
*
* @web-site https://oplugins.com/
* @email info@oplugins.com
*
* @modified 2015-04-09
*/
/** Scroll to specific HTML element
*
* @param {type} object_name
* @returns {undefined}
*/
function wpbm_scroll_to( object_name ) {
if ( jQuery( object_name ).length > 0 ) {
var targetOffset = jQuery( object_name ).offset().top;
// targetOffset = targetOffset - 50;
if (targetOffset<0) targetOffset = 0;
if ( jQuery('#wpadminbar').length > 0 ) targetOffset = targetOffset - 50;
else targetOffset = targetOffset - 20;
jQuery('html,body').animate({scrollTop: targetOffset}, 500);
}
}
function wpbm_animate_border( element, time, colors, x ) {
if (x >= colors.length) {
x = 0;
} else {
x++;
var color;
if ( colors[x] === '' ) {
color = ''
} else {
color = '#'+colors[x]
}
element.css('border-color', color)
setTimeout(function() {
wpbm_animate_border( element, time, colors, x );
}, time)
}
}
function wpbm_field_highlight( object_name ) {
if ( jQuery( object_name ).length > 0 ) {
wpbm_scroll_to( object_name );
wpbm_animate_border(
jQuery( object_name ) // Element
, 200 // Time in ms
, ['f87000', '', 'f87000', '', 'f87000', '', 'f87000', '', 'f87000', '', 'f87000', ''] // Colors Array
, 0
);
}
}
/** Show Yes/No dialog
*
* @param {type} message_question
* @returns {Boolean}
*/
function wpbm_are_you_sure( message_question ){
var answer = confirm( message_question );
if ( answer) { return true; }
else { return false;}
}
function wpbm_admin_show_message_processing( message_type ){
var message = '' ;
if ( message_type == 'saving' )
message += wpbm_message_saving;
else if ( message_type == 'updating' )
message += wpbm_message_updating;
else if ( message_type == 'deleting' )
message += wpbm_message_deleting;
else
message += wpbm_message_processing;
if ( message == 'undefined' )
message = 'Processing'
message = ' ' + message + '...';
wpbm_admin_show_message( message, 'info', 10000 );
}
/** Show Alert Messages
*
* @param {type} message
* @param {type} m_type
* @param {type} m_delay
* @returns {undefined}
*/
function wpbm_admin_show_message( message, m_type, m_delay ){
var alert_class = 'notice '; //'alert ';
if (m_type == 'error') alert_class += 'notice-error '; //'alert-danger ';
if (m_type == 'warning') alert_class += 'notice-warning ';
if (m_type == 'info') alert_class += 'notice-info '; //'alert-info ';
if (m_type == 'success') alert_class += 'alert-success updated ';
jQuery('#ajax_working').html( '
'
);
jQuery('#wpbm_alert_message').animate( {opacity: 1}, m_delay ).fadeOut(500);
}
function wpbm_close_dropdown_selectbox( selector_id ) {
jQuery('#' + selector_id + '_container li input[type=checkbox],#' + selector_id + '_container li input[type=radio]').prop('checked', false);
jQuery('#' + selector_id + '_container').hide();
}
// Show Container depend from the selected option in dropdown list
function wpbm_show_selected_in_dropdown( selector_id, title, value ){
jQuery('#' + selector_id + '_selector .wpbm_selected_in_dropdown').html( title );
jQuery('#' + selector_id ).val( value );
}
// Show Container depend from the selected Radio Option and Selectbox value in dropdown list
// Exmaple: wpbm_show_selected_in_dropdown__radio_select_option( 'wh_ ... _date', 'wh_ ... _date2', 'wh_ ... _datedays_interval_Radios' );
function wpbm_show_selected_in_dropdown__radio_select_option( selector_id, selector_id2, radio_name ){
// Get selected value in radio buttons
var rad_val = jQuery('input:radio[name="' + radio_name + '"]:checked').val();
if ( rad_val != 'undefined' ) {
var select_box = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select');
// Selectbox exist
if ( select_box.length > 0 ) {
// Get label near selected radiobutton and selected Tilte in selectbox
var title = jQuery('input:radio[name="' + radio_name + '"]:checked').parent().find('label').html() + ' ' +
jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select option:selected').text();
// Get Value of selected option in selectbox
var value = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select option:selected').val();
// Set Title in dropdown list
jQuery('#' + selector_id + '_selector .wpbm_selected_in_dropdown').html( title );
// Set value of radio button
jQuery('#' + selector_id ).val( rad_val );
// Set value of selectbox
jQuery('#' + selector_id2 ).val( value );
} else {
// 2 Text Fields
var text_box = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('input[type="text"]');
if ( text_box.length > 0 ) {
var text_divs = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('.dropdown-menu-text-element');
// Check if we have 2 DIV elements with text fields
if ( text_box.length > 0 ) {
var id_list = [ selector_id, selector_id2 ];
var title = '';
//Loop our text DIV elements
jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('.dropdown-menu-text-element').each(function( i ) {
if ( title != '' )
title += ' - ';
title += jQuery(this).find('input[type="text"]').val();
jQuery('#' + id_list[ i ] ).val( jQuery(this).find('input[type="text"]').val() );
});
// Set Title in dropdown list
jQuery('#' + selector_id + '_selector .wpbm_selected_in_dropdown').html( title );
}
}
}
}
// Hide dropdown list
jQuery('#' + selector_id + '_container').hide();
}
//Set status of all checkbos in one time
function wpbm_set_checkbox_in_table( el_stutus, el_class ){
jQuery('.'+el_class).attr('checked', el_stutus);
if ( el_stutus ) {
jQuery('.'+el_class).parent().parent().parent().parent().addClass('row_selected_color');
// jQuery('.'+el_class).parent().parent().addClass('warning');
} else {
jQuery('.'+el_class).parent().parent().parent().parent().removeClass('row_selected_color');
// jQuery('.'+el_class).parent().parent().removeClass('warning');
}
}
/** Ajax Request
*
* @param {type} us_id
* @param {type} window_id
* @returns {undefined}
*/
//
/** Ajax Request - Saving Custom Data for User
*
* @param {int} us_id
* @param {string} data_name
* @param {string} data_value - serialized data
* @param {int} is_reload - { 0 | 1 } reload or not page
*/
//
////////////////////////////////////////////////////////////////////////////////
// Contact Form
////////////////////////////////////////////////////////////////////////////////
function wpbm_submit_client_form( submit_form, wpdev_active_locale ){
var count = submit_form.elements.length;
var formdata = '';
var inp_value;
var element;
var el_type;
for (var i=0; i 0) {
// Recheck the values of the both emails, if they do not equla show warning
if ( jQuery('[name="' + primary_email_name + '"]').val() !== inp_value ) {
wpbm_show_error_message( element , message_verif_same_emeil );return;
}
}
}
// Skip one loop for the email veryfication field
continue;
} */
/*
// Get Form Data
if ( element.name !== ('captcha_input' ) ) {
if (formdata !=='') formdata += '~'; // next field element
el_type = element.type;
if ( element.className.indexOf('wpdev-validates-as-email') !== -1 ) el_type='email';
if ( element.className.indexOf('wpdev-validates-as-coupon') !== -1 ) el_type='coupon';
inp_value = inp_value + '';
inp_value = inp_value.replace(new RegExp("\\^",'g'), '^'); // replace registered characters
inp_value = inp_value.replace(new RegExp("~",'g'), '~'); // replace registered characters
inp_value = inp_value.replace(/"/g, '"'); // replace double quot
inp_value = inp_value.replace(/'/g, '''); // replace single quot
formdata += el_type + '^' + element.name + '^' + inp_value ; // element attr
} */
}
} // End Fields Loop
submit_form.submit(); // Submit Form, if previously was no interuptions
}
/**
* Show message under specific element
*
* @param {type} element - jQuery definition of the element
* @param {type} errorMessage - String message
* @param {type} message_type "" | "alert-warning" | "alert-success" | "alert-info" | "alert-danger"
*/
function wpbm_show_message_under_element( element , errorMessage , message_type) {
wpbm_scroll_to( element );
if ( jQuery( element ).attr('type') == "radio" ) {
jQuery( element ).parent().parent().parent()
.after(''+ errorMessage +''); // Show message
} else if (jQuery( element ).attr('type') == "checkbox") {
jQuery( element ).parent()
.after(''+ errorMessage +''); // Show message
} else {
jQuery( element )
.after(''+ errorMessage +''); // Show message
}
jQuery(".widget_wpbm .wpbm-near-field-message")
.css( {'vertical-align': 'sub' } ) ;
jQuery(".wpbm-near-field-message")
.animate( {opacity: 1}, 10000 )
.fadeOut( 2000 );
}
// Show Error Message in Form at Front End
function wpbm_show_error_message( element , errorMessage) {
// Scroll to the element
wpbm_scroll_to( element );
jQuery("[name='"+ element.name +"']")
.fadeOut( 350 ).fadeIn( 300 )
.fadeOut( 350 ).fadeIn( 400 )
.fadeOut( 350 ).fadeIn( 300 )
.fadeOut( 350 ).fadeIn( 400 )
.animate( {opacity: 1}, 4000 )
; // mark red border
if (jQuery("[name='"+ element.name +"']").attr('type') == "radio") {
jQuery("[name='"+ element.name +"']").parent().parent()//.parent()
.after(''+ errorMessage +''); // Show message
} else if (jQuery("[name='"+ element.name +"']").attr('type') == "checkbox") {
jQuery("[name='"+ element.name +"']").parent().parent()
.after(''+ errorMessage +''); // Show message
} else {
jQuery("[name='"+ element.name +"']")
.after(''+ errorMessage +''); // Show message
}
jQuery(".wpbm-near-field-message")
.css( {'padding' : '5px 5px 4px', 'margin' : '2px', 'vertical-align': 'top', 'line-height': '32px' } );
if ( element.type == 'checkbox' )
jQuery(".wpbm-near-field-message").css( { 'vertical-align': 'middle'} );
jQuery(".widget_wpbm .wpbm-near-field-message")
.css( {'vertical-align': 'sub' } ) ;
jQuery(".wpbm-near-field-message")
.animate( {opacity: 1}, 10000 )
.fadeOut( 2000 );
element.focus(); // make focus to elemnt
return;
}
/**
* Reload the page with new parameter value.
*
* @param {type} url - full URL of the page, can include or exclude that parameter
* @param {type} param - URL parameter name
* @param {type} value - URL parameter value
* @returns {undefined}
*/
function wpbm_reload_page_with_paramater( url, param, value ) {
var hash = {};
var parser = document.createElement('a');
parser.href = url;
var parameters = parser.search.split(/\?|&/);
for(var i=0; i < parameters.length; i++) {
if(!parameters[i])
continue;
var ary = parameters[i].split('=');
hash[ary[0]] = ary[1];
}
hash[param] = value;
var list = [];
Object.keys(hash).forEach(function (key) {
list.push(key + '=' + hash[key]);
});
parser.search = '?' + list.join('&');
//return parser.href;
window.location.href = parser.href;
}
// jQuery(window).load(function(){
jQuery( window ).on( "load", function (){ //FixIn: 2.0.18.1
// Color Text picker ///////////////////////////////////////////////////////
if ( jQuery('.field-text-color').length > 0 ) {
jQuery('.field-text-color').iris( {
change: function(event, ui){
jQuery(this).css( { backgroundColor: ui.color.toString() } );
jQuery(this).closest('.fields-color-group').find('.fieldvalue').css( { color: ui.color.toString() } );
}
, hide: true
, border: true
, palettes: ['#333', '#555', '#777', '#aaa', '#fff']
} ).each( function() {
jQuery(this).css( { backgroundColor: jQuery(this).val() } );
})
.on( 'click', function() { //FixIn: 2.0.18.4
jQuery('.iris-picker').hide();
jQuery(this).closest('div').find('.iris-picker').show();
});
}
// Color Background picker /////////////////////////////////////////////////
if ( jQuery('.field-background-color').length > 0 ) {
jQuery('.field-background-color').iris( {
change: function(event, ui){
jQuery(this).css( { backgroundColor: ui.color.toString() } );
jQuery(this).closest('.fields-color-group').find('.fieldvalue').css( { backgroundColor: ui.color.toString() } );
}
, hide: true
, border: true
, palettes: [ '#FFEE99', '#459', '#78b', '#ab0', '#df5d5d', '#f0f']
} ).each( function() {
jQuery(this).css( { backgroundColor: jQuery(this).val() } );
})
.on( 'click', function() { //FixIn: 2.0.18.4
jQuery('.iris-picker').hide();
jQuery(this).closest('div').find('.iris-picker').show();
});
jQuery('.field-text-color, .field-background-color').on( 'click', function(event) { //FixIn: 2.0.18.4
event.stopPropagation();
});
}
////////////////////////////////////////////////////////////////////////////
// General Color picker in settings table //////////////////////////////////
////////////////////////////////////////////////////////////////////////////
if ( jQuery('.wpbm_colorpick').length > 0 ) {
jQuery('.wpbm_colorpick').iris( {
change: function(event, ui){
jQuery(this).css( { backgroundColor: ui.color.toString() } );
}
, hide: true
, border: true
, palettes: ['#125', '#459', '#78b', '#ab0', '#de3', '#f0f']
} ).each( function() {
jQuery(this).css( { backgroundColor: jQuery(this).val() } );
})
.on( 'click', function() { //FixIn: 2.0.18.4
jQuery('.iris-picker').hide();
jQuery(this).closest('td').find('.iris-picker').show();
});
jQuery('body').on( 'click', function() { //FixIn: 2.0.18.4
jQuery('.iris-picker').hide();
});
jQuery('.wpbm_colorpick').on( 'click', function(event) { //FixIn: 2.0.18.4
event.stopPropagation();
});
}
});
////////////////////////////////////////////////////////////////////////////
// Support Functions
////////////////////////////////////////////////////////////////////////////
/**
* Reset of WP Editor or TextArea Content
* @param {string} editor_textarea_id - ID of element
* @param {string} editor_textarea_content - Content
*/
function wpbm_reset_wp_editor_content( editor_textarea_id, editor_textarea_content ) {
if( typeof tinymce != "undefined" ) {
var editor = tinymce.get( editor_textarea_id );
if( editor && editor instanceof tinymce.Editor ) {
editor.setContent( editor_textarea_content );
editor.save( { no_events: true } );
} else {
jQuery( '#' + editor_textarea_id ).val( editor_textarea_content );
}
} else {
jQuery( '#' + editor_textarea_id ).val( editor_textarea_content );
}
}