
Listen(window,'load',Load);

/*
Onderstaande onresize niet uncommenten tenzij erom gevraagd wordt.
Als de gescripte layout een foutje bevat waardoor deze gaat scrollen, vuurt IE opnieuw het Resize event, waardoor de site in een loop komt en hangt.
*/
//Listen(window,'resize',Load);

// last-minute layout tweaks en fixes
function Load()
{
   var viewPortHeight = measure('window').y;
   var ctScroller = Thing('ctScroller');
   var rightsidebarempty = Thing('rightsidebarempty');
   var rightsidebar = Thing('rightsidebar');

   if (Thing('content')) {
      var ctHeight = Thing('content').offsetHeight;
      var ctWidth = Thing('content').offsetWidth;
   }
   else if (Thing('contentwide')) {
      var ctHeight = Thing('contentwide').offsetHeight;
      var ctWidth = Thing('contentwide').offsetWidth;
   }

   if (ctScroller) ctScroller.style.height = viewPortHeight - 124 + 'px';
   if (rightsidebarempty) rightsidebarempty.style.height = viewPortHeight - 94 + 'px';
   if (rightsidebar) rightsidebar.style.height = viewPortHeight - 124 + 'px';

   if (Thing('form'))  Thing('form').onsubmit = checkForm;

// loading pictures

   MM_preloadImages('../gfx/leftnav/discussie.gif','../gfx/leftnav/discussie_over.gif','../gfx/leftnav/home.gif','../gfx/leftnav/home_over.gif','../gfx/leftnav/kennisbank.gif','../gfx/leftnav/kennisbank_over.gif','../gfx/leftnav/kenniskaart.gif','../gfx/leftnav/kenniskaart_over.gif','../gfx/leftnav/links.gif','../gfx/leftnav/link_over.gif','../gfx/leftnav/over_kpvv.gif','../gfx/leftnav/over_kpvv_over.gif','../gfx/leftnav/praktijk.gif','../gfx/leftnav/praktijk_over.gif','../gfx/leftnav/verkeersplannen.gif','../gfx/leftnav/verkeersplannen_over.gif','../gfx/leftnav/vragen.gif','../gfx/leftnav/vragen_over.gif','../gfx/leftnav/zoek.gif','../gfx/leftnav/zoek_over.gif','../gfx/themenav/beleid.gif','../gfx/themenav/beleid_over.gif','../gfx/themenav/veiligheid.gif','../gfx/themenav/veiligheid_over.gif','../gfx/themenav/infrastructuur.gif','../gfx/themenav/infrastructuur_over.gif','../gfx/themenav/mobiliteit.gif','../gfx/themenav/mobiliteit_over.gif','../gfx/themenav/openbaar_vervoer.gif','../gfx/themenav/openbaar_vervoer_over.gif');
   
// Enable textwidget
   textWidget();
}

function checkForm()
{
   var form = this;

   var inputs = Things('input',form);
   var textareas = Things('textarea',form);
   var fields = inputs.concat(textareas);

   var origColor = '#919191';
   var errorColor = 'red';

   var pass = true;

   for (var i=0; i < fields.length; i++)
   {
      var fieldId = fields[i].id;
      var Field = Thing(fieldId);
      var type = Field.type;


      if (type == 'radio')
      {
         var radioSet = form[Field.id.split('_')[0]];
         var checked = false;

         for (var j=0;j < radioSet.length; j++)
         {
            if (radioSet[j].checked)
            {
               checked = true;
               break;
            }
         }
      }

      var isField = (type == 'text' || type == 'textarea');
      var isCheckable = (type == 'radio' || type == 'checkbox');
      var Required = Field.getAttribute('rel');
      var badEmail = (fieldId == 'email' && !isValidEmail(Field.value));
      var Invalid = ((isCheckable && !checked) || badEmail || Field.value == '');

      if ((isField || isCheckable) && Required && Invalid)
      {
         Field.style.borderColor = errorColor;
         Field.style.borderWidth = '1px';
         Field.style.borderStyle = 'solid';
         Thing('formerror').style.display = 'block';
         pass = false;
      }
      else if (isField || isCheckable)
      {
         Field.style.borderColor = origColor;
         if (Field.type == 'radio' || Field.type == 'checkbox')
            Field.style.borderWidth = '0';
      }
   }
   return pass;
}

