var calc = {};
calc.ir = 0;
calc.max_percent = 0;
calc.max_length = 0;
calc.max_loan = null;
calc.monthly_costs = 0;
calc.standing = 0;
calc.ltv = 1;
calc.ir_script = globals.base_url+'scripts/get_ir.php';
calc.max_percent_script = globals.base_url+'scripts/get_max_percent.php';
calc.max_length_script = globals.base_url+'scripts/get_max_length.php';
calc.max_loan_script = globals.base_url+'scripts/get_max_loan.php';
calc.send_script = globals.base_url+'scripts/calc_send.php';
calc.redir_url = 'http://www.hypodrom.cz';
calc.contact_form = '';

calc.init = function ()
{
	var tmp_sendit = document.getElementById('odeslat');

	var tmp_price = document.getElementById('kupni_cena');
	var tmp_purpose = document.getElementById('ucel_koupe');
	var tmp_savings = document.getElementById('uspory');

	var tmp_length = document.getElementById('splatnost');
	var tmp_fixation = document.getElementById('fixace');

	var tmp_income = document.getElementById('prijem');
	var tmp_debts = document.getElementById('zavazky');
	var tmp_deductions = document.getElementById('srazky');

	var tmp_age = document.getElementById('vek');

	var tmp_6 = document.getElementById('deti_do_6');
	var tmp_15 = document.getElementById('deti_do_15');
	var tmp_26 = document.getElementById('nezaopatreni');
	var tmp_adults = document.getElementById('dospeli');

	var tmp_request_switch = document.getElementById('sw_request_details');

	if (!tmp_price)
	{
		return;
	}
	//HOOK SEND FUNCTION ON BUTTON
	event_handler.add(tmp_sendit, 'click', calc.send);

	//PRICE UPDATE
	event_handler.add(tmp_price, 'keyup', calc.updatePriceField);

	//AMOUNT UPDATE
	event_handler.add(tmp_price, 'keyup', calc.updateAmount);
	event_handler.add(tmp_savings, 'keyup', calc.updateAmount);

	//LTV UPDATE
	event_handler.add(tmp_price, 'keyup', calc.updateLTV);
	event_handler.add(tmp_savings, 'keyup', calc.updateLTV);

	//IR UPDATE
	event_handler.add(tmp_purpose, 'change', calc.updateIR);
	event_handler.add(tmp_fixation, 'change', calc.updateIR);

	//MAX PERCENT UPDATE
	event_handler.add(tmp_purpose, 'change', calc.updateMaxPercent);
	event_handler.add(tmp_fixation, 'change', calc.updateMaxPercent);

	//STANDING UPDATE
	if (tmp_income)
	{
		event_handler.add(tmp_income, 'keyup', calc.updateStanding);
		event_handler.add(tmp_debts, 'keyup', calc.updateStanding);
		event_handler.add(tmp_deductions, 'keyup', calc.updateStanding);
		event_handler.add(tmp_6, 'keyup', calc.updateStanding);
		event_handler.add(tmp_15, 'keyup', calc.updateStanding);
		event_handler.add(tmp_26, 'keyup', calc.updateStanding);
		event_handler.add(tmp_adults, 'keyup', calc.updateStanding);
	}

	//MAX LENGTH UPDATE
	event_handler.add(tmp_purpose, 'change', calc.updateMaxLength);
	event_handler.add(tmp_length, 'change', calc.updateFinalPayment);

	//MAX LOAN UPDATE
	event_handler.add(tmp_purpose, 'change', calc.updateMaxLoan);

	//ERROR CHECK
	event_handler.add(tmp_price, 'keyup', calc.checkErrors);
	event_handler.add(tmp_purpose, 'change', calc.checkErrors);
	event_handler.add(tmp_savings, 'keyup', calc.checkErrors);
	event_handler.add(tmp_length, 'change', calc.checkErrors);
	event_handler.add(tmp_fixation, 'change', calc.checkErrors);
	if (tmp_income)
	{
		event_handler.add(tmp_income, 'keyup', calc.checkErrors);
		event_handler.add(tmp_debts, 'keyup', calc.checkErrors);
		event_handler.add(tmp_deductions, 'keyup', calc.checkErrors);
		event_handler.add(tmp_age, 'keyup', calc.checkErrors);
		event_handler.add(tmp_6, 'keyup', calc.checkErrors);
		event_handler.add(tmp_15, 'keyup', calc.checkErrors);
		event_handler.add(tmp_26, 'keyup', calc.checkErrors);
		event_handler.add(tmp_adults, 'keyup', calc.checkErrors);
	}

	//INITIAL UPDATE FOR DEFAULT VALUES
	calc.updateAmount();
	calc.updateMaxLength();
	calc.updateMaxPercent();
	calc.updateMaxLoan();
	calc.updateLTV();
	if (tmp_income)
	{
		calc.updateStanding();
	}

	//INITIAL ERROR CHECK
	calc.checkErrors();

	//HOOK VISIBILITY SWITCH
	if (tmp_request_switch)
	{
		event_handler.add(tmp_request_switch, 'click', calc.switchRequestDetails);
	}
};
/**
 * REQUEST DETAILS SWITCH
 */
