
Number.prototype.FormatInteger = _FormatInteger;
String.prototype.FormatInteger = _FormatInteger;
function _FormatInteger()
{
	var i, j, sRet = "";
	var sStripped = this.toString().replace(/[^\d]/g, "");
	for (i=sStripped.length-1, j=0; i>=0; i--)
	{
		sRet = sStripped.charAt(i) + sRet;
		if (i && !(++j % 3))
			sRet = "." + sRet;
	}
	return sRet;
}

Number.prototype.toHex = function()
{
	var s = "", d, n = this.valueOf();
	while (n)
	{
		d = n & 15;
		if (d < 10)
			s = d.toString() + s;
		else
			s = String.fromCharCode(d + 55) + s;
		n >>= 4;
	}
	return s;
}

function InitForm(form, sCtrlName, bSelect)
{
	if (typeof form == "string")
		form = document.getElementById(form);
	if (form)
	{
		form[sCtrlName].focus();
		if (bSelect)
			form[sCtrlName].select();
	}
}

var sSite = "www.autoweek.nl";

function WordClip(s, nMaxChars)
{
	if (s.length <= nMaxChars)
		return s;

	var regexp = /\s/;
	if (regexp.test(s.charAt(nMaxChars)))
		s = s.slice(0, nMaxChars);
	else
	{
		s = s.slice(0, nMaxChars);
		var nPos = s.lastIndexOf(" ");
		if (nPos > 0)
			s = s.slice(0, nPos);
	}

	regexp = /[\.\?\!]$/;
	if (!regexp.test(s))
		s += " ...";

	return s;
}

function f_tog(n, bOn)
{
	var aSelects = document.getElementsByTagName("select");
	for (var i=0; i<aSelects.length; i++)
	{
		if (aSelects[i].id)
		{
			c = aSelects[i].id.charAt(n);
			if (c != "0")
				aSelects[i].style.visibility = (bOn ? "visible" : "hidden");
		}
	}
}

function ToggleCheckbox(idCheckbox)
{
	var ctrl = document.getElementById(idCheckbox);
	if (ctrl)
		ctrl.checked = ctrl.checked ? false : true;
}

self.aMenuTimers = new Array();

function Dropdown(id, bShow, nNrDropdown)
{
	var nDelay = (browser.ie && browser.win && browser.version < 7 && browser.version >= 5.5) ? 240 : 300;
//	var nDelay = (bShow && browser.ie && browser.win && browser.version < 7 && browser.version >= 5.5) ? 240 : 300;

	if (self.aMenuTimers[nNrDropdown])
		clearTimeout(self.aMenuTimers[nNrDropdown]);
	self.aMenuTimers[nNrDropdown] = setTimeout("DoDropdown('" + id + "', " + bShow + ", " + nNrDropdown + ")", nDelay);
}

function DoDropdown(id, bShow, nNrDropdown)
{
	var obj = null;
	var aNeedHide = null;
	if (browser.ie && (browser.version < 8.0))
	{
		// hide selectboxes
		if (browser.version < 7.0)
			f_tog(nNrDropdown, !bShow);
		
		// hide the newsopener arrow
		var aLimits = [0, 0, 92, 92, 23, 92, 23, 0, 0, 0, 0, 0];
		for (var i=1; i<4; i++)
		{
			if (obj = document.getElementById("idThumb2Arrow" + i))
				obj.style.visibility = ((!bShow || (obj.style.top.replace(/px$/, "") > aLimits[nNrDropdown])) ? "visible" : "hidden");
		}
		
		// hide the first newsopener date
		aNeedHide = [0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0];
		if (obj = document.getElementById("idThumbOverDate"))
			obj.style.visibility = ((bShow && aNeedHide[nNrDropdown]) ? "hidden" : "visible");

		// hide the media arrow
		aNeedHide = [0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0];
		if (obj = document.getElementById("idMediaArrow"))
			obj.style.visibility = ((bShow && aNeedHide[nNrDropdown]) ? "hidden" : "visible");

		// hide the beurs announce banner
		aNeedHide = [0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0];
		if (obj = document.getElementById("idSalonAnnounce"))
			obj.style.visibility = ((bShow && aNeedHide[nNrDropdown]) ? "hidden" : "visible");
	}

	self.aMenuTimers[nNrDropdown] = null;
	obj = document.getElementById(id);
	if (!obj || !obj.style)
		return;
	obj.style.visibility = (bShow ? "visible" : "hidden");

	obj = document.getElementById("idHoofdmenuitem" + nNrDropdown);
	obj.className = (bShow ? "menuhoofditem_on" : "menuhoofditem");
}

function LimitChars(ctrl, nMaxLen, idCounter)
{
	if (ctrl.value.length > nMaxLen)
		ctrl.value = ctrl.value.substring(0, nMaxLen);
	var obj = document.getElementById(idCounter);
	if (obj && obj.innerHTML)
		obj.innerHTML = (nMaxLen - ctrl.value.length);
}



function Show(id, bHide)
{
	var obj = document.getElementById(id);
	if (!obj || !obj.style)
		return;

	obj.style.visibility = (bHide ? "hidden" : "visible");
}

function Hide(id) { Show(id, true); }

function Toggle(id, sImgName)
{
	var obj = document.getElementById(id);
	if (!obj || !obj.style)
		return;

	obj.style.display = ((obj.style.display == "none") ? "" : "none");
	if (sImgName)
		document[sImgName].src = ((obj.style.display == "none") ? document[sImgName].src.replace(/toonminder/, "toonmeer") : document[sImgName].src.replace(/toonmeer/, "toonminder"));
}




self.idFilteredContent = null;
self.aSaveStateIds = new Array();
self.aFilterblockStyles = [{ btn_def:"", btn_on:"activebutton" }]

function SaveFilterBlockStates()
{
	for (var i=0; i<arguments.length; i++)
		self.aSaveStateIds[arguments[i]] = true;
}

