// owner: Rob

self.oCBMdata = { idMerk:0, idModelserie:0, idModelvariant:0, idUitvoering:0, nBouwjaar:0,
					sMerk:"", sModelserie:"", sModelvariant:"", sUitvoering:"",
					sKenteken:"", sVoertuigOmschr:"", CheckPrePostFields:function() { return true; } };
self.nCurrYear = null;
self.nMaxOptionsDivWidth = null;
self.aLeftDivPositions = [0, 0, 0, 0, 0];
self.aObliged = [1, 1, 1, 1, 0];
self.bAllowNonCarbase = false;
self.nCBPhotoWidth = null;
self.nHeightPrefields = 0;
self.nCurrOpened = 0;

function CBMEmptyForm()
{
	self.oCBMdata.idMerk = 0;
	self.oCBMdata.idModelserie = 0;
	self.oCBMdata.idModelvariant = 0;
	self.oCBMdata.idUitvoering = 0;
	self.oCBMdata.nBouwjaar = 0;
	self.oCBMdata.sMerk = "";
	self.oCBMdata.sModelserie = "";
	self.oCBMdata.sModelvariant = "";
	self.oCBMdata.sUitvoering = "";
	self.oCBMdata.sKenteken = "";
	self.oCBMdata.sVoertuigOmschr = "";
}

function CBMSetWorkdata(nMaxWidth, nPhotoWidth, aLeftDivPositions, aObliged, bAllowNonCarbase)
{
	self.nMaxOptionsDivWidth = nMaxWidth;
	self.nCBPhotoWidth = nPhotoWidth;
	self.aLeftDivPositions = aLeftDivPositions;
	self.aObliged = aObliged;
	self.bAllowNonCarbase = bAllowNonCarbase;
}

function CBMPresetMerk(idMerk, sMerk, nBouwjaar)
{
	self.oCBMdata.idMerk = idMerk;
	self.oCBMdata.sMerk = sMerk;
	self.oCBMdata.nBouwjaar = nBouwjaar ? nBouwjaar : 0;

	var td = document.getElementById('idCBM_merk');
	if (!td)
		return;

	td.innerHTML = '<a href="javascript:ChooseCBMMerk(' + self.nMaxOptionsDivWidth + ', ' + self.nCBPhotoWidth + ')" class="cbmlinkblock mw200">' + sMerk + '</a>';
	if (nBouwjaar)
	{
		td = document.getElementById('idCBM_bouwjaar');
		if (td)
			td.innerHTML = '<a href="javascript:ChooseCBMBouwjaar(' + self.nCurrYear + ')" class="cbmlinkblock mw200">' + nBouwjaar + '</a>';
	}
	UpdateCBMModelserie();
}

function CBMPresetModelserie(idMerk, idModelserie, sMerk, sModelserie, nBouwjaar)
{
	CBMPresetMerk(idMerk, sMerk, nBouwjaar);
	self.oCBMdata.idModelserie = idModelserie;
	self.oCBMdata.sModelserie = sModelserie;

	var td = document.getElementById('idCBM_modelserie');
	if (td)
	{
		if (sModelserie)
			td.innerHTML = '<a href="javascript:ChooseCBMModelserie()" class="cbmlinkblock mw200">' + sModelserie + '</a>';
		else
			td.innerHTML = '<a href="javascript:ChooseCBMModelserie()" class="cbmlinkblock s11 mw200"><img src="/images/sqbrack_open.gif" border="0" align="absmiddle" />kies de modelserie<img src="/images/sqbrack_close.gif" border="0" align="absmiddle" /></a>';
		UpdateCBMModelvariant();
	}
}

function CBMPresetModelvariant(idFoto, idMerk, idModelserie, idModelvariant, sMerk, sModelserie, sModelvariant, nBouwjaar)
{
	CBMPresetModelserie(idMerk, idModelserie, sMerk, sModelserie, nBouwjaar);
	self.oCBMdata.idModelvariant = idModelvariant;
	self.oCBMdata.sModelvariant = sModelvariant;

	var td = document.getElementById('idCBM_modelvariant');
	if (td)
	{
		td.innerHTML = '<a href="javascript:ChooseCBMModelvariant()" class="cbmlinkblock mw200">' + sModelvariant + '</a>';
		UpdateCBMUitvoering();
	}
	if (idFoto)
		makeAjaxRequest("/async/get_fotoboekfoto.php?id=" + idFoto + "&w=" + self.nCBPhotoWidth, "ShowCBPhoto");
}

