/***
 * Standaarden scripts extra-functions.js versie 0011 - 28 oktober 2008.
 * Helemaal onderaan dit bestand bevindt zich de Body onload code die in iedere template uitgevoerd zal worden, waarin dit script is ingeladen.
 * Nu hoeft er niet meer in iedere template apart een body onload te worden ingevoerd en zijn alle standaard functies aanwezig.
 * v0011 = window.onload example loadMapGadget
 * v0011 = GoogleMapsCode added
 *======
 * Dit bestand bevat de volgende functies:
 *======
 * ------ Niet gedefineerde variabelen worden gecontroleerd
 * ------ MM_Refresh = refresh webpage
 * ------ getQuery = getQueryVariable('urlParamName'); en loadVariables();
 * ------ Cookie scripts = createCookie(); en readCookie();
 * ------ HideEmptyImages();
 * ------ Iframe resize scripts = adjustIFrameSize(iframeWindowObject);, resizeIframes(); en startResizeIframesTimer(100);
 * ------ HighlightLocation('header_navigation~content_navigation~footer_navigation');
 * ------ changeHighlightLocation('font_switcher','link_current_class',linkObject);
 * ------ setNewstickerDisplayAt('newsticker_div');
 * ------ deleteEmptyImagesAt('images_div');
 * ------ createSmoelNavigationAt('smoel_navigation');
 * ------ placeDateOfTodayAt('date_displayer');
 * ------ identifyFieldOdds('formbuilder_container_div','formbuilder','odd');
 * ------ identifyTableOdds('table_id','tbody','tr');
 * ------ openClose(linkObject,'link',divObject_toOpen,'tabdiv');
 * ------ swapTabView('hidden_content_container_id','1','div_id_<nr>_text','div_id_1_text','tablinks_container_id',tabLinkObjectToSetActive);
 * ------ RollOver en RollOut = rollOver(callingObject,targetObject); rollOut(callingObject,targetObject);
 * ------ createCrumbPathAt('crumbpath_container_id');
 * ------ menubuilderCopyActiveLvl2('menubuilder_stylename','destination_id');
 * ------ launchImagePopup(picture_url,'img_view_window_name'); <-- Uses mod_popup.htm  in templates folder
 * ------ swapContent(source_id, destination_id);
 * ------ setFont('font_small','font_switcher',''); <-- Will be added to the classnames of div elements with the class font_proportional
 * ------ AJAX = ajax = new AJAX(); ajax.execute('url_location_to_retrieve_content','POST',functionObjectToGrantTheRetrievedDataObject);
 * ------ GoogleMapsCode
 * ------ window.onload = <body onload=""....> <-- Make sure the <body onload=""....> is empty in the templates
 *======
 * De volgende variabelen zijn vereist in de template aanwezig te zijn vóór dat dit script ingeladen wordt, dit kan er als volgt uitzien in de template:
 * <head>
 * ...
 * 	<script type="text/javascript">
	var timeOut = false;
	var language = "Nederlands";
	var themeId = '<$
type=INTERNAL_VARIABLE
varname=theme_id
$>';
	var themeName = '<$
type=INTERNAL_VARIABLE
varname=theme_name
$>';
	// Vanaf Updater 9 SP3 en hoger, indien lager, deze variabele uitcommentariseren
	var crumbPath_themeIds = '<$
type=internal_variable
varname=theme_id_tree
$>';
	// Vanaf Updater 9 SP3 en hoger, indien lager, deze variabele uitcommentariseren
	var crumbPath_themeNames = '<$
type=internal_variable
varname=theme_id_tree
outputconversion=javascriptname
$>';
	var pageId = '<$
type=INTERNAL_VARIABLE
varname=page_id
$>';
	var pageName = '<$
type=INTERNAL_VARIABLE
varname=page_version_title
$>';
	</script>
	
	// Externe scripts opstelling
	// - jQuery voor de standaard functies en aanroepingen, nodig voor de werking van de fade scriptjes etc
	// - imgFade voor een fade / rouleer script van IMG elementen
	// - jQuery.newsticker.pack.js voor het faden / rouleren van LI elementen
	// - extra-functions voor de levering van standaardscript en de controle over andere scripts
	// - pngfix voor PNG images transparantie support in IE 6 en lager, werkt niet bij background images
	<script type="text/javascript" src="/javascript/jquery-1.2.6.js"></script>
	<script type="text/javascript" src="/javascript/jquery.animatedcollapse.pack.js"></script>
	<script type="text/javascript" src="/javascript/jquery.cycle.pack.js"></script>
	<script type="text/javascript" src="/javascript/jquery.newsticker.pack.js"></script>
	<script type="text/javascript" src="/javascript/extra-functions.js"></script>
	<!--[if lt IE 7]>
		<script defer type="text/javascript" src="/javascript/pngfix.js"></script>
	<![endif]-->
 * ...
 * </head>
 */

