function ms(item, selected) {
	if (selected) {
		item.className = 'menuitem-selected';
	} else {
		item.className = 'menuitem';
	}
}

function emailValid(email) {
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(email);
}


var paycheck = {

	id : false,
	key : false,

	startCheck : function (id) {
		this.id = id;
		this.check();
	},
	
	check : function() {
		if (this.key == false) {
			paycheck.xmlhttpPost('http://www.klachtenservice.com/paycheck.php', 'id=' + this.id, false);
		}
	},
	
	xmlhttpPost : function (strURL, strArgs, divId) {
		var xmlHttpReq = false;
		var self = this;
		// Mozilla/Safari
		if (window.XMLHttpRequest) {
			self.xmlHttpReq = new XMLHttpRequest();
		}
		// IE
		else if (window.ActiveXObject) {
			self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
		}
		self.xmlHttpReq.open('POST', strURL, true);
		self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
		self.xmlHttpReq.onreadystatechange = function() {
			if (self.xmlHttpReq.readyState == 4) {
				var responseText = self.xmlHttpReq.responseText;
				eval(responseText);
			}
		}
		self.xmlHttpReq.send(strArgs);
	},
	
	proceed : function () {
		location.href = 'http://www.klachtenservice.com/volg-klacht.php?e=true&id=' + this.id;
	}
};


function serializeElements(parent, includeInvisibleElements) {
	if (parent == false) {
		parent = document.body;
	}
	if (parent.tagName.toLowerCase() == "form") {
		return getInputNamesAndValues(parent.elements, "");
	} else {
		var inputs = parent.getElementsByTagName("input");
		var textareas = parent.getElementsByTagName("textarea");
		var selects = parent.getElementsByTagName("select");

		var result = getInputNamesAndValues(inputs, "", includeInvisibleElements);
		result = getInputNamesAndValues(textareas, result, includeInvisibleElements);
		result = getInputNamesAndValues(selects, result, includeInvisibleElements);

		return result;
	}
}

function getInputNamesAndValues(inputs, initString, includeInvisibleElements) {
	for (var i=0; i<inputs.length; i++) {
		if (includeInvisibleElements || elementVisible(inputs.item(i))) {
			nameAndValue = getInputNameAndValue(inputs.item(i));
			if (nameAndValue != false) {
				initString = initString + nameAndValue + '&';
			}
		}
	}
	return initString;
}
function elementVisible(element) {
	// The only element without an element is WINDOW, which does not have a style.
	if (element == null || element.parentNode == null) {
		return true;
	} else {
		if (element.style.display == 'none') {
			return false;
		} else {
			return elementVisible(element.parentNode);
		}
	}
}
function getInputNameAndValue(input) {
	var inputName  = input.name;
	var inputValue = getInputValue(input);

	if (inputValue === false) {
		return false;
	} else {
		return inputName + '=' + convertAmp(inputValue);
	}
}
function convertAmp(txt) {
	txt = txt.replace(/&/g, "%26");
	txt = txt.replace(/\r/g, "%0A");
	return txt.replace(/\n/g, "%0D");
}
function getInputValue(input) {
	if (input.tagName.toLowerCase() == "input") {
		if (input.type == "checkbox" || input.type == "radio") {
			if (input.checked) {
				return input.value;
			} else {
				return false;
			}
		} else if (input.type == "hidden" || input.type == "text") {
			return input.value;
		} else {	
			return false;
		}
	} else if (input.tagName.toLowerCase() == "textarea") {
		return input.value;
	} else if (input.tagName.toLowerCase() == "select") {
		return input.value;
	} else {
		return false;
	}
}

function removeChildNodes(element) {
	while (element.hasChildNodes()) {
		element.removeChild(element.firstChild);
	}
}


function addOption(parent, value, text, className) {
	var option = document.createElement('option');
	option.value = value;
	option.text = text;
	option.className = className;
//	parent.appendChild(option);
	parent.options.add(option);
}