calc.switchRequestDetails = function ()
{
	var tmp_box = document.getElementById('request_details');

	if (tmp_box.style.display != 'block')
	{
		tmp_box.style.display = 'block';
	}
	else
	{
		tmp_box.style.display = 'none';
	}
}
/**
 * UPDATE PRICE FIELD
 */
calc.updatePriceField = function ()
{
	var tmp_price = document.getElementById('kupni_cena');
	var num_price = calc.getComputerNumbers(tmp_price.value);

	if (num_price > 100000000)
	{
		tmp_price.value = 100000000;
	}
}
/**
 * UPDATE MAX PAYMENT PARAM
 */
calc.updateFinalPayment = function ()
{
	var tmp_final_payment = document.getElementById('splatka');
	var tmp_final_payment_cont = document.getElementById('splatka_container');

	var tmp_amount = document.getElementById('pozadovana_vyse');
	var num_amount = calc.getComputerNumbers(tmp_amount.value)

	var tmp_length = document.getElementById('splatnost');
	var num_length = calc.getComputerNumbers(tmp_length.value)

	var tmp_err = document.getElementById('splatnost_err');

	var num_ir = calc.ir/12;

	tmp_final_payment.value = Math.round((num_amount*(num_ir*365.25/360))/(1-Math.pow(1+num_ir*365.25/360, -(num_length*12))));
	if (tmp_final_payment.value > 0)
	{
		tmp_final_payment_cont.innerHTML = calc.getHumanNumbers(tmp_final_payment.value)+' Kč';
	}
	else
	{
		tmp_final_payment_cont.innerHTML = '0 Kč';
	}
};
/**
 * UPDATE AMOUNT PARAM
 */
calc.updateAmount = function ()
{
	var tmp_price = document.getElementById('kupni_cena');
	var num_price = calc.getComputerNumbers(tmp_price.value);

	var tmp_savings = document.getElementById('uspory');
	var num_savings = calc.getComputerNumbers(tmp_savings.value);

	var tmp_amount = document.getElementById('pozadovana_vyse');
	var tmp_amount_cont = document.getElementById('pozadovana_vyse_container');

	tmp_amount.value = num_price-num_savings;
	if (tmp_amount.value > 0)
	{
		tmp_amount_cont.innerHTML = calc.getHumanNumbers(tmp_amount.value)+' Kč';
	}
	else
	{
		tmp_amount_cont.innerHTML = '0 Kč';
	}
};
/**
 * UPDATE LTV PARAM
 */
calc.updateLTV = function ()
{
	var tmp_price = document.getElementById('kupni_cena');
	var num_price = calc.getComputerNumbers(tmp_price.value);

	var tmp_savings = document.getElementById('uspory');
	var num_savings = calc.getComputerNumbers(tmp_savings.value);

	calc.ltv = (num_price-num_savings)/num_price;

	calc.updateIR();
};
/**
 * UPDATE IR PARAM
 */