/*== Check undefineds==*/
if (!timeOut)
{
	var timeOut = false;
}
if (!language)
{
	var language = "Nederlands";
}
if (!themeId)
{
	var themeId = "";
}
if (!themeName)
{
	var themeName = "";
}
if (!crumbPath_themeIds)
{
	var crumbPath_themeIds = "";
}
if (!crumbPath_themeNames)
{
	var crumbPath_themeNames = "";
}
if (!pageId)
{
	var pageId = "";
}
if (!pageName)
{
	var pageName = "";
}
/*== ==*/

/*== ==*/
function MM_Refresh()
{
	window.location.reload()
}
/*== ==*/

/*== getQuery ==*/
var query = window.location.search.substring(1);
var vars = query.split("&");
var varArray = {};

function getQueryVariable(variable) {
	for (var i=0;i<vars.length;i++)
	{
		var pair = vars[i].split("=");
		if (pair[0] == variable)
		{
		  return pair[1];
		}
	} 
}
function loadVariables()
{
	for (var i=0;i<vars.length;i++)
	{
		var pair = vars[i].split("=");
		varArray[pair[0].toString()] = pair[1];
	}
}
/*== ==*/

/*== Cookie scripts ==*/
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
/*== ==*/

/*== HideEmptyImages ==*/
function HideEmptyImages()
{	
	var regex_1 = new RegExp("(shownoimg)\.gif$");
	var regex_2 = new RegExp("(spacer)\.gif$");
	var regex_3 = new RegExp("(dot)\.gif$");
	
	for (var i=0; i < document.images.length; i++)
	{
		if (regex_1.test(document.images[i].src) || regex_2.test(document.images[i].src) || regex_3.test(document.images[i].src))
		{
			document.images[i].style.display = "none";
		}
	}
}
/*== ==*/

/*== Iframe resize script for IE and FF ==*/
function adjustIFrameSize(iframeWindow)
{
	var iframeElement = document.getElementById(iframeWindow.name);
	
	if (navigator.appVersion.match(/MSIE/))
	{
		iframeElement.style.height = iframeWindow.document.body.scrollHeight + 13 + 'px';
	}
	else
	{
		iframeElement.style.height = iframeWindow.document.getElementsByTagName('html')[0].scrollHeight + 'px';
	}
}
function resizeIframes()
{
	for (var i=0; i<window.frames.length; i++)
	{
		if (window.frames[i])
		{
			adjustIFrameSize(window.frames[i]);
		}
	}
}
function startResizeIframesTimer(milliseconds)
{
	setTimeout("resizeIframes()",milliseconds);
}
/*== ==*/

/*== HighlightLocation("header_navigation~content_navigation~footer_navigation"); ==*/
function HighlightLocation(containerIds)
{
	var localThemeId = 'themeid='+themeId;
	var localPageId = 'pageid='+pageId;
	
	var navigationsToCheck = new Array();
	
	var containerIds_gesplit = containerIds.split(/~/);
	
	for (var u=0; u<containerIds_gesplit.length; u++)
	{
		navigationsToCheck.push(containerIds_gesplit[u]);
	}
	
	var regExp = new RegExp("#");
	var regExp_digitCheck_ThemeId = new RegExp(localThemeId + '(?![0-9])');
	var regExp_digitCheck_PageId = new RegExp(localPageId + '(?![0-9])');
	
	for (var i=0; i<navigationsToCheck.length; i++)
	{
		if (document.getElementById(navigationsToCheck[i]))
		{	
			var linkObjects = document.getElementById(navigationsToCheck[i]).getElementsByTagName('a');
			
			for (var j=0; j<linkObjects.length; j++)
			{
				var src = ""+linkObjects[j]+"";
				
				if ((regExp_digitCheck_ThemeId.exec(src) || regExp_digitCheck_PageId.exec(src)) && !regExp.exec(src))
				{
					linkObjects[j].className = 'active';
				}
				else
				{
					linkObjects[j].className = '';
				}
			}
		}
	}
}
/*== ==*/