function CBMPresetForm(idFoto, idMerk, idModelserie, idModelvariant, idUitvoering, sMerk, sModelserie, sModelvariant, sUitvoering, nBouwjaar)
{
	CBMPresetModelvariant(idFoto, idMerk, idModelserie, idModelvariant, sMerk, sModelserie, sModelvariant, nBouwjaar);
	self.oCBMdata.idUitvoering = idUitvoering;
	self.oCBMdata.sUitvoering = sUitvoering;

	var td = document.getElementById('idCBM_uitvoering');
	if (td)
	{
		td.innerHTML = '<a href="javascript:ChooseCBMUitvoering()" class="cbmlinkblock mw200">' + sUitvoering + '</a>';
		UpdateCBMUitvoering();
	}
}


// several functions that show the choice options
function EditCBMKenteken(sKenteken)
{
	var obj = document.getElementById("idCbmEditKenteken");
	if (!obj)
		return;

	var s = "<div class='localinputdiv'><form onsubmit='TryKenteken(this.kenteken.value); return false'>";
	s += "<input id='idKentekenInput' type='text' name='kenteken' value='" + (sKenteken ? sKenteken : "") + "' class='awform' style='width:240px; margin-right:10px' /><span id='idButtons2000'>";
	s += "<button type='submit' class='white' style='width:50px; height:18px; font-weight:normal; margin-right:12px'>Ok</button><a href='javascript:CloseKentekenForm()' class='s10'>Annuleren</a>";
	s += "</span></form><span id='idKentekenError'></span></div>";
	obj.innerHTML = s;
	var ctrl = document.getElementById("idKentekenInput");
	ctrl.focus();
	ctrl.select();
	HideCBMOptions();
//	if (CloseCBMOptionsIfOpen(7))
//		return;
//
//	self.nCurrOpened = 7;
//	SetTopCBMOptions(0);
//	var s = '<div style="width:270px; height:16px; text-align:right"><img src="/images/btn_close.gif" onclick="HideCBMOptions()" style="cursor:pointer" /></div>'
//			+ '<h4 style="margin:0 0 0 16px">Kenteken</h4><form onsubmit="TryKenteken(this.kenteken.value); return false"><table style="margin:10px"><tr><td><input id="idKentekenInput" type="text" name="kenteken" value="' + (sKenteken ? sKenteken : '') + '" maxlength="8" class="kenteken_home" onblur="this.value=BeautifyKenteken(this.value)" /></td>'
//			+ '<td style="padding-left:16px"><button type="submit" class="white">Ok</button></td></tr></table></form><div id="idKentekenError" class="error" style="margin-left:16px"></div>';
//	ShowCBMOptions(s);
//	document.getElementById("idKentekenInput").focus();
}
function CloseKentekenForm()
{
	var obj = document.getElementById("idCbmEditKenteken");
	if (obj)
		obj.innerHTML = "<div class='emptydiv'></div>";
}

function ChooseCBMMerk()
{
	if (CloseCBMOptionsIfOpen(1))
		return;

	self.nCurrOpened = 1;
	SetTopCBMOptions(23);
	if (self.bAllowNonCarbase)
		makeAjaxRequest("/async/get_cbmx_merken.php?w=" + self.nMaxOptionsDivWidth, "ShowCBMOptions");
	else
		makeAjaxRequest("/async/get_cbm_merken.php?bouwjaar=" + self.oCBMdata.nBouwjaar + "&w=" + self.nMaxOptionsDivWidth, "ShowCBMOptions");
}

function ChooseCBMModelserie()
{
	if (CloseCBMOptionsIfOpen(2))
		return;

	self.nCurrOpened = 2;
	SetTopCBMOptions(46);
	if (self.bAllowNonCarbase)
		makeAjaxRequest("/async/get_cbmx_modelseries.php?merk=" + self.oCBMdata.sMerk + "&w=" + self.nMaxOptionsDivWidth, "ShowCBMOptions");
	else if (self.oCBMdata.idMerk)
		makeAjaxRequest("/async/get_cbm_modelseries.php?bouwjaar=" + self.oCBMdata.nBouwjaar + "&merk=" + self.oCBMdata.idMerk + "&w=" + self.nMaxOptionsDivWidth, "ShowCBMOptions");
}

