//--- Perform site search -----------------------------------------------------
function doSearch() {
	if (document.sitesearch.keywords.value == "") {
		alert("No search arguments given");
		return false;
	} else {
		return true;
	}
}

//--- Access Knowledge Center (email address only )----------------------------
function doKCAccess() {
	if (document.kc_access.email.value == "") {
		alert("Please enter your e-mail address");
		return false;
	} else {
		return true;
	}
}

//--- Get states of a country -------------------------------------------------
function getStates(object, country) {
	object.options.length = 0;
	object.disabled = true;
	if (country != "") {
		var req = createRequest();
		req.open("POST", "/ajax.php", false);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		req.send("todo=GET_STATEN&land_id=" + country);
		if ((req.readyState == 4) && (req.status == 200) && (req.responseText != "")) {
			try {
				var get_staten = eval("(" + req.responseText + ")");
			} catch (e) {
				alert("Formattering error of the JSON object. Unable to retrieve states list.");
			}
			if (get_staten != null) {
				if (get_staten.status == "OK") {
					object.options[0] = new Option("", "");
					object.options[0].innerHTML = "&nbsp;";
					for (var idx=0; idx < get_staten.staat.length; idx++) {
						object.options[idx+1] = new Option(get_staten.staat[idx], get_staten.staat[idx]);
					}
					if (get_staten.staat.length > 0) {
						object.disabled = false;
					}
				} else {
					alert("Error: " + get_staten.status);
				}
			}
		} else {
			alert("Incorrect response to the AJAX query:\nReady State: " + req.readyState + "\nStatus: " + req.status);
		}
	}
	if (object.disabled && (object.className.indexOf("verplicht") > -1)) {
		object.className = trim(object.className.replace(/verplicht/,""));
	} else if (!object.disabled && (object.className.indexOf("verplicht") == -1)) {
		object.className = trim(object.className.toString() + " verplicht");
	}
}

//--- Search for object on ID -------------------------------------------------
function getElement(id) {
	return (document.getElementById) ? document.getElementById(id) : document.all[id];
}

//--- Open a new window -------------------------------------------------------
function openWindow(url, wname, w_height, w_width, position) {
	if (!position) position = "center";
	var w_top = 0;
	var w_left = 0;
	if (position == "center") {
		w_top = parseInt((screen.height-w_height) / 2);
		w_left = parseInt((screen.width-w_width) / 2);
	} else {
		if (position.indexOf("left") > -1) {
			w_left = windowOffsetLeft();
		}
		if (position.indexOf("top") > -1) {
			w_top = windowOffsetTop();
		}
	}
	return window.open(url, wname, "resizable=yes,scrollbars=yes,status=yes,menubar=no,left=" + w_left + ",top=" + w_top + ",height=" + w_height + ",width=" + w_width);
}

//--- Get window offset left of screen ----------------------------------------
function windowOffsetLeft() {
	var w_offsetleft = 0;
	if (window.screenLeft) {
		w_offsetleft = window.screenLeft;
	} else if (window.screenX) {
		w_offsetleft = window.screenX;
	}
	return w_offsetleft;
}

//--- Get window offset top of the screen -------------------------------------
function windowOffsetTop() {
	var w_offsettop = 0;
	if (window.screenTop) {
		w_offsettop = window.screenTop;
	} else if (window.screenY) {
		var w_menubar = 0;
		if (window.outerHeight && window.innerHeight) {
			w_menubar = (window.outerHeight - window.innerHeight);
			if (window.statusbar) w_menubar -= 25;
		}
		w_offsettop = window.screenY + w_menubar;
	}
	return w_offsettop;
}

//--- Calculate offset left of an object --------------------------------------
function objectOffsetLeft(myObject, absolute) {
	var myOffsetLeft = myObject.offsetLeft;
	if (absolute) {
		var tempEl = myObject.offsetParent;
		while (tempEl != null) {
			myOffsetLeft += tempEl.offsetLeft;
			tempEl = tempEl.offsetParent;
		}
	}
	return myOffsetLeft;
}

//--- Calculate offset left of an object --------------------------------------
function objectOffsetTop(myObject, absolute) {
	var myOffsetTop = myObject.offsetTop;
	if (absolute) {
		var tempEl = myObject.offsetParent;
		while (tempEl != null) {
			myOffsetTop += tempEl.offsetTop;
			tempEl = tempEl.offsetParent;
		}
	}
	return myOffsetTop;
}