function SetFilterBlockCookie(idNr, nIndex)
{
	var sCookie = getCookie("filterblock_data");
	if (sCookie.length)
		var aTmp = sCookie.split("|");
	else
		var aTmp = [0,0,0,0,0];
	while (aTmp.length < idNr)
		aTmp[aTmp.length] = 0;
	aTmp[idNr] = nIndex;
	sCookie = aTmp.join("|");
	setCookie("filterblock_data", sCookie);
//	document.cookie = "filterblock_data=" + sCookie;
//	self.aCookies["filterblock_data"] = sCookie;
}

function RestoreFilterBlockState(idMin)
{
	var sCookie = getCookie("filterblock_data");
	if (sCookie.length)
		var aTmp = sCookie.split("|");
	if (aTmp && aTmp[idMin])
	{
		var nIndex = aTmp[idMin] * 1;
		var row = document.getElementById("idFilterbuttonRow_" + idMin);
		if (row)
		{
			if ((nIndex >= 1) && (nIndex < row.cells.length - 1))
			{
				var aTags = row.cells[nIndex].getElementsByTagName('A');
				if (aTags && aTags.length)
					aTags[0].onclick();
			}
		}
		else if (row = document.getElementById("idFiltertabRow_" + idMin))
		{
//if (bDEBUG) alert(nIndex);
			for (var i=0; i<row.cells.length; i++)
			{
				var aTags = row.cells[i].getElementsByTagName('TABLE');
				if (aTags && aTags.length && (i == nIndex))
				{
					aTags[0].onclick();
					break;
				}
			}
		}
	}
}

function UpdateFilterButtons(idNr, oThisBtn, nFilterblockStyle)
{
	var row;
	if (row = document.getElementById("idFilterbuttonRow_" + idNr))
	{
		for (var i=1; i<row.cells.length-1; i++)
		{
			var aTags = row.cells[i].getElementsByTagName('A');
	//		aTags[0].className = ((aTags[0] == oThisBtn) ? self.aFilterblockStyles[nFilterblockStyle].btn_on : self.aFilterblockStyles[nFilterblockStyle].btn_def);
			row.cells[i].className = ((aTags[0] == oThisBtn) ? self.aFilterblockStyles[nFilterblockStyle].btn_on : self.aFilterblockStyles[nFilterblockStyle].btn_def);
			if (self.aSaveStateIds[idNr] && (aTags[0] == oThisBtn))
				SetFilterBlockCookie(idNr, i);
		}
	}
	else if (row = document.getElementById("idAw35FiltertabRow_" + idNr))
	{
		for (var i=0; i<row.cells.length; i++)
		{
			var aTags = row.cells[i].getElementsByTagName('TABLE');
			if (aTags && aTags.length)
			{
				if (aTags[0] == oThisBtn)
				{
					aTags[0].className = "tabactive";
					if (self.aSaveStateIds[idNr])
						SetFilterBlockCookie(idNr, i);
				}
				else
					aTags[0].className = "tabinactive";
			}
		}
	}
	else if (row = document.getElementById("idFiltertabRow_" + idNr))
	{
//if (bDEBUG) AlertObjProps(oThisBtn);
		for (var i=0; i<row.cells.length; i++)
		{
			var aTags = row.cells[i].getElementsByTagName('TABLE');
			if (aTags && aTags.length)
			{
				if (aTags[0] == oThisBtn)
				{
					aTags[0].className = "smalltabactive";
					aTags[0].onmouseover = "";
					aTags[0].onmouseout = "";
					if (self.aSaveStateIds[idNr])
						SetFilterBlockCookie(idNr, i);
				}
				else
				{
					aTags[0].className = "smalltabinactive";
					aTags[0].onmouseover = function() { this.className = "smalltabhover"; };
					aTags[0].onmouseout = function() { this.className = "smalltabinactive"; };
				}
//if (bDEBUG) AlertObjProps(aTags[0]);
			}
		}
	}
}

function GetFilteredContent(sUrl, idNr, oThisBtn, nFilterblockStyle)
{
	if (oThisBtn)
		UpdateFilterButtons(idNr, oThisBtn, nFilterblockStyle);
	self.idFilteredContent = "idFilterBlock_" + idNr;
	makeAjaxRequest(sUrl, "ChangeFilteredContent");
	return false;
}

function ChangeFilteredContent(sTxt)
{
   var obj = document.getElementById(self.idFilteredContent);
   if (obj)
	   obj.innerHTML = sTxt;
}

function SwapDiv(idNr, idMin, idMax, oThisBtn, nFilterblockStyle)
{
	UpdateFilterButtons(idMin, oThisBtn, nFilterblockStyle);
	for (var i=idMin; i<=idMax; i++)
	{
		var obj = document.getElementById("idFilterBlock_" + i);
		if (obj && obj.style)
			obj.style.display = ((i == idNr) ? "" : "none")
	}
}



function EnablePollBtn()
{
	var btn = document.getElementById("idPollBtn");
	if (btn)
		btn.disabled = false;
}

function SubmitPollVote2(idPoll, form)
{
	var nNr = 0;
	var ctrl = form.answer;
	for (var i=0; i<ctrl.length; i++)
	{
		if (ctrl[i].checked)
		{
			nNr = ctrl[i].value;
			break;
		}
	}

	var obj = document.getElementById("idPollQuestion");
	if (obj)
		obj.innerHTML = "<div class='s11 gray' style='height:100px'>uw stem wordt verwerkt<img src='/images/ani_connecting.gif' /></div>";
	var sUrl = "/async_nc/submitpoll.php?id=" + idPoll + "&answer=" + nNr + "&cache=no";
	makeAjaxRequest(sUrl, "ShowPollResults");
	return false;	// stop the default click action
}

function SubmitPollVote(idPoll, nNr)
{
	var obj = document.getElementById("idBalloon" + nNr);
	if (obj)
		obj.innerHTML = "<div class='s11 gray' style='margin:0 16px'>uw stem wordt verwerkt<img src='/images/ani_connecting.gif' /></div>";
	var sUrl = "/async_nc/submitpoll.php?id=" + idPoll + "&answer=" + nNr + "&cache=no";
	makeAjaxRequest(sUrl, "ShowPollResults");
	return false;	// stop the default click action
}

