//ALL FUNCTIONS AND VARIABLES IN THIS ROUTINE ARE USED IN WEB PAGES IN PUBLISHING MODE.


var arrFolderList=new Array();function checkInputSize(which,maxsize){which.value=which.value.substring(0,maxsize);}
var _session = new Array();

function load()
{
//THIS FUNCTION IS TRIGGERED ON THE PAGE LOAD. IT TRIGGERS A CATCH EVENT FUNCTION ON KEY DOWN EVENT THAT CAUSES CTRL-M TO OPEN THE SAME PAGE IN EDIT MODE.
	if (window.attachEvent)
	{
		window.document.attachEvent("onkeydown", function(){S_CatchEvent(event)});
	}
}

var TimeToFade = 50.0;
function OLDdoSlide(eid,intCount,intMax){
	if( intMax > 0 ){
		setTimeout("fade('" + eid + "-" + "',"+intCount+","+intMax+")", 2000);
	}
}

function doSlide(eid,intCount,intMax){
	var parentElement = document.getElementById(eid);
	//parentElement.style.display = "block";
	//alert(parentElement.className);
	if( intMax > 0 ){
		setTimeout("fade('" + eid + "')", 2000);
	}
}

function OLDfade(eid, intCount, intMax){
	var element = document.getElementById(eid + intCount);
	if(element == null) return;
	if(element.FadeState == null){
		if(element.style.opacity == null || element.style.opacity == ''|| element.style.opacity == '1'){
			element.FadeState = 2;
		}else{
			element.FadeState = -2;
		}
	}
	if(element.FadeState == 1 || element.FadeState == -1){
		element.FadeState = element.FadeState == 1 ? -1 : 1;
		element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
	}else{
		element.FadeState = element.FadeState == 2 ? -1 : 1;
		element.FadeTimeLeft = TimeToFade;
		setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "',"+intCount+","+intMax+")", 33);
	}
}

function fade(eid){
	var parentElement = document.getElementById(eid);
	if(parentElement == null) return;
	var element = parentElement.lastChild;
	if(element == null) return;
	//element.FadeTimeLeft = TimeToFade;
	setTimeout("animateFade(0,'" + eid + "')", 33);
}

function animateFade(intTimer, eid){
	var parentElement = document.getElementById(eid);
	var arrChildNodes = new Array();
	if(parentElement == null) return;
	var tmpElement = parentElement.firstChild;
	while( tmpElement ){
		if( tmpElement.nodeType == 1 ){
			arrChildNodes[arrChildNodes.length] = tmpElement;
			tmpElement.style.display = "block";
		}
		tmpElement = tmpElement.nextSibling;
	}	
	//var element = parentElement.lastChild;
	var element = arrChildNodes[arrChildNodes.length - 1];
	var firstElement = arrChildNodes[0];	
	if(intTimer>= TimeToFade){
		//if( firstElement != element ){
		//alert("C2");
			parentElement.insertBefore( element, firstElement );
			element.style.opacity = "1"
			element.style.filter = 'alpha(opacity = 100)';
		//}
		setTimeout("fade('" + eid + "')", 2000);
		return;
	}
	//element.FadeTimeLeft -= elapsedTicks;
	var newOpVal = intTimer/TimeToFade;
	newOpVal = 1 - newOpVal;
	element.style.opacity = newOpVal;
	element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
	setTimeout("animateFade(" + ( intTimer + 1 ) + ",'" + eid + "')", 33);
}

function OLDanimateFade(lastTick, eid, intCount, intMax){
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
	var element = document.getElementById(eid + intCount);
	var parent = element.parentNode;
	if(element.FadeTimeLeft <= elapsedTicks){
		element.style.opacity = element.FadeState == 1 ? '1' : '0';
		//element.style.opacity = "1";
		element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
		element.FadeState = element.FadeState == 1 ? 2 : -2;
		//COPY THIS ONE TO THE END AND SET THE OPACITY BACK.
		//parent.appendChild( element );
		parent.firstChild.insertBefore( element );
		//FADE THE NEXT.
		if( (intCount+1) < intMax ){
			setTimeout("fade('" + eid + "',"+(intCount+1)+", "+intMax+")", 2000);
		}
		return;
	}
	element.FadeTimeLeft -= elapsedTicks;
	var newOpVal = element.FadeTimeLeft/TimeToFade;
	if(element.FadeState == 1) newOpVal = 1 - newOpVal;
	element.style.opacity = newOpVal;
	element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
	setTimeout("animateFade(" + curTick + ",'" + eid + "',"+intCount+","+intMax+")", 33);
}


function removeImagePopup( objDivPopup ){
	objDivPopup.parentElement.removeChild(objDivPopup);	
}

var gobj_PreviewImage = null;
var gobj_PreviewTimer = null;
var gobj_PreviewDiv = null;

