/* --- General --- */
 var init = function (){
   addClass(document.body,'jsOn');
   try {adjustIframe();} catch (e) {}
   try {adjustIframeWide();} catch (e) {}
   try {dl(0)} catch (e) {}
   try {initNews(0)} catch(e) {}
   try {initRegistration();} catch(e) {}
   try {initLogin();} catch(e) {}
   try {initChangePassword();} catch(e) {}
   try {bindFocusEvents(); bindLayerEvents();} catch (e) {}
   try {adjustNewsSnippet()} catch (e) {}
   try {adjustFaqSnippet()} catch (e) {}
   try {initLogoLink(250,100)} catch(e) {}
 }

 addLoadEvent(init);
 
 window.onresize = adjust;
 function adjust() {
   try {adjustIframe();} catch (e) {}
   try {adjustIframeWide();} catch (e) {}
 }

 function adjustNewsSnippet(){
	var nieuwsframe = document.getElementById('nieuwsframe');
	if (!nieuwsframe) return;	

	var framecontent = nieuwsframe.contentWindow.document;

	if(framecontent) 
	{
		var contentdiv = framecontent.getElementById('newsdiv');
		if(contentdiv == null) {
			nieuwsframe.style.height = 0;
			}
		else {
			var height = contentdiv.offsetHeight;
			nieuwsframe.style.height = height +'px';
		}
	} 
 }



 function adjustFaqSnippet(){
	var faqframe = document.getElementById('faqframe');
	if (!faqframe) return;	

	var framecontent = faqframe.contentWindow.document;

	if(framecontent) 
	{
		var contentdiv = framecontent.getElementById('Faqdiv');
		if(contentdiv == null) {
			faqframe.style.height = 0;
			faqframe.style.width = '188px';
			}
		else {
			var height = contentdiv.offsetHeight;
			faqframe.style.height = height +'px';
			faqframe.style.width = '188px';
		}
	} 
 }


 function adjustIframe(){
	var frame = document.getElementById('iframe');

	if(!frame) return;
 	var height=0;

   	if(document.all){
     		if(document.compatMode == "CSS1Compat"){
       			height = document.documentElement.clientHeight;
     		}else{
       			height = document.body.clientHeight;
     	}
   	}else{
     		height = document.documentElement.clientHeight;
   	}

   	if(height < 300){height = 300};
   	height = height - 180 + 'px';

   	frame.style.height = height;
 }

 function adjustIframeWide(){
	var frame = document.getElementById('wide');

	if(!frame) return;
 	var height=0;

   	if(document.all){
     		if(document.compatMode == "CSS1Compat"){
       			height = document.documentElement.clientHeight;
     		}else{
       			height = document.body.clientHeight;
     	}
   	}else{
     		height = document.documentElement.clientHeight;
   	}

   	if(height < 300){height = 300};
   	height = height - 165 + 'px';

   	frame.style.height = height;
 }

//+++++++++logoklik start+++++++++
function initLogoLink(doubleclicktime,doubleclickdelay) {
	var logolink = document.getElementById('logolink');

	if(!logolink) return;

	logolink.dcTime = doubleclicktime;
	logolink.dcDelay = doubleclickdelay;
	logolink.dcMoment = 0;
	
	logolink.onclick = function() {
		if(hasDoubleClick(this)) return false;
		this.clicktime = (new Date()).getTime();
		this.clickfunction = setTimeout("GoToUrl()",this.dcTime);
		return false;
		}

	logolink.ondblclick = function() {
		this.dcMoment = (new Date).getTime();
		if(this.clickfuntion != null) {
			clearTimeout(this.clickfunction);
			this.clickfunction = null;
			}
		var id = document.body['id'].replace('p','');
		window.open('/manager.dws?id=' + id,'_blank');
		}

	var url = logolink['href'];

	}

function hasDoubleClick(link) {
	if(((new Date).getTime() - link.dcMoment) < link.dcDelay) {
		return true;
		}
	else {
		return false;
		}
	}

function GoToUrl()  {
	var link = document.getElementById('logolink');
	if(link.clicktime - link.dcMoment <=0 ) {
		return false;
		}
	self.location = link['href'];
	}
//+++++++++logoklik end+++++++++