calc.updateIR = function ()
{
	var tmp_purpose = document.getElementById('ucel_koupe');
	var tmp_fixation = document.getElementById('fixace');

	param0 = new Array('purpose', tmp_purpose.value);
	param1 = new Array('fixation', tmp_fixation.value);
	param2 = new Array('ltv', calc.ltv);

	param = new Array(param0, param1, param2);

	var handler = new xmlhttp_handler();

	if (handler.loadURL('POST', calc.ir_script, param, false))
	{
		calc.ir = new Number(handler.getText()).valueOf();
	}

	calc.updateFinalPayment();
};
/**
 * UPDATE MAX PERCENT PARAM
 */
calc.updateMaxPercent = function ()
{
	var tmp_purpose = document.getElementById('ucel_koupe');

	param0 = new Array('purpose', tmp_purpose.value);
	param = new Array(param0);

	var handler = new xmlhttp_handler();

	if (handler.loadURL('POST', calc.max_percent_script, param, false))
	{
		calc.max_percent = new Number(handler.getText()).valueOf();
	}
};
/**
 * UPDATE MAX LENGTH PARAM
 */
calc.updateMaxLength = function ()
{
	var tmp_purpose = document.getElementById('ucel_koupe');

	param0 = new Array('purpose', tmp_purpose.value);
	param = new Array(param0);

	var handler = new xmlhttp_handler();

	if (handler.loadURL('POST', calc.max_length_script, param, false))
	{
		calc.max_length = new Number(handler.getText()).valueOf();
	}
};
/**
 * UPDATE MAX LOAN PARAM
 */
calc.updateMaxLoan = function ()
{
	var tmp_purpose = document.getElementById('ucel_koupe');

	param0 = new Array('purpose', tmp_purpose.value);
	param = new Array(param0);

	var handler = new xmlhttp_handler();

	if (handler.loadURL('POST', calc.max_loan_script, param, false))
	{
		calc.max_loan = null;
		if (handler.getText() != '')
		{
			calc.max_loan = new Number(handler.getText()).valueOf();
		}
	}
};
/**
 * HOUSEHOLD STANDING COMPUTATION
 */
calc.updateStanding = function ()
{
	var tmp_income = document.getElementById('prijem');
	var num_income = calc.getComputerNumbers(tmp_income.value);

	var tmp_debts = document.getElementById('zavazky');
	var num_debts = calc.getComputerNumbers(tmp_debts.value);

	var tmp_deductions = document.getElementById('srazky');
	var num_deductions = calc.getComputerNumbers(tmp_deductions.value);

	var tmp_6 = document.getElementById('deti_do_6');
	var num_6 = calc.getComputerNumbers(tmp_6.value);

	var tmp_15 = document.getElementById('deti_do_15');
	var num_15 = calc.getComputerNumbers(tmp_15.value);

	var tmp_26 = document.getElementById('nezaopatreni');
	var num_26 = calc.getComputerNumbers(tmp_26.value);

	var tmp_adults = document.getElementById('dospeli');
	var num_adults = calc.getComputerNumbers(tmp_adults.value);

	var tmp_substience = document.getElementById('zivotni_minimum');

	var people_costs = num_6*1600+num_15*1960+num_26*2250;

	if (num_adults == 1)
	{
		people_costs += 3126;
	}
	else if (num_adults >= 2)
	{
		people_costs += 2880;
		people_costs += (num_adults-1)*2600;
	}

	var people = num_6+num_15+num_26+num_adults;

	var household_costs = 0;
	household_costs = (people == 1) ? 2653 : household_costs;
	household_costs = (people == 2) ? 4055 : household_costs;
	household_costs = (people == 3) ? 5763 : household_costs;
	household_costs = (people == 4) ? 6574 : household_costs;
	household_costs = (people >= 5) ? 7385 : household_costs;

	//subsistence - life minimum
	var subsistence = people_costs+household_costs;

	tmp_substience.value = subsistence;

	//monthly costs
	calc.monthly_costs = subsistence+num_debts+num_deductions;

	//disposable income - standing
	calc.standing = num_income-calc.monthly_costs;
};
/**
 * GET MAX AVAILABLE PAYMENT
 */
