function KEvent(sys){
	
	
	
this.ev;
this.sys=sys;




this.findaobjinchild=function(html){
		tmphtml=html;
	
		while(tmphtml && (tmphtml.obj==null || tmphtml.obj.ac==null)){
		
		tmphtml=tmphtml.parentNode;
		}
		
		if (tmphtml && tmphtml.obj && tmphtml.obj.ac)
		return tmphtml;
	else
		return null;
		}

this.setevk =function (ev){
	ev=ev || window.event;
	this.ev=ev;
	this.type=ev.type;
	
	switch(this.sys.nav.get()){
		case 1:
			this.which=ev.which;
		/*
		this.offsetX=ev.layerX;
		this.offsetY=ev.layerY;
		*/
		break;
		
		case 0:
			

	
			this.which=this.ev.keyCode;
		
		
		break;
		
	
	
	}
}

this.setev =function (ev){
	ev=ev || window.event;
	this.ev=ev;
	this.depX= ev.clientX-this.clientX;
	this.depY= ev.clientY-this.clientY;
	if(!this.depX)
	this.depX=0;
		if(!this.depY)
	this.depY=0;
	this.type=ev.type;
	this.clientX= ev.clientX;
	this.clientY= ev.clientY;
	
	switch(this.sys.nav.get()){
		case 1:
		
		this.target=ev.target;
		this.which=ev.which;
		/*
		this.offsetX=ev.layerX;
		this.offsetY=ev.layerY;
		*/
		break;
		
		case 0:
			
		
		this.target=this.ev.srcElement ;
		/*
		a=parseInt(this.target.style.left);
		if(!a)a=0;
		this.offsetX=ev.clientX-a;
		a=parseInt(this.target.style.top);
		if(!a)a=0;
		this.offsetY=ev.clientY-a;
			*/
		switch(this.ev.button){
		// double clic gauche IE gere pas le double clic droite
		case 0:
		this.which=1;
		break;
		
		case 2:
		this.which=3;
		break;
		
		case 4:
		this.which=2;
		break;
		
		default:
	
		this.which=this.ev.button;
		break;
		
		}
				
		break;
		
		this.realtarget=findaobjinchild(this.target);
	
	}
}





document.onmousemove=function (ev){
if(this.sys.mymouse.launch){
	
this.sys.ev.setev(ev);
	if(this.sys.act && this.sys.act.ac){
	
				this.sys.act.ac.action(this.sys.ev);
			
			}
	}
}


document.onmouseup=function (ev){
if(this.sys.mymouse.launch){
	
this.sys.ev.setev(ev);
if(this.sys.act && this.sys.act.ac ){
			this.sys.act.ac.action(this.sys.ev);
		
		
		}


}
}

document.onmousedown= function (ev){
if(this.sys.mymouse.launch){

this.sys.ev.setev(ev);
this.sys.ev.realtarget=this.sys.ev.findaobjinchild(this.sys.ev.target);


		if(this.sys.ev.realtarget && this.sys.ev.realtarget.obj && this.sys.ev.realtarget.obj.classs=="kblock" && this.sys.ev.realtarget.obj.ac){
			//this.sys.oLActn.addAtEnd(this.sys.ev.target.obj);
			this.sys.ev.realtarget.obj.ac.action(this.sys.ev);
		
		}




		
}

}
document.ondblclick= function (ev){
	if(this.sys.mymouse.launch){
	
		this.sys.ev.setev(ev);
		if(this.sys.ev.realtarget && this.sys.ev.realtarget.obj && this.sys.ev.realtarget.obj.classs=="kblock" && this.sys.ev.realtarget.obj.ac){
			//this.sys.oLActn.addAtEnd(this.sys.ev.target.obj);
			this.sys.ev.realtarget.obj.ac.action(this.sys.ev);
		
		}
	
	}
}

document.oncontextmenu=function (ev){
if(this.sys.mymouse.launch){
	
this.sys.ev.setev(ev);


}
return false;
}


document.onkeydown=function (ev){

	if(this.sys.mykeyboard.launch){
this.sys.ev.setevk(ev);

this.sys.mykeyboard.down(this.sys.ev.which);





//this.system.mykeyboard.actionKeyDown(ev);
	}
}
// touche clavier relaché
document.onkeyup=function (ev){
	if(this.sys.mykeyboard.launch){
this.sys.ev.setevk(ev);
this.sys.mykeyboard.up(this.sys.ev.which);	


//alert("target : "+this.sys.ev.target+"\n"+"num : "+this.sys.ev.which+" "+this.sys.ev.ev.shiftKey+ " "+this.sys.ev.ev.ctrlKey   );
//this.system.mykeyboard.actionKeyUp(ev);	
	}
}

window.onresize=function(){
if(this.sys.myscreen.launch){
		
this.sys.myscreen.resize();
}
	}


}

