
function isLReserve(code)
{
	return String("[lrusd][lreur]").indexOf("[" + String(code).toLowerCase() + "]") != -1;
}

function isMoneyMail(code)
{
	return String("[moneymail rur][moneymail usd][moneymail eur]").indexOf("[" + String(code).toLowerCase() + "]") != -1;
}

function getFindersFee(currency, value) {
	result = 0.00;

	switch(currency) {
		case "WMR":
		case "WME":
		case "WMZ":
		case "WMU":
		case "WMY":
		case "WMB":
			result = getFindersFeeWM(currency, value);
			break;
		case "USD e-gold":
			result = getFindersFeeEgold(value);
			break;
		case "USD e-port":
			result = getFindersFeeEport(value);
			break;
		case "RUR Yandex":
			result = getFindersFeeYandex(value);
			break;
		case "E-dram":
			result = getFindersFeeEdram(value);
			break;
		case "MoneyMail RUR":
		case "MoneyMail EUR":
		case "MoneyMail USD":
			result = getFindersFeeMoneyMail(value);
			break;
		case "LRUSD":
		case "LREUR":
			result = getFindersFeeLReserve(currency, value);
		case "RBK RUR":
			result = getFindersFeeRBK(value);
			break;

			break;
	}
	return result;
}

function getFindersFeeRBK(value) {
	var div = Math.pow(10, 2);
	var findersFee = 0.00;
	findersFee = Math.max(rbk_min_fee, Math.ceil(value * rbk_fee * div) / div);

	return findersFee;
}


function getFindersFeeWM(code, value) {
	var div = Math.pow(10, 2);
	var finders_fee = 0.00;
	finders_fee = Math.ceil(value * wm_fee * div) / div;
	finders_fee = finders_fee >= 0.01 ? finders_fee : 0.01;
		
	if(code == "WMR" && finders_fee > wm_max_WMR) { finders_fee = wm_max_WMR; }
	if(code == "WMZ" && finders_fee > wm_max_WMZ) { finders_fee = wm_max_WMZ; }
	if(code == "WME" && finders_fee > wm_max_WME) { finders_fee = wm_max_WME; }

	if(code == "WMU" && finders_fee > wm_max_WMU) { finders_fee = wm_max_WMU; }
	if(code == "WMY" && finders_fee > wm_max_WMY) { finders_fee = wm_max_WMY; }
	if(code == "WMB" && finders_fee > wm_max_WMB) { finders_fee = wm_max_WMB; }

	return finders_fee;
}

function getFindersFeeEgold(value) {
	var div = Math.pow(10, 2);
	var finders_fee = 0.00;
	finders_fee = Math.ceil(value * egold_fee * div) / div;
		
	if(finders_fee < 0.01) { finders_fee = 0.01; }
	finders_fee = finders_fee > egold_max ? egold_max : finders_fee;
	return finders_fee;
}

function getFindersFeeEport(value) {
	var div = Math.pow(10, 2);
	var finders_fee = 0.00;
	finders_fee = Math.ceil(value * eport_fee * div) / div + 0.01;
	return finders_fee;
}

function getFindersFeeYandex(value) {
	var div = Math.pow(10, 2);
	var finders_fee = 0.00;
	finders_fee = Math.ceil(value * yandex_fee * div) / div;
	return finders_fee;
}

function getFindersFeeEdram(value) {
	var div = Math.pow(10, 2);
	var finders_fee = 0.00;
	finders_fee = Math.ceil(value * edram_fee * div) / div;
	return finders_fee;
}

function getFindersFeeMoneyMail(value) {
	var div = Math.pow(10, 2);
	var findersFee = 0.00;
	findersFee = Math.ceil(value * mm_fee * div) / div;

	return findersFee;
}

function getFindersFeeLReserve(currency, value)
{
	var div = Math.pow(10, 2);
	var findersFee = 0.00;
	switch (String(currency).toLowerCase())
	{
		case "lrusd":
			findersFee = Math.ceil(value * lrusd_fee * div) / div;
			if (findersFee < lrusd_fee_min) findersFee = lrusd_fee_min;
			if (findersFee > lrusd_fee_max) findersFee = lrusd_fee_max;
			break;
		case "lreur":
			findersFee = Math.ceil(value * lreur_fee * div) / div;
			if (findersFee < lreur_fee_min) findersFee = lreur_fee_min;
			if (findersFee > lreur_fee_max) findersFee = lreur_fee_max;
			break;
	}
	return findersFee;
}

