var last = new Date();
var data = "";
var data_count = 0;
var pid = 0;


function tokenwrong()
{
	document.getElementById("pmsg").innerText = "Inserire nuovamente il WebOTP token!"
}
function checktoken()
{
	pid = 0;
	if (document.getElementById('token').value.length == 0) {
		tokenwrong();
	}
}

document.onkeydown = function(e) 
{
	var count, i, code;
	var now = new Date();

	if (!e) {
		e = window.event;
	}
	if (e.keyCode) {
		code = e.keyCode;
	} else {
		code = e.which;
	}

	if (code == 19
		|| code == 126
		|| code == 0
		|| code == 12
		|| code == 144
	) {
		if (now.getTime() - last.getTime() > 200 && data_count != 0) {
			data = "";
			data_count = 0;	
			document.forms[0].token.value = "";
		}
		last = now;

		if (code == 19 || code == 126) {
			data += "0";
		} else {
			data += "1";
		}
		++data_count;

		if (data_count == 4 && data != "0001") {
			data = data.substr(1);
			--data_count;
		}


		if (pid != 0)
			clearTimeout(pid);

		if (data_count == 166) {
			count = 0;
			for (i=1; i<=166; ++i) {
				if (data[i] == '1')
					++count;
			}
			if (count % 2) {
				tokenwrong();
			} else {
			    document.WOForm.token.value = data;
				//document.getElementById('token').value = data;
				document.WOForm.submit();
				//WOForm.submit();
			}
		} else {
			pid = setTimeout('checktoken()',200);
		}
		e.cancelBubble = true;  
		return false;
	}

	return true;
}