/** * @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( '
' + '
' + '× ' + message + '
' + '
' ); 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 ); } }