function ChooseCBMModelvariant()
{
	if (CloseCBMOptionsIfOpen(3))
		return;

	self.nCurrOpened = 3;
	SetTopCBMOptions(69);
	if (self.oCBMdata.idMerk && (self.oCBMdata.nBouwjaar || (self.oCBMdata.idModelserie > 0)))
	{
		if (self.bAllowNonCarbase)
			makeAjaxRequest("/async/get_cbmx_modelvarianten.php?bouwjaar=" + self.oCBMdata.nBouwjaar + "&merk=" + self.oCBMdata.idMerk + "&modelserie=" + self.oCBMdata.idModelserie + "&w=" + self.nMaxOptionsDivWidth + (browser.ie ? "&ie=1" : ""), "ShowCBMOptions");
		else
			makeAjaxRequest("/async/get_cbm_modelvarianten.php?bouwjaar=" + self.oCBMdata.nBouwjaar + "&merk=" + self.oCBMdata.idMerk + "&modelserie=" + self.oCBMdata.idModelserie + "&w=" + self.nMaxOptionsDivWidth + (browser.ie ? "&ie=1" : ""), "ShowCBMOptions");
	}
}

function ChooseCBMUitvoering()
{
	if (CloseCBMOptionsIfOpen(4))
		return;

	self.nCurrOpened = 4;
	SetTopCBMOptions(92);
	if (self.oCBMdata.idMerk && (self.oCBMdata.nBouwjaar || (self.oCBMdata.idModelserie > 0)) && self.oCBMdata.idModelvariant)
	{
		if (self.bAllowNonCarbase)
			makeAjaxRequest("/async/get_cbmx_uitvoeringen.php?bouwjaar=" + self.oCBMdata.nBouwjaar + "&modelvariant=" + self.oCBMdata.idModelvariant + (browser.ie ? "&ie=1" : ""), "ShowCBMOptions");
		else
			makeAjaxRequest("/async/get_cbm_uitvoeringen.php?bouwjaar=" + self.oCBMdata.nBouwjaar + "&modelvariant=" + self.oCBMdata.idModelvariant + (browser.ie ? "&ie=1" : ""), "ShowCBMOptions");
	}
}

function ChooseCBMBouwjaar(nCurrYear)
{
	self.nCurrYear = nCurrYear;
	if (CloseCBMOptionsIfOpen(5))
		return;

	self.nCurrOpened = 5;
	SetTopCBMOptions(115);
	if (self.oCBMdata.idUitvoering > 0)
		makeAjaxRequest("/async/get_cbm_jaren.php?uitvoering=" + self.oCBMdata.idUitvoering, "ShowCBMOptions");
	else if (self.oCBMdata.idModelvariant > 0)
		makeAjaxRequest("/async/get_cbm_jaren.php?modelvariant=" + self.oCBMdata.idModelvariant, "ShowCBMOptions");
	else if (self.oCBMdata.idModelserie > 0)
		makeAjaxRequest("/async/get_cbm_jaren.php?modelserie=" + self.oCBMdata.idModelserie, "ShowCBMOptions");
	else if (self.oCBMdata.idMerk > 0)
		makeAjaxRequest("/async/get_cbm_jaren.php?merk=" + self.oCBMdata.idMerk, "ShowCBMOptions");
	else
	{
		var nCount = nCurrYear - (self.bAllowNonCarbase ? 1944 : 1979);
		var nCols = Math.ceil((nCount + 1) / 10);
		var nRows = Math.ceil((nCount + 1) / nCols);
		var s = '<div style="width:' + (self.bAllowNonCarbase ? 650 : 270) + 'px; height:16px; text-align:right"><img src="/images/btn_close.gif" onclick="HideCBMOptions()" style="cursor:pointer" /></div>'
				+ '<h4 style="margin:0 0 0 16px">Kies het bouwjaar</h4><table style="margin:16px"><tr valign="top">';
		var nYear = nCurrYear;
		for (var i=0; i<nCount; nYear--)
		{
			if ((i % nRows) == 0)
			{
				if (i)
					s += '<td width="60">&nbsp;</td>';
				s += '<td>';
			}
			s += '<div><a class="cbmlinkblock" href="javascript:SetCBMYear(' + nYear + ')">' + nYear + '</a></div>';

			if (++i == nCount)
			{
				s += '<div><a class="cbmlinkblock" href="javascript:SetCBMYear(0)">(geen)</a></div>';
				s += '</td>';
			}
			else if ((i % nRows) == 0)
				s += '</td>';
		}
		s += '</tr></table>';
		ShowCBMOptions(s);
	}
}

