parentElement is not defined on non-Element nodes in IE10

To have a "blanket rule", just use parentNode everywhere to prevent future problems,
as it is equivalent to parentElement for all practical usages.
navigator.language does not exist on IE10, so check for it as well
Handle IE10 obv. destructing event objects once the event handler is done