/* Курсы валют, это некое жесткое соответствие, заданное банком */
var usd = 1;
var rur = 30;
var euro = 0.8;

var sUSD = ' $';
var sRUR = ' руб.';
var sEUR = ' &euro;';

/* Перечисление тарифов -> базовый тариф -> доп платежи */
var aTrifName = new Array()
aTrifName[aTrifName.length] = ['onlife', 0, 0]
aTrifName[aTrifName.length] = ['clas', 0, 0]
aTrifName[aTrifName.length] = ['style', 0, 0]
aTrifName[aTrifName.length] = ['status', 0, 0]

/* Базовая ставка по тарифам */
/* название -> остаток от $ -> остаток до $ -> тариф руб */
var aTrifBase = new Array()
aTrifBase[aTrifBase.length] = ['onlife', 0, 2999.99, 59]
aTrifBase[aTrifBase.length] = ['onlife', 3000, 9999.99, 29]
aTrifBase[aTrifBase.length] = ['onlife', 10000, 1000000, 0]

aTrifBase[aTrifBase.length] = ['clas', 0, 2999.99, 129]
aTrifBase[aTrifBase.length] = ['clas', 3000, 9999.99, 69]
aTrifBase[aTrifBase.length] = ['clas', 10000, 1000000, 0]

aTrifBase[aTrifBase.length] = ['style', 0, 9999.99, 249]
aTrifBase[aTrifBase.length] = ['style', 10000, 19999.99, 129]
aTrifBase[aTrifBase.length] = ['style', 20000, 1000000, 0]

aTrifBase[aTrifBase.length] = ['status', 0, 19999.99, 499]
aTrifBase[aTrifBase.length] = ['status', 20000, 39999.99, 249]
aTrifBase[aTrifBase.length] = ['status', 40000, 1000000, 0]


/* Если поле "SMS Уведомления об операциях и остатках по карточным счетам" находится в нажатом состоянии то к К прибавляется   */
var aTrif_sms_send = new Array()
aTrif_sms_send[aTrif_sms_send.length] = ['onlife', 59]
aTrif_sms_send[aTrif_sms_send.length] = ['clas', 59]
aTrif_sms_send[aTrif_sms_send.length] = ['style', 29]
aTrif_sms_send[aTrif_sms_send.length] = ['status', 0]

/* Если поле "Альфа-Мобайл" находится в нажатом состоянии то к К прибавляется   */
var aTrif_alfa_mobile = new Array()
aTrif_alfa_mobile[aTrif_alfa_mobile.length] = ['onlife', 59]
aTrif_alfa_mobile[aTrif_alfa_mobile.length] = ['clas', 59]
aTrif_alfa_mobile[aTrif_alfa_mobile.length] = ['style', 29]
aTrif_alfa_mobile[aTrif_alfa_mobile.length] = ['status', 0]

/* Если поле "Альфа-Клик" находится в нажатом состоянии то к К прибавляется   */
var aTrif_alfa_click = new Array()
aTrif_alfa_click[aTrif_alfa_click.length] = ['onlife', 59]
aTrif_alfa_click[aTrif_alfa_click.length] = ['clas', 59]
aTrif_alfa_click[aTrif_alfa_click.length] = ['style', 29]
aTrif_alfa_click[aTrif_alfa_click.length] = ['status', 0]

/* Вычисляется S как сумма следующих значений(все значения указаны в рублях)  */

/* 1. Значение поля "Кол-во оплат услуг ЖКУ через интернет-банк" умноженное */
var aTrif_cash_out_gku = new Array()
aTrif_cash_out_gku[aTrif_cash_out_gku.length] = ['onlife', 0]
aTrif_cash_out_gku[aTrif_cash_out_gku.length] = ['clas', 29]
aTrif_cash_out_gku[aTrif_cash_out_gku.length] = ['style', 29]
aTrif_cash_out_gku[aTrif_cash_out_gku.length] = ['status', 29]

/* 2. Минисмальная сумма перевода через отделение */
var aTrif_transfer_branch_min = new Array()
aTrif_transfer_branch_min[aTrif_transfer_branch_min.length] = ['onlife', 299]
aTrif_transfer_branch_min[aTrif_transfer_branch_min.length] = ['clas', 169]
aTrif_transfer_branch_min[aTrif_transfer_branch_min.length] = ['style', 129]
aTrif_transfer_branch_min[aTrif_transfer_branch_min.length] = ['status', 99]

