Browser sniffing and OS detection pure JavaScript library. Use feature detection, sniffing is a last resort which should be avoided