function ShowPollResults(sTxt)
{
	self.sPollResults = sTxt;
	setTimeout("StopPollStoreAni()", 1000);
//	var obj = document.getElementById("idPollQuestion");
//	if (obj)
//		obj.innerHTML = sTxt;
}

function StopPollStoreAni()
{
	var obj = document.getElementById("idPollQuestion");
	if (obj)
		obj.innerHTML = self.sPollResults;
	self.sPollResults = null;
}

function CheckVote(idPoll) {
	var c = 'answeredpoll' +idPoll;
	var sCookie = getCookie(c);
	if (sCookie)
		makeAjaxRequest("/async/get_pollresults.php?id=" + idPoll, "ShowAltPoll"); 
}
function ShowAltPoll(sTxt) { if (sTxt) ShowPollResults(sTxt); }


function GetReactions(w, t, idArticle)
{
	var sUrl = "/async/get_reactions.php?id=" + idArticle + "&t=" + t + "&w=" + w + "&init=1";
	makeAjaxRequest(sUrl, "ShowReactions");
}

function OpenReactions(w, t, idArticle, idAnchor)
{
	self.idAnchor = idAnchor;
	var sUrl = "/async/get_reactions.php?id=" + idArticle + "&t=" + t + "&w=" + w;
	var sUd, aTmp;
	if (sUd = getCookie(UD))
		aTmp = sUd.split(':');
	if (sUd && (getCookie(SID) || aTmp[1]))
//	var sRegData = getCookie(INLOG_COOKIENAME);
//	if (sRegData)
		sUrl += "&logged=1"
	makeAjaxRequest(sUrl, "ShowReactions");
}

function ShowReactions(sTxt)
{
	var obj = document.getElementById("idReactions");
	if (obj)
	{
		// make sure hash-links lead to this page, when the base-tag holds another address then the addressbar (Mod-Rewrite!)
		sTxt = sTxt.replace(/href=\"\#/g, 'href="' + location.href + "#");
		obj.innerHTML = sTxt;
	}

	var obj = document.getElementById("idLinkToCommentsForm");
	if (obj)
		obj.innerHTML = (self.sLinkToCommentsForm ? self.sLinkToCommentsForm : "");

	if (self.idAnchor)
	{
		location.hash = "reaction_" + self.idAnchor;
//			setTimeout("location.hash = 'reaction_" + self.idAnchor + "'", 2000);
		self.idAnchor = null;
	}
}


function GetCommentsForm(w, sTitle, t, id)
{
	if (IsLogged())
	{
		sTitle = EncodeAjaxUploadData(sTitle);
		var sUrl = "/async_nc/get_commentsform.php?id=" + id + "&t=" + t + "&w=" + w + "&title=" + sTitle + "&cache=no";
		makeAjaxRequest(sUrl, "ShowCommentsForm");
	}
	else
		document.write('<h4 class="kopje" style="margin-bottom:16px"><a href="" class="loginbox" title="Reageer zelf op dit artikel">Uw reactie plaatsen</a></h4>');
}

function ShowCommentsForm(sTxt)
{
//	self.sLinkToCommentsForm = (sTxt ? "<div style='margin:16px 0'><a href='#commentsform'>Uw reactie plaatsen</a></div>" : "");
//	var obj = document.getElementById("idLinkToCommentsForm");
//	if (obj)
//	   obj.innerHTML = self.sLinkToCommentsForm;

	obj = document.getElementById("idCommentsForm");
	if (obj)
	   obj.innerHTML = sTxt;
}



function GetVideo(sRoot, nWidth, id, nCat, sMerkModel)
{
	if (!sMerkModel || (typeof sMerkModel == 'undefined') || (sMerkModel == 'undefined'))
		sMerkModel = "";
	else
		sMerkModel = EncodeAjaxUploadData(sMerkModel);
	makeAjaxRequest(sRoot + "async/get_videocontent.php?id=" + id + "&cat=" + nCat + "&w=" + nWidth + "&merkmodel=" + sMerkModel, "ChangeVideoContent");
	makeAjaxRequest(sRoot + "async/get_videotitle.php?id=" + id + "&cat=" + nCat, "ChangeDocumentTitle");
	if (!sMerkModel)
		setTimeout("makeAjaxRequest('" + sRoot + "async/get_relatedvideos.php?id=" + id + "&cat=" + nCat + "', 'ShowRelatedVideos')", 1000);
		// Without the delay, it doesn't always show. Probably because de receiving div has not been created yet in the DOM
	AWStats(sRoot, id, (nCat == 99) ? 11 : 7);	// must be the same as the PHP constants!
}

function ChangeVideoContent(sTxt)
{
   var obj = document.getElementById('idContent');
   if (obj)
	   obj.innerHTML = sTxt;
}

function ChangeDocumentTitle(sTxt)
{
   var aTags = document.getElementsByTagName('title');
   if (aTags && aTags.length)
	   aTags[0].text = sTxt;
//	   aTags[0].text = sTxt.replace(/\&amp;/g, '&');
}

function ShowRelatedVideos(sTxt)
{
	var obj = document.getElementById('idRelatedVideoContent');
	if (obj)
	{
		obj.innerHTML = sTxt;
		// show alternative index box, when there's no related content
		obj = document.getElementById('idAltVideoContent');
		obj.style.display = sTxt ? "none" : "";
	}
}



function GetSpecial(sRoot, nWidth, id, nCat, sMerkModel)
{
	if (!sMerkModel || (typeof sMerkModel == 'undefined') || (sMerkModel == 'undefined'))
		sMerkModel = "";
	else
		sMerkModel = EncodeAjaxUploadData(sMerkModel);
	makeAjaxRequest(sRoot + "async/get_specialscontent.php?id=" + id + "&cat=" + nCat + "&w=" + nWidth + "&merkmodel=" + sMerkModel, "ChangeSpecialContent");
	makeAjaxRequest(sRoot + "async/get_specials_js.php?id=" + id + "&cat=" + nCat, "SetSpecialsJs");
	makeAjaxRequest(sRoot + "async/get_specialstitle.php?id=" + id + "&cat=" + nCat, "ChangeDocumentTitle");
	makeAjaxRequest(sRoot + "async/get_relatedspecials.php?id=" + id + "&cat=" + nCat, "ShowRelatedSpecials");
	AWStats(sRoot, id, 106);	// must be the same as the PHP constants!
}

function ChangeSpecialContent(sTxt)
{
   var obj = document.getElementById('idContent');
   if (obj)
	   obj.innerHTML = sTxt;
}

function SetSpecialsJs(sTxt)
{
	var aLines = sTxt.split("\n");
	if (aLines.length)
	{
		var nMinIdNr = aLines[0].split(",")[0];
		var o = new CScrollThumbsPhoto(nMinIdNr, 4);
//		var o = new CScrollThumbsPhoto(nMinIdNr, 3);
		for (var i=0; i<aLines.length; i++)
		{
			var a = aLines[i].split(",");
			if (a[1])
				o.AddThumb(a[0], a[1], a[2]);
		}
		eval("self.oScrollThumbs" + nMinIdNr + " = o");
	}
}

function ShowRelatedSpecials(sTxt)
{
   var obj = document.getElementById('idRelatedSpecialsContent');
   if (obj)
	   obj.innerHTML = sTxt;
}

function GetSpecialsIndex(nCat, idShow, nOffset)
{
	if (!nOffset)
		nOffset = 1;
	makeAjaxRequest("/async/get_specialsindex.php?cat=" + nCat + "&showid=" + idShow + "&offset=" + nOffset, "ShowSpecialsIndex");
}

function ShowSpecialsIndex(sTxt)
{
   var obj = document.getElementById('idSpecialsIndexContent');
   if (obj)
	   obj.innerHTML = sTxt;
}




function UpdateClassicreviewModels(form, sModel)
{
	self.altfilterform = form;
	self.altmodel = sModel;
	makeAjaxRequest("/async/get_classicreviewmodels.php?merk=" + form.merk.value, "FillAltModels");
}

function UpdateClassicModels(form, sModel)
{
	self.altfilterform = form;
	self.altmodel = sModel;
	makeAjaxRequest("/async/get_classicmodels.php?merk=" + form.merk.value, "FillAltModels");
}

function FillAltModels(sTxt)
{
	if (self.altfilterform)
	{
		var ctrl = self.altfilterform.model;
		ctrl.options.length = 1;
		var nModelIndex = 0;
		if (sTxt)
		{
			var aOptions = sTxt.split("|");
			for (var i in aOptions)
			{
				if (aOptions[i] == self.altmodel)
					nModelIndex = ctrl.options.length;
				ctrl.options[ctrl.options.length] = new Option(aOptions[i], aOptions[i]);
			}
		}
		ctrl.options[nModelIndex].selected = true;
		self.altfilterform = null;
		self.altmodel = null;
	}
}




function ShowRateForm(id)
{
	var sCookie = getCookie("mr" + id);
	if (sCookie != "1")
	{
		var obj = document.getElementById("idRateReviewForm");
		if (obj && obj.style)
			obj.style.display = "";
	}
}

function ShowMyweblogRateForm(id)
{
	var sCookie = getCookie("myweblog" + id);
	if (sCookie != "1")
	{
		var obj = document.getElementById("idRateMyweblogForm");
		if (obj && obj.style)
			obj.style.display = "";
	}
}

function PreventDoubleSubmission(idSubmitBtn)
{
	var btn = document.getElementById(idSubmitBtn);
	if (btn)
		btn.disabled = true;
	return true;
}



function setCookie(name, value, days)
{
	var expires = "";
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime() + (days*24*60*60*1000));
		expires = "; expires=" + date.toGMTString();
	}
	document.cookie = name + "=" + value + expires + "; path=/";
	if (self.aCookies && self.aCookies.length)
		self.aCookies[name] = value;
}

