// JavaScript Document

_dom = 0;

var captured_keys = new Array();
captured_keys['alt'] 	= false;
captured_keys['ctrl']	= false;
captured_keys['shift']	= false;
captured_keys['meta']	= false;
captured_keys['keycode'] = 0;
captured_keys['whichKey'] = 0;


function notSupported(){ alert('your browser is not supported.'); }

function fromKeyCode(k){ return ''; }

function keydownhandler(e)
{
	if(document.all) e=window.event; // for IE
	var f=document.f;
 
	if(_dom==2)
	{	// for NN4
		captured_keys['alt'] 	= (e.modifiers&Event.ALT_MASK		)?true:false;
		captured_keys['ctrl']	= (e.modifiers&Event.CONTROL_MASK	)?true:false;
		captured_keys['shift']	= (e.modifiers&Event.SHIFT_MASK		)?true:false;
		captured_keys['meta']	= (e.modifiers&Event.META_MASK		)?true:false;
	
		// var ch='';
		// if(e.which>0) { ch='('+String.fromCharCode(e.which)+')'; }
		// f.charCodeD.value=e.which+ch;
		// captured_keys['keycode'] = e.which+ch;
		captured_keys['keycode'] = e.which;
  }
  else
  {
	captured_keys['alt'] 	= e.altKey;
	captured_keys['ctrl'] 	= e.ctrlKey;
	captured_keys['shift'] 	= e.shiftKey;
	 
    // f.altKeyD.value  =e.altKey;
    // f.ctrlKeyD.value =e.ctrlKey;
    // f.shiftKeyD.value=e.shiftKey;
	
    var ch='';
    if(_dom==3)
	{	// for IE
		// if(e.keyCode>0)  { ch='('+String.fromCharCode(e.keyCode)+')'; }
		// f.keyCodeD.value=e.keyCode+ch;
		captured_keys['keycode'] = e.keyCode+ch;
    }
	else
	{                       // for Mozilla
		// f.metaKeyD.value =e.metaKey;
		captured_keys['meta']	= e.metaKey;
	  
		// if(e.charCode>0) ch='('+String.fromCharCode(e.charCode)+')';
		// f.charCodeD.value=e.charCode+ch;
		// captured_keys['keycode'] = e.charCode+ch;
		captured_keys['keycode'] = e.charCode;
	  
		// ch=''; if(e.keyCode>0) ch='('+fromKeyCode(e.keyCode)+')';
		// f.keyCodeD.value =e.keyCode+ch;
		// captured_keys['keycode'] = e.keyCode+ch;
		captured_keys['keycode'] = e.keyCode;
		
		ch=''; if(e.which>0) ch='('+String.fromCharCode(e.which)+')';
		// f.whichD.value=e.which+ch;
		captured_keys['whichKey'] = e.which+ch;
		}
	}
	window.status = (captured_keys['alt']==true)?"ALT pressed":"ALT released";
	// return captured_keys;
}
function keyuphandler(e)
{
	if(document.all) e=window.event; // for IE
	var f=document.f;
 
	if(_dom==2)
	{                     // for NN4
		// f.altKeyU  .value=(e.modifiers&Event.ALT_MASK    )?true:false;
		// f.ctrlKeyU .value=(e.modifiers&Event.CONTROL_MASK)?true:false;
		// f.shiftKeyU.value=(e.modifiers&Event.SHIFT_MASK  )?true:false;
		// f.metaKeyU .value=(e.modifiers&Event.META_MASK   )?true:false;
		
		captured_keys['alt'] 	= (e.modifiers&Event.ALT_MASK    	)?true:false;
		captured_keys['ctrl']	= (e.modifiers&Event.CONTROL_MASK	)?true:false;
		captured_keys['shift']	= (e.modifiers&Event.SHIFT_MASK		)?true:false;
		captured_keys['meta']	= (e.modifiers&Event.META_MASK		)?true:false;
		
		var ch='';
		if(e.which>0) ch='('+String.fromCharCode(e.which)+')';
		// f.charCodeU.value=e.which+ch;
		captured_keys['whichKey'] = e.which+ch;
	}
	else
	{
		// f.altKeyU.value  =e.altKey;
		// f.ctrlKeyU.value =e.ctrlKey;
		// f.shiftKeyU.value=e.shiftKey;
		captured_keys['alt'] 	= e.altKey;
		captured_keys['ctrl']	= e.ctrlKey;
		captured_keys['shift']	= e.shiftKey;
		
		var ch='';
		if(_dom==3)
		{                   // for IE
			if(e.keyCode>0) ch='('+String.fromCharCode(e.keyCode)+')';
			f.keyCodeU.value=e.keyCode+ch;
		}
		else
		{                       // for Mozilla
			// f.metaKeyU.value =e.metaKey;
			captured_keys['meta']	= e.metaKey;
			
			// if(e.charCode>0) ch='('+String.fromCharCode(e.charCode)+')';
			// f.charCodeU.value=e.charCode+ch;
			// captured_keys['keycode'] = e.charCode+ch;
			captured_keys['keycode'] = e.charCode;
			
			// ch=''; if(e.keyCode>0) ch='('+fromKeyCode(e.keyCode)+')';
			// f.keyCodeU.value =e.keyCode+ch;
			// captured_keys['keycode'] = e.keyCode+ch;
			captured_keys['keycode'] = e.keyCode;
			
			ch=''; if(e.which>0) ch='('+String.fromCharCode(e.which)+')';
			// f.whichU.value=e.which+ch;
			captured_keys['whichKey'] = e.which+ch;
		}
	}
	window.status = (captured_keys['alt']==true)?"ALT pressed":"ALT released";
	// return captured_keys;
}