function showImagePopup( strImage )
{
	gobj_PreviewDiv = document.getElementById("imagepopup");
	if (gobj_PreviewDiv == null)
	{
		gobj_PreviewDiv  = document.createElement('div');
		gobj_PreviewDiv.className = "imagepopup";
		gobj_PreviewDiv.id = "imagepopup";
		gobj_PreviewDiv.onclick = function(){removeImagePopup(this)};

		var obj_DivWatermark  = document.createElement('div');
		obj_DivWatermark.innerHTML = "&#160;";
		obj_DivWatermark.className = "imagewatermark";

		gobj_PreviewDiv.appendChild( obj_DivWatermark );
	}
	else
	{
		var obj_Image = document.getElementById("imagepopupdisplay");
		gobj_PreviewDiv.removeChild(obj_Image);
	}

	gobj_PreviewImage = new Image();
	gobj_PreviewImage.src = strImage;
	gobj_PreviewImage.id = "imagepopupdisplay";

	if(gobj_PreviewTimer)
	{
		clearTimeout(gobj_PreviewTimer);
	}
	S_AddImageToPopup();
}

function S_AddImageToPopup()
{
	if(gobj_PreviewImage.complete)
	{
		var i_WidthOrig = gobj_PreviewImage.offsetWidth;
		var i_HeightOrig = gobj_PreviewImage.offsetHeight;
		if(i_WidthOrig==0 && i_HeightOrig==0)
		{
			i_WidthOrig = gobj_PreviewImage.width;
			i_HeightOrig = gobj_PreviewImage.height;
		}


		var i_ImgWidth = -1 * Math.round(i_WidthOrig / 2 );
		var i_ImgHeight = -1 * Math.round(i_HeightOrig / 2 );

		gobj_PreviewDiv.style.marginLeft = i_ImgWidth.toString() + "px";
		gobj_PreviewDiv.style.marginTop = i_ImgHeight.toString() + "px";
		gobj_PreviewDiv.appendChild(gobj_PreviewImage);
		document.body.appendChild(gobj_PreviewDiv);
	}
	else
	{
		gobj_PreviewTimer=setTimeout("S_AddImageToPopup()",1);
	}
}

function S_CatchEvent(event)
{
//TRIGGERED ON A KEYDOWN EVENT.
	//GET THE EVENT TYPE.
	var eventType = (window.event) ? window.event.type : event.type;

	if(eventType == "keydown")
	{
		//CTRL-KEY IS PRESSED.
		if (event.ctrlKey == true)
		{
			if (event.keyCode == 77) //M
			{
				var s_WindowTitle = Fs_EncodeAZ(s_Path);
				var s_WindowTitleLower = s_WindowTitle.toLowerCase();
				var myWin = window.open("", s_WindowTitleLower);
				//CHECK IF THE FUNCTION THAT WE WANT TO TRIGGER IS AVAILABLE IN THE PAGE.
				if(  typeof( myWin.S_TriggerOpenDocument ) != "undefined" )
				{
					myWin.S_TriggerOpenDocument(s_Key, "W_" + s_WindowTitleLower + "_RootWindow", false, "_vw", s_Version, "frmPage", "", false, false, 0, s_Language);
					myWin.focus();
				}
				else
				{
					myWin.location.href = s_EditorModeURL + "&window=" + s_WindowTitleLower, s_WindowTitleLower;
					myWin.focus();
				}
			}
		}
	}	
}

function Fs_EncodeAZ(ps_Value)
{
//RETURNS ONLY CHARACTERS FROM THE RANGES 0-9 and A-Z and a-z OF A SPECIFIED STRING.
	ps_Value = ps_Value.replace(/\r\n/g,"\n");
	var s_ValueEncoded = "";

	for (var n = 0; n < ps_Value.length; n++) 
	{
		var char = ps_Value.charCodeAt(n);
		if ( (char >= 48 && char <= 57) || (char >= 65 && char <= 90) || (char >= 97 && char <= 122)) //0-9 and A-Z and a-z
		{
			s_ValueEncoded += String.fromCharCode(char);
		}
	}
	return s_ValueEncoded;
}

function S_XMLPost(ps_URL, ps_XMLToServer)
{
//TO PERFORM A POST TO THE SERVER (I.E. FORM POST, SARCH FORM ETC..).
	var xmlHttpReq;
	if (window.XMLHttpRequest) // Mozilla, Safari, ...
	{
		xmlHttpReq = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) // IE
	{
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}

	xmlHttpReq.open('POST', ps_URL, true);
	xmlHttpReq.setRequestHeader("content-type", "text/xml; charset=UTF-8");
	xmlHttpReq.onreadystatechange = function()
	{
		if (xmlHttpReq.readyState == 4)
		{
			if (xmlHttpReq.status==200)
			{
				S_HandleResponse(xmlHttpReq.responseXML);
			}
		}
	}

	var s_XMLToServer = escape(ps_XMLToServer);
	xmlHttpReq.send("xmlAttributes=" + s_XMLToServer);
}