function deleteCookie(name, path, domain)
{
    if (getCookie(name))
    {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
		if (self.aCookies && self.aCookies.length)
			self.aCookies[name] = "";
    }
}

function getCookie(sCookiename)
{
	if (!self.aCookies)
		self.aCookies = new Array();

	if (!self.aCookies.length)
	{
		if (document.cookie.length > 0)
		{
			var aTmp = document.cookie.split(/;\s?/);
			for (var i=0; i<aTmp.length; i++)
			{
				var aTmp2 = aTmp[i].split("=");
				if (aTmp2.length > 1)
				{
//					self.aCookies[aTmp2[0]] = aTmp2[1].replace(/\+/g, " ");
//					self.aCookies[aTmp2[0]] = fnUnescape(aTmp2[1].replace(/\+/g, " "));
					self.aCookies[aTmp2[0]] = unescape(aTmp2[1].replace(/\+/g, " ")).replace(/<[^>]+>/g, "");
					// in case there are '='-s in the cookie value
					for (var j=2; j<aTmp2.length; j++)
//						self.aCookies[aTmp2[0]] += ("=" + aTmp2[j].replace(/\+/g, " "));
//						self.aCookies[aTmp2[0]] += ("=" + fnUnescape(aTmp2[j].replace(/\+/g, " ")));
						self.aCookies[aTmp2[0]] += ("=" + unescape(aTmp2[j].replace(/\+/g, " ")).replace(/<[^>]+>/g, ""));
				}
			}
		}
	}
	else if (document.cookie.length == 0)
		self.aCookies = new Array();	// make empty

	return (self.aCookies[sCookiename] ? self.aCookies[sCookiename] : "");

//	if (document.cookie.length > 0)
//	{
//		c_start = document.cookie.indexOf(sCookiename + "=")
//		if (c_start != -1)
//		{ 
//			c_start = c_start + sCookiename.length + 1;
//			c_end = document.cookie.indexOf(";", c_start);
//			if (c_end == -1)
//				c_end = document.cookie.length;
//			return unescape(document.cookie.substring(c_start, c_end));
//		} 
//	}
}

