function AttachEvent(obj,evt,fnc,useCapture)
{
    if(!useCapture)useCapture=false;
    
    if(obj.addEventListener)
    {
    obj.addEventListener(evt,fnc,useCapture);
    return true;
    }
    else if(obj.attachEvent)
    return obj.attachEvent("on"+evt,fnc);
    else
    {MyAttachEvent(obj,evt,fnc);
    obj['on'+evt]=function(){MyFireEvent(obj,evt)};
    }
}

function MyAttachEvent(obj,evt,fnc)
{
if(!obj.myEvents)obj.myEvents={};
if(!obj.myEvents[evt])obj.myEvents[evt]=[];
var evts=obj.myEvents[evt];evts[evts.length]=fnc;
}

function MyFireEvent(obj,evt)
{
if(!obj||!obj.myEvents||!obj.myEvents[evt])
return;
var evts=obj.myEvents[evt];
for(var i=0,len=evts.length;i<len;i++)
evts[i]();
}