function S_HandleResponse(pXML)
{
//HANDLES THE RESPONSE FROM THE SERVER AFTER THE CLIENT DID A POST TO THE SERVER.
	try{
		var obj_Response = pXML.getElementsByTagName("response")[0];
		var s_ResponseType = obj_Response.getAttribute("type");
		var obj_Errors = pXML.getElementsByTagName("errors");
		var s_Alert = "";
		var s_Error = "";
	
		//Look for possible errors.
		for (var a=0; a<obj_Errors.length; a++)
		{
			if (a < 30)
			{
				s_Error += obj_Errors[a].firstChild.nodeValue + "\r";
			}
		}

		if (s_Error != "")
		{
			alert(s_Error);
		}
		else
		{
			switch(s_ResponseType)
			{
				case "search":
					S_ProcessServerSearchResults(obj_Response);
					break;
			}
		}
	}
	catch(e){
		alert("An error occured while posting data to the server.");
	}
}


function S_PostHandlerForm( s_Handler, obj_Form, ps_Path, s_Key, s_KeyParent, s_Session , ps_Lang)
{
//THE POST HANDLER HANDLES ALL (CUSTOM) FORM POSTS TO THE SERVER.
	var arr_Fields = new Array();
	var arr_FormFields = obj_Form.elements;
	for(var i = 0; i < arr_FormFields.length; i++){
		//PROCESS ALL FORM FIELDS.		
		S_ProcessField( arr_FormFields[ i ], arr_Fields );
	}
	var s_XMLToServer = "<action type='posthandler' handler='"+s_Handler+"'><item fldKey='"+s_Key+"' fldKeyParent='"+s_KeyParent+"' fldLang='"+ps_Lang+"'><fields>";
	for (s_Name in arr_Fields){
		s_XMLToServer += "<field name='"+s_Name+"'>";
		for(var i = 0; i < arr_Fields[ s_Name ].length; i++ ){
			s_XMLToServer += "<val>"+arr_Fields[ s_Name ][i]+"</val>";
		}
		s_XMLToServer += "</field>";
	}
	s_XMLToServer += "</fields></item></action>";
	var s_URL = window.location.protocol + "//" + window.location.hostname + "/" + ps_Path + "/frmPostBrowserPub?createDocument";
	S_XMLPost(s_URL, s_XMLToServer)
	return false;
}

function S_PostHandlerXML( s_Handler, ps_XML, ps_Path, s_Key, s_KeyParent, s_Session )
{
	var s_XMLToServer = "<action type='posthandler' handler='"+s_Handler+"'>"+ps_XML+"</action>";
	var s_URL = window.location.protocol + "//" + window.location.hostname + "/" + ps_Path + "/frmPostBrowserPub?createDocument";
	S_XMLPost(s_URL, s_XMLToServer)
	return false;
}

function S_ProcessOrder( obj_Form, ps_Path, s_Key, s_KeyParent, s_Session )
{
//PROCESS THE SHOPPING FORM AND SEND IT TO THE POST HANDLER AS XML (AS IT IS A MULTI DOCUMENT POST).
	var arr_Fields = new Array();
	var arr_AddFields = new Array();
	var arr_FormFields = obj_Form.elements;
	var i_ProductCount = 0;
	for(var i = 0; i < arr_FormFields.length; i++){
		//PROCESS ALL FORM FIELDS.		
		S_ProcessField( arr_FormFields[ i ], arr_Fields );
	}
	var s_XMLToServer = "";
	
	s_XMLToServer += "<item fldKey='' fldKeyParent='"+s_KeyParent+"' fldSession='"+s_Session+"'>";
					
	for (s_Name in arr_Fields){
		if( s_Name != "" ){
			if( typeof(arrCatalog[s_Name]) != "undefined" ){
				//THIS IS A PRODUCT FIELD.
				if( arr_Fields[ s_Name ] != "" ){
					i_ProductCount++;
					s_XMLToServer += "<product><fields>";
					//ADD THE NUMBER FIELD.
					s_XMLToServer += "<field name='count'><val>"+arr_Fields[ s_Name ]+"</val></field>";			

					//START - PROCESS ALL VALUES IN THE CATALOG ARRAY.
					if( typeof(arrCatalog)!="undefined" ){
						var arrCatalogItem = arrCatalog[s_Name];
						for(var arrCatalogItemField in arrCatalogItem) {
							s_XMLToServer += "<field name='"+arrCatalogItemField+"'>";
							s_XMLToServer += "<val>"+arrCatalogItem[ arrCatalogItemField ]+"</val>";
							s_XMLToServer += "</field>";
						}
					}			
	
					//END - PROCESS ALL VALUES IN THE CATALOG ARRAY.
					s_XMLToServer += "</fields></product>";
				}
			}else{
				//THIS IS AN ADDITIONAL FIELD.
				arr_AddFields[ s_Name ] = arr_Fields[ s_Name ];
			}
		}
	}
	s_XMLToServer += "<orderdetails><fields>";
	for (s_Name in arr_AddFields){
		s_XMLToServer += "<field name='"+s_Name+"'>";
		s_XMLToServer += "<val>"+arr_AddFields[s_Name]+"</val>";
		s_XMLToServer += "</field>";
	}
	s_XMLToServer += "</orderdetails>";
	if( i_ProductCount > 0 ){
		//S_PostHandlerXML( 'processorder', s_XMLToServer, ps_Path, s_Key, s_KeyParent, s_Session );
		alert('Your order was processed');
	}else{
		alert('Select at least 1 product');
	}
}