calc.getMaxAvailablePayment = function ()
{
	var tmp_income = document.getElementById('prijem');
	var num_income = calc.getComputerNumbers(tmp_income.value);

	var tmp_debts = document.getElementById('zavazky');
	var num_debts = calc.getComputerNumbers(tmp_debts.value);

	var x = 0.8*num_income-num_debts;

	var y = calc.standing;

	var return_var = 0;

	return_var = (x > y) ? y : x;
	return_var = (return_var < 0) ? 0 : return_var;

	return_var = Math.round(return_var);
	return return_var;
};
/**
 * AGE CHECK
 */
calc.checkAge = function ()
{
	var tmp_age = document.getElementById('vek');
	var num_age = calc.getComputerNumbers(tmp_age.value);

	if (num_age < globals.limit_age_min || num_age > globals.limit_age_max)
	{
		return false;
	}

	return true;
};
/**
 * MAX LENGTH CHECK
 */
calc.checkMaxLength = function ()
{
	var tmp_length = document.getElementById('splatnost');
	var num_length = calc.getComputerNumbers(tmp_length.value);

	if (num_length > calc.max_length)
	{
		return false;
	}

	return true;
};
/**
 * MAX PERCENT CHECK
 */
calc.checkMaxPercent = function ()
{
	if (calc.ltv > calc.max_percent)
	{
		return false;
	}

	return true;
};
/**
 * LENGTH+AGE CHECK
 */
calc.checkLengthAge = function ()
{
	var tmp_age = document.getElementById('vek');
	var num_age = calc.getComputerNumbers(tmp_age.value);

	var tmp_length = document.getElementById('splatnost');
	var num_length = calc.getComputerNumbers(tmp_length.value);

	if (num_length+num_age > globals.limit_loan_length)
	{
		return false;
	}

	return true;
};
/**
 * MINIMUM AND MAXIMUM LOAN CHECK
 */
calc.checkMinAmount = function ()
{
	var tmp_price = document.getElementById('kupni_cena');
	var num_price = calc.getComputerNumbers(tmp_price.value);

	if (num_price < globals.min_loan)
	{
		return false;
	}

	return true;
};
calc.checkMaxAmount = function ()
{
	var tmp_price = document.getElementById('kupni_cena');
	var num_price = calc.getComputerNumbers(tmp_price.value);

	var tmp_amount = document.getElementById('pozadovana_vyse');
	var num_amount = calc.getComputerNumbers(tmp_amount.value);

	if (num_amount > num_price*calc.max_percent)
	{
		return false;
	}

	return true;
};
/**
 * MAXIMUM PRICE CHECK
 */
calc.checkMaxLoan = function ()
{
	var tmp_amount = document.getElementById('pozadovana_vyse');
	var num_amount = calc.getComputerNumbers(tmp_amount.value);

	if (calc.max_loan != null)
	{
		if (num_amount > calc.max_loan)
		{
			return false;
		}
	}

	return true;
};
/**
 * FIXATION > LENGTH CHECK
 */
calc.checkFixationLength = function ()
{
	var tmp_length = document.getElementById('splatnost');
	var num_length = calc.getComputerNumbers(tmp_length.value);

	var tmp_fixation = document.getElementById('fixace');
	var num_fixation = calc.getComputerNumbers(tmp_fixation.value);

	if ((num_fixation/30/12) > num_length)
	{
		return false;
	}

	return true;
};
/**
 * LOW INCOME CHECK
 */
calc.checkLowIncome = function ()
{
	var tmp_income = document.getElementById('prijem');
	var num_income = calc.getComputerNumbers(tmp_income.value);

	if (num_income < 8000)
	{
		return false;
	}

	return true;
};
/**
 * INCOME < DEBTS CHECK
 */
calc.checkIncomeDebts = function ()
{
	if (calc.standing < 0)
	{
		return false;
	}

	return true;
};
/**
 * INSOLVENCY 80 % CHECK
 */
calc.checkInsolvency80 = function ()
{
	var tmp_income = document.getElementById('prijem');
	var num_income = calc.getComputerNumbers(tmp_income.value);

	var tmp_debts = document.getElementById('zavazky');
	var num_debts = calc.getComputerNumbers(tmp_debts.value);

	var tmp_payment = document.getElementById('splatka');
	var num_payment = calc.getComputerNumbers(tmp_payment.value);

	if ((num_debts+num_payment)/num_income > 0.8)
	{
		return false;
	}

	return true;
};
/**
 * CHECK IF IR IS NULL
 */