function ChooseCBMStatus(nCount)
{
	if (CloseCBMOptionsIfOpen(6))
		return;

	self.nCurrOpened = 6;
	SetTopCBMOptions(138);
	var s = '<div style="width:270px; height:16px; text-align:right"><img src="/images/btn_close.gif" onclick="HideCBMOptions()" style="cursor:pointer" /></div>'
			+ '<h4 style="margin:0 0 0 16px">Kies een optie</h4><div style="margin:16px">';
	var aOptions = ["", "mijn huidige auto", "mijn vorige auto", "mijn favoriete auto"];
	for (var i=1; i<=nCount; i++)
		s += '<div><a class="cbmlinkblock" href="javascript:SetCBMStatus(' + i + ", '" + aOptions[i] + "', " + nCount + ')">' + aOptions[i] + '</a></div>';
	s += '</div>';
	ShowCBMOptions(s);
}


function ChooseCBMKentekenAlt(sUrl)
{
/*    if (self.idCBM_kenteken.sKenteken) */
    var obj = document.getElementById('kentekenform');
//    makeAjaxRequest("/async/get_cbm_kenteken.php?kenteken=" + obj.idCBM_kenteken.value + "&cache=no", "ShowCBMKenteken");
    makeAjaxRequest("/async/get_cbm_kenteken.php?kenteken=" + obj.idCBM_kenteken.value + "&sUrl=" +sUrl +"&cache=no", "ShowCBMKenteken");
}



function ChooseCBMKenteken()
//function ChooseCBMKenteken(sUrl)
{
/*    if (self.idCBM_kenteken.sKenteken) */
	var obj = document.getElementById('kentekenform');
	makeAjaxRequest("/async/get_cbm_kenteken.php?kenteken=" + obj.idCBM_kenteken.value + "&cache=no", "ShowCBMKenteken");
//	makeAjaxRequest("/async/get_cbm_kenteken.php?kenteken=" + obj.idCBM_kenteken.value + "&sUrl=" +sUrl +"&cache=no", "ShowCBMKenteken");
}
 
function EnterCBMKenteken(myfield,e)
//function EnterCBMKenteken(myfield,e,sUrl)
{
	var keycode;
	if (window.event)
		keycode = window.event.keyCode;
	else if (e)
		keycode = e.which;
	else
		return true;

	if (keycode == 13)
	{
		ChooseCBMKenteken();
//		ChooseCBMKenteken(sUrl);
		return false;
	}
	else
		return true;
}
 
function ShowCBMKenteken(sTxt)
{
	var obj = document.getElementById('idCBM_kentekenuitvoeringen');
	obj.innerHTML = sTxt;
}



function TryKenteken(sKenteken)
{
	sKenteken = sKenteken.toUpperCase().replace(/[^A-Z0-9]/g, "");
	if (sKenteken.length == 6)
		makeAjaxRequest("/async/get_cbm_databykenteken.php?kenteken=" + sKenteken + (self.bAllowNonCarbase ? "" : "&cbonly=1") + (browser.ie ? "&ie=1" : ""), "ShowCBMdataByKenteken");
	else if (sKenteken.length)
	{
		var obj = document.getElementById('idKentekenError');
		if (obj)
			obj.innerHTML = "Ongeldig kenteken<br />&nbsp;";
//		setTimeout("HideCBMOptions()", 1000);
	}
	else
	{
		self.oCBMdata.sKenteken = "";
		self.oCBMdata.sVoertuigOmschr = "";
		var td = document.getElementById('idCBM_kenteken');
		td.innerHTML = '<div id="idCbmEditKenteken" class="relpos"></div><a href="javascript:EditCBMKenteken()" class="cbmlinkblock s11 mw200"><img src="/images/sqbrack_open.gif" border="0" align="absmiddle" />voer evt. het kenteken in<img src="/images/sqbrack_close.gif" border="0" align="absmiddle" /></a>';
		HideCBMOptions();
	}
}
 
