Ajax.Responders.register(
	{
		onCreate: function()
			{
				Ajax.activeRequestCount = 1;
			},
		onSucces: function()
			{
				Ajax.activeRequestCount = 0;
			}
	});

var reqKS30000T	= false;
var reqKS30000B	= false;
var reqKS30000K	= false;
var reqKS30000P	= false;
var reqKS30000X	= false;
var reqKS30010	= false;
var reqKS30020	= false;
var reqKS30030	= false;
var reqKS30070	= false;
var reqKS30090	= false;
var reqKS30100	= false;
var reqKS30290	= false;
var reqKS30300	= false;

var ids = ["Transmissies", "Brandstoffen", "Koetswerken", "Producten", "Beveiligingsklasses", "Aanvullingen"];
ids["Transmissies"] = "transmissie";
ids["Brandstoffen"] = "brandstof";
ids["Koetswerken"] = "koetswerk";
ids["Producten"] = "product";
ids["Beveiligingsklasses"] = "beveiligingsklasse";
ids["Beroepen"] = "beroep";

var overige_info;

function getTypenBijKenteken(kenteken, pa_ba)
{
	if (!kenteken.empty())
	{
		fkey = (pa_ba) ? "KS303001" : "KS303004";

		params = {};
		params.kenteken = kenteken;

		doRequest(fkey, params);
	}
}

function getMerken()
{
	pa_ba = $F($("frmPremieBerekenen")["pa_ba"]);
	bouwmaand = $F("id_bouwmaand");
	bouwjaar = $F("id_bouwjaar");
	
	if (!pa_ba.empty() && !bouwmaand.empty() && !bouwjaar.empty())
	{
		if ((focusedElement["id_bouwmaand"] == true) || (focusedElement["id_bouwjaar"] == true))
		{
			$("frmPremieBerekenen").focusFirstElement();
		}
		else
		{
			datum = new Date();
			if (parseInt(bouwjaar, 10) == datum.getFullYear()) if (parseInt(bouwmaand, 10) > (datum.getMonth() + 1)) return;

			$("id_merk").options.length = 0;
			fkey = (pa_ba == "pa")? "KS300101" : "KS300104";

			params = {};
			params.bouwjaar = bouwjaar;
			params.bouwmaand = bouwmaand;
			
			doRequest(fkey, params);
		}
	}
}

function getModellen()
{
	pa_ba = $F($("frmPremieBerekenen")["pa_ba"]);
	bouwmaand = $F("id_bouwmaand");
	bouwjaar = $F("id_bouwjaar");
	merk = $F("id_merk");
	
	if (!pa_ba.empty() && !bouwmaand.empty() && !bouwjaar.empty() && merk && !merk.empty() && (merk >= 0))
	{
		$("id_model").options.length = 0;
		fkey = (pa_ba == "pa") ? "KS300201" : "KS300204";

		params = {};
		params.bouwjaar = bouwjaar;
		params.bouwmaand = bouwmaand;
		params.merk = merk;

		doRequest(fkey, params);
	}
}

function getTypen()
{
	pa_ba = $F($("frmPremieBerekenen")["pa_ba"]);
	bouwmaand = $F("id_bouwmaand");
	bouwjaar = $F("id_bouwjaar");
	model = $F("id_model");
	koetswerk = $F("id_koetswerk");
	brandstof = $F("id_brandstof");
	transmissie = $F("id_transmissie");
	
	if (!pa_ba.empty() && !bouwmaand.empty() && !bouwjaar.empty() && !model.empty() && (model >= 0) && (koetswerk != null) && !koetswerk.empty() && (koetswerk >= 0) && !brandstof.empty() && (brandstof >= 0) && !transmissie.empty() && (transmissie >= 0))
	{
		$("id_typen").options.length = 0;
		fkey = (pa_ba == "pa") ? "KS300301" : "KS300304";

		params = {};
		params.bouwjaar = bouwjaar;
		params.bouwmaand = bouwmaand;
		params.model = model;
		params.koetswerk = koetswerk;
		params.brandstof = brandstof;
		params.transmissie = transmissie;
		
		doRequest(fkey, params);
	}
}

function getBrandstoffen()
{
	if ($("id_brandstof").options.length <= 2)
	{
		getLijst("Brandstoffen");
	}
	else
	{
		toggleWijzigen("id_model", false);
	}
}

function getTransmissies()
{
	if ($("id_transmissie").options.length <= 2)
	{
		getLijst("Transmissies");
	}
}

function getKoetswerken()
{
	if ($("id_koetswerk").options.length <= 2)
	{
		getLijst("Koetswerken");
	}
}