calc.checkNullIR = function ()
{
	var tmp_purpose = document.getElementById('ucel_koupe');
	var tmp_fixation = document.getElementById('fixace');

	if (tmp_purpose.value == 4)// && tmp_fixation.value == 0)
	{
		return -1;
	}

	if (!isNaN(calc.ltv) && isNaN(calc.ir))
	{
		return -2;
	}

	return 1;
}
/**
 * LAST CHECK
 */
calc.checkLast = function ()
{
	var tmp_final_payment = document.getElementById('splatka');
	var num_final_payment = calc.getComputerNumbers(tmp_final_payment.value);

	var tmp_max_payment = document.getElementById('splatkamax');

	if (tmp_max_payment.value < num_final_payment)
	{
		return false;
	}

	return true;
};
/**
 * HUMAN FRIENDLY NUMBER FORMAT FOR FIELDS
 */
calc.updateNumbers = function ()
{
	var tmp_price = document.getElementById('kupni_cena');
	var tmp_savings = document.getElementById('uspory');
	
	tmp_price.value = calc.getHumanNumbers(tmp_price.value);
	tmp_savings.value = calc.getHumanNumbers(tmp_savings.value);

	var tmp_income = document.getElementById('prijem');
	if (tmp_income)
	{	
		var tmp_debts = document.getElementById('zavazky');
		var tmp_deductions = document.getElementById('srazky');
		
		tmp_income.value = calc.getHumanNumbers(tmp_income.value);
		tmp_debts.value = calc.getHumanNumbers(tmp_debts.value);
		tmp_deductions.value = calc.getHumanNumbers(tmp_deductions.value);
	}
}
/**
 * ERROR CHECK AND DISPLAY
 */