/* 2.2. Максимальная сумма перевода через отделение */
var aTrif_transfer_branch_max = new Array()
aTrif_transfer_branch_max[aTrif_transfer_branch_max.length] = ['onlife', 1990]
aTrif_transfer_branch_max[aTrif_transfer_branch_max.length] = ['clas', 1690]
aTrif_transfer_branch_max[aTrif_transfer_branch_max.length] = ['style', 1290]
aTrif_transfer_branch_max[aTrif_transfer_branch_max.length] = ['status', 990]

/* 3. Минимальная сумма перевода через интернет-банк */
var aTrif_transfer_internet_min = new Array()
aTrif_transfer_internet_min[aTrif_transfer_internet_min.length] = ['onlife', 20]
aTrif_transfer_internet_min[aTrif_transfer_internet_min.length] = ['clas', 20]
aTrif_transfer_internet_min[aTrif_transfer_internet_min.length] = ['style', 20]
aTrif_transfer_internet_min[aTrif_transfer_internet_min.length] = ['status', 20]

/* 3.3. Максимальная сумма перевода через интернет-банк */
var aTrif_transfer_internet_max = new Array()
aTrif_transfer_internet_max[aTrif_transfer_internet_max.length] = ['onlife', 150]
aTrif_transfer_internet_max[aTrif_transfer_internet_max.length] = ['clas', 150]
aTrif_transfer_internet_max[aTrif_transfer_internet_max.length] = ['style', 150]
aTrif_transfer_internet_max[aTrif_transfer_internet_max.length] = ['status', 150]

/* 4. Процент с перевода через отделение */
var aTrif_transfer_branch = new Array()
aTrif_transfer_branch[aTrif_transfer_branch.length] = ['onlife', 0.02]
aTrif_transfer_branch[aTrif_transfer_branch.length] = ['clas', 0.014]
aTrif_transfer_branch[aTrif_transfer_branch.length] = ['style', 0.013]
aTrif_transfer_branch[aTrif_transfer_branch.length] = ['status', 0.012]

/* 4.4. Процент с перевода через интернет-банк */
var aTrif_transfer_internet = new Array()
aTrif_transfer_internet[aTrif_transfer_internet.length] = ['onlife', 0.003]
aTrif_transfer_internet[aTrif_transfer_internet.length] = ['clas', 0.003]
aTrif_transfer_internet[aTrif_transfer_internet.length] = ['style', 0.003]
aTrif_transfer_internet[aTrif_transfer_internet.length] = ['status', 0.003]



/* 5. Значение поля "В банкоматах банка, с конвертацией" умноженное на  */
var aTrif_cash_inside_atm = new Array()
aTrif_cash_inside_atm[aTrif_cash_inside_atm.length] = ['onlife', 0.006]
aTrif_cash_inside_atm[aTrif_cash_inside_atm.length] = ['clas', 0.006]
aTrif_cash_inside_atm[aTrif_cash_inside_atm.length] = ['style', 0.004]
aTrif_cash_inside_atm[aTrif_cash_inside_atm.length] = ['status', 0.003]

/* 6. Значение поля "В отделениях банка" "сумма" перемножается на * и приведённое к рублям */
var aTrif_cash_inside_branch = new Array()
aTrif_cash_inside_branch[aTrif_cash_inside_branch.length] = ['onlife', 0.01]
aTrif_cash_inside_branch[aTrif_cash_inside_branch.length] = ['clas', 0.01]
aTrif_cash_inside_branch[aTrif_cash_inside_branch.length] = ['style', 0]
aTrif_cash_inside_branch[aTrif_cash_inside_branch.length] = ['status', 0]

/* Ежемесячное снятие наличных в банкоматах других банков */
/* 7.Для поля "В банкоматах других банков" сперва вычисляется отношение
	значения поля "сума" приведённого к рублям ,
	затем  умножается на  item[1]  */
	
	/* Если полученное значение item[2] меньше item[3] для  */
	/* то к S прибавляется item[4] умноженное на значение поля "количество снятий" */
	/* иначе прибавляется значение поля "сумма" приведнное к рублям и умноженное на  item[5] */

