(function () {
	var addClass = function(el, className) {
		if (!hasClass(el, className)) {
			el.className += (el.className ? " " : "") + className;
		}
	};
	var hasClass = function(el, className) {
		var regexp = new RegExp("(^|\\s)" + className + "(\\s|$)");
		return regexp.test(el.className);
	};
	var removeClass = function(el, className) {
		var regexp = new RegExp("(^|\\s)" + className + "(\\s|$)", "g");
		el.className = el.className.replace(regexp, "$2");
	};
	var toggleClass = function(el, className) {
		if (hasClass(el, className)) {
			removeClass(el, className);
		} else {
			addClass(el, className);
		}
	};
	window.wilgaToggleDefinition = function (button) {
		var dt = button.parentNode;
		var dd = dt.nextSibling;
		var container = dt.parentNode.parentNode;
		while (dd && !dd.attributes) {
			dd = dd.nextSibling;
		}
		if (!dd) {
			return;
		}
		button.onclick = function () {
			toggleClass(dt, "hidden");
			toggleClass(dd, "hidden");
			/* IE6 needs below */
			container.style.display = "none";
			container.style.display = "block";
		};
		button.onclick();
		if (window.attachEvent) {
			window.attachEvent("unload", function () {
				button.onclick = null;
			});
		}
	};
})();