function S_UpdateShoppingKart( obj_Form, ps_Path, s_Key, s_KeyParent, s_Session )
{
//PROCESS THE SHOPPING FORM AND SET IT TO THE POST HANDLER AS XML (AS IT IS A MULTI DOCUMENT POST).
	var arr_Fields = new Array();
	var arr_FormFields = obj_Form.elements;
	var i_ProductCount = 0;
	for(var i = 0; i < arr_FormFields.length; i++){
		//PROCESS ALL FORM FIELDS.		
		S_ProcessField( arr_FormFields[ i ], arr_Fields );
	}
	var s_XMLToServer = "";
	for (s_Name in arr_Fields){
		if( s_Name != "" ){
			if( arr_Fields[ s_Name ] != "" ){
				i_ProductCount++;
				s_XMLToServer += "<item fldKey='"+s_Name+"_"+s_Session+"' fldKeyParent='"+s_KeyParent+"' fldSession='"+s_Session+"'><fields>";
				//ADD THE NUMBER FIELD.
				s_XMLToServer += "<field name='count'><val>"+arr_Fields[ s_Name ]+"</val></field>";		

				//START - PROCESS ALL VALUES IN THE CATALOG ARRAY.
				if( typeof(arrCatalog)!="undefined" ){
					var arrCatalogItem = arrCatalog[s_Name];
					for(var arrCatalogItemField in arrCatalogItem) {
						s_XMLToServer += "<field name='"+arrCatalogItemField+"'>";
						s_XMLToServer += "<val>"+arrCatalogItem[ arrCatalogItemField ]+"</val>";
						s_XMLToServer += "</field>";
					}
				}

				//END - PROCESS ALL VALUES IN THE CATALOG ARRAY.
				s_XMLToServer += "</fields></item>";
			}
		}
	}
	if( i_ProductCount > 0 ){
		S_PostHandlerXML( 'processshoppingcart', s_XMLToServer, ps_Path, s_Key, s_KeyParent, s_Session );
		alert('Added to shopping basket');
	}else{
		alert('Select at least 1 product');
	}
}


function showRating( strId, intRate, intMaxRate ){
	window.status=intRate;
	for( var i=0; i < intMaxRate + 1; i++ ){
		var objStar = document.getElementById( "rating-" + strId + "-" + i );
		if( objStar ){
			if( i > intRate ){
				objStar.className = "current";
			}else{
				objStar.className = "user";		
			}
		}
	}
}

function applyRating( strId, intRate, strPath, strKey , strLang){
	var objForm = document.getElementById( "rating-" + strId + "-form" );
	var objField = document.getElementById( "rating-" + strId + "-field" );
	if( objForm ){
		if( objField ){
			objField.value=intRate;
			S_PostHandlerForm( 'ratearticle', objForm ,strPath, '',strKey, '', strLang); //@ERWIN: JE GEEFT OORSPRONKELIJK 5 VARIABELEN DOOR EN JE VANG ER 6 OP IN DE FUNCTIE.
		}
	}
}

function S_ProcessField( obj_Field, arr_Fields )
{
	//THIS FUNCTION PROCESSES A FIELD AND RETURNS IT AS XML.
	var s_FieldXML = "";
	var s_FieldName = obj_Field.name;
	if( !arr_Fields[ s_FieldName ] ){
		arr_Fields[ s_FieldName ] = new Array();
	}
	switch( obj_Field.tagName ){
		case "INPUT":
			//THIS IS AN INPUT TYPE OF FIELD.
			switch( obj_Field.type ){
				case "radio":
					if( obj_Field.checked == true ){
						arr_Fields[ s_FieldName ] = new Array( obj_Field.value );
					}
					break;
				case "checkbox":
					if( obj_Field.checked == true ){
						if( arr_Fields[ s_FieldName ] ){
							arr_Fields[ s_FieldName ][arr_Fields[ s_FieldName ].length] = obj_Field.value;
						}else{
							arr_Fields[ s_FieldName ] = new Array( obj_Field.value );
						}
					}
					break;
				case "text":
				case "hidden":
				case "password":	
					arr_Fields[ s_FieldName ] = new Array( obj_Field.value );
					break;
			}
			break;				
		case "SELECT":
			//THIS IS A SELECT TYPE OF FIELD.
			arr_Fields[ s_FieldName ] = new Array( obj_Field.value );
			break;
	}
}