function ShowCBMdataByKenteken(sTxt)
{
	var aData = sTxt.split("|");
	var sKenteken = BeautifyKenteken(aData[1]);
	var td = document.getElementById('idCBM_kenteken');
	td.innerHTML = '<div id="idCbmEditKenteken" class="relpos"></div><a href="javascript:EditCBMKenteken(\'' + sKenteken + '\')" class="cbmlinkblock s11 mw200">' + sKenteken + '</a>';

	if (aData[0] == "0")
	{
		self.oCBMdata.sKenteken = aData[1];
//		setTimeout("HideCBMOptions()", 1000);
	}
	else
	{
//		HideCBMOptions();
		CBMEmptyForm();
		ShowCBPhoto(null);
		self.oCBMdata.sKenteken = aData[1];
		self.oCBMdata.sVoertuigOmschr = aData[10];
		if (aData[5] && (aData[5] != "0"))
			CBMPresetForm(aData[11], aData[2], aData[3], aData[4], aData[5], aData[7], aData[8], aData[9], aData[10], aData[6]);
		else if (aData[4] && (aData[4] != "0"))
			CBMPresetModelvariant(aData[11], aData[2], aData[3], aData[4], aData[7], aData[8], aData[9], aData[6]);
		else if (aData[2] && (aData[2] != "0"))
//		else if (aData[3] && (aData[3] != "0"))
			CBMPresetModelserie(aData[2], aData[3], aData[7], aData[8], aData[6]);
//		else if (aData[2] && (aData[2] != "0"))
//			CBMPresetMerk(aData[2], aData[7], aData[6]);

		if (aData[12] && (aData[12] != ""))
		{
			var aCbIds = aData[12].split("#");
			if (aCbIds.length > 1)
			{
				var sIds = "";
				for (var i=0; i<aCbIds.length; i++)
					sIds += (sIds ? "&" : "") + "id[]=" + aCbIds[i];

				self.nCurrOpened = 4;
				SetTopCBMOptions(92);
				if (self.oCBMdata.idMerk && (self.oCBMdata.nBouwjaar || (self.oCBMdata.idModelserie > 0)) && self.oCBMdata.idModelvariant)
					makeAjaxRequest("/async/get_cbm_uitvoeringen_ids.php?" + sIds + (browser.ie ? "&ie=1" : ""), "ShowCBMOptions");
			}
		}
	}

//alert(sTxt);
}




// four function that handle showing the options
function SetTopCBMOptions(y)
{
	var objOuter = document.getElementById('idCBM_options');
	var objInner = document.getElementById('idCBM_contents');
	if (!objInner)
		objInner = objOuter;
	if (objOuter && objOuter.style)
	{
		objOuter.style.top = (self.nHeightPrefields + y) + "px";
		objOuter.style.left = ((self.nCurrOpened > self.aLeftDivPositions.length) ? "-3" : self.aLeftDivPositions[self.nCurrOpened - 1] - 3) + "px";
		objInner.style.width = ((self.nCurrOpened == 1) ? self.nMaxOptionsDivWidth + "px" : "");
	}
}

function ShowCBMOptions(sTxt)
{
	var objOuter = document.getElementById('idCBM_options');
	var objInner = document.getElementById('idCBM_contents');
	if (!objInner)
		objInner = objOuter;
	if (objOuter && objOuter.style)
	{
		if (typeof objInner.style.maxHeight == "undefined")	// if (browser.ie)
			objInner.style.height = "390px";
		objInner.innerHTML = sTxt;
		objOuter.style.visibility = "visible";
	}
	CloseKentekenForm();
}

function HideCBMOptions()
{
	document.getElementById('idCBM_options').style.visibility = "hidden";
	self.nCurrOpened = 0;
}

function CloseCBMOptionsIfOpen(nCurr)
{
	if (nCurr != self.nCurrOpened)
		return false;
	var obj = document.getElementById('idCBM_options');
	if (obj && obj.style && (obj.style.visibility == "visible"))
	{
		obj.style.visibility = "hidden";
		self.nCurrOpened = 0;
		return true;
	}
	return false;
}

// four ajaxresponsehandlers
function ShowCBPhoto(sTag)
{
	var obj = document.getElementById('idCBM_photo');
	if (obj)
		obj.innerHTML = sTag ? sTag : '<img src="/images/spacer.gif" width="' + self.nCBPhotoWidth + '" height="10" border="0" />';
}