function getProducten()
{
	if ($F($("frmPremieBerekenen")["producten"]).empty())
	{
		getLijst("Producten");
	}
}

function getBeveiligingsklasses()
{
	if ($("id_beveiligingsklasse").options.length <= 2)
	{
		getLijst("Beveiligingsklasses");
	}
}

function getLijst(soort)
{
	var pa_ba = $F($("frmPremieBerekenen")["pa_ba"]);
	
	if (!pa_ba.empty())
	{
		fkey = (pa_ba == "pa") ? "KS300001" : "KS300004";

		params = {};
		params.soort = soort;
		
		doRequest(fkey, params);
	}
}

function getPolisvoorwaarden()
{
	if (this.hasClassName("disabled")) return;

	showPopup("Polisvoorwaarden", '<div id="pu_loader"><img src="images/loader.gif" alt="Een moment geduld alstublieft"><br>Een moment geduld alstublieft</div>', 2);

	pa_ba = $F($("frmPremies")["pa_ba"]);
	fkey = (pa_ba == "pa") ? "KS300901" : "KS300904";

	params = {};
	params.dekking = this.up("div").id.substr(4);
	params.productid = $F($("frmPremies")["keuze_product_" + dekking + "_pid"]);

	doRequest(fkey, params);
}

function setBtEnGetPremies()
{
	var bt = $RF("frmPremies", "bt");

	if ($("frmPremies")["betalingstermijn"].value != bt)
	{
		$("frmPremies")["betalingstermijn"].value = bt;

		params = {};
		params.betalingstermijn = bt;

		saveSession(params, getPremies);
	}
}

function getPremies()
{
	$$("#div_wa .premie, #div_bc .premie, #div_vc .premie").invoke("update", "");

	pa_ba = $F($("frmPremies")["pa_ba"]);
	fkey = (pa_ba == "pa") ? "KS300701" : "KS300704";

	params = {};
	
	doRequest(fkey, params);
}

function getAV()
{
	pa_ba = $F($("frmAVs")["pa_ba"]);
	fkey = (pa_ba == "pa") ? "KS302901" : "KS302904";

	params = {};

	doRequest(fkey, params);
}

function getAanvraag()
{
	if ($("frmOfferteBedankt"))
	{
		formulier = "frmOfferteBedankt";
	}
	else if ($("frmAanvraagBedankt"))
	{
		formulier = "frmAanvraagBedankt";
	}
	else return;

	pa_ba = $F($(formulier)["pa_ba"]);
	fkey = (pa_ba == "pa") ? "KS301001" : "KS301004";

	params = {};

	doRequest(fkey, params);
}

function doRequest(fkey, params)
{
	if (!in_array(fkey.substr(0, 7), ["KS30070", "KS30100", "KS30290"]))
	{
		throwError("", null);
	}

	soort = (fkey.substr(0, 7) == "KS30000") ? params.soort : "";

	if (!getRequest(fkey, soort))
	{
		new Ajax.Request("functions/ajax_json.php",
			{
				method: "POST",
				parameters:
					{
						FunctieKey: fkey,
						params: Object.toJSON(params)
					},
				onCreate: function()
					{
						showLoad(fkey, soort);
					},
				onException: function(req, e)
					{
						if (offline && console)
						{
							alert("See console: " + e.message + " on line " + e.lineNumber);
							console.log(e);
						}
					},
				onSuccess: function(response)
					{
						hideLoad(fkey, soort);
						
						if (!response.responseText.blank())
						{
							txt = response.responseText;
							var json, fout, leeg;

							if (fkey.substr(0, 7) == "KS30090")
							{
								json = txt;
								fout = false;
								leeg = false;
							}
							else
							{
								json = txt.evalJSON(true);
								fout = (json.Error) ? json.Error : false;
								leeg = (json.Leeg == "true");
							}
						}
										
						// Foutieve aanvraag
						if (!fout)
						{
							// Geen data
							if (!leeg)
							{
								getResults(fkey, json);
							}
							else
							{
								if (fkey == "KS303001") // typen bij kenteken zoeken voor personenauto
								{
									getTypenBijKenteken(json.Kenteken, false);
								}
								else if (fkey == "KS303004")  // typen bij kenteken zoeken voor bestelauto
								{
									alert("Er is geen voertuig gevonden bij het ingevoerde kenteken.\nVoer een ander kenteken in, of kies voor 'ik weet het kenteken niet'.");
								}
								else
								{
									alert("Er zijn geen autogegevens gevonden met de ingevoerde kenmerken.");
								}
							}
						}
						else
						{
							if (fout == "session_expired")
							{
								window.location.href = window.location.href;
								return;
							}

							if (!Object.isArray(fout))
							{
								fout = [fout];
							}

							var msg = "De volgende " + ((fout.length == 1) ? "fout is" : "fouten zijn") + " opgetreden:";
							error_teller = 1;

							fout.each(function(error)
								{
									msg += "\n\n" + ((fout.length > 1) ? "Fout " + error_teller++ + ": " : "") + error;
								});
							alert(msg);
						}
					},
				on418: function(response)
					{
						alert(response.responseText);
					},
				onFailure: function(response)
					{
						hideLoad(fkey, soort);
						alert("Fout\n\nCode: " + response.status + "\nStatus: " + response.statusText);
					}
			});
	}
}