function howMuchToSendToPartner(currency, value) {
	var result = 0.00;
	
	if(currency == "WMR" || currency == "WMZ" || currency == "WME" || currency == "WMU" || currency == "WMY" || currency == "WMB") {
		result = howMuchToSendToPartnerWM(currency, value);
	} else if(currency == "USD e-gold") {
		result = howMuchToSendToPartnerEGold(value);
	} else if(currency == "RUR Yandex") {
		result = howMuchToSendToPartnerYandex(value);
	} else if(currency == "E-dram") {
		result = howMuchToSendToPartnerEdram(value);
	} else if(currency == "USD e-port") {
		result = howMuchToSendToPartnerEport(value);
	} else if(isMoneyMail(currency)) {
		result = howMuchToSendToPartnerMoneyMail(value);
	} else if(isLReserve(currency)) {
		result = howMuchToSendToPartnerLReserve(currency, value);
	} else if(currency == "RBK RUR") {
		result = howMuchToSendToPartnerRBK(value);
	}
	return result;
}

function howMuchToSendToPartnerRBK(value) 
{ 
	var div = Math.pow(10, 2);
	var mfee = 0
	var fee = rbk_fee
	if(value*fee < rbk_min_fee) { mfee = rbk_min_fee; fee = 0; }
	var howMuch = Math.floor((value / (1 + fee) - mfee)*div)/div
	if(howMuch < 0) howMuch = 0
	return howMuch
}

function howMuchToSendToPartnerWM(code, value) {
	var howMuch = 0;
	var maxvalue = 0.00;
	var div = Math.pow(10, 2);
	
	if(code == "WMR") {
		maxvalue = wm_max_WMR * ((1 + wm_fee) / wm_fee);
		
		if(value > maxvalue) {
			howMuch = Math.floor((value - wm_max_WMR) * div) / div;
		} else {
			howMuch = Math.floor((value - value * (wm_fee / (1 + wm_fee))) * div) / div;
		}
	} else if(code == "WME") {
		maxvalue = wm_max_WME * ((1 + wm_fee) / wm_fee);
		
		if(value > maxvalue) {
			howMuch = Math.floor((value - wm_max_WME) * div) / div;
		} else {
			howMuch = Math.floor((value - value * (wm_fee / (1 + wm_fee))) * div) / div;
		}
	} else  if(code == "WMZ") {
		maxvalue = wm_max_WMZ * ((1 + wm_fee) / wm_fee);
		
		if(value > maxvalue) {
			howMuch = Math.floor((value - wm_max_WMZ) * div) / div;
		} else {
			howMuch = Math.floor((value - value * (wm_fee / (1 + wm_fee))) * div) / div;
		}
	} else  if(code == "WMU") {
		maxvalue = wm_max_WMU * ((1 + wm_fee) / wm_fee);
		
		if(value > maxvalue) {
			howMuch = Math.floor((value - wm_max_WMU) * div) / div;
		} else {
			howMuch = Math.floor((value - value * (wm_fee / (1 + wm_fee))) * div) / div;
		}
	} else  if(code == "WMY") {
		maxvalue = wm_max_WMY * ((1 + wm_fee) / wm_fee);
		
		if(value > maxvalue) {
			howMuch = Math.floor((value - wm_max_WMY) * div) / div;
		} else {
			howMuch = Math.floor((value - value * (wm_fee / (1 + wm_fee))) * div) / div;
		}
	} else  if(code == "WMB") {
		maxvalue = wm_max_WMB * ((1 + wm_fee) / wm_fee);
		
		if(value > maxvalue) {
			howMuch = Math.floor((value - wm_max_WMB) * div) / div;
		} else {
			howMuch = Math.floor((value - value * (wm_fee / (1 + wm_fee))) * div) / div;
		}
	}
	return howMuch;
}

function howMuchToSendToPartnerEGold(value) { return value; }

function howMuchToSendToPartnerYandex(value) { return value; }

function howMuchToSendToPartnerEdram(value) { return value; }

function howMuchToSendToPartnerEport(value) {
	var howMuch = 0;
	var div = Math.pow(10, 2);
	howMuch = Math.floor((value - value * (eport_fee / (1 + eport_fee)) - 0.01) * div) / div;
	return howMuch;
}

function howMuchToSendToPartnerMoneyMail(value) {
	var howMuch = 0;
	var maxvalue = 0.00;
	var div = Math.pow(10, 2);
	
	howMuch = Math.floor((value - value * (mm_fee / (1 + mm_fee))) * div) / div;

	return howMuch;
}

function howMuchToSendToPartnerLReserve(currency, value)
{
	return value;
}

