//全局变量区
//param:document.body
function installBodyDefaultListener(obj){
	obj=eval(obj);
	addListener();
	obj.keys= new Array();
}

//系统调用接口
function handleKeyDown(event) {
 
  //处理回车切换焦点以及按钮与图片执行功能
  if(event.keyCode==13 && event.srcElement.type!="button" && event.srcElement.type!="reset" && event.srcElement.type!="" && event.srcElement.type!="textarea") {
   		if(event.srcElement.src) {
    		if(event.srcElement.onclick) {
    			event.srcElement.fireEvent("onclick")
    			return;
    		} 
			else {
    				event.keyCode=9;
    				return;
    		}
   		} 
   		else {
    			event.keyCode=9;
    			return;
   		}
	}
}


//控件onkeypress事件的侦听器
function onInputKeydown () {
  handleKeyDown(window.event);
  KeyDown();
}
function doDefaultTableMouseUp(){
	 
}

//为每个可输入控件装载侦听器
function addListener() {
 
   document.body.attachEvent ('onkeydown', onInputKeydown);
   //document.body.attachEvent("onmouseup", doDefaultTableMouseUp);
   
}
//below is accesskey
function registeAccessKey(keyCode,obj){
		var keys = document.body.keys;
		
		keys[keys.length]=new Object() ;
		
		keys[keys.length-1].key = keyCode;
		keys[keys.length-1].element= obj;
}

function KeyDown(){
	var key_code = event.keyCode;
	if(event.keyCode>=112&&event.keyCode<=123){
		event.keyCode=0;
		event.returnValue=false;
	}
	var keys = document.body.keys;
   
  
	
	
	for(var i=0;i<keys.length;i++){
		
		if((key_code==keys[i].key)&&isdisabled(keys[i].element)&&isdisplay(keys[i].element)){
			
			keys[i].element.fireEvent("onclick");
			return;
		}
		else{
			  ;
		}
	}
}
function isdisabled(obj){
	//obj=eval(obj);
	var flag=itorate(obj);
	
	
	
	if((obj.disabled==false)&&flag)
	{
		return true;
	}
	else{
		return false;
	}
	
	
}
function isdisplay(obj){
	var flag=itorate1(obj);
	if((obj.style.display=="block"||obj.style.display=="")&&flag){
		return true;
	}
	else
	{
		return false;
	}
}
//递归判断元素的属性
function itorate(obj){
	obj=eval(obj);
	if(obj.parentElement!=null){
		if(obj.parentElement.disabled==false){
			itorate(obj.parentElement);
		}
		else
		{
			
			return false;
		}
		
	}
	return true;
}
function itorate1(obj){
	obj=eval(obj);
	if(obj.parentElement!=null){
		if(obj.parentElement.style.display=="block"||obj.parentElement.style.display==""){
			itorate(obj.parentElement);
		}
		else
		{
			
			return false;
		}
		
	}
	return true;
}