function getResults(fkey, json)
{
	if			(fkey.substr(0, 7) == "KS30000")
	{
		KS30000(json);
	}
	else if (fkey.substr(0, 7) == "KS30010")
	{
		KS30010(json);
	}
	else if (fkey.substr(0, 7) == "KS30020")
	{
		KS30020(json);
	}
	else if (fkey.substr(0, 7) == "KS30030")
	{
		KS30030(json);
	}
	else if (fkey.substr(0, 7) == "KS30070")
	{
		KS30070(json);
	}
	else if (fkey.substr(0, 7) == "KS30090")
	{
		KS30090(json);
	}
	else if (fkey.substr(0, 7) == "KS30100")
	{
		KS30100(json);
	}
	else if (fkey.substr(0, 7) == "KS30290")
	{
		KS30290(json);
	}
	else if (fkey.substr(0, 7) == "KS30300")
	{
		KS30300(fkey, json);
	}
}

function KS30000(lijst)
{
	var f = null;

	if ($("frmPremieBerekenen"))
	{
		f = $("frmPremieBerekenen");
	}
	else if ($("frmGegevensAanvrager"))
	{
		f = $("frmGegevensAanvrager");
	}

	var key;
	for (key in lijst) {}

	var resItems = lijst[key];
	if ((key.toLowerCase() != "product"))
	{
		if (!Object.isArray(resItems))
		{
			resItems = [resItems];
		}

		var items = [];
		var i = 0;

		items[i++] = " |-1";
		resItems.each(function(item)
			{
				items[i++] = (key == "Beroep") ? item.Omschrijving + "|" + item.Omschrijving : item.Omschrijving + "|" + item.Id;
			});

		items.sort();

		fillSelect(f[key.toLowerCase()], items);

		var selected_id = $F(f[key.toLowerCase() + "_naam"]);
		var value = "";
		$(f[key.toLowerCase()]).select("option").each(function(option)
			{
				if (option.text == selected_id) value = option.value;
			});

		$(f[key.toLowerCase()]).value = value;
		toggleWijzigen("id_" + key.toLowerCase(), false);

		if (key == "Beroep")
		{
			f[key.toLowerCase()].enable();
		}
		else if (key == "Brandstof")
		{
			getTransmissies();
		}
		else if (key == "Transmissie")
		{
			getKoetswerken();
		}
		else if (key == "Koetswerk")
		{
			getTypen();
		}

		if (key != "Beveiligingsklasse")
		{
			toggleWijzigen("id_model", false);
		}
	}
	else if (key.toLowerCase() == "product")
	{
		f["producten"].value = Object.toJSON(resItems);
	}
}

function KS30010(merken)
{
	if ((merken.length > 0) || !Object.isArray(merken))
	{
		if (!Object.isArray(merken))
		{
			merken = [merken];
		}
		
		var items = [];
		var i = 0;

		items[i++] = " |-1";
		merken.each(function(merk)
			{
				items[i++] = merk.Naam + "|" + merk.Id;
			});

		items.sort();

		fillSelect($("frmPremieBerekenen")["merk"], items);
		toggleWijzigen("id_bouwmaand", false);

		var merk_naam = $F($("frmPremieBerekenen")["merk_naam"]);
		var value = "";
		$("id_merk").select("option").each(function(option)
			{
				if (option.text == merk_naam) value = option.value;
			});
		$("id_merk").value = value;
		toggleWijzigen("id_merk", false);
	}
	else
	{
		throwError("De gekozen bouwmaand en bouwjaar leveren geen merk(en) op.");
		toggleWijzigen("id_merk", false);
		toggleWijzigen("id_bouwmaand", true);
	}
}