//alert(document.cookie);


function GetCaptcha(nDescrWidth, nNewPopupHeight) 
{
	self.nNewPopupHeight = (nNewPopupHeight ? nNewPopupHeight : null);
	makeAjaxRequest("/async_nc/get_captcha.php?w=" + nDescrWidth + "&cache=no", "SetCaptcha");
}

function SetCaptcha(sTxt, nNewHeight)
{
	var obj = document.getElementById('idCaptcha');
	if (obj)
	{
		obj.innerHTML = sTxt;
		if (window.opener && self.nNewPopupHeight && sTxt)
			window.resizeTo(500, self.nNewPopupHeight);
	}
}

function Meeltoe(sCode, sTxt, $sParms)
{
	s = "<a h";
	s += "ref=\"ma";
	sTmp = Meel(sCode);
	s += "ilt";
	s += "o:" + sTmp + ($sParms ? "?" + Meel($sParms) : "") + "\">" + (sTxt ? sTxt : sTmp) + "</";
	s += "a>";
	document.write(s);
}


function Meel(sInput)
{
	var sTmp, nTmp, s = new String();
	var sKey = sKr;

	for (var i=0, j=0; i<sInput.length; i+=2, j++)
	{
		sTmp = "0x" + sInput.substring(i, i+2);
		nTmp = (sTmp * 1) ^ sKey.charCodeAt(j % sKey.length);
		s += String.fromCharCode(nTmp);
	}

	return s;
}

function WriteAbuseLink(id, t)
{
	if (getCookie(SID))
	{
		var sUrl = '/reviewreport.php?id=' + id + '&t=' + t + '&cache=no';
		document.write(' <div style="float:right"><a href="' + sUrl + '" class="commentreportbox" title="Dit kan niet echt doorgaan voor een review"><img src="/images/warn.gif" width="12" height="12" border="0" /></a></div>');
	}
}

function Logout(bPageNeedsAuth)
{
	makeHttpRequest("/async_nc/logout.php")
	deleteCookie("phorum_session_v5", '/', '');
	deleteCookie(UD, '/', '');
	setTimeout("deleteCookie('" + SID + "', '/', ''); " + (bPageNeedsAuth ? "location.href = '/'" : "location.reload()"), 500);
}

function IsLogged()
{
	var sUd = getCookie(UD);
	if (sUd)
	{
		if (getCookie(SID))
			return true;

		aTmp = sUd.split(':');
		if ((aTmp.length > 2) && (aTmp[1] != ""))
			return true;
	}

	return false;
}

function DrawLogDiv(bPageNeedsAuth)
{
	document.write("<div id='idLogDiv' class='bottomlinks'>");
	if (IsLogged())
	{
		var sUd, aTmp, sName = "?";
		if (sUd = getCookie(UD))
		{
			aTmp = sUd.split(':');
			if (aTmp.length > 2)
				sName = aTmp[2].replace(/</g, "&lt;").replace(/>/g, "&gt;");
		}
		document.write("<div style='height:36px'>U bent ingelogd als:<br />");
		document.write(sName);
		document.write("</div>");
		document.write("<ul class='inline'>");
		document.write("<li><a href='/myautoweek/?cache=no'>Mijn pagina's</a> &bull; </li>");
		document.write("<li><a href='' onclick='Logout(" + (bPageNeedsAuth ? "true" : "") + "); return false'>Uitloggen</a></li>");
		document.write("</ul>");
	}
	else
	{
		document.write("<button style='margin-bottom:16px' class='loginbox white' title='Inloggen'>Inloggen</button>");
		document.write("<div class='clear'></div>");
		document.write("<ul class='inline'>");
		document.write("<li><a href='/myautoweek/login.php?mode=aanmelden&cache=no' class='registerbox' title='Aanmelden'>Registreren</a> &bull; </li>");
		document.write("<li><a href='/myautoweek/?page=8&cache=no'>Nieuwsbrief</a></li>");
		document.write("</ul>");
//		document.write("<a href='/myautoweek/login.php?cache=no' rel='gb_page_center[848, 542]' class='whitebutton' title='Inloggen'>Inloggen</a></div>");
		if (sUd && aTmp[1])
			MakeAjaxPostRequest("/async_nc/get_logdiv.php", "a=" + (bPageNeedsAuth ? 1 : 0) + "&cache=no", "FillLogDiv");
	}
	document.write("</div>");
}

function FillLogDiv(sTxt)
{
	var obj;
	if (sTxt && (obj = document.getElementById("idLogDiv")))
		obj.innerHTML = sTxt;
}

function KeepAlive()
{
	MakeAjaxPostRequest("/async_nc/keepalive.php", "cache=no", "KeepAlive2");
}

function KeepAlive2(sTxt)
{
	if (sTxt)
		setTimeout("KeepAlive()", 600000);
}

function WriteBugreportLink()
{
	var sUd, aTmp;
	if (sUd = getCookie(UD))
		aTmp = sUd.split(':');
	if (sUd && (getCookie(SID) || aTmp[1]))
//	var sRegData = getCookie(INLOG_COOKIENAME);
//	if (sRegData)
		document.write("- <a href='/bugreport.php?cache=no' title='Klik hier om een geconstateerde fout te melden'>Meld&nbsp;een&nbsp;fout</a>");
}

window.popup = null;

function PopupWnd(sUrl, w, h, bScrollbars)
{
	var sScrollbars = (bScrollbars ? ",scrollbars" : "");
	if ((screen.width < w) || (screen.height < h))
	{
		sScrollbars = ",scrollbars";
		if (screen.width < w)
			w = screen.width;
		if (screen.height < h)
			h = screen.height;
	}

	if (!window.popup || window.popup.closed)
	{
		document.cookie = "screenX=" + screen.width;
		document.cookie = "screenY=" + screen.height;
		window.popup = window.open(sUrl, 'AwPopup', 'width=' + w + ',height=' + h + ',left=0,top=0' + sScrollbars);
	}
	else
	{
		window.popup.location.href = sUrl;
		window.popup.resizeTo(w, h);
		if (sScrollbars)
		{
			if (wnd.scrollbars)
				window.popup.scrollbars.visible = true;
			else
				window.popup.document.body.style.overflow = "auto";
		}
	}
	window.popup.focus();
	return false;
}