// paging
try {dl(0)} catch (e) {}
 function dl(nr){
   var pag = 4;
   var dt = document.getElementById('page').getElementsByTagName('dt');
      
   if (nr==0 && dt.length>pag) {
     var nav = '<div class="previous" onclick="dl(\'p\')"><a href="#top" title="Vorige pagina">Vorige pagina</a></div><div class="pageNumbers">';
     for(var i = new Number(1); i<1+dt.length/pag; i++){
       nav = nav + '<span class="pageNumber" onclick="dl(' + i + ')"><a href="#top">' + i + '</a></span> ';
     }
     nav = nav + '</div><div class="next" onclick="dl(\'n\')"><a href="#top" title="Volgende pagina">Volgende pagina</a></div>';
     document.getElementById('navTop').innerHTML = nav
     document.getElementById('navBottom').innerHTML = nav
     nr=1;
   }

   if (nr==1) {document.getElementById('navTop').innerHTML = document.getElementById('navTop').innerHTML.replace('previous','pdim');document.getElementById('navBottom').innerHTML = document.getElementById('navBottom').innerHTML.replace('previous','pdim');}
   if (nr!=1) {document.getElementById('navTop').innerHTML = document.getElementById('navTop').innerHTML.replace('pdim','previous');document.getElementById('navBottom').innerHTML = document.getElementById('navBottom').innerHTML.replace('pdim','previous');}

   if (nr==Math.round(dt.length/pag+0.4)) {document.getElementById('navTop').innerHTML = document.getElementById('navTop').innerHTML.replace('next','ndim');document.getElementById('navBottom').innerHTML = document.getElementById('navBottom').innerHTML.replace('next','ndim');}
   if (nr!=Math.round(dt.length/pag+0.4)) {document.getElementById('navTop').innerHTML = document.getElementById('navTop').innerHTML.replace('ndim','next');document.getElementById('navBottom').innerHTML = document.getElementById('navBottom').innerHTML.replace('ndim','next');}

   var top = document.getElementById('navTop').getElementsByTagName('a');
   var bottom = document.getElementById('navBottom').getElementsByTagName('a');

   if (nr=='p'){
     for(var i = new Number(0); i<top.length; i++){
       if(top[i].className == 'pageNumberSelected') {if(i>1) {dl(i-1)}; return;}
     }
   }
   if (nr=='n'){
     for(var i = new Number(0); i<top.length; i++){
       if(top[i].className == 'pageNumberSelected') {if(i<top.length-2) {dl(i+1)}; return;}
     }
   }

   for(var i = new Number(0); i<top.length; i++){top[i].className = 'pageNumber'; bottom[i].className = 'pageNumber';}
   for(var i = new Number(1); i<Math.max(1,Math.min(nr-5,top.length-11)); i++){top[i].className = 'hide'; bottom[i].className = 'hide';}
   for(var i = new Number(Math.max(nr+5,11)); i<top.length-1; i++){top[i].className = 'hide'; bottom[i].className = 'hide';}

   top[nr].className = 'pageNumberSelected';
   bottom[nr].className = 'pageNumberSelected';


   var dd = document.getElementById('page').getElementsByTagName('dd');
   for(var i = new Number(0); i<dt.length; i++){
	removeClass(dt[i],'show');
	removeClass(dd[i],'show');
	addClass(dt[i],'hide');
	addClass(dd[i],'hide');     
   }
   for(var i = new Number(pag*nr-pag); i<Math.min(pag*nr,dt.length); i++){
	
	removeClass(dt[i],'hide');
	removeClass(dd[i],'hide');
	addClass(dt[i],'show');
	addClass(dd[i],'show');     
   }
 }

 function initNews(nr) {
	var pagesize = 5;
   	try {pagesize = document.getElementById('pagesize').innerHTML;} catch (e) {}

	var newslist = document.getElementById('newsOverview');
	if(!newslist) return;

	var newsitems = getElementsByClassName(newslist,'div','newsItemBlock');

	if(!newsitems || newsitems.length <= pagesize) return;

	var topnav = document.getElementById('navTop');
	var bottomnav = document.getElementById('navBottom');

	//first run
	if(nr==0) {
		var navcontent = '<div class="previous" onclick="initNews(\'p\')"><a href="#top" title="Vorige pagina">Vorige pagina</a></div><div class="pageNumbers">';
		for(var i = 1; i<1+newsitems.length/pagesize; i++) {
       			navcontent += '<span class="pageNumber" onclick="initNews(' + i + ')"><a href="#top">' + i + '</a></span> ';
     			}
		navcontent += '</div><div class="next" onclick="initNews(\'n\')"><a href="#top" title="Volgende pagina">Volgende pagina</a></div>';
		if(topnav) topnav.innerHTML = navcontent;
		if(bottomnav) bottomnav.innerHTML = navcontent;
		navcontent = null;
		nr= 1;
	}

	if (nr==1) {topnav.innerHTML = topnav.innerHTML.replace('previous','pdim');bottomnav.innerHTML = bottomnav.innerHTML.replace('previous','pdim');}
	if (nr!=1) {topnav.innerHTML = topnav.innerHTML.replace('pdim','previous');bottomnav.innerHTML = bottomnav.innerHTML.replace('pdim','previous');}

	if (nr==Math.round(newsitems.length/pagesize+0.4)) {topnav.innerHTML = topnav.innerHTML.replace('next','ndim');bottomnav.innerHTML = bottomnav.innerHTML.replace('next','ndim');}
	if (nr!=Math.round(newsitems.length/pagesize+0.4)) {topnav.innerHTML = topnav.innerHTML.replace('ndim','next');bottomnav.innerHTML = bottomnav.innerHTML.replace('ndim','next');}

	var toplinks = topnav.getElementsByTagName('a');
	var bottomlinks = bottomnav.getElementsByTagName('a');

	if (nr=='p'){
    	 for(var i = new Number(0); i<toplinks.length; i++){
	       if(toplinks[i].className == 'pageNumberSelected') {if(i>1) {return initNews(i-1)};return; }
	     }
	   }
	   if (nr=='n'){
	     for(var i = new Number(0); i<toplinks.length; i++){
	       if(toplinks[i].className == 'pageNumberSelected') {if(i<toplinks.length-2) {return initNews(i+1)};return; }
	     }
	   }
	   
         for(var i = new Number(0); i<toplinks.length; i++){toplinks[i].className = 'pageNumber'; bottomlinks[i].className = 'pageNumber';}
   	for(var i = new Number(1); i<Math.max(1,Math.min(nr-5,toplinks.length-11)); i++){toplinks[i].className = 'hide'; bottomlinks[i].className = 'hide';}
   	for(var i = new Number(Math.max(nr+5,11)); i<toplinks.length-1; i++){toplinks[i].className = 'hide'; bottomlinks[i].className = 'hide';}

   	toplinks[nr].className = 'pageNumberSelected';
   	bottomlinks[nr].className = 'pageNumberSelected';

	for(var i = new Number(0); i<newsitems.length; i++){
		removeClass(newsitems[i],'show');
		addClass(newsitems[i],'hide');			     	 
	}
   	for(var i = new Number(pagesize*nr-pagesize); i<Math.min(pagesize*nr,newsitems.length); i++){		
		removeClass(newsitems[i],'hide');
		addClass(newsitems[i],'show');			     		
	   }

		
	toplinks = null;
	bottomlinks = null;
	topnav = null;
	bottomnav = null;	
	newsitems = null;
	newslist = null;

	return false;
 }
 
