function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function startknoppen() {
	var zlnk = document.getElementById("zoeklink");
	if(zlnk) {
		zlnk.onmouseout = function() {
			MM_swapImgRestore();
		}
		zlnk.onmouseover = function() {
			MM_swapImage('Image1','','/images/start_over.gif',1);
		}
		
		zlnk.onclick = function() {
			if (document.searchform.zoekstring.value == "") {
				alert(lbl_javascript_searchstring);
			}
			else {
				document.searchform.submit();
			}
			return false;
		}
	}
}

function productformulier() {
	formulier = document.getElementById("productformulier");
	if(formulier) {
		formulier.onsubmit = function() {
			return validateProduct(this);
		}
	}
}

function validateProduct (theForm) {	
	var error = 0;
	var msg = "";
	
	if(theForm.naam.value.length==0) {
		error++;
		msg += "\n- " + lbl_javascript_name;
	}
	if(theForm.email.value.length==0) {
		error++;
		msg += "\n- " + lbl_javascript_email;
	}
	
	if(error) {
		alert(lbl_javascript_followingfields + ":" + msg);
		return false;
	}
	
	if(!validateEmail(theForm.email.value)) {
		alert(lbl_javascript_correctemail);
		return false;
	}
	return true;
}

function contactformulier() {
	formulier = document.getElementById("contactformulier");
	if(formulier) {
		formulier.onsubmit = function() {
			return validateContact(this);
		}
	}
}

function validateContact (theForm) {	
	var error = 0;
	var msg = "";
	
	if(theForm.naam.value.length==0) {
		error++;
		msg += "\n- " + lbl_javascript_name;
	}
	if(theForm.bedrijf.value.length==0) {
		error++;
		msg += "\n- " + lbl_javascript_company;
	}
	if(theForm.land.value.length==0) {
		error++;
		msg += "\n- " + lbl_javascript_country;
	}
	if(theForm.email.value.length==0) {
		error++;
		msg += "\n- " + lbl_javascript_email;
	}
	
	if(error) {
		alert(lbl_javascript_followingfields + ":" + msg);
		return false;
	}
	
	if(!validateEmail(theForm.email.value)) {
		alert(lbl_javascript_correctemail);
		return false;
	}
	return true;
}

function validateEmail(email) {
	
	if (email != null && email != "") {
		a = email.lastIndexOf("@");
		b = email.lastIndexOf(".");
		c = email.indexOf(":");
		d = email.indexOf("/");
		e = email.substring(0,a);
		f = e.indexOf("@");
		g = email.substring(a+1,email.length);
		h = g.indexOf("[");
		i = g.indexOf("]");
		j = g.indexOf("<");
		k = g.indexOf(">");
		l = email.substring(a+1,b);
		m = email.substring(b+1,email.length);
		n = email.substring(0,a);
		p = email.indexOf("'");
		q = email.indexOf("\"");
		o = 0;
		if (a > b) {o++};
		if (c != -1) {o++};
		if (d != -1) {o++};
		if (f != -1) {o++};
		if (h != -1) {o++};
		if (i != -1) {o++};
		if (j != -1) {o++};
		if (k != -1) {o++};
		if (l.length < 2) {o++};
		if (m.length < 2) {o++};
		if (n.length < 1) {o++};
		if (p != -1) {o++};
		if (q != -1) {o++};
		if (o != 0) {
			return false;
		}
	}
	return true;
}

function dospecialfinish() {
	var lnk = document.getElementById("maximglink");
	if(lnk) {
		lnk.onclick = function() {
			maximize();
			return false;
		}
	}
	var lnk2 = document.getElementById("minimglink");
	if(lnk2) {
		lnk2.onclick = function() {
			minimize();
			return false;
		}
	}
}

function maximize() {
	document.getElementById("menubalk").style.visibility="visible";
	document.getElementById("maximg").src="/images/icon_maximize.gif";
	document.getElementById("minimg").src="/images/icon_minimize_on.gif";
}

function minimize() {
	document.getElementById("menubalk").style.visibility="hidden";
	document.getElementById("maximg").src="/images/icon_maximize_on.gif";
	document.getElementById("minimg").src="/images/icon_minimize.gif";
}

function menu() {
	if (window.attachEvent) { 
		// IE does not do :hover on <li> ==> add a class onmouseover
		sfHover();
	} 
}

function sfHover() {
	var BUA = navigator.userAgent;
	var BIE = BUA.indexOf("MSIE");
	var BIsIE = BIE>=0;

	var menu = document.getElementById("navigation");
	if(menu) {
		var uls = menu.getElementsByTagName('ul');
		var ul = uls[0];
		var lis = ul.getElementsByTagName('li');
		for(i=0;i<lis.length;i++) {
			if(lis[i].parentNode == ul) {
				// enkel die LIs die subitems hebben
				lis[i].onmouseover=function() {this.className+=" sfhover";}
				lis[i].onmouseout=function() {this.className=this.className.replace(new RegExp(" sfhover\\b"), "");}
							
				//all is normal till here. If we're using IE then this tells any first level item to have a width of 1px
				//lis[i].style.width = '1px';
			}
		}
	}
}

