var um_live_field; var um_live_value; var um_field_conditions_array = {}; var um_field_relations = {}; var um_field_added = []; var um_field_loaded = false; var um_field_do_init = false; function um_field_init(){ jQuery('.um-field[data-key]').each(function(){ um_field_set_conditions( jQuery(this), true ); }); um_field_relationship(); um_field_apply_conditions(); um_field_loaded = true; } function um_field_set_conditions( um_field_dom, add_fade ){ var um_field_key = um_field_dom.data('key'); var arr_field = []; for (var i = 0; i < 5; i++) { var action0 = um_field_dom.data('cond-'+i+'-action'); var field0 = um_field_dom.data('cond-'+i+'-field'); var operator0 = um_field_dom.data('cond-'+i+'-operator'); var value0 = um_field_dom.data('cond-'+i+'-value'); if( typeof value0 !== 'undefined' && um_field_loaded == false ){ arr_field.push({ child: um_field_key, action: action0, field: field0, operator: operator0, value: value0 }); } } // end for if( jQuery.inArray( um_field_key, um_field_added ) <= -1 && um_field_loaded == false ){ um_field_added.push( um_field_key ); um_field_conditions_array[ um_field_key ] = arr_field; } } function um_field_apply_conditions(){ var field_results = {}; jQuery.each( um_field_added, function( i, field_key ){ if( um_field_relations[ field_key ].length <= 0 ){ um_field_relations[ field_key ] = [{ child: field_key, action:'child', field: '', operator: '', }]; } jQuery.each( um_field_relations[ field_key ], function( ii, conditions ){ var add_fade = true; var action0 = conditions.action; var value0 = conditions.value; var operator0 = conditions.operator; var field0 = conditions.field; var um_field_parent_dom = ''; if( action0 == 'show' || action0 == 'hide' ){ //console.log( um_field_do_init ); } um_field_parent_dom = jQuery('.um-field[data-key="'+field_key+'"]:visible').find('input[type=text],textarea,input[type=checkbox],input[type=radio],select'); var um_field_data = um_get_field_data( um_field_parent_dom ); var um_live_field = um_field_data.key; var um_live_value = um_field_data.value; var um_field_child_dom = jQuery('.um-field[data-key="'+conditions.child+'"]').find('input[type=text],textarea,input[type=checkbox],input[type=radio],select'); var um_field_child_dom_hide = jQuery('.um-field[data-key="'+conditions.child+'"]'); if ( action0 == 'show' && typeof value0 !== 'undefined' ) { if ( operator0 == 'empty' ) { if ( !um_live_value || um_live_value == '' ) { um_field_show( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.hide(); } } if ( operator0 == 'not empty' ) { if ( um_live_value && um_live_value != '' ) { um_field_show( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.hide(); } } if ( operator0 == 'equals to' ) { if ( value0 == um_live_value ) { um_field_show( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.hide(); } } if ( operator0 == 'not equals' ) { if ( jQuery.isNumeric( value0 ) && parseInt( um_live_value ) != parseInt( value0 ) && um_live_value ) { um_field_show( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; } else if ( !jQuery.isNumeric( value0 ) && value0 != um_live_value ) { um_field_show( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.hide(); } } if ( operator0 == 'greater than' ) { if ( jQuery.isNumeric( value0 ) && parseInt( um_live_value ) > parseInt( value0 ) ) { um_field_show( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.hide(); } } if ( operator0 == 'less than' ) { if ( jQuery.isNumeric( value0 ) && parseInt( um_live_value ) < parseInt( value0 ) && um_live_value ) { um_field_show( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.hide(); } } if ( operator0 == 'contains' ) { if ( um_live_value && um_live_value.indexOf( value0 ) >= 0 ) { um_field_show( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.hide(); } } } if ( action0 == 'hide' && typeof value0 !== 'undefined' ) { if ( operator0 == 'empty' ) { if ( !um_live_value || um_live_value == '' ) { um_field_hide( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.show(); } } if ( operator0 == 'not empty' ) { if ( um_live_value && um_live_value != '' ) { um_field_hide( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.show(); } } if ( operator0 == 'equals to' ) { if ( value0 == um_live_value ) { um_field_hide( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.show(); } } if ( operator0 == 'not equals' ) { if ( jQuery.isNumeric( value0 ) && parseInt( um_live_value ) != parseInt( value0 ) && um_live_value ) { um_field_hide( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; } else if ( !jQuery.isNumeric( value0 ) && value0 != um_live_value ) { um_field_hide( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.show(); } } if ( operator0 == 'greater than' ) { if ( jQuery.isNumeric( value0 ) && parseInt( um_live_value ) > parseInt( value0 ) ) { um_field_hide( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.show(); } } if ( operator0 == 'less than' ) { if ( jQuery.isNumeric( value0 ) && parseInt( um_live_value ) < parseInt( value0 ) && um_live_value ) { um_field_hide( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.show(); } } if ( operator0 == 'contains' ) { if ( um_live_value && um_live_value.indexOf( value0 ) >= 0 ) { um_field_hide( um_field_child_dom, add_fade, operator0, um_live_field ); field_results[ conditions.child ] = [ action0, true, operator0 ]; }else{ um_field_child_dom_hide.show(); } } } }); }); // jQuery.each( field_results, function( k, options ){ // var field = jQuery('.um-field[data-key='+k+']'); // if( options[0] == "show" && options[1] == true ){ // field.fadeIn(); // } // if( options[0] == "hide" && options[1] == true ){ // field.hide(); // } // }); // console.log( field_results ); } function um_field_show( field, add_fade, optr, k ){ field = field.parents('.um-field'); if( field.is(':hidden') ){ if( add_fade ){ field.fadeIn(); }else{ field.show(); } } //console.log('show um field "'+k+'" operator:'+optr ); } function um_field_hide( field, add_fade, optr, k ){ field = field.parents('.um-field'); if( field.is(':visible') ){ if( add_fade ){ field.fadeOut(); }else{ field.hide(); } } //console.log('hide um field "'+k+'" operator:'+optr ); } function um_get_field_data( um_field_dom ){ um_live_field = um_field_dom.parents('.um-field').data('key'); um_live_value = um_field_dom.val(); if ( um_field_dom.is(':checkbox') ) { if ( um_field_dom.parents('.um-field').find('input:checked').length > 1 ) { um_live_value = ''; um_field_dom.parents('.um-field').find('input:checked').each(function(){ um_live_value = um_live_value + um_field_dom.val() + ' '; }); } else { um_live_value = um_field_dom.parents('.um-field').find('input:checked').val(); } } if ( um_field_dom.is(':radio') ) { um_live_value = um_field_dom.parents('.um-field').find('input[type=radio]:checked').val(); } return { key: um_live_field, value: um_live_value }; } function um_field_relationship(){ var arr_fields = um_field_conditions_array; if( um_field_loaded == false ){ jQuery.each( arr_fields, function(k, f) { var new_arr_field = []; var arr_um_field_exists = []; jQuery.each( arr_fields, function(ii,field) { for (var i = 0; i <= field.length; i++ ){ if( typeof field[ i ] !== 'undefined' ){ if( k == field[ i ].field ){ new_arr_field.push( field[ i ] ); arr_um_field_exists.push( field[ i ].child ); } } } }); um_field_relations[ k ] = new_arr_field; }); } } function UM_check_password_matched() { jQuery(document).on('keyup', 'input[data-key=user_password],input[data-key=confirm_user_password]', function(e) { var value = jQuery('input[data-key=user_password]').val(); var match = jQuery('input[data-key=confirm_user_password]').val(); var field = jQuery('input[data-key=user_password],input[data-key=confirm_user_password]'); if(!value && !match) { field.removeClass('um-validate-matched').removeClass('um-validate-not-matched'); } else if(value !== match) { field.removeClass('um-validate-matched').addClass('um-validate-not-matched'); } else { field.removeClass('um-validate-not-matched').addClass('um-validate-matched'); } }); } function UM_hide_menus() { menu = jQuery('.um-dropdown'); menu.parents('div').find('a').removeClass('active'); menu.hide(); } function UM_domenus(){ jQuery('.um-dropdown').each(function(){ var menu = jQuery(this); var element = jQuery(this).attr('data-element'); var position = jQuery(this).attr('data-position'); jQuery(element).addClass('um-trigger-menu-on-'+menu.attr('data-trigger')); if ( jQuery(window).width() <= 1200 && element == 'div.um-profile-edit' ) { position = 'lc'; } if ( position == 'lc' ){ if ( 200 > jQuery(element).find('img').width() ) { left_p = ( ( jQuery(element).width() - jQuery(element).find('img').width() ) / 2 ) + ( ( jQuery(element).find('img').width() - 200 ) / 2 ); } else { left_p = ( ( jQuery(element).width() - jQuery(element).find('img').width() ) / 2 ); } top_ = parseInt( jQuery(element).find('a').css('top') ); if ( top_ ) { top_p = jQuery(element).find('img').height() + 4 + top_; left_gap = 4; } else { top_p = jQuery(element).find('img').height() + 4; left_gap = 0; } if ( top_p == 4 && element == 'div.um-cover' ) { top_p = jQuery(element).height() / 2 + ( menu.height() / 2 ); } else if ( top_p == 4 ) { top_p = jQuery(element).height() + 20; } gap_right = jQuery(element).width() + 17; menu.css({ 'top' : 0, 'width': 200, 'left': 'auto', 'right' : gap_right + 'px', 'text-align' : 'center' }); menu.find('.um-dropdown-arr').find('i').removeClass().addClass('um-icon-arrow-right-b'); menu.find('.um-dropdown-arr').css({ 'top' : '4px', 'left' : 'auto', 'right' : '-17px' }); } if ( position == 'bc' ){ if ( 200 > jQuery(element).find('img').width() ) { left_p = ( ( jQuery(element).width() - jQuery(element).find('img').width() ) / 2 ) + ( ( jQuery(element).find('img').width() - 200 ) / 2 ); } else { left_p = ( ( jQuery(element).width() - jQuery(element).find('img').width() ) / 2 ); } top_ = parseInt( jQuery(element).find('a').css('top') ); if ( top_ ) { top_p = jQuery(element).find('img').height() + 4 + top_; left_gap = 4; } else { top_p = jQuery(element).find('img').height() + 4; left_gap = 0; } if ( top_p == 4 && element == 'div.um-cover' ) { top_p = jQuery(element).height() / 2 + ( menu.height() / 2 ); } else if ( top_p == 4 ) { top_p = jQuery(element).height() + 20; } menu.css({ 'top' : top_p, 'width': 200, 'left': left_p + left_gap, 'right' : 'auto', 'text-align' : 'center' }); menu.find('.um-dropdown-arr').find('i').removeClass().addClass('um-icon-arrow-up-b'); menu.find('.um-dropdown-arr').css({ 'top' : '-17px', 'left' : ( menu.width() / 2 ) - 12, 'right' : 'auto' }); } }); } function um_responsive(){ jQuery('.um').each(function(){ element_width = jQuery(this).width(); if ( element_width <= 340 ) { jQuery(this).removeClass('uimob340'); jQuery(this).removeClass('uimob500'); jQuery(this).removeClass('uimob800'); jQuery(this).removeClass('uimob960'); jQuery(this).addClass('uimob340'); } else if ( element_width <= 500 ) { jQuery(this).removeClass('uimob340'); jQuery(this).removeClass('uimob500'); jQuery(this).removeClass('uimob800'); jQuery(this).removeClass('uimob960'); jQuery(this).addClass('uimob500'); } else if ( element_width <= 800 ) { jQuery(this).removeClass('uimob340'); jQuery(this).removeClass('uimob500'); jQuery(this).removeClass('uimob800'); jQuery(this).removeClass('uimob960'); jQuery(this).addClass('uimob800'); } else if ( element_width <= 960 ) { jQuery(this).removeClass('uimob340'); jQuery(this).removeClass('uimob500'); jQuery(this).removeClass('uimob800'); jQuery(this).removeClass('uimob960'); jQuery(this).addClass('uimob960'); } else if ( element_width > 960 ) { jQuery(this).removeClass('uimob340'); jQuery(this).removeClass('uimob500'); jQuery(this).removeClass('uimob800'); jQuery(this).removeClass('uimob960'); } if ( jQuery('.um-account-nav').length > 0 && jQuery('.um-account-side').is(':visible') && jQuery('.um-account-tab:visible').length == 0 ) { jQuery('.um-account-side li a.current').trigger('click'); } jQuery(this).css('opacity',1); }); jQuery('.um-cover, .um-member-cover').each(function(){ var elem = jQuery(this); var ratio = elem.data('ratio'); var width = elem.width(); var ratios = ratio.split(':'); calcHeight = Math.round( width / ratios[0] ) + 'px'; elem.height( calcHeight ); elem.find('.um-cover-add').height( calcHeight ); }); jQuery('.um-members').each(function(){ UM_Member_Grid( jQuery(this) ); }); UM_domenus(); } function UM_Member_Grid( container ) { container.masonry({ itemSelector: '.um-member', columnWidth: '.um-member', gutter: '.um-gutter-sizer' }); } function initImageUpload_UM( trigger ) { if (trigger.data('upload_help_text')){ upload_help_text = '' + trigger.data('upload_help_text') + ''; } else { upload_help_text = ''; } if ( trigger.data('icon') ) { icon = ''; } else { icon = ''; } if ( trigger.data('upload_text') ) { upload_text = '' + trigger.data('upload_text') + ''; } else { upload_text = ''; } trigger.uploadFile({ url: um_scripts.imageupload, method: "POST", multiple: false, formData: { key: trigger.data('key'), set_id: trigger.data('set_id'), set_mode: trigger.data('set_mode'), _wpnonce: trigger.data('nonce'), timestamp: trigger.data('timestamp') }, fileName: trigger.data('key'), allowedTypes: trigger.data('allowed_types'), maxFileSize: trigger.data('max_size'), dragDropStr: icon + upload_text + upload_help_text, sizeErrorStr: trigger.data('max_size_error'), extErrorStr: trigger.data('extension_error'), maxFileCountErrorStr: trigger.data('max_files_error'), maxFileCount: 1, showDelete: false, showAbort: false, showDone: false, showFileCounter: false, showStatusAfterSuccess: true, onSubmit:function(files){ trigger.parents('.um-modal-body').find('.um-error-block').remove(); }, onSuccess:function(files,data,xhr){ trigger.selectedFiles = 0; try{ data = jQuery.parseJSON(data); } catch (e) { console.log( e, data ); return; } if (data.error && data.error != '') { trigger.parents('.um-modal-body').append('