function FocusFormCtrl(form, sCtrlName, bSelect)
{
	if (typeof form == "string")
		form = document.getElementById(form);
	if (form && (typeof form == "object"))
		FocusCtrl(form[sCtrlName], bSelect);
}

function FocusCtrl(ctrl, bSelect)
{
	ctrl.focus();
	if (bSelect)
		ctrl.select();
}

function ToggleInnerdiv(img, idInnerDiv, nInitialHeight)
{
	var obj = document.getElementById(idInnerDiv);
	if (!obj)
		return;

	if (obj.style.height != "auto")
	{
		obj.style.height = "auto";
		obj.style.overflow = "auto";
		img.src = "/images/btn_klein_rond_toonminder.gif";
	}
	else
	{
		obj.style.height = nInitialHeight + "px";
		obj.style.overflow = "hidden";
		img.src = "/images/btn_klein_rond_toonmeer.gif";
	}
}

function InitArticleMailForm(idForm)
{
	var form = document.getElementById(idForm);
	if (!form)
		return;

	var sUd, aTmp;
	if (sUd = getCookie(UD))
		aTmp = sUd.split(':');
	if (sUd && (getCookie(SID) || aTmp[1]))
	{
		if (aTmp.length)
		{
			if (aTmp.length > 2)
				form.namesender.value = aTmp[2];
		}
	}
	FocusCtrl(form.namesender, true);
}

function SetAanmEigenAutoprofiel(id)
{
	form = document.getElementById("idAanmEigenAuto");
	if (!form)
		return;

	form.merk.value = aProfielen[id].merk;
	form.model.value = aProfielen[id].model;
	form.bouwjaar.value = aProfielen[id].bouwjaar;
}

function CheckAanmEigenautoValues(form, idMsgCont, bMotivering, nPhotosObliged)
{
//return true;	// temp!
	return ( CheckNotEmpty(form.naam, idMsgCont, "uw naam") &&
			 CheckNotEmpty(form.telefoon, idMsgCont, "uw telefoonnummer") &&
			 CheckPhoneNr(form.telefoon, idMsgCont, true) &&
			 CheckNotEmpty(form.email, idMsgCont, "uw emailadres") &&
			 CheckEmail(form.email, idMsgCont) &&
			 CheckNotEmpty(form.merk, idMsgCont, "het merk") &&
			 CheckNotEmpty(form.model, idMsgCont, "het model") &&
			 CheckNotEmpty(form.bouwjaar, idMsgCont, "het bouwjaar") &&
			 CheckNotEmpty(form.kmstand, idMsgCont, "de huidige kmstand") &&
			 CheckNotEmpty(form.gekocht, idMsgCont, "het jaar van aanschaf") &&
			 (!bMotivering || CheckNotEmpty(form.motivering, idMsgCont, "uw motivering")) &&
			 ((nPhotosObliged < 1) || CheckNotEmpty(form.photo1, idMsgCont, "een eerste foto")) &&
			 ((nPhotosObliged < 2) || CheckNotEmpty(form.photo2, idMsgCont, "een tweede foto")) &&
			 ((nPhotosObliged < 3) || CheckNotEmpty(form.photo3, idMsgCont, "een derde foto")) &&
			 ((nPhotosObliged < 4) || CheckNotEmpty(form.photo4, idMsgCont, "een vierde foto")));
}

function AWStats(sRoot, id, t) 
{
	makeHttpRequest(sRoot + "async_nc/updatecounter.php?id=" + id + "&t=" + t + "&cache=no");
}

function GetScrollTop()
{
	if (typeof window.pageYOffset != "undefined")
		return window.pageYOffset
	if (typeof document.documentElement != "undefined")
		return (typeof document.body.scrollTop != "undefined")
					? Math.max(document.documentElement.scrollTop, document.body.scrollTop)
					: document.documentElement.scrollTop;
	if (typeof document.body.scrollTop != "undefined")
		return document.body.scrollTop;
	return 0;
}

self.nTimerPopupLoadingAni = null;

function StartPopupLoadingAni(nWidth)
{
	var obj = document.getElementById('idPopupAni');
	if (!obj || !obj.style)
		return;

	if (self.nTimerPopupLoadingAni)
	{
		clearTimeout(self.nTimerPopupLoadingAni);
		self.nTimerPopupLoadingAni = null;
		return;	// already playing
	}

	var yScroll = GetScrollTop();

	obj.style.top = (yScroll + 150) + "px";
	if (typeof nWidth != "undefined")
		obj.style.left = Math.round((nWidth - 200) / 2) + "px";
	obj.style.visibility = "visible";
}

function EndPopupLoadingAni()
{
	var obj = document.getElementById('idPopupAni');
	if (obj && obj.style)
		obj.style.visibility = "hidden";
	self.nTimerPopupLoadingAni = null;
}

function CheckAanmDealerValues(form, idMsgCont)
{
//return true;
	return ( CheckNotEmptyRadio(form.betreft, idMsgCont, "wat voor melding het hier betreft") &&
			 CheckNotEmptySelect(form.bedrijfstype, idMsgCont, "bedrijfstype", 0) &&
			 CheckNotEmpty(form.naam, idMsgCont, "de bedrijfsnaam") &&
			 CheckPostcode(form.postcode, idMsgCont) &&
			 CheckNotEmpty(form.plaats, idMsgCont, "de plaats") &&
			 CheckPhoneNr(form.telefoon, idMsgCont, true) &&
			 CheckPhoneNr(form.fax, idMsgCont, true) &&
			 CheckEmail(form.email, idMsgCont));
}