/*== changeHighlightLocation('font_switcher',linkObject); ==*/
function changeHighlightLocation(containerId,linkObjectCurrentClassName,linkObject)
{
	if (document.getElementById(containerId))
	{
		var containerObject = document.getElementById(containerId);
		
		for (var i=0; i<containerObject.getElementsByTagName('a').length; i++)
		{
			var currentLinkObject = containerObject.getElementsByTagName('a')[i];
			
			if (currentLinkObject != linkObject)
			{
				currentLinkObject.className = linkObjectCurrentClassName;
			}
			else
			{
				currentLinkObject.className = linkObjectCurrentClassName + ' active';
			}
		}
	}
}
/*== ==*/

/*== setNewstickerDisplayAt ==*/
function setNewstickerDisplayAt(id)
{
	if (document.getElementById(id))
	{
		document.getElementById(id).getElementsByTagName('ul')[0].id = 'newsticker';
		document.getElementById(id).getElementsByTagName('li')[0].style.display = 'block';
	}
}
/*== ==*/

/*== deleteEmptyImagesAt ==*/
function deleteEmptyImagesAt(id)
{
	if (document.getElementById(id))
	{
		var containerObject = document.getElementById(id);
		
		for (var i=0; i<containerObject.getElementsByTagName("img").length; i++)
		{
			var currentObject = containerObject.getElementsByTagName("img")[i];
			
			if (currentObject.src.match(/(shownoimg)\.gif$/))
			{
				containerObject.removeChild(currentObject);
			}
		}
		
	}
}
/*== ==*/

/*== Smoelenboek input navigation (previous and next picture) ==*/
function createSmoelNavigationAt(id)
{
	if (getQueryVariable("smoelen") && document.getElementById(id))
	{
		var objectToCreateNavigationAt = document.getElementById(id);
		var smoelPageIds = getQueryVariable("smoelen");
		var smoelPageIds_Array = smoelPageIds.split(/,/);
		
		var back = "";
		var backUsed = false;
		var separator = "";
		var next = "";
		var nextUsed = false;
		
		var currentIteratorLocation = 0;
		
		for (var i=0; i<smoelPageIds_Array.length; i++)
		{
			if (smoelPageIds_Array[i] == pageId)
			{
				currentIteratorLocation = i;
			}
		}
		
		if (smoelPageIds_Array[currentIteratorLocation-1])
		{
			back = '<a class="smoel_back" href="/cms/publish/content/showpage.asp?pageid='+smoelPageIds_Array[currentIteratorLocation-1]+'&smoelen='+smoelPageIds+'"><< vorige</a>';
			backUsed = true;
		}
		if (smoelPageIds_Array[currentIteratorLocation+1])
		{
			next = '<a class="smoel_next" href="/cms/publish/content/showpage.asp?pageid='+smoelPageIds_Array[currentIteratorLocation+1]+'&smoelen='+smoelPageIds+'">volgende >></a>';
			nextUsed = true;
		}
		
		if (backUsed && nextUsed)
		{
			//separator = ' - ';
		}
		
		objectToCreateNavigationAt.innerHTML = back+''+separator+''+next;
	}
}
/*== ==*/

/*== placeDateOfTodayAt ==*/
function placeDateOfTodayAt(id)
{
	if (document.getElementById(id))
	{
		var objectToPlaceDateOfToday = document.getElementById(id);
		
		var date = new Date();
		var today = date.getDate() + '-' + (date.getMonth() + 1) + '-' + date.getFullYear();
		
		objectToPlaceDateOfToday.innerHTML = today;
	}
}
/*== ==*/

/*== Formbuilder om en om ==*/
function identifyFieldOdds(containerId,elementIdTypes,oddClassNameToAdd)
{
	if (document.getElementById(containerId))
	{
		var elementCounter = 0;
		var containerObject = document.getElementById(containerId);
		
		for (var g=0;g<containerObject.getElementsByTagName('div').length;g++)
		{
			var currentElement = containerObject.getElementsByTagName('div')[g];
			
			if (currentElement.className == elementIdTypes)
			{
				if (elementCounter % 2 == 0)
				{
					currentElement.className = elementIdTypes + ' ' + oddClassNameToAdd;
				}
				
				elementCounter++;
			}
		}
		
	}
}
/*== ==*/

/*== Identify table odds ==*/
function identifyTableOdds(containerId,fieldsContainerType,fieldsToCheckForOddsType)
{
	if (document.getElementById(containerId))
	{
		var containerElement = document.getElementById(containerId);
		
		for (var i=0; i<containerElement.getElementsByTagName(fieldsContainerType).length; i++)
		{
			var currentElement = containerElement.getElementsByTagName(fieldsContainerType)[i];
			
			for (var j=0; j<currentElement.getElementsByTagName(fieldsToCheckForOddsType).length; j++)
			{
				var currentChildElement = currentElement.getElementsByTagName(fieldsToCheckForOddsType)[j];
				
				if (j % 2 == 0)
				{
					currentChildElement.className = 'odd';
				}
			}
		}
	}
}
/*== ==*/