function KS30020(modellen)
{
	if ((modellen.length > 0) || !Object.isArray(modellen))
	{
		if (!Object.isArray(modellen))
		{
			modellen = [modellen];
		}

		var items = [];
		var i = 0;

		items[i++] = " |-1";
		modellen.each(function(model)
			{
				items[i++] = model.Naam + "|" + model.Id;
			});

		items.sort();

		fillSelect($("frmPremieBerekenen")["model"], items);
		toggleWijzigen("id_merk", false);

		var model_naam = $F($("frmPremieBerekenen")["model_naam"]);
		var value = "";
		$("id_model").select("option").each(function(option)
			{
				if (option.text == model_naam) value = option.value;
			});
		$("id_model").value = value;
		toggleWijzigen("id_model", false);

		getBrandstoffen();
	}
	else
	{
		throwError("De gekozen bouwmaand, bouwjaar en merk leveren geen model(len) op.");
		toggleWijzigen("id_model", false);
		toggleWijzigen("id_merk", true);
	}
}

function KS30030(typen)
{
	pa_ba = (fkey == "KS300301") ? "pa" : "ba";
	if ((typen.length > 0) || !Object.isArray(typen))
	{
		if (!Object.isArray(typen))
		{
			typen = [typen];
		}

		var items = [];
		overige_info = new Object();
		var i = 0;

		items[i++] = " |-1";
		typen.each(function(type)
			{
				var omschrijving = type.Naam;

				if (type.Brandstof && !type.Brandstof.empty() && ($F("id_brandstof") == "0"))
				{
					omschrijving += ", " + $$("#id_brandstof option[value=" + type.Brandstof + "]")[0].text;
				}

				if (type.Transmissie && !type.Transmissie.empty() && ($F("id_transmissie") == "0"))
				{
					omschrijving += ", " + $$("#id_transmissie option[value=" + type.Transmissie + "]")[0].text;
				}

				if (type.Koetswerk && !type.Koetswerk.empty() && ($F("id_koetswerk") == "0"))
				{
					omschrijving += ", " + $$("#id_koetswerk option[value=" + type.Koetswerk + "]")[0].text;
				}

				if (type.Vermogen && !type.Vermogen.empty())
				{
					omschrijving += ", " + type.Vermogen + "KW";
				}

				if (type.Aantaldeuren && !type.Aantaldeuren.empty())
				{
					omschrijving += ", " + type.Aantaldeuren + "-drs";
				}

				items[i++] = omschrijving + "|" + type.Id;
				var nw_bruto = (type.Rollsnieuwwaardebruto && (type.Rollsnieuwwaardebruto > 0)) ? type.Rollsnieuwwaardebruto : type.Nieuwwaardeinclbtw["!"];
				var nw_netto = (type.Rollsnieuwwaardenetto && (type.Rollsnieuwwaardenetto > 0)) ? type.Rollsnieuwwaardenetto : type.Nieuwwaardeinclbtw["!"];
				overige_info[type.Id] = new overigeInfo(nw_bruto, nw_netto, type.Dagwaardeinclbtw, type.Dagwaardeexclbtw, type.Brandstof, type.Transmissie, type.Koetswerk, ((type.Gewicht) ? type.Gewicht : 0), ((type.Lediggewicht) ? type.Lediggewicht : 0), ((type.Treingewicht) ? type.Treingewicht : 0), bouwmaand, bouwjaar, type.Beveiligingsklasse);
			});

		items.sort();

		fillSelect($("frmPremieBerekenen")["typen"], items);
		toggleWijzigen("id_model", false);

		type_id = $F($("frmPremieBerekenen")["type_id"]);
		if (!type_id.empty())
		{
			$("id_typen").value = type_id;
			toggleWijzigen("id_typen", false);
		}
	}
	else
	{
		throwError("De gekozen kenmerken leveren geen type(n) op.<br>Pas de kenmerken aan om een of meerdere bestaande typen weer te laten geven.");
		toggleWijzigen("id_typen", false);
		toggleWijzigen("id_koetswerk", true);
	}

	getBeveiligingsklasses();
}

