Идея такая. Есть способ для w3c браузеров, есть для IE. В w3c вызывается одна функция для создания объекта события, он заполняется нужными данеыми. и вторая функция, которая запускает распространение этого события, т.е. вызывает слушающие его обработчики. В Ие вроде проще, все делается одной функцией.
Подвохи: в ИЕ нельзя создать кастомное пользовательское событие, только стандартные. Также, запуск события, например, click, только вызывает обработчики onclick(), но не нажимает кнопку, не двигает курсор в поле ввода, ит.д., то есть не делает того же, что и реальный клик мышкой.
Для подробностей ищите слова fireEvent, createEvent, dispatchEvent на сайтах MDN и MSDN.