/*== openClose ==*/
function openClose(elementLink, elementLinkCurrentClassName, elementToOpen, elementToOpenCurrentClassName)
{
	if (elementLink && elementToOpen)
	{
		if (elementLink.className.match(/active/) && elementToOpen.className.match(/active/))
		{
			elementLink.className = elementLinkCurrentClassName;
			elementToOpen.className = elementToOpenCurrentClassName;
		}
		else
		{
			elementLink.className = elementLinkCurrentClassName + ' active';
			elementToOpen.className = elementToOpenCurrentClassName + ' active';
		}
	}
}
/*== ==*/

/*== swapTabView ==*/
function swapTabView(elementsToDisplayContainerId, elementNrToDisplay, elementIdTypesToChangeDisplay, currentClassName, tabLinksContainerId, tabLinkToSetActive)
{
	var digitSign = '<nr>';
	var elementIdToDisplay = elementIdTypesToChangeDisplay.replace(digitSign,elementNrToDisplay);
	var elementIdToDisplay_splitted = elementIdTypesToChangeDisplay.split(digitSign);
	var elementIdToDisplay_front = elementIdToDisplay_splitted[0];
	var elementIdToDisplay_back = elementIdToDisplay_splitted[1];
	
	if (document.getElementById(elementsToDisplayContainerId) && document.getElementById(elementIdToDisplay) && document.getElementById(tabLinksContainerId) && tabLinkToSetActive)
	{
		var elementToDisplay_Container = document.getElementById(elementsToDisplayContainerId);
		var elementToDisplay = document.getElementById(elementIdToDisplay);
		
		for (var u=0; u<elementToDisplay_Container.getElementsByTagName('div').length; u++)
		{
			var currentElement = elementToDisplay_Container.getElementsByTagName('div')[u];
			
			if (currentElement.id.match(elementIdToDisplay))
			{
				currentElement.className = currentClassName + ' active';
			}
			else if (currentElement.id.match(elementIdToDisplay_front) && currentElement.id.match(elementIdToDisplay_back))
			{
				currentElement.className = currentClassName;
			}
		}
		
		var tabLinksDisplay_Container = document.getElementById(tabLinksContainerId);
		
		for (var v=0; v<tabLinksDisplay_Container.getElementsByTagName('a').length; v++)
		{
			var currentElement = tabLinksDisplay_Container.getElementsByTagName('a')[v];
			currentElement.className = '';
		}
		
		tabLinkToSetActive.className = 'active';
	}
}
/*== ==*/

/*== RollOver en RollOut ==*/
function rollOver(callingObject,targetObject)
{
	if (callingObject && targetObject)
	{
		if (targetObject.className.length > 0)
		{
			targetObject.className += ' hover';
		}
		else
		{
			targetObject.className = 'hover';
		}
	}
}
function rollOut(callingObject,targetObject)
{
	if (callingObject && targetObject)
	{
		targetObject.className = targetObject.className.replace(/hover/,"");
		targetObject.className = targetObject.className.replace(/ $/,"");
	}
}
/*== ==*/
	
