/* global jQuery:false */
/* global ASIA_GARDEN_STORAGE:false */
//-------------------------------------------
// Theme Options fields manipulations
//-------------------------------------------
jQuery(document).ready(function() {
"use strict";
// Toggle inherit button and cover
jQuery('#asia_garden_options_tabs').on('click', '.asia_garden_options_inherit_lock,.asia_garden_options_inherit_cover', function (e) {
var parent = jQuery(this).parents('.asia_garden_options_item');
var inherit = parent.hasClass('asia_garden_options_inherit_on');
if (inherit) {
parent.removeClass('asia_garden_options_inherit_on').addClass('asia_garden_options_inherit_off');
parent.find('.asia_garden_options_inherit_cover').fadeOut().find('input[type="hidden"]').val('');
} else {
parent.removeClass('asia_garden_options_inherit_off').addClass('asia_garden_options_inherit_on');
parent.find('.asia_garden_options_inherit_cover').fadeIn().find('input[type="hidden"]').val('inherit');
}
e.preventDefault();
return false;
});
// Refresh linked field
jQuery('#asia_garden_options_tabs').on('change', '[data-linked] select,[data-linked] input', function (e) {
var chg_name = jQuery(this).parent().data('param');
var chg_value = jQuery(this).val();
var linked_name = jQuery(this).parent().data('linked');
var linked_data = jQuery('#asia_garden_options_tabs [data-param="'+linked_name+'"]');
var linked_field = linked_data.find('select');
var linked_field_type = 'select';
if (linked_field.length == 0) {
linked_field = linked_data.find('input');
linked_field_type = 'input';
}
var linked_lock = linked_data.parent().parent().find('.asia_garden_options_inherit_lock').addClass('asia_garden_options_wait');
// Prepare data
var data = {
action: 'asia_garden_get_linked_data',
nonce: ASIA_GARDEN_STORAGE['ajax_nonce'],
chg_name: chg_name,
chg_value: chg_value
};
jQuery.post(ASIA_GARDEN_STORAGE['ajax_url'], data, function(response) {
var rez = {};
try {
rez = JSON.parse(response);
} catch (e) {
rez = { error: ASIA_GARDEN_STORAGE['ajax_error_msg'] };
console.log(response);
}
if (rez.error === '') {
if (linked_field_type == 'select') {
var opt_list = '';
for (var i in rez.list) {
opt_list += '';
}
linked_field.html(opt_list);
} else {
linked_field.val(rez.value);
}
linked_lock.removeClass('asia_garden_options_wait');
}
});
e.preventDefault();
return false;
});
// Check for dependencies
//-----------------------------------------------------------------------------
jQuery('.asia_garden_options .asia_garden_options_section').each(function () {
asia_garden_options_check_dependencies(jQuery(this));
});
jQuery('.asia_garden_options .asia_garden_options_item_field [name^="asia_garden_options_field_"]').on('change', function () {
asia_garden_options_check_dependencies(jQuery(this).parents('.asia_garden_options_section'));
});
// Check for dependencies
function asia_garden_options_check_dependencies(cont) {
cont.find('.asia_garden_options_item_field').each(function() {
var id = jQuery(this).data('param');
if (id == undefined) return;
var depend = false;
for (var fld in asia_garden_dependencies) {
if (fld == id) {
depend = asia_garden_dependencies[id];
break;
}
}
if (depend) {
var dep_cnt = 0, dep_all = 0;
var dep_cmp = typeof depend.compare != 'undefined' ? depend.compare.toLowerCase() : 'and';
var dep_strict = typeof depend.strict != 'undefined';
var fld=null, val='', name='', subname='';
var parts = '', parts2 = '';
for (var i in depend) {
if (i == 'compare' || i == 'strict') continue;
dep_all++;
name = i;
subname = '';
if (name.indexOf('[') > 0) {
parts = name.split('[');
name = parts[0];
subname = parts[1].replace(']', '');
}
if (name.charAt(0)=='#' || name.charAt(0)=='.') {
fld = jQuery(name);
if (fld.length > 0 && !fld.hasClass('trx_addons_inited')) {
fld.addClass('trx_addons_inited').on('change', function () {
jQuery('.asia_garden_options .asia_garden_options_section').each(function () {
asia_garden_options_check_dependencies(jQuery(this));
});
});
}
} else
fld = cont.find('[name="asia_garden_options_field_'+name+'"]');
if (fld.length > 0) {
val = fld.attr('type')=='checkbox' || fld.attr('type')=='radio'
? (fld.parents('.asia_garden_options_item_field').find('[name^="asia_garden_options_field_"]:checked').length > 0
? fld.parents('.asia_garden_options_item_field').find('[name^="asia_garden_options_field_"]:checked').val()
: 0
)
: fld.val();
if (val===undefined) val = '';
if (subname!='') {
parts = val.split('|');
for (var p=0; p 0 && dep_cmp == 'or')
break;
}
if ((dep_cnt > 0 && dep_cmp == 'or') || (dep_cnt == dep_all && dep_cmp == 'and')) {
jQuery(this).parents('.asia_garden_options_item').show().removeClass('asia_garden_options_no_use');
} else {
jQuery(this).parents('.asia_garden_options_item').hide().addClass('asia_garden_options_no_use');
}
}
});
}
});