﻿// Function for creating synthetic events to be called by RaiseDomEvent.
// Returns an event object to be passed to RaiseDomEvent.
// eventType is one of HTMLEvent, MouseEvent, UIEvent.
function CreateDomMouseEvent(DomEventName)
{
    var e;
    if(document.createEvent) // DOM Event Model
    {
        e = document.createEvent("MouseEvents");
        e.initMouseEvent(DomEventName, true, true, this, 1, 0, 0, 0, 0, false, false, false, false, false, null, null);
    }
    else if(document.createEventObject) // IE Event Model
    {
        e = document.createEventObject();
    }
    
    return e;
}

// Function for raising synthetic events.  See CreateDomMouseEvent.
function RaiseDomEvent(domID, evt, DomEventName)
{
    var e = evt;
    var elem = $get(domID);
    var IEEventName;
    
    if(e != null)
    {
        if(elem.dispatchEvent) // DOM Event Model
        {
            elem.dispatchEvent(e);
        }
        else if(elem.fireEvent) // IE Event Model
        {
            IEEventName = "on" + DomEventName;
            elem.fireEvent(IEEventName, e);
        }
    }
    else
    {
        eval("elem." + DomEventName + "();");
    }   
}