/* -------------  emulate MSIE event object for Netscape --------------------------------------------- */
if(NN6){IE4=1} //handle NN6 internally as it would IE4+, just with some small differences

var curEvent= new Object();

/*  store event object in "curEvent" onmousedown for Netscape4, to handle all kinds of onClick events ---*/
function storeEvent(e){
 curEvent=e; //later used in "assignEvent()"
}

if(NS4){
 document.captureEvents(Event.MOUSEDOWN);
 document.onmousedown=storeEvent;
}else if (NN6){
 document.addEventListener("mousedown", storeEvent, false);
}

function assignEvent(e){
 //for IE4 return passed Object "e" or window.event
 if((!NN6)&&(!NS4)){if(e){return e}else{return window.event}}

 //for Netscape, if not e is passed then get it from curEvent, which was stored earlier by 
 if(!e){e=curEvent}
 evtobj = new Object();

 if(NS4){
	evtobj.button=e.which;
 }else{
 	if     (e.button=="left")  {evtobj.button=1}
 	else if(e.button=="middle"){evtobj.button=4}
 	else if(e.button=="right") {evtobj.button=2}
 	else if(e.button==0) {evtobj.button=1}
 	else if(e.button==1) {evtobj.button=4}
 	else if(e.button==2) {evtobj.button=2}
 	else {evtobj.button=1}
 }

 evtobj.clientX=e.pageX;
 evtobj.clientY=e.pageY;

 evtobj.screenX=e.screenX;
 evtobj.screenY=e.screenY;

 evtobj.offsetX=0;
 evtobj.offsetY=0;
 
 evtobj.keyCode=e.keyCode;

 if(NS4){
 	evtobj.srcElement=whichElement(e);
 }else{
 	evtobj.srcElement=e.target;
 }

 if(e.target){
  if(!e.target.tagName){
   if(e.target.parentNode){
  	evtobj.srcElement=e.target.parentNode;
   }
  }
 }

 return evtobj;
}