/* --- end General --- */

/* --- add functions to onload event: addLoadEvent(functionName); --- */
/* --- http://simonwillison.net/2004/May/26/addLoadEvent/ --- */

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

/* --- createElement() --- */
function createElement(element) {
	if (typeof document.createElementNS != 'undefined') {
		return document.createElementNS('http://www.w3.org/1999/xhtml', element);
	}
	if (typeof document.createElement != 'undefined') {
		return document.createElement(element);
	}
	return false;
}

/* --- add className --- */
function addClass(node, className) {
	removeClass(node, className);	// make sure there won't be any doubles
	node.className += " " + className;
}

/* --- remove className --- */
function removeClass(node, className) {
	var seperator = (node.className.length == className.length) ? "" : " ";
	node.className = node.className.replace(seperator + className,"");
}

/* --- check if node has className --- */
function hasClass(node, className) {
	var nodeClass = node.className;
	if (!className && nodeClass != "") return true;			// if no className is specified any className will do
	if (className && nodeClass.indexOf(className) > -1) {	// match, but not exact
		var nodeClasses = nodeClass.split(/\s+/);			// seperate class names (devided by one or more whitespaces)
		for (c=0; c<nodeClasses.length; c++) {
			if (nodeClasses[c] == className) return true
		}
	}
	return false;
}