function S_SearchExecute(ps_Path, pi_Start, pi_Max, ps_Query)
{
//PERFORMS A SEARCH.
	if (!_session.obj_Search)
	{
		_session.obj_Search = new Array();
	}
	_session.obj_Search.i_Start = pi_Start;
	_session.obj_Search.i_Max = pi_Max;

	if (ps_Query == "")
	{
		var s_Query = window.document.getElementById('search-box-input').value;
	}
	else
	{
		var s_Query = ps_Query;
	}
	_session.obj_Search.s_Query = s_Query;

	if (s_Query != "")
	{
		var s_XMLToServer = "<action type='search' query='" + s_Query + "' start='" + pi_Start + "' max='" + pi_Max + "'/>";
		var s_URL = window.location.protocol + "//" + window.location.hostname + "/" + ps_Path + "/frmPostBrowserPub?createDocument";
		S_XMLPost(s_URL, s_XMLToServer)
	}
}

function S_SearchKeyPress(e, ps_Path, pi_Max)
{
//PERFORMS A SEARCH AFTER HITTING THE ENTER KEY OR CLEARS THE SEARCH FIELD AFTER HITTING THE ESCAPE KEY.
	// look for window.event in case event isn't passed in
	if (window.event) { e = window.event; }
	if (e.keyCode == 13)
	{
		S_SearchExecute(ps_Path, 1, pi_Max, '');
	}
	else if (e.keyCode == 27)
	{
		S_SearchClear();
	}
}

function Fs_GetHTMLResultsNav(pb_FirstResultPageLinkVisible, pb_FitsWithinMaxResultPages, ps_Path, ps_Hits)
{
//CALCULATES THE NAVIGATION OF THE SEARCH RESULTS (I.E. NEXT, PREVIOUS ETC..).
	var s_HTML = "";
	var i_Start = _session.obj_Search.i_Start;
	var i_Max = _session.obj_Search.i_Max;
	var s_Query = _session.obj_Search.s_Query;
	var i_ResultPageLinkFirst = 1;
	var i_ResultPageLinkLast = 1;

	if (pb_FirstResultPageLinkVisible == false)
	{
		//Calculate the previous link.
		i_ResultPageLinkFirst = ((i_Start - 1) / i_Max) - 9;
		s_HTML += "<div class=\"search-box-hits-previous\"><a href=\"javascript:S_SearchExecute('" + ps_Path + "'," + (i_Start - i_Max) + "," + i_Max + ", '" + s_Query + "')\">previous</a></div>";
	}

	if (pb_FitsWithinMaxResultPages == false)
	{
		for (var a=i_ResultPageLinkFirst; a<=i_ResultPageLinkFirst + 19; a++)
		{
			if ( parseInt(ps_Hits) >= ((a - 1) * i_Max + 1) )
			{
				if (i_Start > ((a - 1) * i_Max) && i_Start < (a * i_Max))
				{
					s_HTML += "<div class=\"search-box-hits-resultpage-active\">" + a + "</div>";
				}
				else
				{
					s_HTML += "<div class=\"search-box-hits-resultpage\"><a href=\"javascript:S_SearchExecute('" + ps_Path + "'," + ((a - 1) * i_Max + 1) + "," + i_Max + ", '" + s_Query + "')\">" + a + "</a></div>";
				}
			}
			else
			{
				break;
			}
		}
		//Calculate the next link.
		if ( parseInt(ps_Hits) >= ((a - 1) * i_Max + 1) )
		{
			s_HTML += "<div class=\"search-box-hits-next\"><a href=\"javascript:S_SearchExecute('" + ps_Path + "'," + ((a - 1) * i_Max + 1) + "," + i_Max + ", '" + s_Query + "')\">next</a></div>";
		}
	}
	else
	{
		//Calculate html for result page URLs.
		var i_ResultPages = ps_Hits/i_Max;
		if (i_ResultPages == parseInt(i_ResultPages))
		{
			i_ResultPageLinkLast = parseInt(i_ResultPages);
		}
		else
		{
			i_ResultPageLinkLast = parseInt(i_ResultPages) + 1;
		}
		for (var a=i_ResultPageLinkFirst; a<=i_ResultPageLinkLast; a++)
		{
			if (i_Start > ((a - 1) * i_Max) && i_Start < (a * i_Max))
			{
				s_HTML += "<div class=\"search-box-hits-resultpage-active\">" + a + "</div>";
			}
			else
			{
				s_HTML += "<div class=\"search-box-hits-resultpage\"><a href=\"javascript:S_SearchExecute('" + ps_Path + "'," + ((a - 1) * i_Max + 1) + "," + i_Max + ", '" + s_Query + "')\">" + a + "</a></div>";
			}
		}
	}
	return(s_HTML);
}