calc.checkErrors = function ()
{
	calc.updateNumbers();

	var nullifies_final_amount = false;
	var nullifies_max_amount = false;

	var tmp_price = document.getElementById('kupni_cena');
	var num_price = calc.getComputerNumbers(tmp_price.value);

	var tmp_age = document.getElementById('vek');
	if (tmp_age)
	{
		var num_age = calc.getComputerNumbers(tmp_age.value);
	}

	var tmp_final_payment = document.getElementById('splatka');
	var num_final_payment = calc.getComputerNumbers(tmp_final_payment.value);
	var tmp_final_payment_cont = document.getElementById('splatka_container');

	var tmp_max_payment = document.getElementById('splatkamax');
	var tmp_max_payment_cont = document.getElementById('splatkamax_container');

	var tmp_income = document.getElementById('prijem');

	//AGE ERROR
	var err_age = document.getElementById('vek_err');
	if (tmp_age)
	{
		if (!calc.checkAge())
		{
			err_age.innerHTML = '<div>Věk musí být mezi<br />'+globals.limit_age_min+' a '+globals.limit_age_max+' roky</div>';
			err_age.style.display = 'inline';
		}
		else
		{
			err_age.innerHTML = '';
			err_age.style.display = 'none';
		}
	}

	//MAX LENGTH ERROR
	var err_length = document.getElementById('splatnost_err');
	if (!calc.checkMaxLength())
	{
		err_length.innerHTML = '<div>Požadovaná splatnost pro daný účel nesmí přesáhnout '+calc.max_length+' let.</div>';
		err_length.style.display = 'inline';
		nullifies_max_amount = true;
		nullifies_final_amount = true;
	}
	else
	{
		err_length.innerHTML = '';
		err_length.style.display = 'none';
	}

	//MAX LENGTH+AGE ERROR
	var err_length = document.getElementById('splatnost_err');
	if (tmp_age)
	{
		if (!calc.checkLengthAge())
		{
			err_length.innerHTML = '<div>Maximální délka splatnosti při daném věku žadatele činí '+(globals.limit_loan_length-num_age)+' let.</div>';
			err_length.style.display = 'inline';
		}
		else
		{
			err_length.innerHTML = (err_length.style.display == 'inline') ? err_length.innerHTML : '';
			err_length.style.display = (err_length.style.display == 'inline') ? 'inline' : 'none';
		}
	}

	//MAX AMOUNT ERROR
	var err_amount = document.getElementById('pozadovana_vyse_err');
	if (!calc.checkMaxAmount())
	{
		err_amount.innerHTML = '<div>Maximální výše hypotečního úvěru je při daném účelu '+calc.getHumanNumbers(num_price*calc.max_percent)+' Kč</div>';
		err_amount.style.display = 'inline';
	}
	else
	{
		err_amount.innerHTML = '';
		err_amount.style.display = 'none';
	}

	//MIN AMOUNT ERROR
	if (!calc.checkMinAmount())
	{
		err_amount.innerHTML = '<div>Minimální výše hypotečního úvěru je '+calc.getHumanNumbers(globals.min_loan)+' Kč</div>';
		err_amount.style.display = 'inline';
	}
	else
	{
		err_amount.innerHTML = (err_amount.style.display == 'inline') ? err_amount.innerHTML : '';
		err_amount.style.display = (err_amount.style.display == 'inline') ? 'inline' : 'none';
	}

	//MAX LOAN ERROR
	if (!calc.checkMaxLoan())
	{
		nullifies_max_amount = true;
		err_amount.innerHTML = '<div>Maximální výše hypotečního úvěru je při daném účelu '+calc.getHumanNumbers(calc.max_loan)+' Kč</div>';
		err_amount.style.display = 'inline';
	}
	else
	{
		err_amount.innerHTML = (err_amount.style.display == 'inline') ? err_amount.innerHTML : '';
		err_amount.style.display = (err_amount.style.display == 'inline') ? 'inline' : 'none';
	}

	//FIXATION > LENGTH ERROR
	var err_fixation = document.getElementById('fixace_err');
	if (!calc.checkFixationLength())
	{
		err_fixation.innerHTML = '<div>Fixace nesmí být delší než doba splatnosti.</div>';
		err_fixation.style.display = 'inline';
		nullifies_final_amount = true;
	}
	else
	{
		err_fixation.innerHTML = '';
		err_fixation.style.display = 'none';
	}

	//LOW INCOME ERROR
	if (tmp_income)
	{
		var err_splatka_max = document.getElementById('splatka_err');
		if (!calc.checkLowIncome())
		{
			nullifies_max_amount = true;
			if (tmp_income.value == '')
			{
				err_splatka_max.innerHTML = '<div>Pro provedení výpočtu doplňte příjem.</div>';
			}
			else
			{
				err_splatka_max.innerHTML = '<div>Úvěr nebude schválen pro nedostatečný příjem.</div>';
			}
			err_splatka_max.style.display = 'inline';
		}
		else
		{
			err_splatka_max.innerHTML = '';
			err_splatka_max.style.display = 'none';
		}

		//INCOME < DEBTS ERROR
		var err_splatka_max = document.getElementById('splatka_err');
		if (!calc.checkIncomeDebts())
		{
			if (err_splatka_max.style.display != 'inline')
			{
				err_splatka_max.innerHTML = '<div>Výdaje překračují příjmy - úvěr nelze poskytnout.</div>';
				err_splatka_max.style.display = 'inline';
			}
		}
		else
		{
			err_splatka_max.innerHTML = (err_splatka_max.style.display == 'inline') ? err_splatka_max.innerHTML : '';
			err_splatka_max.style.display = (err_splatka_max.style.display == 'inline') ? 'inline' : 'none';
		}

		//INSOLVENCY 80 % ERROR
		if (!calc.checkInsolvency80())
		{
			if (err_splatka_max.style.display != 'inline')
			{
				err_splatka_max.innerHTML = '<div>Úvěr nebude schválen pro předlužení, snižte výši splátek.</div>';
				err_splatka_max.style.display = 'inline';
			}
		}
		else
		{
			err_splatka_max.innerHTML = (err_splatka_max.style.display == 'inline') ? err_splatka_max.innerHTML : '';
			err_splatka_max.style.display = (err_splatka_max.style.display == 'inline') ? 'inline' : 'none';
		}
	}

	//NULL IR ERROR
	var err_splatka_month = document.getElementById('splatka_mesic_err');
	if (calc.checkNullIR() < 0)
	{
		if (calc.checkNullIR() == -1)
		{
			var msg = 'Výše splátky je orientační, podmínky jednotlivých bank se liší.'
		}
		else
		{
			var msg = 'Pro dané parametry úvěru není úroková sazba k dispozici. Zvolte jinou délku fixace.'

			nullifies_max_amount = true;
			nullifies_final_amout = true;
		}

		err_splatka_month.innerHTML = '<div>'+msg+'</div>';
		err_splatka_month.style.display = 'inline';
	}
	else
	{
		if (!tmp_income)
		{
			var msg = 'Výše splátky je orientační, podmínky jednotlivých bank se liší.'
			err_splatka_month.innerHTML = '<div>'+msg+'</div>';
			err_splatka_month.style.display = 'inline';
		}
		else
		{
			err_splatka_month.innerHTML = '';
			err_splatka_month.style.display = 'none';
		}
	}

	if (tmp_income)
	{
		if (!nullifies_max_amount)
		{
			tmp_max_payment.value = calc.getMaxAvailablePayment();
			var tmp_num = (calc.getHumanNumbers(tmp_max_payment.value).length <= 0) ? '0' : calc.getHumanNumbers(tmp_max_payment.value);
			tmp_max_payment_cont.innerHTML = tmp_num+' Kč';
		}
		else
		{
			tmp_max_payment.value = 0;
			tmp_max_payment_cont.innerHTML = '0 Kč';
		}
	}

	if (nullifies_final_amount)
	{
		tmp_final_payment.value = 0;
		tmp_final_payment_cont.innerHTML = '0 Kč';
	}

	if (tmp_income)
	{
		//LAST CHECK
		if (!calc.checkLast())
		{
			if (err_splatka_max.style.display != 'inline')
			{
				err_splatka_max.innerHTML = '<div>Váš příjem nestačí na vypočtenou měsíční splátku úvěru.<br />Upravte výši vlastních úspor, splatnost úvěru nebo jiný vstupní parametr.</div>';
				err_splatka_max.style.display = 'inline';
			}
		}
		else
		{
			err_splatka_max.innerHTML = (err_splatka_max.style.display == 'inline') ? err_splatka_max.innerHTML : '';
			err_splatka_max.style.display = (err_splatka_max.style.display == 'inline') ? 'inline' : 'none';
		}
	}

	//=IF(D15>0,(IF(D15>D2,IF((D4+D2)/D3<C18," ","úvěr by nebyl schválen pro předlužení, snižte výši splátek"),"příjem nestačí na požadovanou výši úvěru")),"výdaje překračují příjmy - úvěr nelze poskytnout"))
};
calc.send = function ()
{
	var tmp_name = document.getElementById('jmeno');
	var tmp_phone = document.getElementById('telefon');
	var tmp_email = document.getElementById('email');

	var tmp_agree = document.getElementById('souhlas');

	if (!(tmp_agree.checked == true || tmp_agree.checked == 'true'))
	{
		alert('Zaškrtněte prosím souhlas s podmínkami.');
		return false;
	}
	if (tmp_name.value.length <= 0)
	{
		alert('Vyplňte prosím jméno.');
		return false;
	}
	if (tmp_phone.value.length <= 0)
	{
		alert('Vyplňte prosím telefon.');
		return false;
	}
	if (tmp_email.value.length <= 0)
	{
		alert('Vyplňte prosím e-mail.');
		return false;
	}

	var mail_re = new RegExp("^[A-Za-z0-9]+[A-Za-z0-9\._-]*[A-Za-z0-9]+@[A-Za-z0-9]+[A-Za-z0-9\._-]*[A-Za-z0-9]+\.[A-Za-z]{2,4}$");
	if (tmp_email.value.search(mail_re) == -1)
	{
		alert('Chybný formát e-mailové adresy. Opravte ji prosím.');
		return false;
	}

	var tmp_price = document.getElementById('kupni_cena');
	var tmp_purpose = document.getElementById('ucel_koupe');
	var tmp_savings = document.getElementById('uspory');
	var tmp_requested_amount = document.getElementById('pozadovana_vyse');

	var tmp_length = document.getElementById('splatnost');
	var tmp_fixation = document.getElementById('fixace');
	var tmp_payment = document.getElementById('splatka');

	var tmp_income = document.getElementById('prijem');
	var tmp_debts = document.getElementById('zavazky');
	var tmp_deductions = document.getElementById('srazky');
	var tmp_age = document.getElementById('vek');
	var tmp_infants = document.getElementById('deti_do_6');
	var tmp_teens = document.getElementById('deti_do_15');
	var tmp_youth = document.getElementById('nezaopatreni');
	var tmp_adults = document.getElementById('dospeli');
	var tmp_minimum = document.getElementById('zivotni_minimum');
	var tmp_max_payment = document.getElementById('splatkamax');

	param0 = new Array('price', calc.getComputerNumbers(tmp_price.value));
	param1 = new Array('purpose', calc.getComputerNumbers(tmp_purpose.value));
	param2 = new Array('savings', calc.getComputerNumbers(tmp_savings.value));
	param3 = new Array('requested_amount', calc.getComputerNumbers(tmp_requested_amount.value));

	param4 = new Array('length', calc.getComputerNumbers(tmp_length.value));
	param5 = new Array('fixation', calc.getComputerNumbers(tmp_fixation.value));
	param6 = new Array('payment', calc.getComputerNumbers(tmp_payment.value));

	param7 = new Array('income', calc.getComputerNumbers(tmp_income.value));
	param8 = new Array('debts', calc.getComputerNumbers(tmp_debts.value));
	param9 = new Array('deductions', calc.getComputerNumbers(tmp_deductions.value));
	param10 = new Array('age', calc.getComputerNumbers(tmp_age.value));
	param11 = new Array('infants', calc.getComputerNumbers(tmp_infants.value));
	param12 = new Array('teens', calc.getComputerNumbers(tmp_teens.value));
	param13 = new Array('youth', calc.getComputerNumbers(tmp_youth.value));
	param14 = new Array('adults', calc.getComputerNumbers(tmp_adults.value));
	param15 = new Array('minimum', calc.getComputerNumbers(tmp_minimum.value));
	param16 = new Array('max_payment', calc.getComputerNumbers(tmp_max_payment.value));

	param17 = new Array('ir', calc.ir);
	param18 = new Array('ltv', calc.getComputerNumbers(tmp_requested_amount.value)/calc.getComputerNumbers(tmp_price.value));

	param19 = new Array('name', tmp_name.value);
	param20 = new Array('phone', tmp_phone.value);
	param21 = new Array('mail', tmp_email.value);

	param = new Array(param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10
	, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, param21);

	var handler = new xmlhttp_handler();

	if (handler.loadURL('POST', calc.send_script, param, false))
	{
		var response = handler.getText();
		if (response == 'ok')
		{
			window.location.replace(globals.base_url+'special/thnx.html');
		}
		else
		{
			alert(response);
		}
	}
};
/**
 * NUMBER FORMAT
 */
