// ==UserScript==
// @name           Parano Wall character counter
// @namespace      http://www.darchis.be/eric/
// @description    A script to add a character count next to the Parano Wall input field.
// @include        http://www.parano.be/v15/wall.php*
// ==/UserScript==

var i,frms,j,e;
for (i=0; frms=document.forms[i]; ++i)
	for (j=0; e=frms[j]; ++j)
		if (e.tagName.toLowerCase()=='textarea' && e.name=='ligne')
			addcount(e, frms);

function addcount(e, frms) {
	var x=document.createElement('span'), s=x.style;
	s.color='green';
	s.background='white';
	s.font='bold 10pt sans-serif';
	s.verticalAlign='top';
	e.parentNode.insertBefore(x,e.nextSibling);
	var update_count=function (event) {
		var len=event.target.value.length;
		if (len > 255) {
			x.style.color='red';
			e.style.background='red';
		}
		else {
			x.style.color='green';
			e.style.backgroundColor='white';
		}
		x.innerHTML=len;
	};
	x.innerHTML=e.value.length;
	e.addEventListener('change', update_count, true);
	e.addEventListener('keyup', update_count, true);
	e.addEventListener('input', update_count, true);

	var submit_hook=function(event) {
		// event.target is the form
		var len=e.value.length;
		if (len >255) {
			alert('Votre message ne peut dépasser 255 caractères. Or il en compte ' + len);
			event.stopPropagation();
			event.preventDefault();
		}
	}

	frms.addEventListener('submit', submit_hook, true);

}