function S_ProcessServerSearchResults(pobj_Response)
{
//HANDLES THE RESPONSE FROM THE SERVER AFTER THE CLIENT POSTED A SEARCH TO THE SERVER.
	var s_HTML = "";
	var s_Title = "";
	var s_WebTitle = "";
	var s_ShortDescr = "";
	var s_Score = "";
	var s_ID = "";
	var s_URL = "";
	var s_URLFixed = "";
	var s_Path = pobj_Response.getAttribute("path");
	var s_Hits = pobj_Response.getAttribute("hits");
	var i_Start = _session.obj_Search.i_Start;
	var i_Max = _session.obj_Search.i_Max;
	var s_Query = _session.obj_Search.s_Query;
	var s_HTMLNav = "";

	s_URLFixed = window.location.protocol + "//" + window.location.hostname + "/" + s_Path + "/pages/";


	if ( parseInt(s_Hits) > (i_Max * 20) )
	{
		if ( i_Start > (11 * i_Max) )
		{
			//NOT all result page links are visible.
			//First result page link not visible -> previous link
			s_HTMLNav = Fs_GetHTMLResultsNav(false, false, s_Path, s_Hits);
		}
		else
		{
			//NOT all result page links are visible.
			//First result page link visible.
			s_HTMLNav = Fs_GetHTMLResultsNav(true, false, s_Path, s_Hits);
		}
	}
	else
	{
		//All result page links are visible.
		s_HTMLNav = Fs_GetHTMLResultsNav(true, true, s_Path, s_Hits);
	}

	var s_HTMLResultsNav = "<div class='search-box-hits'><div class='search-box-hits-stats'>" + s_Hits + " results";
	if (parseInt(s_Hits) > i_Max)
	{
		s_HTMLResultsNav += " - displayed per " + _session.obj_Search.i_Max + "<br />" + s_HTMLNav;
	}
	s_HTMLResultsNav += "</div></div>";
	s_HTML += s_HTMLResultsNav;
	s_HTML += "<div class='stopmarker'></div>"

	var obj_Results = pobj_Response.getElementsByTagName("doc");
	s_HTML += "<div class='search-box-resultpage'>";
	for (var a=0; a<obj_Results.length; a++)
	{
		if (obj_Results[a].getElementsByTagName("title")[0].firstChild)
		{
			s_Title = obj_Results[a].getElementsByTagName("title")[0].firstChild.nodeValue;
		}
		else
		{
			s_Title = "No title";
		}
		if (obj_Results[a].getElementsByTagName("stitle")[0].firstChild)
		{
			s_WebTitle = obj_Results[a].getElementsByTagName("stitle")[0].firstChild.nodeValue;
		}
		if (obj_Results[a].getElementsByTagName("sd")[0].firstChild)
		{
			s_ShortDescr = obj_Results[a].getElementsByTagName("sd")[0].firstChild.nodeValue;
		}
		if (obj_Results[a].getElementsByTagName("sc")[0].firstChild)
		{
			s_Score = obj_Results[a].getElementsByTagName("sc")[0].firstChild.nodeValue;
		}
		if (obj_Results[a].getElementsByTagName("id")[0].firstChild)
		{
			s_ID = obj_Results[a].getElementsByTagName("id")[0].firstChild.nodeValue;
		}
		s_URL = s_URLFixed + s_ID;

		s_HTML += "<div class='search-box-result'>";
		s_HTML += "<div class='search-box-result-header'>";
		if (s_Score != "")
		{
			s_HTML += "<span class='search-box-result-score'>Relevance: " + s_Score + "</span>";
		}
		s_HTML += "<span class='search-box-result-title'>";
		s_HTML += "<a href='" + s_URL + "'>" + s_Title;
		if (s_WebTitle != "")
		{
			s_HTML += " - " + s_WebTitle;
		}
		s_HTML += "</a>";
		s_HTML += "</span>";
		s_HTML += "</div>";
		if (s_ShortDescr != "")
		{
			s_HTML += "<div class='search-box-result-description'>" + s_ShortDescr + "</div>"
		}
		s_HTML += "<div class='search-box-result-link'>" + s_URL + "</div>"
		s_HTML += "</div>";

		s_Title = "";
		s_WebTitle = "";
		s_ShortDescr = "";
		s_Score = "";
		s_ID = "";
		s_URL = "";
	}
	s_HTML += "</div>";

	if (parseInt(s_Hits) > 0)
	{
		s_HTML += s_HTMLResultsNav;
		s_HTML += "<div class='stopmarker'></div>"
	}

	var obj_ResultsDiv = window.document.getElementById('search-box-results');
	obj_ResultsDiv.innerHTML = s_HTML;
}

function S_SearchClear()
{
//CLEARS THE SEARCH FIELD (WHERE USER ENTERS THE QUERY).
	var obj_Results = window.document.getElementById('search-box-results');
	obj_Results.innerHTML = "";
	var obj_Query = window.document.getElementById('search-box-input');
	obj_Query.value = "";
}