function AdjustCBMModelserie(bExists)
{
	if (bExists == 0)
	{
		self.oCBMdata.idModelserie = 0;
		UpdateCBMModelserie();
	}
	else if (self.oCBMdata.idModelvariant)
		makeAjaxRequest("/async/check_cbmmodelvariant.php?bouwjaar=" + self.oCBMdata.nBouwjaar + "&merk=" + self.oCBMdata.idMerk + "&model=" + self.oCBMdata.idModel + "&uitvoering=" + self.oCBMdata.idUitvoering, "AdjustCBMUitvoering");
}

function AdjustCBMModelvariant(bExists)
{
	if (bExists == 0)
	{
		self.oCBMdata.idModelvariant = 0;
		ShowCBPhoto("");
		UpdateCBMModelvariant();
	}
	else if (self.oCBMdata.idUitvoering)
		makeAjaxRequest("/async/check_cbmuitvoering.php?bouwjaar=" + self.oCBMdata.nBouwjaar + "&merk=" + self.oCBMdata.idMerk + "&model=" + self.oCBMdata.idModel + "&uitvoering=" + self.oCBMdata.idUitvoering, "AdjustCBMUitvoering");
}

function AdjustCBMUitvoering(bExists)
{
	if (bExists == 0)
	{
		self.oCBMdata.idUitvoering = 0;
		UpdateCBMUitvoering();
	}
}


// five functions to set the choosen options
function SetCBMMerk(idMerk, sMerk)
{
	if (self.oCBMdata.sMerk != sMerk)
	{
		self.oCBMdata.idMerk = idMerk;
		self.oCBMdata.sMerk = sMerk;
		self.oCBMdata.idModelserie = 0;
		self.oCBMdata.sModelserie = "";
		self.oCBMdata.idModelvariant = 0;
		self.oCBMdata.idUitvoering = 0;
		ShowCBPhoto("");
	}

	var td = document.getElementById('idCBM_merk');
	td.innerHTML = '<a href="javascript:ChooseCBMMerk()" class="cbmlinkblock mw200">' + sMerk + '</a>';
	UpdateCBMModelserie();
	HideCBMOptions();
}

function SetCBMModelserie(idModelserie, sModelserie)
{
	if (self.oCBMdata.sModelserie != sModelserie)
	{
		self.oCBMdata.idModelserie = idModelserie;
		self.oCBMdata.sModelserie = sModelserie;
		self.oCBMdata.idModelvariant = 0;
		self.oCBMdata.idUitvoering = 0;
		ShowCBPhoto("");
//		UpdateObligedStars();
	}
	UpdateCBMModelserie();
	HideCBMOptions();
}

function SetCBMModelvariant(idModelvariant, sModelvariant, idModelserie, sModelserie, idFoto)
{
	if (self.oCBMdata.idModelvariant != idModelvariant)
	{
		self.oCBMdata.idModelvariant = idModelvariant;
		self.oCBMdata.sModelvariant = sModelvariant;
		self.oCBMdata.idUitvoering = 0;
		ShowCBPhoto("");
		UpdateCBMModelvariant();
//		UpdateObligedStars();
	}
	if (self.oCBMdata.idModelserie > 0)
	{
		self.oCBMdata.idModelserie = idModelserie;
		self.oCBMdata.sModelserie = sModelserie;
		UpdateCBMModelserie();
	}
	else
		UpdateCBMModelvariant();
	HideCBMOptions();
	if (idFoto && self.nCBPhotoWidth)
		makeAjaxRequest("/async/get_fotoboekfoto.php?id=" + idFoto + "&w=" + self.nCBPhotoWidth, "ShowCBPhoto");
}

function SetCBMUitvoering(idUitvoering, sUitvoering)
{
	self.oCBMdata.idUitvoering = idUitvoering;
	self.oCBMdata.sUitvoering = sUitvoering;
	UpdateCBMUitvoering();
	HideCBMOptions();
}