function getElementsByClassName(node,tagname,classname) {

	var returnlist = new Array();
	var nodelist = node.getElementsByTagName(tagname);

	if(nodelist) {
		var nodecount = nodelist.length;
		var n;
		for(n=0;n<nodecount;n++) {
			var currentnode = nodelist[n];
			if(hasClass(currentnode,classname)) {
				returnlist[returnlist.length] = currentnode;
				}
			}
		}

	return returnlist;
	}

/* --- check if a string is empty --- */
function isEmptyString(inputstr) {
	
	if(!inputstr || inputstr.length == 0) {
		return true;
		}

	//remove white-space
	inputstr = inputstr.replace(/\s/g,'');

	if(inputstr.length == 0) {
		return true;
		}

	return false;
	
	}

/* --- check if a string is a email address --- */
function isEmail(inputstr) {
	var arrMatch = inputstr.match(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/gi);

	if(!arrMatch) return false;

	if(arrMatch.length > 1) return false;

	if(arrMatch[0] !== inputstr) return false;
	
	return true;
	}

/* ======================================= */
/* === functions for registration form === */
/* ======================================= */
var initRegistration = function() {
	var frm = document.getElementById('frmRegister');
	
	if(!frm) return;

	frm.onsubmit = function() {
		return ValidateRegistration(frm);
		}
	
	}

function ValidateRegistration(frm) {
	
	var username = frm.txtUsername.value;
	
	var strErrors = "";

	if(isEmptyString(username)) { 
		strErrors += "U moet een gebruikersnaam ingeven.\n";			
		}
	else {
		if(!isEmail(username)) {
			strErrors += "De ingegeven gebruikersnaam is geen geldig e-mailadres.\n";
			}
		}

	if(frm.txtPassword) {
		var password = frm.txtPassword.value;
		var confirmpassword = frm.txtConfirmPassword.value;
		var fullname = frm.txtFullname.value;


		if(isEmptyString(password)) { 
			strErrors += "U moet een wachtwoord ingeven.\n";			
			}

		if(isEmptyString(confirmpassword)) { 
			strErrors += "U moet uw wachtwoord bevestigen.\n";			
			}


		if(isEmptyString(fullname)) { 
			strErrors += "U moet uw volledige naam ingeven.\n";			
			}

	
		if(password !== confirmpassword) {
			strErrors += "Het ingegeven wachtwoord en de bevestiging komen niet overeen.\n";
			}
		}


	if(strErrors.length > 0) {
		alert(strErrors);
		return false;
		}
	
	
	return true;
	}

/* ======================================= */
/* === functions for login form === */
/* ======================================= */
var initLogin = function() {
	var frm = document.getElementById('frmLogin');
	if (!frm) return;

	var cmdLogin = frm.cmdLogin;
	if(cmdLogin) {
		cmdLogin.frm = frm;
		cmdLogin.onclick = function() {
			return ValidateLoginForm(true,this.frm);
			}
		}

	var cmdPwd = frm.cmdRequestPassword;
	if(cmdPwd) {
		cmdPwd.frm = frm;
		cmdPwd.onclick = function() {
			return ValidateLoginForm(false,this.frm);
			}
		}
	}

function ValidateLoginForm(isLogin,frm) {
	
	var username = frm.txtUsername.value;

	var strErrors = "";

	if(isEmptyString(username)) { 
		strErrors += "U moet een gebruikersnaam ingeven.\n";			
		}
	else {
		if(!isEmail(username)) {
			strErrors += "De ingegeven gebruikersnaam is geen geldig e-mailadres.\n";
			}
		}
	
	if(isLogin) {
		var pwd = frm.txtPassword.value;
		if(isEmptyString(pwd)) {
			strErrors += "U moet uw paswoord ingeven.\n";
			}
		}

	if(strErrors.length > 0) {
		alert(strErrors);
		return false;
		}

			
	return true;
	}

/* ======================================= */
/* === functions for comments form === */
/* ======================================= */
var initLogin = function() {
	var frm = document.getElementById('frmComments');
	if (!frm) return;

	var submit = frm.submit;
	if(submit) {
		submit.frm = frm;
		submit.onclick = function() {
			return ValidateLoginForm(true,this.frm);
			}
		}
	}

function ValidateLoginForm(isLogin,frm) {
	
	var username = frm.txtUsername.value;

	var strErrors = "";

	if(isLogin) {
		var gst = frm.txtName.value;
		if(isEmptyString(gst)) {
			strErrors += "Vul uw naam in\n";
			}
		}

	if(isEmptyString(username)) { 
		strErrors += "Vul uw e-mailadres in\n";			
		}
	else {
		if(!isEmail(username)) {
			strErrors += "Het e-mailadres is ongeldig\n";
			}
		}
	
	if(isLogin) {
		var com = frm.comment.value;
		if(isEmptyString(com)) {
			strErrors += "Geef een reactie\n";
			}
		}

	if(strErrors.length > 0) {
		alert(strErrors);
		return false;
		}

			
	return true;
	}