/*== Kruimelpad script (Vanaf Updater 9 SP3 en hoger)  indien lager, dit script uitcommentariseren==*/
function createCrumbPathAt(id)
{
	if (document.getElementById(id) && crumbPath_themeNames && crumbPath_themeIds && themeName && pageName && pageId)
	{
		crumbPath_themeNames = crumbPath_themeNames.replace(/[ ][(]NIET VERWIJDEREN[)]/g,"");
		pageName = pageName.replace(/[ ][(]NIET VERWIJDEREN[)]/g,"");
		themeName = themeName.replace(/[ ][(]NIET VERWIJDEREN[)]/g,"");
		
		crumbPath_themeNames = crumbPath_themeNames.replace(/\* Modules/g,"");
		pageName = pageName.replace(/\* Modules/g,"");
		themeName = themeName.replace(/\* Modules/g,"");	
		
		var printableNavigation = '';
		var objectToPlaceCrumbpath = document.getElementById(id);
		
		var crumbPath_themeIds_Array = crumbPath_themeIds.split(/~/);
		var crumbPath_themeNames_Array = crumbPath_themeNames.split(/~/);
		
		for (var i=0; i<crumbPath_themeIds_Array.length; i++)
		{
			if (crumbPath_themeIds_Array[i] == "")
			{
				crumbPath_themeIds_Array.splice(i,1);
			}
			if (crumbPath_themeNames_Array[i] == "")
			{
				crumbPath_themeNames_Array.splice(i,1);
			}
		}
		
		for (var j=0; j<crumbPath_themeNames_Array.length; j++)
		{
			if (j == 0)
			{
				crumbPath_themeNames_Array[j] = crumbPath_themeNames_Array[j].replace(/^- Restyle Intranet/,"Intranet");
				
				// Voeg alle (sub) thema's toe aan een verzameling met links, evt. opbouw kan hier worden gewijzigd
				printableNavigation += '<a class="first" href="/cms/publish/content/showpage.asp?themeid='+crumbPath_themeIds_Array[j]+'">'+crumbPath_themeNames_Array[j]+'</a>';
			}
			else
			{
				
				// Voeg alle (sub) thema's toe aan een verzameling met links, evt. opbouw kan hier worden gewijzigd
				printableNavigation += '<a href="/cms/publish/content/showpage.asp?themeid='+crumbPath_themeIds_Array[j]+'">'+crumbPath_themeNames_Array[j]+'</a>';
				
			}
			
		}
		
		// Hier wordt de paginatitel als laatste link toegevoegd, evt. opbouw kan hier worden gewijzigd
		printableNavigation += ' <a class="last" href="/cms/publish/content/showpage.asp?pageid='+pageId+'"><strong>'+pageName+'</strong></a>';
		
		// Plaats het samengestelde kruimelpad in het element met het opgegeven ID
		objectToPlaceCrumbpath.innerHTML = printableNavigation;
	}
}
/*== ==*/

/*== menubuilderCopyActiveLvl2 ==*/
function menubuilderCopyActiveLvl2(menuName,destinationId)
{
	if (document.getElementById('submenu'))
	{
		var regExp_menuName = new RegExp("-"+menuName+"-");
		var regExp_activeLevel2 = new RegExp("smactive2");
		var level2Object = false;
		var destinationObject = document.getElementById('submenu');
		
		for (var i=0; i<document.getElementsByTagName('div').length; i++)
		{
			var currentDiv = document.getElementsByTagName('div')[i];
			
			if (regExp_menuName.test(currentDiv.className) && regExp_activeLevel2.test(currentDiv.className))
			{
				level2Object = currentDiv;
				
				break;
			}
		}
		
		if (level2Object)
		{
			var linkLocations = new Array();
			var linkNames = new Array();
			var linkActive = new Array();
			
			for (var j=0; j<level2Object.getElementsByTagName('a').length; j++)
			{	
				if (level2Object.getElementsByTagName('a')[j].parentNode.className.indexOf("active2") != -1)
				{
					linkActive[j] = " active";
				}
				else
				{
					linkActive[j] = "";
				}
				
				linkLocations[j] = level2Object.getElementsByTagName('a')[j];
				linkNames[j] = level2Object.getElementsByTagName('a')[j].innerHTML;
			}
			
			var toPaste = "";
			
			for (var k=0; k<linkLocations.length; k++)
			{
				toPaste += '<div class="menu_item menu_item_'+k+''+linkActive[k]+'"><a href="'+linkLocations[k]+'">'+linkNames[k]+'</a></div>\n';
				
			}
			
			destinationObject.innerHTML = toPaste;
		}
	}
}
/*== ==*/

/*== launchImagePopup ==*/
function launchImagePopup(sPicURL,title)
{
	if (sPicURL != "" && !sPicURL.match(/spacer.gif/) && !sPicURL.match(/shownoimg.gif/) && !sPicURL.match(/dot.gif/))
	{
		window.open('/data/templates/mod_popup.htm?'+sPicURL,title,"width=200,height=200,scrollbars=no,toolbar=no,location=no,resizable=yes");
	}
}
/*== ==*/

/*== swapContent ==*/
function swapContent(sourceId,destinationId)
{
	if (document.getElementById(sourceId) && document.getElementById(destinationId))
	{
		document.getElementById(destinationId).innerHTML = document.getElementById(sourceId).innerHTML;
	}
}
/*== ==*/

/*== setFont ==*/

// Wanneer er nog geen font aanwezig is in de cookie wordt deze automatisch toegewesen aan alle divs met de classname font_proportional
var initial_font = "font_small"; //font_small,  normal_font, font_big zorg dat deze tekst niet overruled wordt door andere classes