function KS30070(premies)
{
	if (!Object.isArray(premies))
	{
		premies = [premies];
	}

	premies.each(function(premie)
		{
			dekking = premie.Dekking;
			div_premie = $("div_" + dekking).down(".premie").update("");
			$("div_" + dekking).down(".aanvragen").show();

			if (!premie.Geenpremie)
			{
				premiebedragincenten = parseInt(premie.PremiebedragInCenten, 10);
				premiebedrag = new Object();
				premiebedrag.euros = Math.floor(premiebedragincenten / 100);
				premiebedrag.centen = premiebedragincenten - (premiebedrag.euros * 100);

				span_e = new Element("span", {"class": "euros"}).update('&euro;&nbsp;' + premiebedrag.euros + ",");
				span_c = new Element("span", {"class": "centen"}).update(pad(premiebedrag.centen, 2));
				span_b = new Element("span", {"class": "bt"}).update("per " + $F($("frmPremies")["betalingstermijn"]));

				if (div_premie.hasClassName("center")) div_premie.removeClassName("center");
				div_premie.insert({bottom: span_e});
				div_premie.insert({bottom: span_c});
				div_premie.insert({bottom: span_b});

				$("frmPremies")["keuze_product_" + dekking].value = premie.Productnaam;
				$("frmPremies")["keuze_product_" + dekking + "_pid"].value = premie.Productid;
				$("frmPremies")["keuze_product_" + dekking + "_mn"].value = premie.Maatschappijnaam;
				$("frmPremies")["keuze_product_" + dekking + "_premie"].value = premiebedragincenten;
				$("frmPremies")["keuze_product_" + dekking + "_er"].value = premie.Eigenrisico;
				$("frmPremies")["keuze_product_" + dekking + "_pk"].value = premie.PoliskostenInCenten;

				$("div_" + dekking).down("a.offerte").removeClassName("disabled");
				$("div_" + dekking).down("a.aanvraag").removeClassName("disabled");
				$("div_" + dekking).down("div.voorwaarden").removeClassName("disabled");
			}
			else
			{
				$("div_" + dekking).down(".aanvragen").hide();
				div_premie.addClassName("geen_premie");

				div_premie.update('Geen premieberekening mogelijk <a id="help-gp1" class="pTip" name="Geen premieberekening mogelijk" href="help.php?item=geen-premie"><img alt="help" src="images/information.png"></a>');
				$("frmPremies")["keuze_product_" + dekking].value = -1;
				$("frmPremies")["keuze_product_" + dekking + "_pid"].value = -1;
				$("frmPremies")["keuze_product_" + dekking + "_mn"].value = -1;
				$("frmPremies")["keuze_product_" + dekking + "_premie"].value = -1;
				$("frmPremies")["keuze_product_" + dekking + "_er"].value = -1;
				$("frmPremies")["keuze_product_" + dekking + "_pk"].value = -1;
				PT_init();
			}
		});

	$$("#id_bt_m, #id_bt_k, #id_bt_h, #id_bt_j").invoke("enable");
}

function KS30090(params)
{
	if (popupVisible == true)
	{
		if (params.isJSON()) params = params.evalJSON();
		$("pu_text").update(params);

		$$("#pv span.pm").invoke("observe", "click", togglePV);
	}
	else
	{
		if (!params.isJSON()) json = Object.toJSON(params);
		setTimeout("KS30090(" + json + ")", 1000);
	}
}

function KS30100(params)
{
	sendMail("aanvraag-verhoeven");

	type = params.Type.toLowerCase();
	if (type == "offerte")
	{
		sendMail("offerte-autoverzekering");
	}
	else if (type == "polis")
	{
		sendMail("aanvraag-autoverzekering");
	}
}

function KS30290(avs)
{
	if (avs.Leeg)
	{
		$$("#frmAVs .dpn").invoke("hide");
		$$("#div_avs, #div_av_tot").invoke("hide");
		[$("div_avs"), $("div_av_tot")].invoke("hide");
		$("div_gav").update(avs.Leeg).show();
		setTimeout('$("frmAVs").submit()', 10000);
		return;
	}

	$$("#frmAVs .dpn").invoke("show");
	if (avs.SVI) showAV(avs, "SVI");
	if (avs.OVI) showAV(avs, "OVI");
	if (avs.RB)  showAV(avs, "RB");
	if (avs.NC)  showAV(avs, "NC");
	if (avs.PHN) showAV(avs, "PHN");
	if (avs.PHB) showAV(avs, "PHB");

	bt = $F($("frmAVs")["betalingstermijn"]);
	premie = $F($("frmAVs")["termijnpremie"]);

	/* Totaal bedrag */
	var div_av_tot = $("div_av_tot");
	div_av = new Element("div", {"class": "tot_premie"}).update("Totale premie");
	div_av_tot.insert({bottom: div_av});
	div_av = new Element("div", {"class": "premie"});
	span = new Element("span", {"class": "euros"}).update("&euro; " + Math.floor(premie / 100) + ",");
	div_av.insert({bottom: span});
	span = new Element("span", {"class": "centen"}).update(pad(premie % 100, 2));
	div_av.insert({bottom: span});
	span = new Element("span", {"class": "bt"}).update("per " + bt);
	div_av.insert({bottom: span});
	div_av_tot.insert({bottom: div_av});
	span = div_av = div_av_tot = null;
	
	updateTermijnpremie();
}

