Agentes de usuario de escritorio / SO en Javascript

A continuación se muestra mi script actual:

<script type="text/javascript">
if (navigator.userAgent.indexOf('BlackBerry')!= -1){
    document.write('<link rel="stylesheet" href="/m/css/mobile.css" type="text/css" />');
} else if (navigator.userAgent.indexOf('iPhone')!= -1) {
    document.write('<link rel="stylesheet" href="/m/css/smartmobile.css" type="text/css" />');
}else if (navigator.userAgent.indexOf('Android')!= -1) {
    document.write('<link rel="stylesheet" href="/m/css/smartmobile.css" type="text/css" />');
} else if (navigator.userAgent.indexOf('Windows XP')!= -1) {
    document.write('<link rel="stylesheet" href="/m/css/smartmobile.css" type="text/css" />');
}
else{
    document.write('<link rel="stylesheet" href="/m/css/mobile.css" type="text/css" />');
}
</script>

El Windows XP no funciona, y está predeterminado a la última cláusula en una computadora de escritorio. Necesito las ID del sistema operativo o las ID del navegador (es decir, Firefox, Chrome, IE, Opera).

Respuestas a la pregunta(1)

Su respuesta a la pregunta