function aFFData(){

	aFData = new makeArray(7);									// Factor tabel
	//                     CASCO   uHag   brnd   strm  aanrijding
	aFData[1] = new FType( .011,  .004,  .004,  .001, .005);  	// tourcaravan
	aFData[2] = new FType( .0095, .001,  .0035, .001, .0035); 	// vouwkampeerwagen
	aFData[3] = new FType( .0085, .005,  .005,  .002,  0);		// stacaravan
	aFData[4] = new FType( .0085, .005,  .005,  .002,  0);		// toercaravan ingebruik als stacaravan (idem als stacaravan)

}
function FType( pCasco, pHagel, pBrand, pStorm, pAanrijding) {
  this.casco = pCasco;           // Factor casco
  this.hagel = pHagel;           // hagel
  this.brand = pBrand;           // brand
  this.storm = pStorm;           // storm
  this.aanrijding = pAanrijding; // aanrijding
}

	 chk1 = true;
	 chk2 = true;

function calcPremie(){
//variabelen#########################################################	
	var typetxt = document.premie.type[document.premie.type.selectedIndex].value;
	var type = 0;
	var catwaarde = parseInt(document.premie.cataloguswaarde.value);
	var casco = document.premie.cbcasco.checked?1:0;
	var rb1eigenaar = 0;
	 rb1eigenaar = document.premie.rb1eigenaar[0].checked?1:0;
	 if (rb1eigenaar == 0)
	 rb1eigenaar = document.premie.rb1eigenaar[1].checked?2:0;
	var brand = document.premie.cbbrand.checked?1:0;
	var storm = document.premie.cbstorm.checked?1:0;
	var aanrijding = document.premie.cbaanrijding.checked?1:0;
	var nwtermijntxt = document.premie.nwtermijn[0].checked?"2 jaar nieuwwaarde":"";
	nwtermijntxt = document.premie.nwtermijn[1].checked?"5 jaar nieuwwaarde":nwtermijn;
	nwtermijntxt = document.premie.nwtermijn[2].checked?"Topmodule (7 jaar nieuwwaarde)":nwtermijn;
	var nwtermijn = 0;
	nwtermijn = document.premie.nwtermijn[1].checked?1.25:nwtermijn;
	nwtermijn = document.premie.nwtermijn[2].checked?1.4:nwtermijn;
	var hagel = document.premie.cbhagel.checked?1:0;
	var hagelbestendig = document.premie.cbhagelbestendig.checked?1:0;
	var voortent = parseInt(document.premie.voortent.value);
	var aanbouw = parseInt(document.premie.aanbouw.value);
	var inboedel = parseInt(document.premie.inboedel.value);
	var rbijstand = document.premie.cbrbijstand.checked?1:0;
	var eer = document.premie.eer[document.premie.eer.selectedIndex].value;
	var eerkorting
	var basispremie = 0;
	var hagelpremie = 0;
	var premieaanbouw = 0;
	var premievoortent = 0;
	var premieinboedel = 0;
	var premierbijstand = 0;
	var premiesub1 = 0;
	var premietotaal = 0;
	
	switch (eer){
		case "0":   eerkorting = 1;
		break;
		case "125": eerkorting = .9;
		break;
		case "250": eerkorting = .8;
		break;
		case "500": eerkorting = .7;
		break;
		default: eerkorting = 1;
	}

	switch (typetxt){
		case "toercaravan":
		type = 1;
		break;
		case "vouwkampeerwagen":
		type = 2;
		break;
		case "stacaravan":
		type = 3;
		break;
		case "toer gebruikt als stacaravan":
		type = 4;
		break;
	}
//checks#############################################################
	document.premie.polistext.value = "Vul alle gegevens in."
	if(rb1eigenaar == 1) {
		oSpan0 = document.getElementById("helpnw0");
		oSpan0.style.display = "none";
		oSpan1 = document.getElementById("helpnw1");
		oSpan1.style.display = "inline";
		oSpan2 = document.getElementById("helpnw2");
		oSpan2.style.display = "none";
	}
	if(rb1eigenaar == 2) {
		oSpan0 = document.getElementById("helpnw0");
		oSpan0.style.display = "none";
		oSpan1 = document.getElementById("helpnw1");
		oSpan1.style.display = "none";
		oSpan2 = document.getElementById("helpnw2");
		oSpan2.style.display = "inline";		
	}

	if (document.premie.cbcasco.checked){
			document.premie.nwtermijn[0].removeAttribute('disabled');
			document.premie.nwtermijn[1].removeAttribute('disabled');
			document.premie.nwtermijn[2].removeAttribute('disabled');
			document.premie.cbhagel.removeAttribute('disabled');
			document.premie.cbhagelbestendig.removeAttribute('disabled');
			document.premie.eer.removeAttribute('disabled');
			document.premie.cbbrand.setAttribute('disabled', 'true')
			document.premie.cbstorm.setAttribute('disabled', 'true')
			document.premie.cbaanrijding.setAttribute('disabled', 'true')
	}
	else  {			
			document.premie.nwtermijn[0].checked = true;
			document.premie.nwtermijn[0].setAttribute('disabled', 'true')
			document.premie.nwtermijn[1].setAttribute('disabled', 'true')
			document.premie.nwtermijn[2].setAttribute('disabled', 'true')
			document.premie.cbhagel.checked = false;
			document.premie.cbhagel.setAttribute('disabled', 'true')
			document.premie.cbhagelbestendig.checked = false;
			document.premie.cbhagelbestendig.setAttribute('disabled', 'true')
			document.premie.eer.setAttribute('disabled', 'true')
			document.premie.cbbrand.removeAttribute('disabled');
			document.premie.cbstorm.removeAttribute('disabled');
			document.premie.cbaanrijding.removeAttribute('disabled');
		}
	if (document.premie.cbcasco.checked && document.premie.rb1eigenaar[1].checked){
			document.premie.nwtermijn[0].checked = true;
			document.premie.nwtermijn[1].setAttribute('disabled', 'true')
			document.premie.nwtermijn[2].setAttribute('disabled', 'true')
			nwtermijn = 0;

	}

	if(catwaarde > 0 && (casco || brand || storm || aanrijding)){
	
		if (chk1 && casco && (brand || storm || aanrijding)){
			document.premie.polistext.value = "Bij de gekozen dekking casco zijn brand/diefstal, storm en aanrijding meeverzekerd. Kies voor casco OF voor een combinatie van de andere dekkingsvormen.";
			chk1 = false;
			return false;
		}
		if (type == 1 && catwaarde > 30000){
			document.premie.polistext.value = "het maximaal verzekerde bedrag voor de toercaravan bedraagt € 30.000,- Neem contact op met uw verzekeringsadviseur als u hogere bedragen wilt verzekeren!";
			return false;
		}
		if (chk2 && type == 1 && catwaarde <= 30000 && catwaarde > 20000){
			alert("Bij een toercaravan met een verzekerd bedrag vanaf € 20.000,- dient de caravan tegen diefstal beveiligd te worden middels een SCM-goedgekeurd koppelingsslot en een SCM-goedgekeurde wielklem.");
			chk2 = false;
		}
		if (type == 2 && catwaarde > 12500){
			document.premie.polistext.value = "het maximaal verzekerde bedrag voor de vouwkampeerwagen bedraagt € 12.500,- Neem contact op met uw verzekeringsadviseur als u hogere bedragen wilt verzekeren!";
			return false;
		}
		if (type == 3 && catwaarde > 125000){
			document.premie.polistext.value = "het maximaal verzekerde bedrag voor de stacaravan bedraagt € 125.000,- Neem contact op met uw verzekeringsadviseur als u hogere bedragen wilt verzekeren!";
			return false;
		}
		if (type == 4 && catwaarde > 30000){
			document.premie.polistext.value = "het maximaal verzekerde bedrag voor een toercaravan in gebruik als stacaravan bedraagt € 30.000,- Neem contact op met uw verzekeringsadviseur als u hogere bedragen wilt verzekeren!";
			return false;
		}
		if ((type == 3 || type == 4) && aanrijding){
			document.premie.polistext.value = "Bij een stacaravan kan de dekking aanrijding niet gekozen worden!";
			return false;
		}
		if(inboedel > 5000){
			alert("Het maximaal verzekerd bedrag voor inboedel is € 5.000,-")
			document.premie.polistext.value = "Het maximaal verzekerd bedrag voor inboedel is € 5.000,-";
			return false;
		}
		if((type == 1 || type == 2) && aanbouw) {
			document.premie.polistext.value = "Aanbouwdekking is alleen mogelijk bij stacaravans en toercaravans in gebruik als stacaravan.";
			return false;
		}
	
//premie berekenen###################################################
		if (casco){
			basispremie = catwaarde * aFData[type].casco;
			basispremie = Math.max(basispremie, basispremie * nwtermijn);
			hagelpremie = hagel?catwaarde * aFData[type].hagel:0;
			hagelpremie = hagelbestendig?hagelpremie * 0.75:hagelpremie;
			basispremie = (basispremie + hagelpremie) * eerkorting;
			if(voortent) premievoortent = voortent * aFData[type].casco * eerkorting;
			if(voortent) premievoortent = hagel?voortent * aFData[type].hagel + premievoortent:premievoortent; 
			if(aanbouw)  premieaanbouw  = aanbouw * aFData[type].casco * eerkorting;
			if(aanbouw)  premieaanbouw  = hagel?aanbouw * aFData[type].hagel + premieaanbouw:premieaanbouw; 
			if(inboedel) premieinboedel = inboedel * aFData[type].casco * eerkorting;
		}
		else {
			if (brand){
			basispremie = catwaarde * aFData[type].brand;
			if(voortent) premievoortent = voortent * aFData[type].brand;
			if(aanbouw)  premieaanbouw  = aanbouw * aFData[type].brand;
			if(inboedel) premieinboedel = inboedel * aFData[type].brand;
			}
			if (storm){
			basispremie = basispremie + catwaarde * aFData[type].storm;
			if(voortent) premievoortent = premievoortent + voortent * aFData[type].storm;
			if(aanbouw)  premieaanbouw  = premieaanbouw + aanbouw * aFData[type].storm;
			if(inboedel) premieinboedel = premieinboedel + inboedel * aFData[type].storm;
			}
			if (aanrijding){
			basispremie = basispremie + catwaarde * aFData[type].aanrijding;
			if(voortent) premievoortent = premievoortent + voortent * aFData[type].aanrijding;
			if(aanbouw)  premieaanbouw  = premieaanbouw + aanbouw * aFData[type].aanrijding;
			if(inboedel) premieinboedel = premieinboedel + inboedel * aFData[type].aanrijding;
			}
		}
		if (rbijstand) premierbijstand = 10;
		premiesub1 = basispremie + premievoortent + premieaanbouw + premieinboedel + premierbijstand;
		if (premiesub1 < 35){
			premiesub1 = 35;
			basispremie = premiesub1 - premievoortent - premieaanbouw - premieinboedel - premierbijstand;
		}  
		ab = 0.075 * premiesub1;
		premietotaal = premiesub1 + ab;
//uitschrijven#######################################################
		document.premie.polistext.value = "U heeft gekozen voor de volgende dekking(en)\n";
		if (casco) document.premie.polistext.value += "-casco\n";
		if (brand) document.premie.polistext.value += "-brand/diefstal\n";
		if (storm) document.premie.polistext.value += "-storm\n";
		if (aanrijding) document.premie.polistext.value += "-aanrijding\n";
		if (!document.premie.nwtermijn[2].checked)document.premie.polistext.value += "U heeft een eigen risico van € 75,-\n";
		if (eerkorting < 1 && casco) document.premie.polistext.value += "U heeft een vrijwillig extra eigen risico van € " + eer + " met een premiekorting van " + Math.round((1 - eerkorting)*100) + "%\n\n";
		document.premie.polistext.value += "premie\t\t\t\t\t\t € " + pad(formatcurrency(basispremie), 8) + "\n";
		if(voortent)document.premie.polistext.value += "premie voortent\t\t\t\t\t € " + pad(formatcurrency(premievoortent), 8) + "\n";
		if(aanbouw)document.premie.polistext.value += "premie aanbouw\t\t\t\t\t € " + pad(formatcurrency(premieaanbouw), 8) + "\n";
		if(inboedel)document.premie.polistext.value += "premie inboedel\t\t\t\t\t € " + pad(formatcurrency(premieinboedel), 8) + "\n";
		if(rbijstand)document.premie.polistext.value += "premie rechtsbijstand\t\t\t\t € " + pad(formatcurrency(premierbijstand), 8) + "\n";
		document.premie.polistext.value += "Assurantiebelasting\t\t\t\t € " + pad(formatcurrency(ab), 8) + "\n";
		document.premie.polistext.value += "----------------------------------------------------------- +\n";
		document.premie.polistext.value += "totaal\t\t\t\t\t\t € " + pad(formatcurrency(premietotaal), 8) + "\n\n";
		document.premie.polistext.value += "Het eerste jaar bedragen de poliskosten € 3,50 exclusief 7,5% assurantiebelasting.";
		document.premie.vSum.value = formatcurrency(premietotaal);
	}
}

function roundUp(value,base) {
	rest = value % base;
	if(rest != 0)
		value += base - rest;
	return value;
}