function submitForm( strForm , arrFields , arrLabels , tmpButt )
{
//SUBMITS A PAGE COMMENT.
//JWVH 14-7-2011:	RIGHT NOW THIS IS USED ONLY FOR PAGE COMMENTS. FOR THE POSTING OF SURVEY RESULTS WE USE A DIFFERENT METHOD.
//			THERE'S NO REASON FOR THAT. JUST TWO DEVELOPERS USING DIFFERENT METHODS IN THE PAST.
//			NOW WE'RE WORKING ON A GENERIC POST METHOD. IF IT'S READY, BOTH SURVEY AND PAGE COMMENT POSTS SHOULD GO THROUGH THAT METHOD.
	var obj_NepVeld = window.document.getElementById('nepveld');
	if (obj_NepVeld.value == '259')
	{
	if( arrFields.length > 0 ){
		intErrors = 0;
		strMsg = 'Please fill-in the following mandatory fields:\n\n';
		for(i = 0; i < arrFields.length; i++){
			if(eval('window.document.'+strForm+'.'+arrFields[i])){	
				intFields = eval('window.document.'+strForm+'.'+arrFields[i]+'.length'); //Is this a singe or multivalue field?
				isSelect = eval('window.document.'+strForm+'.'+arrFields[i]+'.options'); //Is this a select element?
				if(isSelect){
					//This is a select element.
					intOptions=eval('window.document.'+strForm+'.'+arrFields[i]+'.options.length');
					strTmp='';
					for(j=0;j<intOptions;j++){
						strTmp+=(eval('window.document.'+strForm+'.'+arrFields[i]+'.options['+j+'].selected'))?'true':'';
					}
				}else{
					//Determine what other type it is?
					if(typeof(intFields)=='undefined'){
						//This is a singe value field.
						strType=eval('window.document.'+strForm+'.'+arrFields[i]+'.type');
						strName=eval('window.document.'+strForm+'.'+arrFields[i]+'.name');
						if(strType=="radio"||strType=="checkbox"){
							strTmp=(eval('window.document.'+strForm+'.'+arrFields[i]+'.checked')==true)?'true':'';
						} else {
							strTmp = eval('window.document.'+strForm+'.'+arrFields[i]+'.value');
						}
					}else{
						//This is a multivalue field, can only be radio or checkbox.
						strName=eval('window.document.'+strForm+'.'+arrFields[i]+'[0].name');
						strTmp='';
						intOptions=eval('window.document.'+strForm+'.'+arrFields[i]+'.length');
						for(j=0;j<intOptions;j++){
							strTmp+=(eval('window.document.'+strForm+'.'+arrFields[i]+'['+j+'].checked')==true)?'true':'';
						}
					}						
				}
				//If the field is empty, add a line to the message.
				if(strTmp==''){
					strMsg+='- '+arrLabels[i]+'\n';
					intErrors++;
				}
			}
		}
		if(intErrors>0){
			//Show which mandatory fields are left blank.
			alert(strMsg);	
		}else{
			//Make sure the button cannot be pressed twice.
			tmpButt.onclick = new Function('return false');
			//Submit the form.
 			eval('window.document.'+strForm+'.submit()');
		}
	} else {
		//Make sure the button cannot be pressed twice.
		tmpButt.onclick = new Function('return false');
		//Submit the form.
		eval('window.document.'+strForm+'.submit()');
	}
	}
	else
	{
		alert('Incorrect or not complete.');
	}
}



function selectSection(strSection)
{
	for(var i in arrFolderList)
	{
		_xmlPage.XMLDoc.setProperty("SelectionLanguage","XPath");
		objListNode=_xmlPage.XMLDoc.selectSingleNode(arrFolderList[i].strFolderXPath);
		if(objListNode)
		{
			if(objListNode.getAttribute("sectioncontrol")=="yes")
			{
				objListDiv=document.getElementById(arrFolderList[i].strFolderId);
				if(objListDiv)
				{
					objListNode.setAttribute("selsection",strSection);
					objListNode.setAttribute("selyear","");
					objListNode.setAttribute("selmonth","");
					objListNode.setAttribute("selday","");
					var tmpHTML=objListNode.transformNode(_xmlPage.XSLDoc);
					objListDiv.innerHTML=tmpHTML;
				}
			}
		}
	}
}

function showLogin()
{
//SHOWS LOGIN BOX TO LET THE ANONYMOUS VISITOR AUTHENTICATE.
	var strURL=location.href;
	//if(strURL.indexOf("?")>-1)
	//{
	//	self.location.href=strURL+"&login";
	//}
	//else
	//{
		//self.location.href=strURL+"?open&login";
		self.location.href=strURL+"/login";
	//}
}





