+function updateSubPublicity(subFieldId, name, mainPub)
+{
+ var subPub = $(subFieldId).find("[name='" + name + "']:checked").val();
+ if (publicity[subPub] > publicity[mainPub]) {
+ $(subFieldId).find("[name='" + name + "']:checked").removeAttr('checked');
+ $(subFieldId).find('[value=' + mainPub + ']').attr('checked', 'checked');
+ }
+}
+
+function updatePublicity(mainField, mainId, subField, subId)
+{
+ var mainFieldId = '#' + mainField + '_' + mainId;
+ var mainPub = $(mainFieldId).find("[name='" + mainField + "[" + mainId + "][pub]']:checked").val();
+ if (subId == -1) {
+ var subFields = subField.split(',');
+ for (var i =0; i < subFields.length; ++i) {
+ var subFieldBaseId = mainFieldId + '_' + subFields[i];
+ var name = mainField + '[' + mainId + '][' + subFields[i] + ']';
+ if ($(subFieldBaseId).length != 0) {
+ updateSubPublicity(subFieldBaseId, name + '[pub]', mainPub);
+ updateSubPublicity(subFieldBaseId, mainField + '[' + mainId + '][' + subFields[i] + '_pub]', mainPub);
+ }
+ subId = 0;
+ while ($(subFieldBaseId + '_' + subId).length != 0) {
+ updateSubPublicity(subFieldBaseId + '_' + subId, name + '[' + subId + '][pub]', mainPub);
+ ++subId;
+ }
+ }
+ } else {
+ if (subId == '') {
+ updateSubPublicity(mainFieldId + '_' + subField, mainField + '[' + mainId + '][' + subField + '_pub]', mainPub);
+ updateSubPublicity(mainFieldId + '_' + subField, mainField + '[' + mainId + '][' + subField + '][pub]', mainPub);
+ } else {
+ updateSubPublicity(mainFieldId + '_' + subField + '_' + subId, mainField + '[' + mainId + '][' + subField + '][' + subId + '][pub]', mainPub);
+ }
+ }
+}
+