function KS30300(fkey, params)
{
	merk = params.Merk;
	model = params.Model;
	bouwmaand = params.Bouwmaand;
	bouwjaar = params.Bouwjaar;
	pa_ba = (fkey == "KS303001") ? "pa" : "ba";
	$("frmPremieBerekenen")["pa_ba"].value = pa_ba;
	$("frmPremieBerekenen")["merk_naam"].value = merk;
	$("frmPremieBerekenen")["model_naam"].value = model;

	$("id_mm_hidden").value = merk + " " + model;

	var typen = params.Typen;
	if (!Object.isArray(typen))
	{
		typen = [typen];
	}

	var items = [];
	overige_info = new Object();
	var i = 0;

	items[i++] = " |-1";
	typen.each(function(type)
		{
			items[i++] = type.Omschrijving + "|" + type.Id;
			var nw_bruto = (type.Rollsnieuwwaardebruto && (type.Rollsnieuwwaardebruto > 0)) ? type.Rollsnieuwwaardebruto : type.Nieuwwaardeinclbtw["!"];
			var nw_netto = (type.Rollsnieuwwaardenetto && (type.Rollsnieuwwaardenetto > 0)) ? type.Rollsnieuwwaardenetto : type.Nieuwwaardeinclbtw["!"];
			overige_info[type.Id] = new overigeInfo(nw_bruto, nw_netto, type.Dagwaardeinclbtw, type.Dagwaardeexclbtw, type.Brandstof, type.Transmissie, type.Koetswerk, type.Gewicht, type.Lediggewicht, type.Treingewicht, bouwmaand, bouwjaar, type.Beveiligingsklasse);
		});

	items.sort();

	fillSelect($("id_typen"), items);
	$("id_typen").selectedIndex = 0;

	$("flds_merkmodel").down("div.div_answer").update($F("id_mm_hidden"));
	$("flds_merkmodel").show();

	toggleWijzigen("id_kenteken", false);
	toggleWijzigen("id_typen", true);

	getBeveiligingsklasses();

	type_id = $F($("frmPremieBerekenen")["type_id"]);
	if (!type_id.empty())
	{
		$("id_typen").value = type_id;
		toggleWijzigen("id_typen", false);
	}
}

function overigeInfo(a, b, c, d, e, f, g, h, i, j, k, l, m)
{
	this.nieuwwaarde = a;
	this.nieuwwaarde_excl = b;
	this.dagwaarde = c;
	this.dagwaarde_excl = d;
	this.brandstof = e;
	this.transmissie = f;
	this.koetswerk = g;
	this.gewicht = h;
	this.lediggewicht = i;
	this.treingewicht = j;
	this.bouwmaand = k;
	this.bouwjaar = l;
	this.beveiligingsklasse = m;
}

function setOverigeInfoUitForm()
{
	var f = $("frmPremieBerekenen");
	type_id = $F(f["type_id"]);
	incl_btw = $F(f["incl_btw"]);

	bouwmaand = $F(f["bouwmaand"]);
	bouwjaar = $F(f["bouwjaar"]);
	brandstof = $F(f["brandstof"]);
	transmissie = $F(f["transmissie"]);
	koetswerk = $F(f["koetswerk"]);
	nieuwwaarde = (incl_btw == "ja") ? $F(f["nieuwwaarde"]) : 0;
	nieuwwaarde_excl = (incl_btw == "nee") ? $F(f["nieuwwaarde"]) : 0;
	dagwaarde = (incl_btw == "ja") ? $F(f["dagwaarde"]) : 0;
	dagwaarde_excl = (incl_btw == "nee") ? $F(f["dagwaarde"]) : 0;
	beveiligingsklasse = $F(f["beveiligingsklasse"]);
	gewicht = $F(f["gewicht"]);
	lediggewicht = $F(f["lediggewicht"]);
	treingewicht = $F(f["treingewicht"]);

	overige_info = {};
	overige_info[type_id] = new overigeInfo(nieuwwaarde, nieuwwaarde_excl, dagwaarde, dagwaarde_excl, brandstof, transmissie, koetswerk, gewicht, lediggewicht, treingewicht, bouwmaand, bouwjaar, beveiligingsklasse);
}

