/* Class autolad */
CV_Intervals.CV_Order = setInterval(function() {
	if (typeof CV == 'undefined') return;
	
	CV.Order = {};
	clearInterval(CV_Intervals.CV_Order);
	
	CV.Order.calculateCoinvertitFee = function() {
		var PayingAmountInput = jQuery("#paying-amount"), 
			ReceivingAmountInput = jQuery("#receiving-amount"), 
			ReceivingAmountSelect = jQuery("#receiving-currency"), 
			PayingAmountSelect = jQuery("#paying-currency"),
			ReceivingCurrency = {},
			i,
			innerFeeLength,
			sortArrayByAmount = function(a, b) {
				var aAmount = a.AmountHigher,
					bAmount = b.AmountHigher;

				return ((aAmount < bAmount) ? -1 : ((aAmount > bAmount) ? 1 : 0));
			},
			receivingFee = null,
			ReceivingMethodValue = jQuery("#receiving-method").val();


		ReceivingCurrency = jQuery.extend(true, ReceivingCurrency, ReceivingAmountSelect.data('currency-information'));

		/* Calculating fees perceived by the receiving value */
		console.log(ReceivingCurrency);
		
		if (ReceivingMethodValue == null) receivingFee = null;
		else if (ReceivingCurrency.InnerFees.length < 1) receivingFee = null;
		else {
			innerFeeLength = ReceivingCurrency.InnerFees.length;

			// delete disabled fees, and fees not related to the outgoing transaction type
			for (i=0; i<innerFeeLength; i++) {
				console.log(ReceivingCurrency.InnerFees[i]);
				if (ReceivingCurrency.InnerFees[i].Disabled == 1) delete ReceivingCurrency.InnerFees[i];
				else {
					if (ReceivingMethodValue == '_wallet') {
						if (ReceivingCurrency.InnerFees[i].TransferPath != 1) delete ReceivingCurrency.InnerFees[i];
					} else {
						if (ReceivingCurrency.InnerFees[i].TransferPath != 0) delete ReceivingCurrency.InnerFees[i];
					}
				}
			}


			ReceivingCurrency.InnerFees.clean(undefined);
			ReceivingCurrency.InnerFees.sort(sortArrayByAmount);

			innerFeeLength = ReceivingCurrency.InnerFees.length;
			console.log("Fees", ReceivingCurrency.InnerFees);
			for (i=0; i<innerFeeLength; i++) {
				
				console.log(math.bignumber(ReceivingAmountInput.val()).toString(), ReceivingAmountInput.val());
				console.log(math.bignumber(ReceivingCurrency.InnerFees[i].AmountHigher).toString(), ReceivingCurrency.InnerFees[i].AmountHigher);
				if (math.compare(math.bignumber(ReceivingAmountInput.val()), math.bignumber(ReceivingCurrency.InnerFees[i].AmountHigher)).toString() == 1) {
					receivingFee = ReceivingCurrency.InnerFees[i];
					console.log("Found receiving fee: ", receivingFee);
				}
			}
		}
		
		CV.Dashboard.Order.New.showCoinvertitFee(receivingFee);

	}
	/* Load functionalities here */
}, 100);

/* CV_Order.receiving_amount_changed => CV.Dashboard.Order.New.input.receivingAmountChange */
/*CV_Order.paying_amount_changed => CV.Dashboard.Order.New.input.payingAmountChange*/
/*CV_Order.amount_input_changed => CV.Dashboard.Order.New.input.amountInputChanged*/


