function decorerLabels() {

	var labels = $$('label');

	for (var index = 0; index < labels.length; ++index) {

		var label = labels[index];

		if (label.accessKey) {

			var ak = label.accessKey.toUpperCase();

			decorerAccessKey(label, ak);

		}

		if (label.htmlFor) {

			var elt = document.getElementById(label.htmlFor);

			if (!elt) continue;

			if (elt.id.match(/Req/)) label.className += ' requis';

		}

	}

} // decorerLabels

function decorerAccessKey(elt, key) {

	if ('element' == $type(elt)) {

		var node = elt.firstChild;

		while (node && !decorerAccessKey(node, key)) node = node.nextSibling();

		return node;

	}

	if ('textnode' != $type(elt)) return false;

	var pos = elt.nodeValue.toUpperCase().indexOf(key);

	if (-1 == pos) return false;
	
	var suffix = elt.nodeValue.substring(pos + 1);
	
	var akSpan = new Element('span', {'class' : 'accessKey'}).set('text', elt.nodeValue.charAt(pos));
	
	elt.nodeValue = elt.nodeValue.substring(0, pos);
	
	akSpan.inject(elt.parentNode, 'bottom');
	
	elt.parentNode.appendText(suffix);

	return true;

}