//**** START FUNCTION FOR THE IMAGE GALLERY COMPONENT ****//
var previewImage=null;
var previewDiv=null;
var previewTimer=null;
function S_DisplayImage(ps_Path,ps_Key,ps_Filename,ps_Images)
{
	var as_Images=ps_Images.split("~$~");
	var obj_Imagepreview=document.getElementById('imggal-preview');
	obj_Imagepreview.style.display="block";
	var i_Pos=Fi_GetArrayPosition(ps_Filename,as_Images)
	var s_Previous="";
	var s_Next="";
	var s_Index=(i_Pos+1)+" van "+as_Images.length;
	if(i_Pos==0)
	{
		if(i_Pos+1<as_Images.length)
		{
			s_Next="<a href='javascript:S_DisplayImage( \""+ps_Path+"\",  \""+ps_Key+"\", \""+as_Images[i_Pos+1]+"\",  \""+ps_Images+"\");'>Volgende</a>";
		}
	}
	else if(i_Pos>=0)
	{
		s_Previous="<a href='javascript:S_DisplayImage( \""+ps_Path+"\",  \""+ps_Key+"\", \""+as_Images[i_Pos-1]+"\",  \""+ps_Images+"\");'>Vorige</a>";
		if(i_Pos+1<as_Images.length)
		{
			s_Next="<a href='javascript:S_DisplayImage( \""+ps_Path+"\",  \""+ps_Key+"\", \""+as_Images[i_Pos+1]+"\",  \""+ps_Images+"\");'>Volgende</a>";
		}
	}
	var obj_Imagepreview_previous=document.getElementById("imggal-preview-previous");
	obj_Imagepreview_previous.innerHTML=s_Previous;
	var obj_Imagepreview_next=document.getElementById("imggal-preview-next");
	obj_Imagepreview_next.innerHTML=s_Next;
	var obj_Imagepreview_close=document.getElementById("imggal-preview-close");
	obj_Imagepreview_close.innerHTML="<a href='javascript:S_CloseImage();'>Sluiten</a>";
	var obj_Imagepreview_index=document.getElementById("imggal-preview-index");
	obj_Imagepreview_index.innerHTML=s_Index;
	var obj_Div=document.getElementById("imggal-preview-image");
	previewImage=new Image();
	previewImage.src=ps_Path+"/attachments/"+ps_Key+"/$file/"+ps_Filename;
	previewDiv=obj_Div;
	if(previewTimer)
	{
		clearTimeout(previewTimer);
	}
	S_AddImage();
}

function S_AddImage()
{
	if(previewImage.complete)
	{
		var i_MaxWidth=600;
		var i_MaxHeight=450;
		var obj_Div=previewDiv;
		obj_Div.innerHTML="";
		obj_Div.appendChild(previewImage);
		var i_WidthOrig=previewImage.offsetWidth;
		var i_HeightOrig=previewImage.offsetHeight;
		if(i_WidthOrig==0&&i_HeightOrig==0)
		{
			i_WidthOrig=previewImage.width;
			i_HeightOrig=previewImage.height;
		}
		if(i_WidthOrig>i_HeightOrig)
		{
			if(i_WidthOrig>i_MaxWidth)
			{
				var intDiv=i_WidthOrig/i_HeightOrig;
				previewImage.style.width=i_MaxWidth+"px";
				previewImage.style.height=(i_MaxWidth/intDiv)+"px";
			}
		}
		else if(i_WidthOrig<i_HeightOrig)
		{
			if(i_HeightOrig>i_MaxHeight)
			{
				var intDiv=i_HeightOrig/i_WidthOrig;
				previewImage.style.height=i_MaxHeight+"px";
				previewImage.style.width=(i_MaxHeight/intDiv)+"px";
			}
		}
		else
		{
			if(i_WidthOrig>i_MaxWidth)
			{
				previewImage.style.height=i_MaxHeight+"px";
				previewImage.style.width=i_MaxHeight+"px";
			}
		}
	}
	else
	{
		var obj_Div=previewDiv;
		obj_Div.innerHTML="Loading...";
		previewTimer=setTimeout("S_AddImage()",1);
	}
}

function S_CloseImage()
{
	var obj_Imagepreview=document.getElementById('imggal-preview');
	obj_Imagepreview.style.display="none";
}

function Fi_GetArrayPosition(ps_Item,pas_Array)
{
	for(var a=0;a<pas_Array.length;a++)
	{
		if(pas_Array[a]==ps_Item)
		{
			return(a);
		}
	}
	return(-1);
}
//**** END FUNCTION FOR THE IMAGE GALLERY COMPONENT ****//





/* ROUTINE WRITTEN FOR ISC TO CHECK REQUIRED FIELDS FOR THE JOB APPLICATION FORM. THIS CAN BE USED FOR MORE GENERIC PURPOSES LATER ON */
function S_CheckRequiredFields(pas_FieldsReq, pas_TextsReq, ps_GenericText)
{
	var checkState = true;
	for (var a=0; a<pas_FieldsReq.length; a++)
	{
		if (window.document.getElementById(pas_FieldsReq[a]).value == '')
		{
			alert(ps_GenericText + pas_TextsReq[a]);
			window.document.getElementById(pas_FieldsReq[a]).focus();
			checkState = false;
			return false;
		}
	}
	if (checkState) document.forms[0].submit();
}

function S_OpenWithLogin()
{
	var s_URLCurrent = window.document. referrer;
	var s_Login = "/login";

	//if (s_URLCurrent.indexOf("?") == -1 )
	//{
	//	s_Login = "?open" + s_Login;
	//}

	var s_URLNew = s_URLCurrent + s_Login;
	var obj_Window = window.open(s_URLNew, '_self', '');
}



