/* Javacript written by S. van Deursen
You can use this code freely in your code
as long this header is included.
Model design by VNG, all rights reserved 2004.
*/

	function Max( a, b ) {
		if ( a > b ) return a;
		return b;
	}
	
	function Min( a, b ) {
		if ( a < b ) return a;
		return b;
	}
	
	/* Deze functie verandert maakt de Woningwaarde op, zodat eventuele invoerfouten hieruit worden gehaald. */
	function WoningwaardeOpmaken(WoningWaarde) {

		// Comma's in punten omdraaien (javascript gebruikt Amerikaanse cijfertonatie)
		WoningWaarde = WoningWaarde.replace( ',', '.' );
		// Eventuele Eurotekens verwijderen.
		WoningWaarde = WoningWaarde.replace( '€ ', '' );
		WoningWaarde = WoningWaarde.replace( '€', '' );
		
		return WoningWaarde;
	}
	
	
	
	function Bezwaardrempel(WoningWaarde) {
		var Bezwaardrempel;
		
		// comma's in punten veranderen, eventueel euro teken verwijderen.
		WoningWaarde = WoningwaardeOpmaken(WoningWaarde);
		
		if ( isNaN( WoningWaarde ) || WoningWaarde < 0 ) {
			return '?';
		}
		
		if (WoningWaarde <= 200000 ) {
			// Woningwaarde <= 200.000
			Bezwaardrempel = WoningWaarde * 0.05;
	
		} else if ( WoningWaarde <= 500000 ) {
			// 200.000 < Woningwaarde <= 500.000
			Bezwaardrempel = Max( WoningWaarde * 0.04, 10000 );
	
		} else if ( WoningWaarde <= 1000000 ) {
			// 500.000 < Woningwaarde <= 1.000.000
			Bezwaardrempel = WoningWaarde * 0.03;
			Bezwaardrempel = Max( Bezwaardrempel, 20000 );
			Bezwaardrempel = Min( Bezwaardrempel, 100000 );
		
		} else {
			// Woningwaarde > 1.000.000
			Bezwaardrempel = WoningWaarde * 0.02;
			Bezwaardrempel = Max( Bezwaardrempel, 30000 );
			Bezwaardrempel = Min( Bezwaardrempel, 100000 );
		}
		
		// afronden op centen
		Bezwaardrempel = Math.round(Bezwaardrempel*100)/100;
		
		// Euro teken toevoegen
		return Bezwaardrempel;
	}

	function Aanmerking(WoningWaarde)
	{
		// comma's in punten veranderen, eventueel euro teken verwijderen.
		WoningWaarde = WoningwaardeOpmaken(WoningWaarde);
		
		if ( isNaN( WoningWaarde ) || WoningWaarde < 0 ) {
			return '?';
		}
		
		return WoningWaarde - Bezwaardrempel(WoningWaarde);
	}
	
	// Retourneert -1 bij fout, 0 bij geen bezwaar mogelijk, 1 bij bezwaar mogelijk
	function AanmerkingVoorBezwaar(WoningWaardeGemeente,WoningWaardeBurger)
	{
		WoningWaardeGemeente = WoningwaardeOpmaken(WoningWaardeGemeente);
		WoningWaardeBurger = WoningwaardeOpmaken(WoningWaardeBurger);
		
		if (	isNaN( WoningWaardeGemeente ) || WoningWaardeGemeente < 0 ) {
			return -1;
		}
		if (	isNaN( WoningWaardeBurger ) || WoningWaardeBurger < 0  ) {
			return -1;
		}

		var bezwaardrempel = Bezwaardrempel(WoningWaardeGemeente);
		
		// Kijkt of de absolute waarde van Gemeente - Burger groter is dan de berekende bezwaardrempel.
		// Zo ja, dan bezwaar is toegestaan.
		if ( Math.abs( WoningWaardeGemeente - WoningWaardeBurger ) > bezwaardrempel ) return 1;
		
		// bezwaar maken is niet mogelijk. return 0.		
		return 0;
	}
	
	function AanmerkingSubmit(WoningWaardeGemeente,WoningWaardeBurger) {
	
		var aanmerking = AanmerkingVoorBezwaar(WoningWaardeGemeente,WoningWaardeBurger);
		
		if ( aanmerking == -1 ) {
			// fout opgetreden
			// Zet hier code om bezwaarTrue te disablen en bezwaarFalse te disablen.
			alert( 'U heeft geen geldige waarde ingevuld.' );
		} else if ( aanmerking == 0 ) {
			alert( 'Bezwaar maken heeft geen zin.' );
			// Zet hier code om bezwaarTrue te disablen en bezwaarFalse te enablen.
		} else {
			alert( 'U kunt bezwaar maken.' );
			// Zet hier code om bezwaarTrue te enablen en bezwaarFalse te disablen.
		}
		return aanmerking;
	}