function printpagina() {
	var printlink = document.getElementById("printlink");
	if(printlink) {
		printlink.onclick = function() {
			print();
			return false;
		}
	}
	var printlink2 = document.getElementById("printlink2");
	if(printlink2) {
		printlink2.onclick = function() {
			print();
			return false;
		}
	}
}

var allowDivOnClick = true;
function locations() {
	var map=document.getElementById('locationmap');
	if(map) {
		var locations=map.getElementsByTagName('div');
		for (var i=0;i<locations.length;i++) {
			locations[i].onmouseover = function() {
				this.style.cursor="pointer";
				this.className+=" locBlink";
				desactivate();
				var obj2 = document.getElementById(this.getAttributeNode('id').value.replace("locatie",""));
				obj2.className = "active";
			}
			locations[i].onmouseout = function() {
				if (this.className.indexOf("locBlink") > 0) {
						var locations=map.getElementsByTagName('div');
						for (var i=0;i<locations.length;i++) {
							locations[i].className=locations[i].className.replace(new RegExp(" locBlink\\b"), "");
						}
				}
				desactivate();
			}
			locations[i].onclick = function() { 
				if(allowDivOnClick) {
					if (this.className.indexOf("locHover") < 0) {
						// alles sluiten
						var locations=map.getElementsByTagName('div');
						for (var i=0;i<locations.length;i++) {
							locations[i].className=locations[i].className.replace(new RegExp(" locHover\\b"), "");
							locations[i].className=locations[i].className.replace(new RegExp(" locBlink\\b"), "");
						}
						// 1 openen
						desactivate();
						var obj2 = document.getElementById(this.getAttributeNode('id').value.replace("locatie",""));
						obj2.className = "active";
						this.className+=" locHover";
						this.style.cursor="default";
					}
				} else {
					allowDivOnClick = true;
				}
				return false;
			}
			em=locations[i].getElementsByTagName('em')[0];
			closelink=em.getElementsByTagName('a')[0];
			if(closelink) { 
				closelink.onclick=function() {
					this.parentNode.parentNode.className=this.parentNode.parentNode.className.replace(new RegExp(" locHover\\b"), "");
					allowDivOnClick = false;
					var locations=document.getElementById('locationmap').getElementsByTagName('div');
					for (var i=0;i<locations.length;i++) {
						locations[i].className=locations[i].className.replace(new RegExp(" locHover\\b"), "");
						locations[i].className=locations[i].className.replace(new RegExp(" locBlink\\b"), "");
					}
					desactivate();
					return false;
				}
			}
		}
	}
}

function desactivate() {
	var lst=document.getElementById('locationlist').getElementsByTagName('li');
	if (lst) {
		for (var i=0;i<lst.length;i++) {
			var a=lst[i].getElementsByTagName('a')[0];
			a.className = "";
		}	
	}
}

function listLocationsShow() {
	var list=document.getElementById('locationlist');
	if(list) {
		var LIs=list.getElementsByTagName('li');
		for (var i=0;i<LIs.length;i++) {
			var a=LIs[i].getElementsByTagName('a')[0];
			a.onmouseover = function() {
				var nr='locatie'+this.getAttributeNode('id').value;
				var obj = document.getElementById(nr);
				obj.style.cursor="pointer";
				obj.className+=" locBlink";
			}
			a.onmouseout = function() {
				var nr='locatie'+this.getAttributeNode('id').value;
				var obj = document.getElementById(nr);
				if (obj.className.indexOf("locBlink") > 0) {
						var locations=document.getElementById('locationmap').getElementsByTagName('div');
						for (var i=0;i<locations.length;i++) {
							locations[i].className=locations[i].className.replace(new RegExp(" locBlink\\b"), "");
						}
				}
			}
			a.onclick = function() {
				var nr='locatie'+this.getAttributeNode('id').value;
				var obj = document.getElementById(nr);
				desactivate();
				var obj2 = document.getElementById(this.getAttributeNode('id').value);
				obj2.className = "active";
				if(allowDivOnClick) {
					if (obj.className.indexOf("locHover") < 0) {
						// alles sluiten
						var locations=document.getElementById('locationmap').getElementsByTagName('div');
						for (var i=0;i<locations.length;i++) {
							locations[i].className=locations[i].className.replace(new RegExp(" locHover\\b"), "");
							locations[i].className=locations[i].className.replace(new RegExp(" locBlink\\b"), "");
						}
						// 1 openen
						obj.className+=" locHover";
						obj.style.cursor="default";
					}
				} else {
					allowDivOnClick = true;
				}
				return false;
			}
		}
	}
}

addLoadEvent(locations);
addLoadEvent(printpagina);
addLoadEvent(menu);
addLoadEvent(dospecialfinish);
addLoadEvent(startknoppen);
addLoadEvent(contactformulier);
addLoadEvent(productformulier);
addLoadEvent(listLocationsShow);