﻿			//массив который хранит в себе параметры пакета
		//последовательность параметров такова:
		//[финансовая комиссия %, первый взнос за оборудование %, количество месяцев]
		PARAMETRS_OF_RATE = [
			[15,15,12,"LeaseIT Базовый1",0,20],    //параметры для пакета "Базовый1" Value="0" 
			[15,15,24,"LeaseIT Базовый2",1,40],    //параметры для пакета "Базовый2" Value="1" 
			[10,10,11,"LeaseIT Равномерный1",3,25],    //параметры для пакета "Базовый2" Value="3" 			
			];
				//функция при нажатии Enter эммулируется нажатие кнопки
		function KeyDownHandler(btn)
			{
				  // process only the Enter key
				 if (event.keyCode == 13)
				 {
					 // cancel the default submit
					event.returnValue=false;
					event.cancel = true;
					// submit the form by programmatically clicking the specified button
					btn.click();
				 }
			}
		//функция позволяет вводить только числа значения в текстовое поле
		function validChars(e) 
		{
			var key, keychar;
			var goods="0123456789.";
			key = (window.event) ? window.event.keyCode : ((e) ? e.which : null);
			
			if (key == null) return true;
			keychar = String.fromCharCode(key);
			keychar = keychar.toLowerCase();
			goods = goods.toLowerCase();
		 
			if (goods.indexOf(keychar) != -1)
				return true;
		 
			if (key==null || key==0 || key==8 || key==9 || key==13 || key==27)
				return true;
		 
			return false;
		}
		
		
		//функция дополнения числа нулями до нужного знака
		function pad_with_zeros(rounded_value, decimal_places)
		{
			//Преобразование числа в строку
			var value_string = rounded_value.toString()
			
			//Поиск позиции десятичной точки
			var decimal_location = value_string.indexOf(".")
			
			var decimal_part_length
			
			//Присутсвует ли десятияная точка
			if(decimal_location == -1)
			{
				//если нет, значит все знаки после запятой являются нулями
				decimal_part_length = 0
				//если decimal_places больше нуля, то необходимо добавить точку
				value_string += decimal_places > 0 ? "." : ""
			}
			else
			{
				//если да, значит только дополнительніе знаки после запятой являются нулями
				decimal_part_length = value_string.length - decimal_location - 1
			}
			
			//подсчет числа знаков, которые необходимо вывести как нули
			var pad_total = decimal_places - decimal_part_length
			
			if(pad_total > 0)
			{
				//дополнение строки нулями
				for(var counter = 1; counter <= pad_total; counter++)
				{
					value_string += "0"
				}
			}
			return value_string
		}
		
		//функция округления числа до определенного количества знаков после запятой
		//decimals - количество знаков после запятой
		function round_decimals(original_number, decimals)
		{
			var result1 = original_number * Math.pow(10, decimals)
			var result2 = Math.round(result1)
			var result3 = result2 / Math.pow(10, decimals)
			return result3
		}
			
		//возвращает финансовую коммисию	
		function fin_commission(cost, paket_value)
		{
			return round_decimals((cost * PARAMETRS_OF_RATE[paket_value][0]) / 100,2)
		}
		
		//возвращает стоимость авансового платежа
		function avans_payment(cost, paket_value)
		{
			var avans=round_decimals((cost * PARAMETRS_OF_RATE[paket_value][1]) / 100,2);
			return avans;
		}
		function first_pay(cost, paket_value)
		{
			
			return round_decimals((cost * (PARAMETRS_OF_RATE[paket_value][0]+ PARAMETRS_OF_RATE[paket_value][1])) / 100,2)
			
		}
		//возвращает стоимость платежа за период
		function payment_per_period(cost, paket_value)
		{
			var pay
			var _avans = round_decimals(avans_payment(cost, paket_value),2) 
			var fulcost = cost + cost*PARAMETRS_OF_RATE[paket_value][0]/100 - _avans
			
			var finCom_ostatok =  (cost*(PARAMETRS_OF_RATE[paket_value][5] - PARAMETRS_OF_RATE[paket_value][1]))/100;
			
			
			if(PARAMETRS_OF_RATE[paket_value][2]==12)
			{
				pay = round_decimals(cost - _avans + finCom_ostatok,2) / (PARAMETRS_OF_RATE[paket_value][2]);
				
				}
				else if(PARAMETRS_OF_RATE[paket_value][2]==24)
				{
					pay= round_decimals(cost - _avans + finCom_ostatok,2)/PARAMETRS_OF_RATE[paket_value][2];
					}
			else if(paket_value==2)
			{
				//pay= fulcost/(PARAMETRS_OF_RATE[paket_value][2])
				pay= round_decimals(((cost+(cost*PARAMETRS_OF_RATE[paket_value][5])/100)/12),2);
			}
			/*if(PARAMETRS_OF_RATE[paket_value][2]==12) 
				pay = round_decimals(cost - _avans,2) / (PARAMETRS_OF_RATE[paket_value][2])
			else if(PARAMETRS_OF_RATE[paket_value][2]==24) 
				pay= (cost - avans_payment(cost, paket_value))/PARAMETRS_OF_RATE[paket_value][2]
				//pay= (cost - //avans_payment(cost, paket_value)//)/PARAMETRS_OF_RATE[paket_value][2]
			else if(paket_value==2)
				pay= fulcost/(PARAMETRS_OF_RATE[paket_value][2])	*/	
			
			return round_decimals(pay,2)

		}
		//возвращает стоимость платежа за период Базовый 2
	
	function create_table(current_form)
		{
			//Усли броузер не поддерживает DOM модель - функция не выполняется
			if(!document.getElementById)
				{return}

			//определение суммы платежа и замена последней запятой на точку
			var temp_stoimost = current_form.txtGrn.value
			var temp2_stoimost = temp_stoimost.replace(",",".")
			
			var stoimost_oborud = parseFloat(temp2_stoimost)
			
			var mightBeNumber = isNaN(stoimost_oborud);
			if (mightBeNumber)
			{
				alert("Не верная стоимость")
				return
			}
			
			current_form.txtGrn.value = pad_with_zeros(stoimost_oborud,2)
			
			//получение заполнителя таблицы (<div id="tableHolder">)
			var table_div = document.getElementById("tableHolder")
			//проверка существует ли таблица, если да то удаляем ее
			if(table_div.hasChildNodes())
			{
				var remove = table_div.childNodes[0]
				table_div.removeChild(remove)
			}	
			
			//если стоимость оборудования меньше 1000 уведомляем об этом.
			if(stoimost_oborud < 1000)
			{
				alert("Стоимость оборудования не может быть меньше 1000.00 гривен")
				return
			}
			if(stoimost_oborud > 1000000)
			{
				alert("Стоимость оборудования не может быть больше 1 000 000.00 гривен")
				return
			}

			
			//расчет количества строк таблицы в зависимости от выбранного пакета
			//+1 одна строка для шапки
			var row_bottom = 4;//для низа
			var table_rows = PARAMETRS_OF_RATE[current_form.cmdPakets.value][2] + 5 + row_bottom;			
			var table_columns = 2;
						
			
			//создание и добавление элемента <table>
			var table_node = document.createElement("table")
			table_div.appendChild(table_node)
			
			var total_cost = parseFloat("0") //общая стоимость оборудования результурующая
			
			//создание и добавление элемента <tbody>
			var tbody_node = document.createElement("tbody")
			table_node.appendChild(tbody_node)
			
			//стили таблицы
			table_node.border = 0
			table_node.cellSpacing = 0
			table_node.cellPadding = 2
			//table_node.style.fontSize = 0.8 + "em"
			
			
			//добавление всех элементов <tr> - строк
			for(var row_counter = 1; row_counter <= table_rows; row_counter++)
			{
				var tr_node = document.createElement("tr")
				tbody_node.appendChild(tr_node)
				var t = row_counter % 2
				
				if(t == 1&&(row_counter <= table_rows-row_bottom-3))				
					tr_node.className="light_line2";				
				else				
					tr_node.className ="dark_line";

				if(row_counter==1)  tr_node.className="light_line";	
				
				if(row_counter == table_rows - 2-row_bottom && row_counter <= table_rows-row_bottom)
				tr_node.className ="total1";
				
				if(row_counter >= table_rows - 1-row_bottom && row_counter <= table_rows-row_bottom)
				tr_node.className ="total2";
				
				if(row_counter == table_rows - 3-row_bottom)
					tr_node.className ="bottom_space";
					
				
				
				
			   if(row_counter == table_rows -row_bottom+1)
					tr_node.className ="bottom_space";
				
				
				 if(row_counter >= table_rows-row_bottom+2)
					tr_node.className ="bottom_line";
				
				
				
				//добавление всех элементов <td> в текущей строке
				for(var col_counter = 1; col_counter <= table_columns; col_counter++)
				{
					if(row_counter == table_rows -row_bottom+2 && col_counter == 2)
						continue;
						
					var td_node = document.createElement("td")
					tr_node.appendChild(td_node)
					
					if(row_counter == table_rows -row_bottom+1)
					    td_node.className ="bottom_space";
						
				if(row_counter == table_rows - 3-row_bottom)
					td_node.className ="bottom_space";

				if(row_counter == table_rows - 2-row_bottom && row_counter <= table_rows-row_bottom)
				td_node.className ="total1";
				
				if(row_counter >= table_rows - 1-row_bottom && row_counter <= table_rows-row_bottom)
				td_node.className ="total2";
				
				if(row_counter >= table_rows-row_bottom+2)
					td_node.className ="bottom_line";

					if(row_counter == table_rows -row_bottom+2 && col_counter == 1)
					{
						td_node.colSpan = 2;
					}
					
					if(col_counter == 1)
					{
						td_node.align = "left"
						td_node.width = 380
					}
					if(col_counter == 2)
						td_node.align = "right"
					
					var text_node
					//если первая строка первая ячейка
					if(row_counter == 1 && col_counter == 1)
					{
						/*text_node = document.createTextNode("Платеж при получении оборудования")*/
						text_node = document.createTextNode("Платеж при получении оборудования")
						
					}
					if(row_counter == 1 && col_counter == 2)
					{
						var result1 = fin_commission(stoimost_oborud, current_form.cmdPakets.value);
						var result2 = avans_payment(stoimost_oborud, current_form.cmdPakets.value);

						var result3 = first_pay(stoimost_oborud, current_form.cmdPakets.value);
						
						if(current_form.cmdPakets.value==2)
						{
						//ravnomerniy 1
		result3= round_decimals(((stoimost_oborud+(stoimost_oborud*PARAMETRS_OF_RATE[current_form.cmdPakets.value][5])/100)/12),2)
						
						
						}
						
						var platej = pad_with_zeros(round_decimals(result3,2),2);
						text_node = document.createTextNode(platej + " гривен")
						total_cost += parseFloat(platej)
					}
					if(row_counter != 1 && row_counter <= table_rows-row_bottom && col_counter == 1)
					{
						var temp = row_counter - 1;
						
						var stroka = "месячный платеж " + temp + "/"+PARAMETRS_OF_RATE[current_form.cmdPakets.value][2]
						text_node = document.createTextNode(stroka)
					}
					if(row_counter != 1 && row_counter <= table_rows-row_bottom-5 && col_counter == 2)
					{
						var result1 = payment_per_period(stoimost_oborud, current_form.cmdPakets.value)
						var pay = pad_with_zeros(round_decimals(result1,2),2)
						text_node = document.createTextNode(pay + " гривен")
						total_cost += parseFloat(pay)
					}
					//формирование последнего платежа
					if(row_counter == table_rows-row_bottom && col_counter == 1)
					{
						
						var temp = row_counter - 1
						var stroka = "Mесячный платеж " + temp + "/"+PARAMETRS_OF_RATE[current_form.cmdPakets.value][2]
						text_node = document.createTextNode(stroka)
					}
					if(row_counter == table_rows-row_bottom-4 && col_counter == 2)
					{
						
						var result1 = avans_payment(stoimost_oborud, current_form.cmdPakets.value)					
						var result2 = round_decimals(result1,2)						
						var result3 = payment_per_period(stoimost_oborud, current_form.cmdPakets.value)						
						var result4 = round_decimals(result3,2)
						var result5 = result4 * (PARAMETRS_OF_RATE[current_form.cmdPakets.value][2]-1)//11						
						var result6 
						
						var finCom_ostatok =  (stoimost_oborud*(PARAMETRS_OF_RATE[current_form.cmdPakets.value][5] - PARAMETRS_OF_RATE[current_form.cmdPakets.value][1]))/100;
						
						
						if(current_form.cmdPakets.value==0||current_form.cmdPakets.value==1)
						{
						result6=round_decimals((stoimost_oborud+finCom_ostatok+fin_commission(stoimost_oborud,current_form.cmdPakets.value))- (first_pay(stoimost_oborud, current_form.cmdPakets.value) + result5),2)
						}
						else if(current_form.cmdPakets.value==2) 
						{
							result5= stoimost_oborud+(stoimost_oborud*PARAMETRS_OF_RATE[current_form.cmdPakets.value][5])/100;						
							result6=round_decimals(result5-round_decimals(result3*11,2),2);
						}
			
						var last_platej = pad_with_zeros(result6,2)
						
						text_node = document.createTextNode(last_platej + " гривен")
						total_cost += parseFloat(last_platej)
					}
					if(row_counter == table_rows - 3-row_bottom)
					{
						text_node = document.createTextNode("_")
					}
					if(row_counter == table_rows - 2-row_bottom && col_counter == 1)
					{
						text_node = document.createTextNode("Сумма всех платежей:")
					}
					if(row_counter == table_rows - 2-row_bottom && col_counter == 2)
					{
						text_node = document.createTextNode(total_cost.toFixed(2)  + " гривен")
					}
					if(row_counter == table_rows-1-row_bottom && col_counter == 1)
					{
						text_node = document.createTextNode("Налоговый кредит сразу при получении оборудования:")
					}
					if(row_counter == table_rows-1-row_bottom && col_counter == 2)
					{
						var result1 = stoimost_oborud /6
						//if(current_form.cmdPakets.value==2)result1= result1/2; //ravnomerniy 1
						var result2 = round_decimals(result1,2)
						var podat = pad_with_zeros(result2,2)
						text_node = document.createTextNode(podat + " гривен")
					}
					if(row_counter == table_rows-row_bottom && col_counter == 1 )//&& current_form.cmdPakets.value!=2
					{
						if(current_form.cmdPakets.value==2)//ravnomerniy 1
						{
							text_node = document.createTextNode("")
							}
						else
						{
						text_node = document.createTextNode("Валовые расходы сразу при получении оборудования:")
						}
					}
					if(row_counter == table_rows-row_bottom && col_counter == 2 )//
					{
						if(current_form.cmdPakets.value==2)//ravnomerniy 1
						{
							text_node = document.createTextNode("")
							}
						else
						{
						var result1 = fin_commission(stoimost_oborud, current_form.cmdPakets.value)
						var vytr = pad_with_zeros(round_decimals(result1,2),2)
						text_node = document.createTextNode(vytr + " гривен")
						}
					}
				
					//добавление последних строк	
					if(row_counter == table_rows-row_bottom+1)
					{
						text_node = document.createTextNode("_")
					}
					
					if(row_counter == table_rows-row_bottom+2 && col_counter == 1)
					{
						textInNode = "При оплате платежа при получении оборудования в платежном поручении необходимо указать: \t\t\t\t\t\t\t\ "
						var result1 = fin_commission(stoimost_oborud, current_form.cmdPakets.value)
						var result2 = avans_payment(stoimost_oborud, current_form.cmdPakets.value)

						var result3 = first_pay(stoimost_oborud, current_form.cmdPakets.value);
						if(current_form.cmdPakets.value==2)result3= result2; //ravnomerniy 1
						var platej = pad_with_zeros(round_decimals(result3,2),2)
						var nds = pad_with_zeros(round_decimals(result3/PARAMETRS_OF_RATE[current_form.cmdPakets.value][2],2),2)
						if(current_form.cmdPakets.value==2) // ravnomernij 1
								nds =pad_with_zeros(round_decimals(result3/12,2),2)
						if(current_form.cmdPakets.value==1) // Bazovij 2
								nds= pad_with_zeros(round_decimals(nds*2,2),2);
						textInNode = textInNode + platej + " грн. \t\t\t\t\t\t\t\ " + PARAMETRS_OF_RATE[current_form.cmdPakets.value][3] + ";"
						
						textInNode = textInNode +  " Оплата за оборудование по счету №...... от ....... в т.ч. НДС " + nds + " грн."
						
						text_node = document.createTextNode(textInNode)
					}
					if(row_counter == table_rows-row_bottom+2 && col_counter == 2)
					{
						text_node = document.createTextNode("")
					}
					if(row_counter == table_rows-row_bottom+3 && col_counter == 1)
					{
						text_node = document.createTextNode("")
					}
					if(row_counter == table_rows-row_bottom+3 && col_counter == 2)
					{
						text_node = document.createTextNode("")
					}
					if(row_counter == table_rows-row_bottom+4 && col_counter == 1)
					{
						text_node = document.createTextNode("")
					}
					if(row_counter == table_rows-row_bottom+4 && col_counter == 2)
					{
						text_node = document.createTextNode("")
					}
					
					td_node.appendChild(text_node)
				}
			}	
						
			//назначение таблице идентификатора
			tbody_node.id = "tableResult"
		}