function setFont(font,fontSwitcherContainerId,fontSwitcherLinkCurrentClassName)
{
	var fontSwitch_smallId = 'ft_small';
	var fontSwitch_normalId = 'ft_normal';
	var fontSwitch_bigId = 'ft_big';
	
	if (!font || font == "")
	{
		font = readCookie("fontType");
	}
	else
	{
		font = font;
	}
	
	if (!font || font == "")
	{
		font = initial_font;
		createCookie("fontType",initial_font,366);
	}
	else
	{
		createCookie("fontType",font,366);
	}
	
	if (document.getElementById(fontSwitcherContainerId))
	{
		var containerObject = document.getElementById(fontSwitcherContainerId);
		
		for (var u=0; u<containerObject.getElementsByTagName('a').length; u++)
		{
			var currentLinkObject = containerObject.getElementsByTagName('a')[u];
			
			currentLinkObject.className = fontSwitcherLinkCurrentClassName;
			
			if (font.match(/font_small/))
			{
				if (currentLinkObject.id.match(fontSwitch_smallId))
				{
					currentLinkObject.className = fontSwitcherLinkCurrentClassName + ' active';
				}
			}
			else if (font.match(/font_normal/))
			{
				if (currentLinkObject.id.match(fontSwitch_normalId))
				{
					currentLinkObject.className = fontSwitcherLinkCurrentClassName + ' active';
				}
			}
			else if (font.match(/font_big/))
			{
				if (currentLinkObject.id.match(fontSwitch_bigId))
				{
					currentLinkObject.className = fontSwitcherLinkCurrentClassName + ' active';
				}
			}
		}
	}
	
	var debugCollection = "";
	var currentClassName = false;
	
	for (var i=0; i<document.getElementsByTagName("div").length; i++)
	{
		currentClassName = document.getElementsByTagName("div")[i].className;
		
		if (currentClassName != "")
		{
			if (currentClassName.indexOf("font_small")!=-1 && currentClassName.indexOf("font_proportional")!=-1)
			{
				debugCollection += currentClassName + " nr " + i + "\n";
				
				document.getElementsByTagName("div")[i].className = document.getElementsByTagName("div")[i].className.replace("font_small",font);
			}
			else if (currentClassName.indexOf("font_normal")!=-1 && currentClassName.indexOf("font_proportional")!=-1)
			{
				debugCollection += currentClassName + " nr " + i + "\n";
				
				document.getElementsByTagName("div")[i].className = document.getElementsByTagName("div")[i].className.replace("font_normal",font);
			}
			else if (currentClassName.indexOf("font_big")!=-1 && currentClassName.indexOf("font_proportional")!=-1)
			{
				debugCollection += currentClassName + " nr " + i + "\n";
				
				document.getElementsByTagName("div")[i].className = document.getElementsByTagName("div")[i].className.replace("font_big",font);
			}
			else if (currentClassName.indexOf("font_proportional")!=-1)
			{
				debugCollection += "." + currentClassName + " <nr " + i + "> #" + document.getElementsByTagName("div")[i].id + "\n";
				
				document.getElementsByTagName("div")[i].className += " " + font;
			}
		}
	}
	
	//alert(debugCollection); //debugging, handig om te weten welke elementen hij aanpast
	//javascript:alert(createCookie('fontType','',-1)); <-- Put this in URL to clear the cookie
}
/*== ==*/

/*== AJAX ==*/
/**
 * AJAX class v0.02 developed by Pimmos
 * This function has been created to aid in working with the new technology called AJAX
 * © 10-2008
 **/
var browserType = navigator.appName;

