Ну, во-первых, для таких вещей используйте, все-таки, addEventListener/attachEvent!
Ну, а во-вторых, Вам таки и не обязатеьно тут использовать событие click.
Поставьте обработчики mouseup, mousedown и mousemove на document, а потом отслеживайте события.
Как это сделать, я расписывал
тут и приводил более «живые» примеры
тут.
Потом все очень просто. Mousedown на подходящем элементе переводит скрипт в… эм-м… особый режим, когда тот отслеживает mousemove по всему документу, и при этом «гасит» событие через e.preventDefault(). Mouseup, соответственно, это дело завершает.
А теперь мы просто сидим и ждем. Если mousemove случился раньше, чем mouseup, то действет так, будто это драг-н-дроп; если перед mouseup так и не случилось mousemove, то действуем так, будто это клик.