// owner: Rob

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, 92, 92, 23, 23, 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, 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, 1, 1, 1, 0, 1, 0, 0];
		if (obj = document.getElementById("idMediaArrow"))
			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 = document.getElementById("idFilterbuttonRow_" + idNr);
	if (row)
	{
		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("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 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/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) { makeAjaxRequest("/async/checkpollvote.php?id=" + idPoll + "&cache=no", "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&j=g&href=" + location.href + "&ua=" + navigator.userAgent;
	makeAjaxRequest(sUrl, "ShowReactions");
}

function OpenReactions(w, t, idArticle, idAnchor)
{
	self.idAnchor = idAnchor;
	var sUrl = "/async/get_reactions.php?id=" + idArticle + "&t=" + t + "&w=" + w + "&j=o&href=" + location.href + "&ua=" + navigator.userAgent;
	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)
{
	sTitle = EncodeAjaxUploadData(sTitle);
	var sUrl = "/async/get_commentsform.php?id=" + id + "&t=" + t + "&w=" + w + "&title=" + sTitle + "&cache=no";
	makeAjaxRequest(sUrl, "ShowCommentsForm");
}

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 = "";
	}
}




// Use this function to encode URI components, when uploading data to the server;
function EncodeAjaxUploadData(sTxt)
{
	var aCodes = { "	":"%09", "\n":"%0A", "\r":"%0D", " ":"%20",
		           "#":"%23", "$":"%24", "%":"%25", "&":"%26",            "+":"%2B", ",":"%2C",            "/":"%2F",            ":":"%3A", ";":"%3B", "=":"%3D", "?":"%3F", "@":"%40",
		"€":"%80",            "‚":"%82", "ƒ":"%83", "„":"%84", "…":"%85", "†":"%86", "‡":"%87", "ˆ":"%88", "‰":"%89", "Š":"%8A", "‹":"%8B", "Œ":"%8C",            "Ž":"%8E",
		           "‘":"%91", "’":"%92", "“":"%93", "”":"%94", "•":"%95", "–":"%96", "—":"%97", "˜":"%98", "™":"%99", "š":"%9A", "›":"%9B", "œ":"%9C",            "ž":"%9E", "Ÿ":"%9F",
		           "¡":"%A1", "¢":"%A2", "£":"%A3", "¤":"%A4", "¥":"%A5", "¦":"%A6", "§":"%A7", "¨":"%A8", "©":"%A9", "ª":"%AA", "«":"%AB", "¬":"%AC", "­":"%AD", "®":"%AE", "¯":"%AF",
		"°":"%B0", "±":"%B1", "²":"%B2", "³":"%B3", "´":"%B4", "µ":"%B5", "¶":"%B6", "·":"%B7", "¸":"%B8", "¹":"%B9", "º":"%BA", "»":"%BB", "¼":"%BC", "½":"%BD", "¾":"%BE", "¿":"%BF",
		"À":"%C0", "Á":"%C1", "Â":"%C2", "Ã":"%C3", "Ä":"%C4", "Å":"%C5", "Æ":"%C6", "Ç":"%C7", "È":"%C8", "É":"%C9", "Ê":"%CA", "Ë":"%CB", "Ì":"%CC", "Í":"%CD", "Î":"%CE", "Ï":"%CF",
		"Ð":"%D0", "Ñ":"%D1", "Ò":"%D2", "Ó":"%D3", "Ô":"%D4", "Õ":"%D5", "Ö":"%D6", "×":"%D7", "Ø":"%D8", "Ù":"%D9", "Ú":"%DA", "Û":"%DB", "Ü":"%DC", "Ý":"%DD", "Þ":"%DE", "ß":"%DF",
		"à":"%E0", "á":"%E1", "â":"%E2", "ã":"%E3", "ä":"%E4", "å":"%E5", "æ":"%E6", "ç":"%E7", "è":"%E8", "é":"%E9", "ê":"%EA", "ë":"%EB", "ì":"%EC", "í":"%ED", "î":"%EE", "ï":"%EF",
		"ð":"%F0", "ñ":"%F1", "ò":"%F2", "ó":"%F3", "ô":"%F4", "õ":"%F5", "ö":"%F6", "÷":"%F7", "ø":"%F8", "ù":"%F9", "ú":"%FA", "û":"%FB", "ü":"%FC", "ý":"%FD", "þ":"%FE", "ÿ":"%FF" };

	var c, s = "";
	for (var i=0; i<sTxt.length; i++)
	{
		c = sTxt.charAt(i);
		if (aCodes[c])
			s += aCodes[c];
		else
			s += c;
	}
	return s;
}

// This function can be used to escape special chars in url-data that don't need to be stored.
// (For AJAX-uploads it's better to use EncodeAjaxUploadData then fnEscape!)
var fnEscape = ((typeof encodeURIComponent == "function") ? encodeURIComponent : escape);
var fnUnescape = ((typeof decodeURIComponent == "function") ? decodeURIComponent : unescape);
// for older scripts
var fEscape = fnEscape;


function makeHttpRequest(url)
{
	makeAjaxRequest(url); 
}

// if return_xml is true, make sure that the server-side script starts with sending a "Content-type: text/xml" header!
function makeAjaxRequest(url, callback_function, return_xml) 
{ 
	var objRequest = CreateHttpRequestObj(callback_function, return_xml); 
	if (!objRequest)
		return false; 

	objRequest.open('GET', url, true); 
	objRequest.send(null);
	return true;
}

function MakeAjaxGetRequest(sUrl, sQuery, sCallbackFunction, bXml) 
{
	return makeAjaxRequest(sUrl + (sQuery ? "?" + sQuery : ""), sCallbackFunction, bXml);
}

