var Kb_keys=new Array();
var Kb_lastkey=-1;
var Kb_keystrapped=0;

function Kb_trapkey(akey)
{
	Kb_keys[Kb_keystrapped]=new Kb_keytrap(akey);
	Kb_keystrapped++;
	return Kb_keys[Kb_keystrapped-1]
}

function Kb_keytrap(newkey)
{
	if(Kb_keystrapped==0)
	{
		if(isNav4)
		{
			document.captureEvents(Event.KEYDOWN);
			document.onkeydown=kd2;
			document.captureEvents(Event.KEYUP);
			document.onkeyup=ku2
		}
		else if(isNav6)
		{
			window.addEventListener("keydown", kd2, false)
			window.addEventListener("keyup", ku2, false)
		}
		else if(isIE4)
		{
			document.body.onkeydown=kd;
			document.body.onkeyup=ku
		}
	}
	this.code=newkey.charCodeAt(0)&223;
	this.pressed=false
}

function kd()
{
	kp(window.event.keyCode&223,true)
}

function kd2(evt)
{
	kp(evt.which&223,true);
	return true;
}

function ku()
{
	kp(window.event.keyCode&223,false)
}

function ku2(evt)
{
	kp(evt.which&223,false);
	return true;
}

function kp(wch,state)
{
	var n=0;
	for(n=0;n<Kb_keystrapped;n++)
		if(Kb_keys[n].code==wch)
		{
			Kb_keys[n].pressed=state;
			break
		}
	Kb_lastkey=Kb_keys[n]
}