function AJAX() {
	
	// Predefine the XMLHTTP object
	this.XMLHTTPObject = false;
	
	// Define the functions withing this class
	this.returnXMLHTTPObject = function()
	{
		var returnedObject = false;
		
		if (browserType.indexOf("Microsoft Internet Explorer") != -1)
		{
			try
			{ 
				returnedObject = new ActiveXObject("Msxml2.XMLHTTP");
				this.getObjectFunction = function()
				{
					return new XMLHttpRequest;
				};
			}
			catch (e1)
			{ 
				// first method failed 
				try
				{
					returnedObject = new ActiveXObject("Microsoft.XMLHTTP");
					this.getObjectFunction = function()
					{
						return new ActiveXObject(msxml[i]);
					};
					
				} catch (e2) {
					 // both methods failed 
				} 
			}
		}
		else if (browserType.indexOf("Netscape") != -1)
		{
			returnedObject = new XMLHttpRequest();
		}
		else if (browserType.indexOf("Opera") != -1)
		{
			returnedObject = new XMLHttpRequest();
		}
		
		return returnedObject;
	}
	
	// Predefine variables within this class
	this.XMLHTTPObject = this.returnXMLHTTPObject();
	
	this.getReadyStateHandler = function(XMLHTTPObject,responseHandler)
	{
		return function ()
		{
			if (XMLHTTPObject.readyState == 4)
			{
				if (XMLHTTPObject.status == 200)
				{
					responseHandler(XMLHTTPObject.responseText);
				}
			}
		}
	}
	
	this.execute = function(url,method,responseHandler)
	{
		this.XMLHTTPObject = this.returnXMLHTTPObject();
		
		if (this.XMLHTTPObject)
		{
			var firstParam = "?";
			
			if (url.match(/[?]/))
			{
				firstParam = "&";
			}
			
			var math = ""+firstParam+"requestId=" + Math.round(Math.random(10000000000)*10000000000);
			var query = url + math;
			var callbackHandler = this.getReadyStateHandler(this.XMLHTTPObject,responseHandler);
			
			this.XMLHTTPObject.onreadystatechange = callbackHandler;
			
			if (method == "GET")
			{
				this.XMLHTTPObject.open(method,query,true);
				this.XMLHTTPObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				this.XMLHTTPObject.send(null);
			}
			else if (method == "POST")
			{
				this.XMLHTTPObject.open(method,url,true);
				this.XMLHTTPObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				this.XMLHTTPObject.send(query);
			}
		}
	}
}
function ajaxResponseHandler_Practise(XMLHTTPObjectResponse)
{
	var data = eval('(' + XMLHTTPObjectResponse + ')');
	
	if (document.getElementById('zoekresultaten_pageid'))
	{
		document.getElementById('zoekresultaten_pageid').innerHTML = data.configuratie[0].modules[0].zoekresultaten_pageid[0].talen.engels;
	}
}
/*== ==*/

/*== GoogleMapsCode ==*/
if (!googlemaps_key)
{
	var googlemaps_key = "";
}
/**
 * The map object, null until script loads in.
 * @type {GMap2}
 */
var map = null;  

/**
 * The bounds of the markers once loaded in.
 * @type {GLatLngBounds}
 */
var bounds = null;

/**
 * The marker with currently opened info window.
 * @type {GMarker}
 */
var currentMarker = null;

/**
 * The dom element that the map is loaded into
 * @type {Element}
 */
var mapDiv = null;

/**
 * The dom element that everything is a child of.
 * @type {Element}
 */
var containerDiv = null;

/**
 * Position of mouse click (clientX) on map div when in static mode.
 * @type {Number}
 */
var clickedX = 0;

/**
 * Position of mouse click (clientY) on map div when in static mode.
 * @type {Number}
 */
var clickedY = 0;

/**
 * Indicates whether we've created a script tag with Maps API yet
 * @type {Boolean}
 */
var isLoaded = false;


/**
 * Called after script is asynchronously loaded in.
 * Creates the GMap2, GMarker objects and performs actions according to 
 * what the user did to trigger the map load (search, zoom, click etc).
 */
function loadMap()
{
	if (GBrowserIsCompatible())
	{
		mapDiv.style.background = '#fff';
		mapDiv.style.cursor = '';
		map = new GMap2(mapDiv, {logoPassive: true});
		bounds = new GLatLngBounds();
		
		for (var i = 0; i < (businesses.length-1); i++)
		{
			bounds.extend(new GLatLng(businesses[i].lat, businesses[i].lng));
		}
		
		var latSpan = bounds.toSpan().lat();
		map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
		
	    // The static map server gives markers more space when calculating
	    // bounds and zoom level, so sometimes the API will give a higher
	    // zoom level than was used by the static map server.
	    // The .98 value is just a guess right now, may need tweaking.
	    var newBounds = map.getBounds();
	    var newLatSpan = newBounds.toSpan().lat();
		
	    if (latSpan/newLatSpan > .90)
		{
			map.zoomOut();
		}

	    for (var i = 0; i < (businesses.length-1); i++)
		{
			var marker = createMarker(i);
			var latlng = marker.getLatLng();
			var pixel = map.fromLatLngToDivPixel(latlng);
			
			if (Math.abs(pixel.x - clickedX) < 12 && Math.abs(pixel.y - clickedY) < 20)
			{
				//GEvent.trigger(marker, 'click');
			}
			
			map.addOverlay(marker);
		}
	}
}

/**
 * Zooms to the viewport that fits all the markers.
 */
function zoomToAll()
{
	map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
}

/**
 * Creates a marker for the given business.
 * @param {Number} ind
 * @return {GMarker}
 */