var sKr = sSite.replace(/www\./, "[").replace(/\.nl/, "]");


function OnSubmitSnelZoekForm(form)
{
	switch (form.waar[form.waar.selectedIndex].value)
	{
	case "specs":
		form.action ="http://www.autoweek.nl/autovergelijker.php";
		return true;
	case "ads":
		form.action ="http://www.autoweek.nl/occasions.php";
		return true;
	case "tests":
		form.action ="http://www.autoweek.nl/autotestindex.php";
		return true;
	case "review":
		form.action ="http://www.autoweek.nl/myreviewautoindex.php";
		return true;
	case "news":
		form.action ="http://www.autoweek.nl/nieuwsindex.php";
		return true;
	default:
		if (form.model.selectedIndex > 0)
		{
			form.action ="http://www.autoweek.nl/modelindex.php";
			return true;
		}
		if (form.merk.selectedIndex > 0)
		{
			form.action ="/";
			return true;
		}
		return false;
	}
}

function ChangePhotoStrip(sUrl, idNr)
{
    self.idFilteredContent = "idFilterBlock_" + idNr;
    makeAjaxRequest(sUrl, "ChangeFilteredContent");
    return false;
}

function GetVideoThumbnails(nWidth, nRows, nOffset, sParms)
{
    self.idFilteredContent = "idVideoContent";
    makeAjaxRequest("/async/get_videothumbnails.php?w=" + nWidth + "&r=" + nRows + "&offset=" + nOffset + (sParms ? "&" + sParms : ""), "ChangeVideoThumbnails");
}

function GetVideoGuideThumbnails(nWidth, nRows, nOffset, sParms)
{
    self.idFilteredContent = "idFilterBlock_1";
    makeAjaxRequest("/async/videoguide.php?w=" + nWidth + "&r=" + nRows + "&offset=" + nOffset + (sParms ? "&" + sParms : ""), "ChangeVideoThumbnails");
}

function ChangeVideoThumbnails(sTxt)
{
   var obj = document.getElementById(self.idFilteredContent);
   if (obj)
   {
	   obj.innerHTML = sTxt;
	   CorrectVideoPngIE();
   }
}

function CorrectIframeHeight(iframe)
{
}

function CorrectVideoPngIE()
{
	if (!browser.ie || browser.version >= 7)
		return;

	for (var i=0; i<document.images.length; i++)
	{
		if (document.images[i].src.indexOf("video_start_") > -1)
			document.images[i].src = document.images[i].src.replace(/\.png/, ".gif");
	}
}

function CorrectIE6_bgPNG()
{
	if (!browser.ie || browser.version >= 7 || browser.version < 5.5 || !browser.win)
		return;

	var sheetAutoweek = null;
	var sheetMenu = null;
	var sheetCB = null;
	for (var i=0; i<document.styleSheets.length; i++)
	{
		if (document.styleSheets[i].href.indexOf("/autoweek.css") != -1)
			sheetAutoweek = document.styleSheets[i];
		else if (document.styleSheets[i].href.indexOf("/menu.css") != -1)
			sheetMenu = document.styleSheets[i];
//		else if (document.styleSheets[i].href.indexOf("/carbase.css") != -1)
//			sheetCB = document.styleSheets[i];
	}
	for (i=0; i<sheetAutoweek.rules.length; i++)
	{
		rule = sheetAutoweek.rules[i];
		if (rule.selectorText == ".commentsblock .comment_text .reactioncontent")
		{
			rule.style.overflowX = "auto";
			rule.style.overflowY = "visible";
			break;	// since we have only one rule that we want to change
		}
	}

	if (browser.version >= 7 || browser.version < 5.5)
		return;

	var rule = null;
	for (i=0; i<sheetAutoweek.rules.length; i++)
	{
		rule = sheetAutoweek.rules[i];
		switch (rule.selectorText)
		{
		case ".popup_bottomleft":
		case ".popup_bottom":
		case ".popup_bottomright":
		case ".popup_rightshade":
		case ".popup_leftshade":
			var sSrc = rule.style.backgroundImage.substring(4, rule.style.backgroundImage.length - 1);
			rule.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + sSrc + "\', sizingMethod='scale')";
			rule.style.background = "";
			break;
		case ".thumbmouseoverdatediv":
			// use this function also to correct the position of the dates in the newsopener in IE6
			rule.style.bottom = "0px";
		}
	}
	for (i=0; i<sheetMenu.rules.length; i++)
	{
		rule = sheetMenu.rules[i];
		switch (rule.selectorText)
		{
		case ".dropdown_bottomleft":
		case ".dropdown_bottom":
		case ".dropdown_bottomright":
		case ".dropdown_rightshade":
		case ".dropdown_leftshade":
			var sSrc = rule.style.backgroundImage.substring(4, rule.style.backgroundImage.length - 1);
			rule.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + sSrc + "\', sizingMethod='scale')";
			rule.style.background = "";
			break;
		}
	}
	if (sheetCB)
	{
		for (i=0; i<sheetCB.rules.length; i++)
		{
			rule = sheetCB.rules[i];
			if (rule.selectorText == ".floater")
			{
				var sSrc = rule.style.backgroundImage.substring(4, rule.style.backgroundImage.length - 1);
				rule.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + sSrc + "\', sizingMethod='scale')";
				rule.style.background = "";
				break;	// since we have only one rule that we want to change
			}
		}
	}
}

function Vm_OpenTotalsUitsplitsing(idDiv, idVm, iTank, bNocache)
{
	var img, obj;

	if (obj = document.getElementById(idDiv))
	{
		if (obj.style.display == "none")
			obj.style.display = "";
		else if (!obj.innerHTML)
		{
			self.idLastDiv = idDiv;
			makeAjaxRequest("/async/get_vmextendedtotals.php?vm_id=" + idVm + "&tank=" + iTank + (bNocache ? "&nocache=1" : ""), "Vm_ShowExtTotals");
		}
		else
			obj.style.display = "none";

		if (img = document.getElementById("idBtnVmDetails" + iTank))
			img.src = "/images/icons/16/" + ((obj.style.display == "none") ? "open" : "dicht") + "klappen.png";
//			img.src = "/images/btn_klein_rond_toonm" + ((obj.style.display == "none") ? "e" : "ind") + "er_gray.gif";
	}
}

