//光标停在文本框文字的最后
function atEnd(e) {
	//var e = event.srcElement;
	var r = e.createTextRange();
	r.moveStart('character',e.value.length);
	r.collapse(true);
	r.select();
}

//脚本永不出错
function killErrors() { 
	return true; 
} 

//键盘控制
function recordKey() {
	var myElement = event.srcElement;
	var curKeyCode = event.keyCode;
	var index = myElement.sourceIndex;

	if (curKeyCode == 8 && myElement.type != 'file') { //屏蔽退格键的返回功能
		event.keyCode = 0;
	} else if ((!event.altKey) && curKeyCode == 38) { //重定义方向键↑ (光标移到上一个控件)
		event.returnValue = false;
		for (i=index-1; i>0; i--) {
			if (document.all(i).disabled==true || document.all(i).readOnly==true || document.all(i).style.display=='none') { //跳过'关闭','只读','隐藏'的控件
				continue;
			}

			if (document.all(i).type=='text' || document.all(i).type=='textarea' || document.all(i).type=='password' || document.all(i).type=='file') {
				try {
					document.all(i).focus();
				} catch(e) {
					continue;
				}
				atEnd(document.all(i));
				//document.all(i).select();
				break;
			} else if (document.all(i).type=='select-one' || document.all(i).type=='radio' || document.all(i).type=='checkbox' || document.all(i).type=='button' || document.all(i).type=='submit' || document.all(i).type=='reset' || document.all(i).type=='image' || document.all(i).tagName=='A') {
				try {
					document.all(i).focus();
				} catch(e) {
					continue;
				}
				break;
			}
		}
	} else if ((!event.altKey) && curKeyCode == 40) { //重定义方向键↓ (光标移到下一个控件)
		event.returnValue = false;
		for (i=index+1; i<document.all.length; i++) {
			if (document.all(i).disabled==true || document.all(i).readOnly==true || document.all(i).style.display=='none') { //跳过'关闭','只读','隐藏'的控件
				continue;
			}

			if (document.all(i).type=='text' || document.all(i).type=='textarea' || document.all(i).type=='password' || document.all(i).type=='file') {
				try {
					document.all(i).focus();
				} catch(e) {
					continue;
				}
				atEnd(document.all(i));
				//document.all(i).select();
				break;
			} else if (document.all(i).type=='select-one' || document.all(i).type=='radio' || document.all(i).type=='checkbox' || document.all(i).type=='button' || document.all(i).type=='submit' || document.all(i).type=='reset' || document.all(i).type=='image' || document.all(i).tagName=='A') {
				try {
					document.all(i).focus();
				} catch(e) {
					continue;
				}
				break;
			}
		}
	} else if (curKeyCode == 37) {
		if (event.altKey) { //屏蔽 Alt+方向键 ←
			event.returnValue = false; 
		} else if (myElement.type == 'select-one') { //重定义选择框的方向键 ← (选择框中内容的选择)
			event.keyCode = 38;
		}
	} else if (curKeyCode == 39) {
		if (event.altKey) { //屏蔽 Alt+方向键 →
			event.returnValue = false;
		} else if (myElement.type == 'select-one') { //重定义选择框的方向键 → (选择框中内容的选择)
			event.keyCode = 40;
		}
	} else if (curKeyCode == 13) { //重定义回车键
		if (myElement.type=='text' || myElement.type=='select-one' || myElement.type=='radio' || myElement.type=='checkbox' || myElement.type=='password') {
			event.keyCode = 9;
		}
/*
	} else if (event.keyCode == 116) { //屏蔽 F5 (刷新页面)
		event.returnValue = false;
	} else if ((event.ctrlKey) && (event.keyCode == 78)) { //屏蔽 Ctrl+n (打开新页面)
		event.returnValue = false;
	} else if ((event.shiftKey) && (event.keyCode == 121)) { //屏蔽 shift+F10 (右键菜单)
		event.returnValue = false;
	} else if (event.keyCode == 122) { //屏蔽 F11 (页面全屏)
		event.returnValue = false;
*/
	}
}

document.onkeydown = recordKey;
//window.onerror = killErrors; 