/**
 * Quote calculation
 */

// standard settings
var chosenTermPeriod = 'months';
var chosenTerm = 48;
var chosenAmount = -1;
var termMax = 84; // max term in months
var termMin = 84; // min term in months
var taeg;


function calculate(spewAlert)
{

	var taeg 	= 0;
	
	chosenAmount = document.getElementById("montant").value;
	chosenAmount = str_replace(',','.',chosenAmount);
	
	$('#montant').val(chosenAmount);
		
	chosenTerm = $('#duree').val();
	chosenTerm = str_replace(',','.',chosenTerm);
	$('#duree').val(chosenTerm);
	
	chosenTermPeriod = $('#durationDefine').val();
	
	//console.log("Chosen amount: " + chosenAmount);
	//console.log("Chosen term: " + chosenAmount);
	//console.log("Chosen period: " + chosenTermPeriod);
			
	/**
	 * CHECK AMOUNT
	 */
	 
	if(chosenAmount == '')
	{
		if(spewAlert)
		{
           if(window.location.href.charAt(11) == "c")
			{
              alert('Vous n\'avez pas remplis de montant');
           } else {
		   alert('U hebt geen bedrag ingegeven');
		   }
        }
		$('#montant').focus();
		return false;
	}
	
	if(chosenAmount < 2500)
	{
		if(spewAlert)
		{
			var locatie = window.location.href;
			if(window.location.href.charAt(11) == "c")
			{
				alert('Le montant mentionné est moins de 2500€');
				} else {
				alert('Het ingegeven bedrag is kleiner dan 2500');
				}
			
        }
		$('#montant').focus();
		return false;
	}
	
	/**
	 * CHECK TERM
	 */
	if(!checkMaxTerm(spewAlert))
	{
		return false
	}
	
	if(chosenTermPeriod == 'years')
	{
		// chosenTerm = chosenTerm * 12;
	}
	
	/**
	 * CALCULATEEEEE
	 */
	if(chosenAmount > 1249 && chosenAmount < 2501)
	{
		taeg = 15.00;
		setMaxTerm(25);
	}
	else if(chosenAmount > 2500 && chosenAmount < 3701)
	{
		taeg = 15.00;
		setMaxTerm(31);
	}
	else if(chosenAmount > 3700 && chosenAmount <5001) {
		taeg = 15.00;
		setMaxTerm(37);
	}
	else if(chosenAmount > 5000 && chosenAmount < 5601)
	{
		taeg = 11.50;
		setMaxTerm(37);

		}
	else if(chosenAmount > 5600 && chosenAmount < 7501)
	{

		taeg = 11.50;
		setMaxTerm(43);
	}
	else if(chosenAmount > 7500 && chosenAmount < 10001)
	{
		taeg = 11.50;

		setMaxTerm(49);
	}
	else if(chosenAmount > 10000 && chosenAmount < 15001)
	{
		taeg = 11.50;
		setMaxTerm(61);
	}
	else if(chosenAmount > 15000)
	{
		taeg = 11.50;
		setMaxTerm(85);
	}
	
	checkMaxTerm();
	emp = chosenAmount;

	nbr = chosenTerm;
	if(chosenTermPeriod == 'years')
	{
		nbr = nbr * 12;
	}
	
	txc = taeg;
	tp1 = (1+(txc/100));
	tp2 = (1/12);
	tp3 = (1+(txc/100));
	tp4 = (nbr/12);
	tp5 = Math.pow(tp1, tp2);
	tp6 = Math.pow((1/tp3), tp4);
	ech = emp * (tp5-1) / (1-tp6);
	ech = ech * 100;
	ech = Math.floor(ech);
	ech = ech / 100;
	
	price = ech * nbr;
	
	document.getElementById('totaalbedrag').value = price+'€';
	document.getElementById('taeg').value = taeg+'%';
	document.getElementById('mensualite').value = ech;
}