function createMarker(ind)
{
	var business = businesses[ind];
	var marker = new GMarker(new GLatLng(business.lat, business.lng));
	
	GEvent.addListener(marker, 'click', function()
	{
		marker.html = ['<b>', business.name, '</b><br>', 
			business.street, '<br> ', business.city, ',', 
			business.state, ' ', business.zip, '<br>',
			business.phone, '<br><br>', 'Routeplanner: ', 
			'<a target="_blank" ',
			'href="http://maps.google.com/maps?saddr=&daddr=',
			formatAddressForMaps(business), '">hier naar toe</a> - ', 
			'<a target="_blank" ',
			'href="http://maps.google.com/maps?saddr=',
			formatAddressForMaps(business), '&daddr=', '"> hier vandaan <br> ',
			'<a href="javascript:zoomToAll()">Bekijk alle locaties</a>'].join('');
		currentMarker = marker;
		marker.openInfoWindowHtml(marker.html);
	});
	
	return marker;
}

/**
 * Formats business info into a URL-friendly version for maps url.
 * @param {Object} business
 * @return {String}
 */
function formatAddressForMaps(business)
{
	var address = business.street + ' ' + business.city + ' ' + business.state + ' ' + business.zip;
	
	return escape(address.replace(' ', '+'));
}

/**
 * Convenience function for creating an element and assigning an id to it.
 * @param {String} elementType
 * @param {String} id
 * @return {Element} 
 */
function _cel(elementType, id)
{
	var element = document.createElement(elementType);
	element.id = id;
	
	return element;
}

/**
 * Loads in the Maps API script. This is called after some sort of user interaction.
 * The script loads asynchronously and calls loadMap once it's in.
 */
function loadScript()
{
	if (!isLoaded)
	{
		isLoaded = true;
		
		var div = document.createElement('div');
		div.className = 'message';
		div.innerHTML = 'Loading...';
		div.style.left = (500/2 - 53) + 'px';
		div.style.top = 500/2 + 'px'; 
		mapDiv.appendChild(div);
		
		var script = document.createElement('script');
		script.type = 'text/javascript';
	    script.src = 'http://maps.google.com/maps?file=api&v=2.x&async=2&callback=loadMap&key='+googlemaps_key;
			
		document.body.appendChild(script);
	}
}

/**
 * Sets up the gadget by setting CSS and click events.
 */
function loadMapGadget(containerId,mapId)
{
	if (document.getElementById(containerId) && document.getElementById(mapId))
	{
		containerDiv = document.getElementById(containerId);
		mapDiv = document.getElementById(mapId);
		
		mapDiv.onclick = function (e)
		{
			clickedX = (window.event && window.event.offsetX) || e.clientX;
			clickedY = (window.event && window.event.offsetY) || e.clientY;
			loadScript(); 
		};
		
		mapDiv.style.cursor = 'pointer';
		
		var urlString = ['http://maps.google.com/staticmap?markers='];
		var markerString = [];
		
		for (var i = 0; i < (businesses.length -1); i++)
		{
			markerString.push(businesses[i].lat + ',' + businesses[i].lng + ',red');
		}
		
		//alert(markerString);
		
		urlString.push(markerString.join('|'));
		urlString.push('&size=500x300');
		urlString.push('&key='+googlemaps_key);
			
		mapDiv.style.background = 'url(\'' + urlString.join('') + '\')';
	}
}
/*== ==*/

/*---== Custom functions ==---*/

/*== checkVisited ==*/
function checkVisited()
{
	var oostpoortVisited = "false";
	
	if (readCookie("oostpoortVisited"))
	{
		oostpoortVisited = readCookie("oostpoortVisited");
	}
	else
	{
		createCookie("oostpoortVisited","true",100);
	}
	
	return oostpoortVisited;
}
/*== ==*/

/*== Body onload ==*/
window.onload = function(e)
{
	HideEmptyImages(); // Standaard functie
	
	//HighlightLocation();
	
	//loadMapGadget('googlemaps_container','googlemaps_map');
	
	/*ajax = new AJAX();
	ajax.execute('/cms/publish/content/showpage.asp?pageid=147','GET',ajaxResponseHandler_Practise);*/
	
	/*createSmoelNavigationAt("smoel_nav");
	deleteEmptyImagesAt("fade_image");
	setNewstickerDisplayAt("newsticker_wrapper");
	placeDateOfTodayAt("date_today");
	createCrumbPathAt("crumb_path_margins");
	startResizeIframesTimer(100);*/
	
	/*$('#fade_image').cycle({ 
	    fx:    'fade', 
	    speed:  2500
	});
	$('#newsticker').newsticker();*/
}
/*== ==*/