/* ========================================== */
/* === functions for change password form === */
/* ========================================== */
var initChangePassword = function() {
	var frm = document.getElementById('frmChangePassword');

	if(!frm) return;
	
	frm.onsubmit = function() {
		return ValidateChangePasswordForm(frm);
		}
		
	}

function ValidateChangePasswordForm(frm) {

	var oldpwd = frm.txtOldPassword.value;
	var newpwd = frm.txtNewPassword.value;
	var confirmpwd = frm.txtConfirmPassword.value;

	var strErrors = "";
	
	if(isEmptyString(oldpwd)) {
		strErrors += "U moet uw oud wachtwoord invullen.\n";
		}

	if(isEmptyString(newpwd)) {
		strErrors += "U moet uw nieuw wachtwoord invullen.\n";
		}

	if(isEmptyString(confirmpwd)) {
		strErrors += "U moet uw nieuw wachtwoord bevestigen.\n";
		}

	if((!isEmptyString(newpwd) && !isEmptyString(confirmpwd)) && newpwd !== confirmpwd) {
		strErrors += "Het nieuwe wachtwoord en de bevestiging komen niet overeen.\n";
		}

	if(strErrors.length > 0) {
		alert(strErrors);
		return false;
		}
	
	return true;
	}

/* =================================== */
/* === call functions on page load === */
/* =================================== */

/* --- call functions only if the used methods are supported --- */
/* Example : addLoadEvent(initSitemap); */


/* =================================== */
/* === default.js TFE              === */
/* =================================== */

// Events binden
var bindFocusEvents = function() { 
	//fullText
	var fullText = document.getElementById("fullText");
	if (fullText) {
		fullText.onfocus = function() {
			if (fullText.value == "zoeken") {
				fullText.value = "";
				fullText.style.color="#333";
			}
		};
		fullText.onblur = function() {
			if (fullText.value == "") {
				fullText.value = "";
				fullText.style.color="#666";
			}
		};
	}

	//glddichtbijText
	var glddichtbijText= document.getElementById("glddichtbijText");
	if (glddichtbijText) {
		glddichtbijText.onfocus = function() {
			if (glddichtbijText.value == "Postcode en huisnummer ...") {
				glddichtbijText.value = "";
				glddichtbijText.style.color="#333";
			}
		};
	}
//postcode in IFrame
};

var bindLayerEvents = function() { 
	//layerbutton1
	var layerbutton1 = document.getElementById("layerbutton1");
	if (layerbutton1) {
		layerbutton1.onclick = function() {
			document.getElementById("videoLayer").style.display = "block";
			return false;
		};
	}

	//layerbutton2
	var layerbutton2 = document.getElementById("layerbutton2");
	if (layerbutton2) {
		layerbutton2.onclick = function() {
			document.getElementById("videoLayer").style.display = "none";
			return false;
		};
	}
};


//Readspeaker

var selectedString='';

function getSelectedHTML() {
  var rng=undefined;
  if (window.getSelection) {
    selobj = window.getSelection();
    if (!selobj.isCollapsed) {
      if (selobj.getRangeAt) {
        rng=selobj.getRangeAt(0);
      }
      else {
        rng = document.createRange();
        rng.setStart(selobj.anchorNode,selobj.anchorOffset);
        rng.setEnd(selobj.focusNode,selobj.focusOffset);
      }
      if (rng) {
        DOM = rng.cloneContents();
        object = document.createElement('div');
        object.appendChild(DOM.cloneNode(true));
        selectedString=object.innerHTML;
      }
      else {
        selectedString=selobj;
      }
    }
  }
  else if (document.selection) {
    selobj = document.selection;
    rng = selobj.createRange();
    if (rng && rng.htmlText) {
      selectedString = rng.htmlText;
    }
    else if (rng && rng.text) {
      selectedString = rng.text;
    }
  }
  else if (document.getSelection) {
    selectedString=document.getSelection();
  }
}

function copySelection() {
  setTimeout("getSelectedHTML()",50);
}

document.onmouseup=copySelection;
document.onkeyup=copySelection;