function setOverigeInfo()
{
	var nr = $F("id_typen");
	if (overige_info[nr])
	{
		var oi = overige_info[nr];
		var incl_btw = ($RF("frmPremieBerekenen", "btw") != "Ja");

		$("frmPremieBerekenen")["bouwmaand"].value = oi.bouwmaand;
		$("frmPremieBerekenen")["bouwjaar"].value = oi.bouwjaar;
		$("frmPremieBerekenen")["brandstof"].value = oi.brandstof;
		$("frmPremieBerekenen")["transmissie"].value = oi.transmissie;
		$("frmPremieBerekenen")["koetswerk"].value = oi.koetswerk;
		$("frmPremieBerekenen")["nieuwwaarde"].value = incl_btw ? oi.nieuwwaarde : oi.nieuwwaarde_excl;
		$("frmPremieBerekenen")["dagwaarde"].value = incl_btw ? oi.dagwaarde : oi.dagwaarde_excl;
		$("frmPremieBerekenen")["beveiligingsklasse"].value = oi.beveiligingsklasse;
		$("frmPremieBerekenen")["gewicht"].value = oi.gewicht;
		$("frmPremieBerekenen")["lediggewicht"].value = oi.lediggewicht;
		$("frmPremieBerekenen")["treingewicht"].value = oi.treingewicht;

		if ($("id_brandstof"))
		{
			bs_ = $("id_brandstof").select('option[value="' + oi.brandstof + '"]');
			bs_naam = (bs_.length != 0) ? bs_[0].text : "Onbekend";
		}
		else
		{
			switch (parseInt(oi.brandstof, 10))
			{
				case 1:bs_naam = "Benzine";break;
				case 2:bs_naam = "Diesel";break;
				case 3:bs_naam = "Elektrisch";break;
				case 4:bs_naam = "Hybr. Benz.";break;
				case 5:bs_naam = "Hybr. Dies.";break;
				case 6:bs_naam = "LPG";break;
				case 7:bs_naam = "Aardgas CNG";break;
				default:bs_naam = "Onbekend";break;
			}
		}
		$("frmPremieBerekenen")["brandstof_naam"].value = bs_naam;

		if ($("id_transmissie"))
		{
			tr_ = $("id_transmissie").select('option[value="' + oi.transmissie + '"]');
			tr_naam = (tr_.length != 0) ? tr_[0].text : "Onbekend";
		}
		else
		{
			switch (parseInt(oi.transmissie, 10))
			{
				case 1:tr_naam = "Handgeschakeld";break;
				case 2:tr_naam = "Automaat";break;
				default:tr_naam = "Onbekend";break;
			}
		}
		$("frmPremieBerekenen")["transmissie_naam"].value = tr_naam;

		if ($("id_koetswerk"))
		{
			kw_ = $("id_koetswerk").select('option[value="' + oi.koetswerk + '"]');
			kw_naam = (kw_.length != 0) ? kw_[0].text : "Onbekend";
		}
		else
		{
			switch (parseInt(oi.koetswerk, 10))
			{
				case 1:kw_naam = "Sedan";break;
				case 2:kw_naam = "Hatchback";break;
				case 3:kw_naam = "Coupe";break;
				case 4:kw_naam = "Cabrio hardtop.";break;
				case 5:kw_naam = "Terrein";break;
				case 6:kw_naam = "Combi";break;
				case 7:kw_naam = "MPV";break;
				case 8:kw_naam = "Bus";break;
				case 9:kw_naam = "Pick-up";break;
				case 14:kw_naam = "Terrein softtop";break;
				case 15:kw_naam = "SUV";break;
				case 16:kw_naam = "Cabrio softtop";break;
				case 17:kw_naam = "Targa";break;
				case 18:kw_naam = "Liftback";break;
				default:kw_naam = "Onbekend";break;
			}
		}
		$("frmPremieBerekenen")["koetswerk_naam"].value = kw_naam;
	}
}

function setRequest(fkey, soort, aan)
{
	switch(fkey.substr(0, 7))
	{
		case "KS30000":
			switch(soort)
			{
				case "Transmissies":reqKS30000T = aan;break;
				case "Brandstoffen":reqKS30000B = aan;break;
				case "Koetswerken":reqKS30000K = aan;break;
				case "Producten":reqKS30000P = aan;break;
				case "Beveiligingsklasses":reqKS30000X = aan;break;
			}
			break;
		case "KS30010":reqKS30010 = aan;break;
		case "KS30020":reqKS30020 = aan;break;
		case "KS30030":reqKS30030 = aan;break;
		case "KS30070":reqKS30070 = aan;break;
		case "KS30100":reqKS30100 = aan;break;
		case "KS30290":reqKS30290 = aan;break;
		case "KS30300":reqKS30300 = aan;break;
	}
}

function getRequest(fkey, soort)
{
	switch (fkey.substr(0, 7))
	{
		case "KS30000":
			switch (soort)
			{
				case "Transmissies":return reqKS30000T;break;
				case "Brandstoffen":return reqKS30000B;break;
				case "Koetswerken":return reqKS30000K;break;
				case "Producten":return reqKS30000P;break;
				case "Beveiligingsklasses":return reqKS30000X;break;
			}
			break;
		case "KS30010":return reqKS30010;break;
		case "KS30020":return reqKS30020;break;
		case "KS30030":return reqKS30030;break;
		case "KS30070":return reqKS30070;break;
		case "KS30100":return reqKS30100;break;
		case "KS30290":return reqKS30290;break;
		case "KS30300":return reqKS30300;break;
	}
}

