//	[nds]

function fn_units_measurements_check_exceptions(data)
{
	var amount_modifier = 0;
	id = data.id;
	if (exclude_from_calculate[id]) {
		return false;
	}

	var modifiers = {};
	var original_price = (typeof(orig_price) == 'undefined') ? parseFloat(price[id]) : orig_price; // Original product price
	var sec_original_price = 0; // Original price (secondary currency)
	var product_price = 0; // Product price with discounts and taxes
	var sec_product_price = 0; // Product price with discounts and taxes (secindary currency)

	// Apply option modifiers
	for (i in pr_o[id]) {
		if (!document.getElementById(pr_o[id][i]['id']) || document.getElementById(pr_o[id][i]['id']).disabled == true) {
			continue;
		}
		modifiers[i] = pr_o[id][i]['m'][pr_o[id][i]['selected_value']];
		amount_modifier = (amount_modifier == 0) ? parseFloat(pr_o[id][i]['a'][pr_o[id][i]['selected_value']]) : amount_modifier;

		if (typeof(modifiers[i]) == 'undefined') {
			continue;
		}

		if (modifiers[i].substring(0, 1) == 'A') {
			original_price += parseFloat(jQuery.formatPrice(modifiers[i].substring(1, modifiers[i].length-1), decplaces));
		} else if(modifiers[i].substring(0, 1)  == 'P') {
			original_price += parseFloat(jQuery.formatPrice(price[id] * parseFloat(modifiers[i].substring(1, modifiers[i].length-1))/100, decplaces));
		}
	}

	amount_modifier = jQuery.formatPrice(amount_modifier, 3)

	if (typeof(amount_modifier) != 'undefined' && amount_modifier != 0.000) {
		sec_original_price = parseFloat(jQuery.formatPrice(original_price / currencies.secondary.coefficient, decplaces));
	
		// If we have discounts, skip list price calculations
		var discount_value = 0; // absolute discount
		var discounted_price = original_price; // discounted price, equals pure price by default
		var sec_discounted_price = original_price / currencies.secondary.coefficient; // discounted price for secondary currency
	
		// Discounts
		if (pr_d[id] && (pr_d[id]['A'] || pr_d[id]['P'])) {
			// Discount value (for unit)
			discount_value = parseFloat(jQuery.formatPrice(original_price * pr_d[id]['P']/100 + pr_d[id]['A'], decplaces));
			if (discount_value > original_price) {
				discount_value = original_price;
			}
			// Discounted price (unit)
			discounted_price = jQuery.formatPrice(original_price - discount_value);
			// Discounted price (unit) - secondary currency
			sec_discounted_price = jQuery.formatPrice(discounted_price / currencies.secondary.coefficient, decplaces);
	
		}
		discounted_price = discounted_price / currencies.primary.coefficient;
	
		// Discount value (unit) - secondary currency
		sec_discount_value = jQuery.formatPrice(discount_value / currencies.secondary.coefficient, decplaces);
		product_price = original_price - ((pr_d[id] && (pr_d[id]['A'] || pr_d[id]['P'])) ? discount_value : 0); // correct resulting product price
		sec_product_price = sec_original_price - ((pr_d[id] && (pr_d[id]['A'] || pr_d[id]['P'])) ? sec_discount_value : 0); // correct resulting product price
		var tx_price = discounted_price; // base price for taxation with discount (if exist)
		var alt_tx_price = sec_discounted_price; // base price for taxation for secondary currency
		discount_value = discount_value / currencies.primary.coefficient;
	
		// Taxes
		var tax_subtotal = tax_excluded = 0;
		var sec_tax_subtotal = sec_tax_excluded = 0;
	
		if (tax_data[id]) {
			// Tax value (unit)
			fn_calculate_tax_rates(id, discounted_price);
			for (_k in tax_data[id]) {
				tax_subtotal += parseFloat(tax_data[id][_k]['tax_subtotal']);
				if (tax_data[id][_k]['price_includes_tax'] != 'Y') {
					tax_excluded += parseFloat(tax_data[id][_k]['tax_subtotal']);
				}
			}
	
			// Tax value (unit) - secondary currency
			fn_calculate_tax_rates(id, sec_discounted_price);
			for (_k in tax_data[id]) {
				sec_tax_subtotal += parseFloat(tax_data[id][_k]['tax_subtotal']);
				if (tax_data[id][_k]['price_includes_tax'] != 'Y') {
					sec_tax_excluded += parseFloat(tax_data[id][_k]['tax_subtotal']);
				}
			}
		}
	
		product_price = (cart_prices_w_taxes == true) ? product_price + tax_excluded : product_price;
		product_price = product_price / currencies.primary.coefficient;
		sec_product_price = (cart_prices_w_taxes == true) ? sec_product_price + sec_tax_excluded : sec_product_price;

		product_price = product_price / amount_modifier;
		sec_product_price = sec_product_price / amount_modifier;

		update_ids[id] = {'price_per_unit': {P: product_price, S: sec_product_price},
				  'product_amount': {P: amount_modifier, S: amount_modifier}
		};
		fn_update_product_prices_block(update_ids[id], id);

		$('#product_amount_tr').attr('class', '');
		$('#price_per_unit_tr').attr('class', '');

		return true;

	} else {
		$('#product_amount_tr').attr('class', 'hidden');
		$('#price_per_unit_tr').attr('class', 'hidden');
	}

}