function SetCBMYear(nYear)
{
	if (self.oCBMdata.nBouwjaar != nYear)
	{
		self.oCBMdata.nBouwjaar = nYear;

		var td = document.getElementById('idCBM_bouwjaar');
		if (nYear)
			td.innerHTML = '<a href="javascript:ChooseCBMBouwjaar(' + self.nCurrYear + ')" class="cbmlinkblock mw200">' + nYear + '</a>';
		else
			td.innerHTML = '<a href="javascript:ChooseCBMBouwjaar(' + self.nCurrYear + ')" class="cbmlinkblock s11 mw200"><img src="/images/sqbrack_open.gif" border="0" align="absmiddle" />kies evt. het bouwjaar<img src="/images/sqbrack_close.gif" border="0" align="absmiddle" /></a>';
//		if (self.oCBMdata.idMerk && (self.oCBMdata.idModelserie > 0))
//			makeAjaxRequest("/async/check_cbmmodelserie.php?bouwjaar=" + nYear + "&merk=" + self.oCBMdata.idMerk + "&modelserie=" + self.oCBMdata.idModelserie, "AdjustCBMModelserie");
//		else if (self.oCBMdata.idMerk && self.oCBMdata.idModelvariant)
//			makeAjaxRequest("/async/check_cbmmodelvariant.php?bouwjaar=" + nYear + "&merk=" + self.oCBMdata.idMerk + "&modelserie=" + self.oCBMdata.idModelserie + "&modelvariant=" + self.oCBMdata.idModelvariant, "AdjustCBMModelvariant");
//		else
			UpdateCBMModelvariant();
	}
	HideCBMOptions();
}

function SetCBMStatus(nStatus, sStatus, nCount)
{
	if (self.oCBMdata.nStatus != nStatus)
	{
		self.oCBMdata.nStatus = nStatus;

		var td = document.getElementById('idCBM_status');
		if (nStatus)
			td.innerHTML = '<a href="javascript:ChooseCBMStatus(' + nCount + ')" class="cbmlinkblock mw200">' + sStatus + '</a>';
		else
			td.innerHTML = '<a href="javascript:ChooseCBMStatus(' + nCount + ')" class="cbmlinkblock s11 mw200"><img src="/images/sqbrack_open.gif" border="0" align="absmiddle" />kies evt. het bouwjaar<img src="/images/sqbrack_close.gif" border="0" align="absmiddle" /></a>';
//		UpdateObligedStars();
		UpdateSubmitButton();
	}
	HideCBMOptions();
}



// functions to update the display
function UpdateCBMModelserie()
{
	var td = document.getElementById('idCBM_modelserie');
	if (!self.oCBMdata.sMerk)
	{
		td.innerHTML = "&nbsp;";
		self.oCBMdata.idMerk = 0;
		self.oCBMdata.idModelserie = 0;
		self.oCBMdata.sModelserie = "";
	}
	else if (self.oCBMdata.sModelserie)
		td.innerHTML = '<a href="javascript:ChooseCBMModelserie()" class="cbmlinkblock mw200">' + self.oCBMdata.sModelserie + '</a>';
	else
		td.innerHTML = '<a href="javascript:ChooseCBMModelserie()" class="cbmlinkblock s11 mw200"><img src="/images/sqbrack_open.gif" border="0" align="absmiddle" />kies de modelserie<img src="/images/sqbrack_close.gif" border="0" align="absmiddle" /></a>';

	UpdateCBMModelvariant();
}

function UpdateCBMModelvariant()
{
	var td = document.getElementById('idCBM_modelvariant');
	if ((self.oCBMdata.idModelserie < 0) || (self.oCBMdata.idMerk <= 0) || (!self.oCBMdata.nBouwjaar && !self.oCBMdata.idModelserie)) 
	{
		td.innerHTML = "&nbsp;";
		self.oCBMdata.idModelvariant = 0;
	}
	else if (self.oCBMdata.idModelvariant)
	{
		var regexp = new RegExp("^" + self.oCBMdata.sModelserie + "(,)?\\s");
		td.innerHTML = '<a href="javascript:ChooseCBMModelvariant()" class="cbmlinkblock mw200">' + self.oCBMdata.sModelvariant.replace(regexp, "") + '</a>';
	}
	else
		td.innerHTML = '<a href="javascript:ChooseCBMModelvariant()" class="cbmlinkblock s11 mw200"><img src="/images/sqbrack_open.gif" border="0" align="absmiddle" />kies een modelvariant<img src="/images/sqbrack_close.gif" border="0" align="absmiddle" /></a>';

	UpdateCBMUitvoering();
}