//--- Underline labels accesskey for forms ------------------------------------
function underlineAccKeys(object) {
	var myLabels = object.getElementsByTagName("label");
	if ((myLabels != null) && (myLabels.length > 0)) {
		var labelText;
		var myRegexp;
		for (var idx=0; idx < myLabels.length; idx++) {
			if (myLabels[idx].accessKey != "") {
				myRegExp = new RegExp(myLabels[idx].accessKey, "i");
				myUnderline = myLabels[idx].innerHTML.replace(myRegExp, "<span style='text-decoration: underline;'>" + myLabels[idx].innerHTML.match(myRegExp) + "</span>");
				myLabels[idx].innerHTML = myUnderline;
			}
		}
	}
}

//--- Resize footer for popup window ------------------------------------------
function resizeFooter() {
	var myFooter = getElement("footer");
	var myContainer = getElement("container");
	var myPush = getElement("push");
	if ((myFooter != null) && (myContainer != null) && (myPush != null)) {
		myContainer.style.marginBottom = "-" + myFooter.offsetHeight + "px";
		myPush.style.height = myFooter.offsetHeight + "px";
	}
}

//--- Resize all select boxes to the same size --------------------------------
function resizeSelect() {
	if (document.getElementsByTagName) {
		var allSelect = document.getElementsByTagName("select");
		if (allSelect && (allSelect.length > 0)) {
			var myParent = allSelect[0].parentNode;
			var maxWidth = 0;
			var idx;
			for (idx=0; idx < allSelect.length; idx++) {
				if (allSelect[idx].className.indexOf("resize") > -1) {
					maxWidth = Math.min(myParent.offsetWidth-20, Math.max(maxWidth, allSelect[idx].clientWidth));
				}
			}
			if (maxWidth > 0) {
				if (maxWidth < 200) maxWidth = 200;
				for (idx=0; idx < allSelect.length; idx++) {
					if (allSelect[idx].className.indexOf("resize") > -1) {
						if (allSelect[idx].parentNode.offsetWidth < maxWidth) {
							//allSelect[idx].style.width = allSelect[idx].parentNode.offsetWidth + "px";
							allSelect[idx].style.width = "100%";
						} else {
							allSelect[idx].style.width = (maxWidth + 20) + "px";
						}
					}
				}
			}
		}
	}
}

//--- Check the options for days of a month -----------------------------------
function optionsDays(selDay, selMonth, selYear) {
	var myDate = new Date();
	myDate.setFullYear(selYear.value, selMonth.value, 0);
	var dayMax = myDate.getDate();
	if (dayMax != selDay[selDay.options.length-1].value) {
		var daySelected = selDay.value;
		selDay.options.length = 0;
		for (var idx=1; idx <= dayMax; idx++) {
			selDay.options[idx-1] = new Option(idx, idx);
		}
		if (daySelected > dayMax) {
			selDay.options[selDay.length-1].selected = true;
		} else {
			selDay.options[daySelected-1].selected = true;
		}
	}
}

//--- Check for selected checkbox ---------------------------------------------
function chkCheckBox(myObject) {
	for (var idx=myObject.length; idx > 0; idx--) {
		if (myObject[idx-1].checked) break;
	}
	return (idx == 0 ? false : idx);
}

//--- Find the selected radiobutton -------------------------------------------
function findRadio(pObject) {
	if (pObject.length) {
		for (var idx=pObject.length; idx > 0; idx--) {
			if (pObject[idx-1].checked) break;
		}
		return (idx == 0 ? null : pObject[idx-1]);
	} else {
		return (pObject.checked ? pObject : null);
	}
}

//--- Remove whitespaces from input fields ------------------------------------
function trim(myObject) {
	var expression = new RegExp(/^\s*|\s*$/g);
	if (typeof(myObject) == "string") {
		return myObject.replace(expression, "");
	} else {
		myObject.value = myObject.value.replace(expression, "");
	}
}

//--- Toggle years for news items ---------------------------------------------
function yearToggle(myObject) {
	myUL = myObject.parentNode.lastChild;
	if (myUL != null) {
		if (myUL.style.display == "none") {
			myObject.innerHTML = myObject.innerHTML.replace("...", "");
			myUL.style.display = "block";
		} else {
			myObject.innerHTML = myObject.innerHTML + "...";
			myUL.style.display = "none";
		}
	}
}

//--- Create an AJAX request --------------------------------------------------
function createRequest() {
	var request = false;
	try {
		request = new XMLHttpRequest();
	} catch (microsoft1) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (microsoft2) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				request = false;
			}
		}
	}
	return request;
}

var search_window = null;