calc.getHumanNumbers = function (number)
{
	if (number.length <= 0)
	{
		return '';
	}

	var number = number.toString();

	var re = new RegExp('^0{1,}');
	number = number.replace(re, '');

	var pattern = "###.###.###.###";

	var result = '';

	numberIndex = number.length - 1;
	patternIndex = pattern.length - 1;

	while ( (numberIndex >= 0) && (patternIndex >= 0) )
	{
		var digit = number.charAt( numberIndex );
		numberIndex--;

		// Skip non-digits from the source number (eradicate current formatting).
		if ( (digit < '0') || (digit > '9') )  continue;

		// Got a digit from the number, now plug it into the pattern.
		while ( patternIndex >= 0 )
		{
			var patternChar = pattern.charAt( patternIndex );
			patternIndex--;

			// Substitute digits for '#' chars, treat other chars literally.
			if ( patternChar == '#' )
			{
				result = digit + result;
				break;
			}
			else
			{
				result = patternChar + result;
			}
		}
	}

	result = result.toString();

	return result;
};
calc.getComputerNumbers = function (number)
{
	if (number.length <= 0)
	{
		return 0;
	}

	var re = new RegExp('[\.\, ]');
	number = number.replace(re, '');

	number = number.replace(/[^\d]/g, '');
	number = new Number(number).valueOf();

	number = Math.round(number);

	return number;
};