function keypresshandler(e)
{
	if(document.all) e=window.event; // for IE
	var f=document.f;
 
	if(_dom==2)
	{                     // for NN4
		// f.altKeyP  .value=(e.modifiers&Event.ALT_MASK    )?true:false;
		// f.ctrlKeyP .value=(e.modifiers&Event.CONTROL_MASK)?true:false;
		// f.shiftKeyP.value=(e.modifiers&Event.SHIFT_MASK  )?true:false;
		// f.metaKeyP .value=(e.modifiers&Event.META_MASK   )?true:false;

		captured_keys['alt'] 	= (e.modifiers&Event.ALT_MASK    	)?true:false;
		captured_keys['ctrl']	= (e.modifiers&Event.CONTROL_MASK	)?true:false;
		captured_keys['shift']	= (e.modifiers&Event.SHIFT_MASK		)?true:false;
		captured_keys['meta']	= (e.modifiers&Event.META_MASK		)?true:false;

	    var ch='';
    	if(e.which>0) { ch='('+String.fromCharCode(e.which)+')'; }
	    // f.charCodeP.value=e.which+ch;
		captured_keys['whichKey'] = e.which+ch;
	} 
	else
	{
		// f.altKeyP.value  =e.altKey;
		// f.ctrlKeyP.value =e.ctrlKey;
		// f.shiftKeyP.value=e.shiftKey;
		
		captured_keys['alt'] 	= e.altKey;
		captured_keys['ctrl']	= e.ctrlKey;
		captured_keys['shift']	= e.shiftKey;

		var ch='';
		if(_dom==3)
		{	// for IE
			if(e.keyCode>0) ch='('+String.fromCharCode(e.keyCode)+')';
			f.keyCodeP.value=e.keyCode+ch;
		}
		else
		{	// for Mozilla
			// f.metaKeyP.value =e.metaKey;
			captured_keys['meta']	= e.metaKey;
			
			// if(e.charCode>0) ch='('+String.fromCharCode(e.charCode)+')';
			// f.charCodeP.value=e.charCode+ch;
			// captured_keys['keycode'] = e.charCode+ch;
			captured_keys['keycode'] = e.charCode;
			
			// ch=''; if(e.keyCode>0) ch='('+fromKeyCode(e.keyCode)+')';
			// f.keyCodeP.value =e.keyCode+ch;
			// captured_keys['keycode'] = e.charCode+ch;
			captured_keys['keycode'] = e.charCode;
			
			ch=''; if(e.which>0) ch='('+String.fromCharCode(e.which)+')';
			// f.whichP.value=e.which+ch;
			captured_keys['whichKey'] = e.which+ch;

		}
	}
	// return captured_keys;
}

function init_keyhandler()
{
  _dom=document.all?3:(document.getElementById?1:(document.layers?2:0));
  document.onkeydown  = keydownhandler;
  document.onkeyup    = keyuphandler;
  document.onkeypress = keypresshandler;
}