function toggleDisplay(id, display)
{
   obj = document.getElementsByTagName("div");
   if (Thing(id))
	  obj[id].style.display = display;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// bryan's functions
// een mouseover, als er een mouse over is, dan toon je die.. en daaronder moet allemaal gehide worden
function CommunicateshowHide(id)
{
   // Lelijke try catch blokken om flexibiliteit van hard-coded 5 thema's te bevorderen, sorry, Léon
   switch (id) 
   {
      case 'theme0':
         showHide('theme0','show');
         try{
         showHide('theme1','hide');
         }
         catch(error){
         }
         try{
         showHide('theme2','hide');
         }
         catch(error){
         }
         try{
         showHide('theme3','hide');
         }
         catch(error){
         }
         try{
         showHide('theme4','hide');
         }
         catch(error){
         }
      
         break;
      case 'theme1': 
         showHide('theme0','hide');
         showHide('theme1','show');
         try{
         showHide('theme2','hide');
         }
         catch(error){
         }
         try{
         showHide('theme3','hide');
         }
         catch(error){
         }
         try{
         showHide('theme4','hide');
         }
         catch(error){
         }
         break;
      case 'theme2': 
         showHide('theme0','hide');
         showHide('theme1','hide');
         showHide('theme2','show');
         try{
         showHide('theme3','hide');
         }
         catch(error){
         }
         try{
         showHide('theme4','hide');
         }
         catch(error){
         }
         break;
      case 'theme3':
         showHide('theme0','hide');
         showHide('theme1','hide');
         showHide('theme2','hide');
         showHide('theme3','show');
         try{
         showHide('theme4','hide');
         }
         catch(error){
         }
         break;
      case 'theme4':
         showHide('theme0','hide');
         showHide('theme1','hide');
         showHide('theme2','hide');
         showHide('theme3','hide');
         showHide('theme4','show');
         break;
   }
}

// what = de trigger, mouseover of mouseout
// who = degene die het triggert

var testMin; // global
var testMax;
function delaying(what,who)
{
   var timeOutId;

   if (what == 'mouseover')
   {
      if ((timeOutId != null) || (timeOutId != undefined) || (timeOutId != "undefined"))
      {
         for (ugh=testMin;ugh<testMax;ugh++)
         {
            clearTimeout(ugh);
         }
         timeOutId = 0;
      }
      else
      {
         timeOutId = 0;
      }
   }
   else if (what == 'mouseout')
   {
      if ((timeOutId != 1) || (timeOutId != 2) || (timeOutId == 0))
      {
         timeOutId = setTimeout("toggleDisplay('"+who+"','none')",1250);

         timeOutId = setTimeout("toggleDisplay('theme0','none')",1250);
//         timeOutId = setTimeout("toggleDisplay('theme1','none')",1250);
//         timeOutId = setTimeout("toggleDisplay('theme2','none')",1250);
//         timeOutId = setTimeout("toggleDisplay('theme3','none')",1250);
//         timeOutId = setTimeout("toggleDisplay('theme4','none')",1250);

         testMin = parseInt(timeOutId - 10);
         testMax = parseInt(timeOutId + 40); 
      }
   }
}

//toggles the results. This extra wrapper function is required to change the topic title states as well.
function toggleResults(id)
{
   Toggle(id);
//   prep();
   var titleID = 'title' + id.substr(6);
   
   var Title = Thing(titleID);

   if (Title.className == 'cat_title open')
   {
      Title.className = 'cat_title';
   }
   else if (Title.className == 'cat_title')
   {
      Title.className = 'cat_title open';
   }
}

//toggle function for the knowledge bank only, because of 'differen't names
// but somehow doesn't work.
function toggleKennisBank(id,arrowID) {
	Toggle(id);
	var title = Thing(arrowID);
	
	if (title.className == 'cat_subresults open')
	{
		title.className = 'cat_subresults';
	}
	else if (title.className == 'cat_subresults')
	{
		title.className = 'cat_subresults open';
	}
	else if (title.className == 'cat_title')
	{
		title.className = 'cat_title open';
	}
	else if (title.className == 'cat_title open')
	{
		title.className = 'cat_title';
	}
}

// the showhide functions for the level 3 top menu
function showKids(iTheme,kids,maxKids)
{
	name = "subTheme";
	if (Thing(name+iTheme+kids))
		showHide(name+iTheme+kids,'show');
}
function hideKids(iTheme,max)
{
	name = "subTheme";
	for (i=0;i<max;i++)
	{
		if (Thing(name+iTheme+i))
			showHide(name+iTheme+i,'hide');
	}
}
function showSpecialKids(who)
{
	showHide(who,'show');
}
function hideSpecialKids(who)
{
	showHide(who,'hide');
}

function validateForm(theForm) { //,who) {
 var formName = document.search;
 var isOk = true;
 var checkBox = false; // at least one checkbox must be checked.
  	 if (document.getElementById("advanced_search").style.display == "none")
 	 //if (who == 'simple')
	 {
		if (formName.simpleSearch.value == '')
		{
			isOk = false;
			alert('U moet een opzoekopdracht meegeven.');
			formName.simpleSearch.focus();
			return false;
		} else if (formName.simpleSearch.value.length < 3)
		{
			isOk = false;
			alert('Uw zoekopdracht is kleiner dan 3 karakters lang.');
			formName.simpleSearch.focus();
			return false;
		}
	
		if (isOk)
		{
			document.getElementById('whom').value = 'simple';
			//formName.whom.value = 'simple';
			//formName.whom.innerHTML = 'simple';
		}
		
	 } else if (document.getElementById("advanced_search").style.display == "block") //if (who == 'advanced') 
	 {
		if (formName.all.value == '' && formName.exact.value == '' && formName.oneOfThe.value == '' && formName.without.value == '')
		{
		    isOK = false;
			alert('U moet minsten 1 van de velden invoeren.');
			formName.all.focus();
			return false;
		}
		
		if (isOk)
		{
			//formName.whom.value = 'advanced';
			document.getElementById('whom').value = 'advanced';
			//formName.whom.innerHTML = 'advanced';
		}
	 }

	for (i=0;i<formName.filters.length;i++)
	{
		if (formName.filters[i].checked)
		{
			checkBox = true;
			break;
		}
	}		

	if (isOk && checkBox)
	{
		return true; //formName.submit();
	} 
	
	if (!checkBox)
	{
		alert('U moet minsten 1 checkBox aanvinken.');
		return false;
	}

}

/** changeSearch
*   changes the search from the advanced view to the simple view
*/
function changeSearch(to) {
 if (to == 'simple') {
	showHide('advanced_search','hide');
	showHide('but_advanced','hide');
/*	showHide('advancedsubmit','hide');
	document.getElementById('advancedsubmit').type = "button";
	document.getElementById('simplesubmit').type = "submit"; */
	showHide('simple_search','show');
	showHide('but_simple','show');
//	showHide('simplesubmit','show');
 } else if (to == 'advanced') {
	showHide('simple_search','hide');
	showHide('but_simple','hide');
/*	showHide('simplesubmit','hide');
	document.getElementById('advancedsubmit').type = "submit";
	document.getElementById('simplesubmit').type = "button";*/
	showHide('advanced_search','show');
	showHide('but_advanced','show');
//	showHide('advancedsubmit','show');
 }
}

function selectAllFilters(bool) {
 if (bool) {
	document.getElementById("cb_Publicaties").checked = "checked";
	document.getElementById("cb_Praktijkvoorbeelden").checked = "checked";
	document.getElementById("cb_Instrumenten").checked = "checked";
	document.getElementById("cb_Maatregelen").checked = "checked";
//	document.getElementById("cb_Beleidsdocumenten").checked = "checked";
	document.getElementById("cb_Tekstpaginas").checked = "checked";
	document.getElementById("cb_Nieuws").checked = "checked";
	document.getElementById("cb_Bijeenkomsten").checked = "checked";
//	document.getElementById("cb_Discussie").checked = "checked";
	document.getElementById("cb_Links").checked = "checked";
	document.getElementById("select_all").style.display = "none";
	document.getElementById("select_nothing").style.display = "block";	
 } else {	
	document.getElementById("cb_Publicaties").checked = "";
	document.getElementById("cb_Praktijkvoorbeelden").checked = "";
	document.getElementById("cb_Instrumenten").checked = "";
	document.getElementById("cb_Maatregelen").checked = "";
//	document.getElementById("cb_Beleidsdocumenten").checked = "";
	document.getElementById("cb_Tekstpaginas").checked = "";
	document.getElementById("cb_Nieuws").checked = "";
	document.getElementById("cb_Bijeenkomsten").checked = "";
//	document.getElementById("cb_Discussie").checked = "";
	document.getElementById("cb_Links").checked = "";
	document.getElementById("select_nothing").style.display = "none";
	document.getElementById("select_all").style.display = "block";	

 }
}


function highlight(words) {
   var arrWords = words.split(',');

   for (var i = 0; i < arrWords.length; i++) {
      if (arrWords[i].length < 3) return false;

      var bodyTag = document.body; 
      var strRE = '(?!(<span class="hit">)|(<[^>]*))('+arrWords[i]+')(?!(<\/span>)|([^<]*>))';
      var reSearch = new RegExp(strRE, 'ig'); 
   
      bodyTag.innerHTML = bodyTag.innerHTML.replace(reSearch, '<span class="hit">$&</span>'); 
      
   }
}

function textWidget()
{
   var textSizeRoot = elemById('ctScroller');
   var textSizeIframe = elemById('textsize_iframe');

   //set to value in Session, or the default 10px;
   textSizeRoot.style.fontSize = retrieveTextSession().textsize;
   textSizeRoot.style.lineHeight = retrieveTextSession().lineheight;

   //set textsize and cookieset events on +- buttons
   elemById('textwidget_smaller').onclick = function () {
      var currentFontSize = getStyleValue(textSizeRoot,'font-size',true);

      if (currentFontSize > 10) {

         textSizeRoot.style.fontSize = currentFontSize - 3 + 'px';
         textSizeRoot.style.lineHeight = (currentFontSize - 3)*1.5 + 'px';
	      saveTextSession(textSizeRoot.style.fontSize, textSizeRoot.style.lineHeight);
      }
	   return false;
   }

   elemById('textwidget_bigger').onclick = function () {
      var currentFontSize = getStyleValue(textSizeRoot,'font-size',true);

      textSizeRoot.style.fontSize = currentFontSize + 3 + 'px';
      textSizeRoot.style.lineHeight = (currentFontSize + 3)*1.5 + 'px';

	   saveTextSession(textSizeRoot.style.fontSize, textSizeRoot.style.lineHeight);

	   return false;
   }

   function saveTextSession(textSize, lineHeight)
   {
      textSizeIframe.src = 'snippets/storetextsize.asp?textsize=' + textSize + '&lineheight=' + lineHeight;
   }

   function retrieveTextSession()
   {
	   var sessionData = new Object();

      var attributeValue = textSizeIframe.getAttribute('textsize');
	   var isValidValue = attributeValue != 'undefined' && attributeValue != '';

	   sessionData.textsize = isValidValue? attributeValue : '10px';

      attributeValue = textSizeIframe.getAttribute('lineheight');
	   isValidValue = attributeValue != 'undefined' && attributeValue != '';

	   sessionData.lineheight = isValidValue? attributeValue : '15px';

      return sessionData;
   }
}

/************ Wordt vervangen... 
var tags = new Array('td','tr','p','b','span','table','strong','emphasis','a','h1','h2','h3', 'h4', 'pre','sub','sup','i','th','cp','ul','ol','li','dt','dd');
var pixelArray = new Array('10','12','14','18','24','30','40');
var emArray = new Array('0.7','0.9','1.0','1.5','2.0','2.5','3');
var initSize = 2; 

function fontSizer(inc,unit) {
   if (!document.getElementById)
      return;
   var size = initSize;
   size += inc;
   if (size < 0 ) {
      size = 0;
   }
   if (size > 6 ) {
      size = 6;
   }
   initSize = size;
   getBody = document.getElementById('content');
   if(getBody == document.getElementById('bogus')){
      getBody = document.getElementById('contentwide');
   }
   alert(getBody.getElementsByTagName('p')[1].style.fontSize);
   for (i = 0 ; i < tags.length ; i++ ) {
      getallTags = getBody.getElementsByTagName(tags[i]);
      for (k = 0 ; k < getallTags.length ; k++) {
         getallTags[k].style.fontSize = (unit=='px') ? pixelArray[size]+unit: emArray[size]+unit;
		 getallTags[k].style.lineHeight = (unit=='px') ? pixelArray[size]+unit: emArray[size]+unit;
	  }
   }
}*/