function MakeAjaxPostRequest(sUrl, sQuery, sCallbackFunction, bXml) 
{
	var objRequest = CreateHttpRequestObj(sCallbackFunction, bXml); 
	if (!objRequest)
		return false; 

	objRequest.open('POST', sUrl, true); 
	objRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	objRequest.setRequestHeader("Content-Length", sQuery.length);
	objRequest.setRequestHeader("Connection", "close");
	objRequest.send(sQuery);
	return true;
}

function CreateHttpRequestObj(sCallbackFunction, bXml) 
{ 
	var objRequest = null; 
	if (window.XMLHttpRequest) // Mozilla, Safari, MSIE7,...
	{ 
		objRequest = new XMLHttpRequest(); 
		if (objRequest.overrideMimeType)
			objRequest.overrideMimeType('text/xml');
	}
	else if (window.ActiveXObject) // IE 
	{
		try
		{ 
			objRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
		}
		catch (e)
		{ 
			try
			{ 
				objRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
			}
			catch (e) {} 
		} 
	}

	if (objRequest && sCallbackFunction)
	{
		objRequest.onreadystatechange = function()
		{ 
			if (objRequest.readyState == 4)
			{ 
				if (objRequest.status == 200)
				{ 
					if (bXml)
						eval(sCallbackFunction + '(objRequest.responseXML)'); 
					else 
						eval(sCallbackFunction + '(objRequest.responseText)'); 
				}
				else
//				else if ((typeof _DEBUG_ != "undefined") && _DEBUG_)
					alert('There was a problem with the request.(Code: ' + objRequest.status + ' => ' + objRequest.statusText + ')'); 
			} 
		} 
	}

	return objRequest; 
}


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.length)
	{
		if (document.cookie.length > 0)
		{
			if (!self.aCookies)
				self.aCookies = new Array();
			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 Meeltoe(sCode, sTxt)
{
    s = "<a h";
    s += "ref=\"ma";
    sTmp = Meel(sCode);
    s += "ilt";
    s += "o:" + sTmp + "\">" + (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 Logout(bPageNeedsAuth)
{
	deleteCookie(INLOG_COOKIENAME, '/', '');
	deleteCookie("phorum_session_v5", '/', '');
	if (bPageNeedsAuth)
		location.href = "/";
	else
		location.reload();	// hard reload
//	history.go(0);		// soft reload
}

function DrawLogDiv(bPageNeedsAuth)
{
	var sRegData = getCookie(INLOG_COOKIENAME);
	document.write("<div class='bottomlinks'>");
	if (sRegData)
	{
		var aTmp = sRegData.split('^');
		var sName = (aTmp.length > 2) ? aTmp[2] : aTmp[0];
		document.write("<div style='width:91px; overflow:hidden'><nobr>U bent ingelogd als:</nobr></div>");
		document.write("<div style='height:24px; width:91px; overflow:hidden' title='" + sName + "'>" + sName + "</div>");
		document.write("<div style='margin-bottom:4px'><a href='/myautoweek/?cache=no'>Mijn pagina's</a></div>");
		document.write("<div style='text-align:right'><a href='' onclick='Logout(" + (bPageNeedsAuth ? "true" : "") + "); return false'>Uitloggen</a></div>");
	}
	else
	{
		document.write("<div style='text-align:center; margin:8px 0 4px'><button onclick='GB_showCenter(\"Inloggen\", \"/myautoweek/login.php\", 542, 848)' class='white' title='Inloggen'>Inloggen</button></div>");
		document.write("<div style='margin-left:11px'>&bull; <a href='#' onclick='GB_showCenter(\"Registeren\", \"/myautoweek/login.php?mode=aanmelden\", 542, 848); return false'>Registreren</a></div>");
		document.write("<div style='margin:6px 0 0 11px'>&bull; <a href='/myautoweek/?page=8'>Nieuwsbrief</a></div>");
//		document.write("<a href='/myautoweek/login.php?cache=no' rel='gb_page_center[848, 542]' class='whitebutton' title='Inloggen'>Inloggen</a></div>");
	}
	document.write("</div>");
}

function WriteBugreportLink()
{
	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 sRegData = getCookie(INLOG_COOKIENAME);
	if (sRegData)
	{
		var aTmp = sRegData.split('^');
		if (aTmp.length)
		{
			if (aTmp.length > 2)
				form.namesender.value = aTmp[2];
			form.mailsender.value = aTmp[0];
		}
	}
	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") &&
			 (!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/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 ="/autovergelijker.php";
		return true;
	case "ads":
		form.action ="/occasions.php";
		return true;
	case "tests":
		form.action ="/autotestindex.php";
		return true;
	case "review":
		form.action ="/myreviewautoindex.php";
		return true;
	case "news":
		form.action ="/nieuwsindex.php";
		return true;
	default:
		if (form.model.selectedIndex)
			form.action ="/modelindex.php";
		return true;
	}
}

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 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 < 5.0 || !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 GetPollList(sRoot, form, nOffset, bShowLoadingAni)
{
//	if (bShowLoadingAni)
//		StartPopupLoadingAni();
    self.idFilteredContent = "idPollList";
    makeAjaxRequest(sRoot + "async/get_polllist.php?offset=" + nOffset, "ChangeFilteredContent");
}

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?CMP=AFC-AUTOWEEK_5','','');
}

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

function openverzekering(param) {
    var obj = document.getElementById('insurance_form');  
    var url='http://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) {
    if (thisfield.value.length==fieldlen) {
        var obj = document.getElementById(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 aImgCache = new Array();
aImgCache.Add = function(sFilename)
{
	var i = this.length;
	this[i] = new Image();
	this[i].src = "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");



