// hotkey control

function isformitem(elm){
	robj = new RegExp("textarea", "i");
	if (elm.tagName && elm.tagName.match(robj)){
		return true;
	}
	return false;
}

function iscontrolcode(e){
	if (typeof(e.ctrlKey) != 'undefined')
	{
		if (e.ctrlKey || e.altKey || e.metaKey || e.shiftKey){
			return true;
		}
	}else{
		if ((e.modifiers & (Event.META_MASK | Event.CONTROL_MASK | Event.ALT_MASK | Event.SHIFT_MASK)) > 0){
			return true;
		}
	}
	return false;
}

function closeevent(e) {
	if (e.preventDefault) {
		e.preventDefault();
		e.stopPropagation();
	}else{
		e.returnValue = false;
	}
}

function onkeypressevent(e) {
	capture_focus();
	if(typeof(e) == 'undefined') {
		e = event;
	}
	elm = null;
	if (e.target){
		elm = e.target;
	}else{
		elm = e.srcElement;
	}
	if (iscontrolcode(e)){
		return true;
	}
	if (!isformitem(elm)){
		return true;
	}
	var keycode = false;
	if (window.Event){
		keycode = e.which;
	}
	if (!keycode && e.type == "keypress"){
		keycode = e.keyCode;
	}else if (!keycode){
		keycode = e.button;
	}
	if (keycode == 13){ // ret
		closeevent(e);
		// submit
		send_message();
		return false;
	}
}

if(document.captureEvents && Event.KEYPRESS){
	document.captureEvents(Event.KEYPRESS);
}
document.onkeypress=onkeypressevent;