function fillSelect(eSelect, items)
{
	eSelect.update("");
	items.each(function(item)
		{
			posDash = item.indexOf("|");
			if (posDash > -1)
			{
				value = item.substring(posDash + 1);
				valueShow = item.substring(0, posDash);
			}
			
			newOption = new Element("option", {"value" : value, "title" : valueShow}).update(valueShow);
			eSelect.insert({"bottom": newOption});
		});
}

function showAV(avs, type_av)
{
	termp = $F($("frmAVs")["termijnpremie"]);
	av_pids = $F($("frmAVs")["av_ids"]);
	checked = "";

	var av = avs[type_av];
	if (termp === "")
	{
		if (in_array(type_av, ["SVI", "RB"])) checked = " checked";
	}
	else
	{
		if (av_pids !== "")
		{
			av_pids = av_pids.evalJSON(true);
			for (var av_type in av_pids)
			{
				if (av_pids.hasOwnProperty(av_type))
				{
					if (av_pids[av_type] == av.Productid) checked = " checked";
				}
			}
		}
	}

	bt = $F($("frmAVs")["betalingstermijn"]);

	var div_avs = $("div_avs");
	div_av = new Element("div", {"class": "av"});
	div = new Element("div", {"class": "av_product"}).update('<input type="checkbox" name="keuze_av_' + type_av + '" class="radio dekking" value="' + av.Productid + '" id="id_av_' + type_av + '"' + checked + '><input type="hidden" name="termijnpremie_' + type_av + '" value="' + av.Termijnpremie + '"><label for="id_av_' + type_av + '">' + av.Naam + "</label>");
	div_av.insert({bottom: div});
	div = new Element("div", {"class": "premie"});
	span = new Element("span", {"class": "euros"}).update("&euro; " + Math.floor(av.Termijnpremie / 100) + ",");
	div.insert({bottom: span});
	span = new Element("span", {"class": "centen"}).update(pad(av.Termijnpremie % 100, 2));
	div.insert({bottom: span});
	span = new Element("span", {"class": "bt"}).update("per " + bt);
	div.insert({bottom: span});
	div_av.insert({bottom: div});
	div_avs.insert({bottom: div_av});
	span = div = div_av = div_avs = null;

	Event.observe("id_av_" + type_av, "click", updateTermijnpremie);
}

function updateTermijnpremie(event)
{
	// Als er een AV gewijzigd wordt, dan moet de stappenbalk niet meer klikbaar zijn
	if (event)
	{
		var stappen = $("stappen");
		if (!stappen.hasClassName("aa"))
		{
			$A(["ga1", "ga2", "av", "pb", "sv"]).each(function(cn)
				{
					stappen.removeClassName(cn);
				});
			stappen.addClassName("aa");

			links = $$("#stappen a.chk").findAll(function(link)
				{
					return (!link.hasClassName("autov") && !link.hasClassName("avs"));
				});
			links.invoke("removeClassName", "chk");
			links.invoke("observe", "click", cancelLink);
		}
	}

	var div_av_tot = $("div_av_tot");

	if (!div_av_tot.visible()) return;
	var termijnpremie = parseInt($F($("frmAVs")["premie"]), 10);

	["SVI", "OVI", "RB", "NC", "PHN", "PHB"].each(function(av)
		{
			if ($("id_av_" + av) && $("id_av_" + av).checked)
			{
				tp = parseInt($F($("frmAVs")["termijnpremie_" + av]), 10);
				termijnpremie = termijnpremie + tp;
			}
		});

	div_av_tot.down("span.euros").update("&euro; " + Math.floor(termijnpremie / 100) + ",");
	div_av_tot.down("span.centen").update(pad(termijnpremie % 100, 2));
	div_av_tot = null;

	$("frmAVs")["termijnpremie"].value = termijnpremie;

	if (this.tagName && (this.tagName.toLowerCase() == "input"))
	{
		av = this.id.substr(6);
		if ((av == "PHN") && $("id_av_PHB"))
		{
			if (this.checked)
			{
				$("id_av_PHB").checked = false;
				$("id_av_PHB").disable();
			}
			else
			{
				$("id_av_PHB").enable();
			}
		}
		else if ((av == "PHB") && $("id_av_PHN"))
		{
			if (this.checked)
			{
				$("id_av_PHN").checked = false;
				$("id_av_PHN").disable();
			}
			else
			{
				$("id_av_PHN").enable();
			}
		}
	}
}