function UpdateCBMUitvoering()
{
	var td = document.getElementById('idCBM_uitvoering');
	if (self.oCBMdata.idModelvariant <= 0)
//	if ((!self.oCBMdata.nBouwjaar && (self.oCBMdata.idModelserie <= 0)) || !self.oCBMdata.idMerk || (self.oCBMdata.idModelvariant <= 0))
	{
		td.innerHTML = "&nbsp;";
		self.oCBMdata.idUitvoering = 0;
	}
	else if (self.oCBMdata.idUitvoering)
	{
		var regexp = new RegExp("^" + self.oCBMdata.sModelserie + "(,)?\\s");
		td.innerHTML = '<a href="javascript:ChooseCBMUitvoering()" class="cbmlinkblock mw200">' + self.oCBMdata.sUitvoering.replace(regexp, "") + '</a>';
	}
	else
		td.innerHTML = '<a href="javascript:ChooseCBMUitvoering()" class="cbmlinkblock s11 mw200"><img src="/images/sqbrack_open.gif" border="0" align="absmiddle" />kies de uitvoering<img src="/images/sqbrack_close.gif" border="0" align="absmiddle" /></a>';

	UpdateSubmitButton();
}

function UpdateSubmitButton()
{
	var bReady = ((self.oCBMdata.idUitvoering > 0) && (self.oCBMdata.nBouwjaar || !self.aObliged[4]) && self.oCBMdata.CheckPrePostFields());
	if (!bReady && self.bAllowNonCarbase)
		bReady = (((self.oCBMdata.idUitvoering < 0) || (self.oCBMdata.idModelvariant < 0) || (self.oCBMdata.idModelserie < 0)) && self.oCBMdata.sModelserie && self.oCBMdata.CheckPrePostFields());

//	var bReady = (self.oCBMdata.sMerk || !self.aObliged[0]) && (self.oCBMdata.sModelserie || !self.aObliged[1]) && self.oCBMdata.CheckPrePostFields();
//	if (bReady && (!self.bAllowNonCarbase || (self.oCBMdata.idModelserie > 0)))
//	{
//		bReady = (self.oCBMdata.idModelvariant || !self.aObliged[2])
//			&& ((self.oCBMdata.idModelvariant < 0) || self.oCBMdata.idUitvoering || !self.aObliged[3])
//			&& (self.oCBMdata.nBouwjaar || !self.aObliged[4]);
//	}
	var obj = document.getElementById('idCBM_submit');
	if (obj)
		obj.style.visibility = (bReady ? "visible" : "hidden");
	UpdateObligedStars();
}

function UpdateObligedStars()
{
//	var bObliged = (!self.bAllowNonCarbase || !self.oCBMdata.sModelserie || (self.oCBMdata.idModelserie >= 0));
	var obj = document.getElementById('idVariantObliged');
	if (!obj)
		return;

	obj.innerHTML = ((self.oCBMdata.idModelserie > 0) || (self.aObliged[2] && !self.oCBMdata.idModelserie) ? "*" : "");
//	obj.innerHTML = ((self.aObliged[2] && bObliged) ? "*" : "");

	obj = document.getElementById('idUitvoeringObliged');
	obj.innerHTML = ((self.oCBMdata.idModelvariant > 0) || (self.aObliged[3] && !self.oCBMdata.idModelvariant && (self.oCBMdata.idModelserie > -1)) ? "*" : "");
//	obj.innerHTML = ((self.aObliged[3] && (self.oCBMdata.idModelvariant >= 0) && bObliged) ? "*" : "");

	obj = document.getElementById('idBouwjaarObliged');
	obj.innerHTML = (self.aObliged[4] ? "*" : "");
//	obj.innerHTML = ((self.aObliged[4] && bObliged) ? "*" : "");
}



function CBMSubmit(sCallbackFunc)
{
	eval(sCallbackFunc + "(" + self.oCBMdata.idUitvoering + ", " + self.oCBMdata.nBouwjaar + ", '" + self.oCBMdata.sMerk
			+ "', '" + self.oCBMdata.sModelserie.replace(/'/g, "\\'") + "', '" + ((self.oCBMdata.idModelvariant > 0) ? self.oCBMdata.sModelvariant.replace(/'/g, "\\'") : self.oCBMdata.sVoertuigOmschr.replace(/'/g, "\\'")) + "', " + self.oCBMdata.idModelvariant
			+ (((self.oCBMdata.idModelserie < 0) || (self.oCBMdata.idModelvariant < 0) || (self.oCBMdata.idUitvoering <= 0)) ? ", true)" : ")"));
}




// extended functionality
function CBMCheckStatus() { return (self.oCBMdata.nStatus != 0); }