var aTrif_cash_out_atm = new Array()
aTrif_cash_out_atm[aTrif_cash_out_atm.length] = ['onlife', 0.015, 0, 89, 89, 0.015]
aTrif_cash_out_atm[aTrif_cash_out_atm.length] = ['clas', 0.015, 0, 89, 89, 0.015]
aTrif_cash_out_atm[aTrif_cash_out_atm.length] = ['style', 0.0125, 0, 79, 79, 0.0125]
aTrif_cash_out_atm[aTrif_cash_out_atm.length] = ['status', 0.01, 0, 69, 69, 0.01]

function Calc () {
	
	var base = document.getElementById('base').value /* Минимальный ежемесячный остаток на счете */
	
	var cash_inside_atm = document.getElementById('cash_inside_atm').value /* Ежемесячное снятие наличных через Альфа-Банк В банкоматах (с конвертацией) */
	var cash_inside_branch = document.getElementById('cash_inside_branch').value /* Ежемесячное снятие наличных через Альфа-Банк В отделениях */
	
	var cash_out_atm = document.getElementById('cash_out_atm').value /* Ежемесячное снятие наличных в&nbsp;банкоматах других банков / Сумма одного снятия */
	var cash_out_atm_count = document.getElementById('cash_out_atm_count').value /* Ежемесячное снятие наличных в&nbsp;банкоматах других банков / Количество снятий */
	
	var cash_out_gku_count = document.getElementById('cash_out_gku_count').value /* Оплата услуг ЖКУ через интернет-банк (кол-во оплат) */
	
	var transfer_branch = document.getElementById('transfer_branch').value /* Средняя сумма пеоревода в отделении */
	var transfer_branch_count = document.getElementById('transfer_branch_count').value /* Кол-во переводов в отделении */
	
	var transfer_internet = document.getElementById('transfer_internet').value /* Средняя сумма пеоревода через интернет-банк */
	var transfer_internet_count = document.getElementById('transfer_internet_count').value /* Кол-во пеерводов через интернет-банк */
	
	var sms_send = document.getElementById('sms_send').checked ? 1 : 0 /* SMS Уведомления */
	
	var base_summ = 0; /* базовый тариф */
	var add_summ = 0; /* Дополнительные платежи за пользование услугами */
	
	for( i=0; i< aTrifName.length; i++ ) { /* обнуляем суммы */
		aTrifName[i][1] = 0;
		aTrifName[i][2] = 0;
	}
	
	for( i=0; i< aTrifName.length; i++ ) { /* вычисляем базовый тариф */
		for( j=0; j< aTrifBase.length; j++ ) {
			if( aTrifName[i][0] == aTrifBase[j][0] && ( aTrifBase[j][1] <= base && base < aTrifBase[j][2]  ) ){
				aTrifName[i][1] = aTrifBase[j][3];
			}
		}
	}
	
	/* Если поле "SMS Уведомления об операциях и остатках по карточным счетам" находится в нажатом состоянии то к К прибавляется   */
	if( document.getElementById('sms_send') && document.getElementById('sms_send').checked ){
		for( i=0; i< aTrifName.length; i++ ) { 
			for( j=0; j< aTrif_sms_send.length; j++ ) {
				if( aTrifName[i][0] == aTrif_sms_send[j][0] ){
					aTrifName[i][1] += aTrif_sms_send[j][1];
				}
			}
		}
	}

	/* Если поле "Альфа-Мобайл" находится в нажатом состоянии то к К прибавляется   */
	if( document.getElementById('alfa_mobile') && document.getElementById('alfa_mobile').checked ){
		for( i=0; i< aTrifName.length; i++ ) { 
			for( j=0; j< aTrif_alfa_mobile.length; j++ ) {
				if( aTrifName[i][0] == aTrif_alfa_mobile[j][0] ){
					aTrifName[i][1] += aTrif_alfa_mobile[j][1];
				}
			}
		}
	}

	/* Если поле "Альфа-Клик" находится в нажатом состоянии то к К прибавляется   */
	if( document.getElementById('alfa_click') && document.getElementById('alfa_click').checked ){
		for( i=0; i< aTrifName.length; i++ ) { 
			for( j=0; j< aTrif_alfa_click.length; j++ ) {
				if( aTrifName[i][0] == aTrif_alfa_click[j][0] ){
					aTrifName[i][1] += aTrif_alfa_click[j][1];
				}
			}
		}
	}

	
	 /* вычисляем дополнительные платежи за пользование услугами */
	
	
	/* 1. Если число оплат услуг ЖКУ больше нуля, то к К прибавляется */
	for( i=0; i< aTrifName.length; i++ ) { /* вычисляем базовый тариф */
		for( j=0; j< aTrif_cash_out_gku.length; j++ ) {
			if( aTrifName[i][0] == aTrif_cash_out_gku[j][0] ){
				aTrifName[i][2] += cash_out_gku_count * aTrif_cash_out_gku[j][1];
			}
		}
	}
	
	/* 2. Если кол-во переводов через отделение > 0, то максимальное и минимальное значение поля "Средня сумма перевода" и К прибавляем */
	if(transfer_branch_count > 0 && transfer_branch > 0){
		for( i=0; i< aTrifName.length; i++ ) { /* вычисляем базовый тариф */
			for( j=0; j< aTrif_transfer_branch.length; j++ ) {
				if( aTrifName[i][0] == aTrif_transfer_branch[j][0] ){
					if((transfer_branch * aTrif_transfer_branch[j][1]) <= aTrif_transfer_branch_min[j][1]){
						aTrifName[i][2] += transfer_branch_count * aTrif_transfer_branch_min[j][1];
					}
					
					if((transfer_branch * aTrif_transfer_branch[j][1]) >= aTrif_transfer_branch_max[j][1]){
						aTrifName[i][2] += transfer_branch_count * aTrif_transfer_branch_max[j][1];
					}
					
					if((transfer_branch * aTrif_transfer_branch[j][1]) > aTrif_transfer_branch_min[j][1] && (transfer_branch * aTrif_transfer_branch[j][1]) < aTrif_transfer_branch_max[j][1]){
						aTrifName[i][2] += transfer_branch * transfer_branch_count * aTrif_transfer_branch[j][1];
					}
				}
			}
		}
	}
	
	/* 3. Если кол-во переводов через интернет-банк > 0, то максимальное и минимальное значение поля "Средня сумма перевода" и К прибавляем */
	if(transfer_internet_count > 0 && transfer_internet > 0){
		for( i=0; i< aTrifName.length; i++ ) { /* вычисляем базовый тариф */
			for( j=0; j< aTrif_transfer_internet.length; j++ ) {
				if( aTrifName[i][0] == aTrif_transfer_internet[j][0] ){
					if(parseInt(transfer_internet * aTrif_transfer_internet[j][1]) <= aTrif_transfer_internet_min[j][1]){
						aTrifName[i][2] += transfer_internet_count * aTrif_transfer_internet_min[j][1];
					}
					
					if(parseInt(transfer_internet * aTrif_transfer_internet[j][1]) >= aTrif_transfer_internet_max[j][1]){
						aTrifName[i][2] += transfer_internet_count * aTrif_transfer_internet_max[j][1];
					}
					
					if(parseInt(transfer_internet * aTrif_transfer_internet[j][1]) > aTrif_transfer_internet_min[j][1] && parseInt(transfer_internet * aTrif_transfer_internet[j][1]) < aTrif_transfer_internet_max[j][1]){
						aTrifName[i][2] += transfer_internet * transfer_internet_count * aTrif_transfer_internet[j][1];
					}
				}
			}
		}
	}
	 
	/* 5. Значение поля "В банкоматах банка, с конвертацией" умноженное на  */
	for( i=0; i< aTrifName.length; i++ ) { /* вычисляем базовый тариф */
		for( j=0; j< aTrif_cash_inside_atm.length; j++ ) {
			if( aTrifName[i][0] == aTrif_cash_inside_atm[j][0] ){
				aTrifName[i][2] += cash_inside_atm * rur * aTrif_cash_inside_atm[j][1];
			}
		}
	}
	
	/* 6. Значение поля "В отделениях банка" "сумма" перемножается на * и приведённое к рублям */
	for( i=0; i< aTrifName.length; i++ ) { /* вычисляем базовый тариф */
		for( j=0; j< aTrif_cash_inside_branch.length; j++ ) {
			if( aTrifName[i][0] == aTrif_cash_inside_branch[j][0] ){
				aTrifName[i][2] += cash_inside_branch * rur * aTrif_cash_inside_branch[j][1];
			}
		}
	}
	
	/* Ежемесячное снятие наличных в банкоматах других банков */
	/* 7.Для поля "В банкоматах других банков" сперва вычисляется отношение
		значения поля "сума" приведённого к рублям ,
		затем  умножается на  item[1]  */
	
	for( i=0; i< aTrif_cash_out_atm.length; i++ ) {  /*  Вычисляем нашу "сумму для сравнения", -  item[2]  */
		aTrif_cash_out_atm[i][2] = cash_out_atm * rur * aTrif_cash_out_atm[i][1];
		
		
		/* Если полученное значение item[2] меньше item[3] для  */
		if( aTrif_cash_out_atm[i][2] < aTrif_cash_out_atm[i][3] && aTrif_cash_out_atm[i][2] > 0 ) {
			/* то к S прибавляется item[4] умноженное на значение поля "количество снятий" */
			aTrifName[i][2] += aTrif_cash_out_atm[i][4] * cash_out_atm_count;
		} else {
			/* иначе прибавляется значение поля "сумма одного снятия" * кол-во снятий приведнное к рублям и умноженное на  item[5] */
			aTrifName[i][2] += cash_out_atm * rur * cash_out_atm_count * aTrif_cash_out_atm[i][5];
		}
	}
	
	
	
	/* Находим максимальную сумму */
	var max_tarif = 0;
	for( i=0; i< aTrifName.length; i++ ) { /* вычисляем базовый тариф */
		if( aTrifName[i][1] + aTrifName[i][2] > max_tarif ){
			var max_tarif = aTrifName[i][1] + aTrifName[i][2]
		}
	}
	
	/* отрисовываем картинки и суммы */
	var max_height = 277;
	for( var i = 0; i < aTrifName.length; i++ ) { /* вычисляем базовый тариф */
		var iBaseHeight = ( !max_tarif )? 2 : ( ( max_height * aTrifName[i][1] / max_tarif ) < 2 )? 2 :  Math.round(max_height * aTrifName[i][1] / max_tarif);
		var iTotalHeight = ( !max_tarif )? 2 : ( ( max_height * (aTrifName[i][1] + aTrifName[i][2]) / max_tarif ) < 2 )? 2 :  Math.round(max_height * (aTrifName[i][1] + aTrifName[i][2]) / max_tarif);

		document.getElementById(aTrifName[i][0] + '_img_base').style.height = iBaseHeight;
		document.getElementById(aTrifName[i][0] + '_img_total').style.height = iTotalHeight;
		
		document.getElementById(aTrifName[i][0] + '_div_base_span').innerHTML = Math.round(aTrifName[i][1]);
		document.getElementById(aTrifName[i][0] + '_div_total_span').innerHTML = Math.round(aTrifName[i][1] + aTrifName[i][2]);
		
		var iTop = ( !max_tarif )? 0 : Math.round(max_height * aTrifName[i][2] / max_tarif);
		document.getElementById(aTrifName[i][0] + '_div_base').style.top = iTop + 'px';
		
	}
	
}

var oGlobalPointer = null;
function displayComplexValue() {
	if ( oActiveSlider || oGlobalPointer ) {
		var oPointer = ( !oGlobalPointer )? oActiveSlider.aPointers[0] : oGlobalPointer;
		var oInfoDiv = document.getElementById( oPointer.sPointerID + 'info' );
		if ( oInfoDiv ) {
			oInfoDiv.innerHTML =
				Math.round( oPointer.iValue * rur ) + sRUR + '<br />' +
				oPointer.iValue + sUSD + '<br />' +
				Math.round( oPointer.iValue * euro ) + sEUR;
		}
	}
}

function displaySimpleValue( sSuffix ) {
	if ( oActiveSlider || oGlobalPointer ) {
		var oPointer = ( !oGlobalPointer )? oActiveSlider.aPointers[0] : oGlobalPointer;
		var oInfoDiv = document.getElementById( oPointer.sPointerID + 'info' );
		if ( oInfoDiv ) oInfoDiv.innerHTML = oPointer.iValue + sSuffix;
	}
}