var maxterm = 85;
function checkMaxTerm(spewAlert)
{
	if(chosenAmount > 1249 && chosenAmount < 2501)
	{
		maxterm = 25;
	}
	else if(chosenAmount > 2500 && chosenAmount < 3701)
	{
		maxterm = 31;
	}
	else if(chosenAmount > 3700 && chosenAmount <5601)
	{ 
		maxterm = 37;
	}
	else if(chosenAmount > 5600 && chosenAmount < 7501)
	{
		maxterm = 43;
	}
	else if(chosenAmount > 7500 && chosenAmount < 10001)
	{
		maxterm = 49;
	}
	else if(chosenAmount > 10000 && chosenAmount < 15001)
	{
		maxterm = 61;		
	}
	else if(chosenAmount > 15000)
	{
		maxterm = 85;
	}
	
	setMaxTerm(maxterm);
	
	//console.log('Chosen term period: ' + chosenTermPeriod);
	//console.log('Chosen term: ' + chosenTerm);
	//console.log('Max term: ' + maxterm + ' months, ' + (maxterm / 12) + ' years');
	//console.log('Real max term: ' + (maxterm-1) + ' months, ' + ((maxterm-1) / 12) + ' years');
	
	if((chosenTerm > (maxterm-1)  && chosenTermPeriod == 'months') || (chosenTerm > ((maxterm-1) / 12) && chosenTermPeriod == 'years'))
	{
		
		if(chosenTermPeriod == 'months')
			$('#duree').val(maxterm-1);
		else
			$('#duree').val((maxterm) / 12);
		
		if(spewAlert)
		if(window.location.href.charAt(11) == "c")
			{
			alert('Nous avons baissé automatiquement votre période, \r\n puisqu\'il est supérieur à la valeur maximale. \r\n La période maximale pour ce montant est de \r\n ' + (maxterm-1) + ' mois.');
			} else {
			alert('Wij hebben uw termijn automatisch verlaagd omdat \r\n deze groter is dan de maximum toegelaten waarde.\r\n De maximale toegestane termijn voor dit bedrag is\r\n ' + (maxterm-1) + ' maanden.');
			}
		
		if(chosenAmount > 19999)
		{
           if(window.location.href.charAt(11) == "c")
			{
				alert('Un délai supérieur est possible pour les propriétaires (max 240 mois) Prière de vouloir envoyer votre demande avant les 84 mois svp.');
				} else {
				alert('Langere duurtijd mogelijk voor eigenaars. (tot max 240 mnd) Gelieve uw aanvraag door te sturen in 84mnd aub.');
				}
            }
        
        calculate(true);
		return false;
	}
	if((chosenTerm < 24 && chosenTermPeriod == 'months') || (chosenTerm < 2 && chosenTermPeriod == 'years') || chosenTerm == '')
	{
		if(chosenTermPeriod == 'months')
			$('#duree').val(24);
		else
			$('#duree').val(2);
			
		if(spewAlert)
		 if(window.location.href.charAt(11) == "c")
			{
			alert('Nous avons augmenté votre terme automatiquement parce que celui-ci est moindre que le délai minimum permis. Le délai minimum permis pour ce montant est 24 mois.');
			} else {
			alert('Wij hebben uw termijn automatisch verhoogd omdat \r\n deze kleiner is dan de minimum toegelaten waarde.\r\n De minimum toegestane waarde is 24 maand.');
			}
		
		calculate(true);
		return false;
	}
	// all ok
	return true;
}

function setMaxTerm(maxterm)
{
		var sMax;
		var sMin;
		
		if(chosenTermPeriod == 'months')
		{
			 sMin = '24';
			 sMax = maxterm-1;
		}
		else 
		{
			sMin = '2';
			sMax = (maxterm-1) / 12;
		}
		if(chosenAmount > 19999)
		{
			if(window.location.href.charAt(11) == "c")
			{
				document.getElementById('allowedterm').innerHTML = Drupal.t('Minimum') + ' ' + sMin + ' ' + Drupal.t('maximum') + ' ' + sMax + '.<br/>' + Drupal.t('<i>Plus longue dur&eacute;e possible pour les <u>propri&eacute;taires</u> (jusqu\'&agrave; max 240 mois). Pourriez- vous envoyer votre demande en 84 mois svp.' + Drupal.t('<i>Mentionnez &agrave; l\'&eacute;tape suivante dans le cadre \'autres remarques\' la dur&eacute;e souhait&eacute;e. Et nous en tiendrons compte!</i>'));
			}
			else
			{
				document.getElementById('allowedterm').innerHTML = Drupal.t('Minimum') + ' ' + sMin + ' ' + Drupal.t('maximum') + ' ' + sMax + '.<br/>' + Drupal.t('<i>Een langere duurtijd mogelijk voor <u>eigenaars</u>. (tot max 240 mnd) Gelieve uw aanvraag door te sturen in 84mnd aub.</i>' + Drupal.t('<br/><i>Vermeld in uw volgende stap in het veld "bijkomende opmerkingen", uw gewenste duurtijd. En we doen het nodige!</i>'));
			}
        }
		else
		{
			document.getElementById('allowedterm').innerHTML = 'Minimum' + ' ' + sMin + ' ' + 'maximum' + ' ' + sMax + '.';
		}
}

function clear()
{
	document.getElementById('duree').value = '';
	document.getElementById('taeg').value = '';
	document.getElementById('montant').value = '';
}