function Vm_ShowExtTotals(sHtml)
{
	var obj = document.getElementById(self.idLastDiv);
	if (obj)
	{
		obj.innerHTML = sHtml;
		self.idLastDiv = null;
	}
}

function Vm_ShowOpm(idTb, bShow)
{
	var obj = document.getElementById("idTankbeurtOpm_" + idTb);
	if (obj)
		obj.style.visibility = bShow ? "visible" : "hidden";
}

function GetPollList(sRoot, form, nOffset, bShowLoadingAni)
{
//	if (bShowLoadingAni)
//		StartPopupLoadingAni();
    self.idFilteredContent = "idPollList";
    makeAjaxRequest(sRoot + "async/get_polllist.php?offset=" + nOffset, "ChangeFilteredContent");
}

function ClearInputDefault(ctrl, sDefVal, sFontResetColor)
{
	if (ctrl.value == sDefVal)
		ctrl.value = "";
	ctrl.style.color = sFontResetColor ? sFontResetColor : "#000";
}

function CheckKeywordSnelmenu(ctrl, idMsgContainer, sDefVal)
{
	ClearInputDefault(ctrl, sDefVal);
	var bValidates = (CheckNotEmpty(ctrl, idMsgContainer, "een trefwoord"));
	return ToggleSnelmenuError(bValidates, idMsgContainer, 0);
}

function CheckKentekenSnelmenu(ctrl, idMsgContainer, sDefVal)	// dutch!
{
	ClearInputDefault(ctrl, sDefVal);
	ctrl.value = BeautifyKenteken(ctrl.value)
	var bValidates = (CheckNotEmpty(ctrl, idMsgContainer, "een kenteken") && CheckKenteken(ctrl, idMsgContainer));
	return ToggleSnelmenuError(bValidates, idMsgContainer, 1);
}

self.nTimerSnelmenu = [null, null];

function ToggleSnelmenuError(bValidates, idMsgContainer, i)
{
	var obj = document.getElementById(idMsgContainer);
	if (!obj)
		return bValidates;

	if (self.nTimerSnelmenu[i])
	{
		clearTimeout(self.nTimerSnelmenu[i]);
		self.nTimerSnelmenu[i] = null;
	}

	if (bValidates)
	{
		obj.style.visibility = "hidden";
		return true;
	}

	obj.style.visibility = "visible";
	self.nTimerSnelmenu[i] = setTimeout("CloseSnelmenuErrorMsg('" + idMsgContainer + "')", 1000);
	return false;
}

function CloseSnelmenuErrorMsg(id)
{
	var obj = document.getElementById(id);
	if (obj)
		obj.style.visibility = "hidden";
}

function BeautifyKenteken(sKenteken)
{
	sKenteken = sKenteken.toUpperCase();
	var regexp1 = /[A-Z]\d|\d[A-Z]/;
	var regexp2 = /[A-Z]{4}|\d{4}/;
	var aMatches;
	while (aMatches = sKenteken.match(regexp1))
		sKenteken = sKenteken.replace(new RegExp(aMatches[0]), aMatches[0].charAt(0) + "-" + aMatches[0].charAt(1))
	while (aMatches = sKenteken.match(regexp2))
		sKenteken = sKenteken.replace(new RegExp(aMatches[0]), aMatches[0].charAt(0) + aMatches[0].charAt(1) + "-" + aMatches[0].charAt(2) + aMatches[0].charAt(3))
	return sKenteken;
}

function RunSnelcode() {
    var obj = document.getElementById('snelcodeform');  
    window.open('http://www.autotrader.nl/auto/kopen/' + obj.snelcode.value + '/algemeen.htm?utm_source=autoweek&utm_medium=magazine&utm_campaign=snelcode','','');
}

function EnterSnelcode(f,e) {
   return true;
}

function openverzekering(param)
{
    var obj = document.getElementById('insurance_form');  
    var url='https://www.autoweekverzekeringen.nl/Handlers/BannerHandler.ashx?licensePlate=' + obj.licensePlate.value + '&CFY=' + obj.schadevrij.value + '&postCode=' + obj.postCode.value + obj.postCodeex.value + '&kmPerYear=' + obj.kmPerYear.value + '&birthDate=' + obj.birthDate1.value + '-' + obj.birthDate2.value + '-' + obj.birthDate3.value + '&bid=4&relation=5';
    if (param > '')
    	url += '&' + param;
    window.open(url);
}

function movefield(thisfield,nextfield,fieldlen)
{
	var obj;
	if (thisfield.value.length == fieldlen)
	{
		if ((obj = document.getElementById(nextfield)) || (obj = thisfield.form[nextfield]))
			obj.focus();
	}
}

function nm_popin()
{
	var nm_script = document.createElement("SCRIPT");
	nm_script.src = 'http://sanoma.netmining.com/index.php?function=manual_trigger';
	document.getElementsByTagName("head")[0].appendChild(nm_script);
}


var INLOG_COOKIENAME = "reg_data";
var SID = "aw_sid";
var UD = "aw_ud";

var aImgCache = new Array();
aImgCache.AddUrl = function(sUrl)
{
	var i = this.length;
	this[i] = new Image();
	this[i].src = sUrl;
}
aImgCache.Add = function(sFilename) { this.AddUrl("http://www.autoweek.nl/images/" + sFilename); }

aImgCache.Add("tab_hover_l.gif");
aImgCache.Add("tab_hover_r.gif");
aImgCache.Add("tab_inactive_l.gif");
aImgCache.Add("tab_inactive_r.gif");
aImgCache.Add("tab_active_l.gif");
aImgCache.Add("tab_active_r.gif");
aImgCache.Add("sortdown.gif");
aImgCache.Add("sortdown_outl.gif");