function howMuchToSend(code, value) {
	var howMuch = 0.00;
	
	if(code == "WMR" || code == "WMZ" || code == "WME" || code == "WMU" || code == "WMY" || code == "WMB") {
		howMuch = howMuchToSendWM(value);
	}
	
	if(code == "USD e-gold") {
		howMuch = howMuchToSendEGold(value);
	}

	if(code == "RUR Yandex") {
		howMuch = howMuchToSendYandex(value);
	}

	if(code == "E-dram") {
		howMuch = howMuchToSendEdram(value);
	}
	
	if(code == "USD e-port") {
		howMuch = howMuchToSendEport(value);
	}
	
	if(code == "USD" || code == "EUR") {
		howMuch = value;
	}
	
	if(isMoneyMail(code)) {
		howMuch = howMuchToSendMoneyMail(value);
	}

	if(isLReserve(code)) {
		howMuch = howMuchToSendLReserve(code, value);
	}
	
	if(code == "RBK RUR") {
		howMuch = howMuchToSendRBK(value);
	}

	return howMuch;
}

function howMuchToSendRBK(value) {
	var div = Math.pow(10, 2);
	var howMuch = 0.00;
	howMuch = Math.max(Math.ceil(value / (1 - rbk_client_fee) * div) / div, 1*value + 1*rbk_min_fee);
	if(howMuch < 0) howMuch = 0.00
	return howMuch;
}

function howMuchToSendEGold(value) {
	var div = Math.pow(10, 2);
	var howMuch = 0.00;
	var maxValue = egold_max * ((1 - egold_fee) / egold_fee);
	
	if(value >= maxValue) { howMuch = value - 0 + egold_max; }
	else { howMuch = Math.ceil(value / (1 - egold_fee) * div) / div; }

	return howMuch;
}

function howMuchToSendEport(value) {
	return value;
}

function howMuchToSendYandex(value) {
	var div = Math.pow(10, 2);
	var howMuch = 0.00;
	howMuch = Math.ceil(value / (1 - yandex_client_fee) * div) / div;
	return howMuch;
}

function howMuchToSendEdram(value) {
	var div = Math.pow(10, 2);
	var howMuch = 0.00;
	howMuch = Math.ceil(value / (1 - edram_fee) * div) / div;
	return howMuch;
}

function howMuchToSendWM(value) {
	return value;
}

function howMuchToSendMoneyMail(value) {
	return value;
}

function howMuchToSendLReserve(currency, value)
{
	var div = Math.pow(10, 2);
	var howMuch = 0.00;
	switch (currency)
	{
		case "LRUSD":
			howMuch = Math.ceil(value / (1 - lrusd_fee) * div) / div;
			break;
		case "LREUR":
			howMuch = Math.ceil(value / (1 - lreur_fee) * div) / div;
			break;
	}
	return howMuch;
}

function realAmount(source_currency, value) {
	var result = 0;

	if(source_currency == "WME" || source_currency == "WMR" || source_currency == "WMZ" || source_currency == "WMU" || source_currency == "WMY" || source_currency == "WMB") {
		result = value;
	} else if(source_currency == "USD e-gold") {
		result = value - getFindersFee(source_currency, value);
	} else if(source_currency == "USD e-port") {
		result = value;
	} else if(source_currency == "RUR Yandex" || source_currency == "RBK RUR") {
		result = value - getClientAsRecipientFindersFee(source_currency, value);
	} else if(source_currency == "E-dram") {
		result = value - getFindersFee(source_currency, value);
	} else if(isMoneyMail(source_currency)) {
		result = value;
	} else if(isLReserve(source_currency)) {
		result = value - getFindersFee(source_currency, value);
	}

	return result;
}

function getClientAsRecipientFindersFee(currency, value) {
	var findersFee = 0.0;

	switch(currency) {
		case "RUR Yandex":
			findersFee = getClientAsRecipientFindersFeeYandex(value);
			break;
		case "RBK RUR":
			findersFee = getClientAsRecipientFindersFeeRBK(value);
			break;
	}

	return findersFee;
}

function getClientAsRecipientFindersFeeRBK(value) {
	var div = Math.pow(10, 2);
	var finders_fee = 0.00;
	finders_fee = Math.max( Math.ceil(value * rbk_client_fee * div) / div, rbk_min_fee);

	return finders_fee;
}

function getClientAsRecipientFindersFeeYandex(value) {
	var div = Math.pow(10, 2);
	var finders_fee = 0.00;
	finders_fee = Math.ceil(value * yandex_client_fee * div) / div;

	return finders_fee;
}