Tengo el siguiente código que suma y resta en tiempo real los valores ingresados en los campos, adicionalmente los campos son solo números, y coloca automáticamente el separador de miles.. todo funciona bien solo que no me suma decimales.. (números separados por el punto de mil) acá pongo el Script el cual no se que hacer para que funcione sin problemas (Sume y Reste usando decimales)

Código Javascript :

<html>
<head>
</head>
<body>
<script>
//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar(){
caja=document.forms["sumar"].elements;
var numero1 = Number(caja["numero1"].value);
var numero2 = Number(caja["numero2"].value);
var numero3 = Number(caja["numero3"].value);
resultado=numero1+numero2-numero3;
if(!isNaN(resultado)){
caja["resultado"].value=numero1+numero2-numero3;
}
}
//-----SCRIPT SEPARADOR DE MILES---------
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
//-- ALERTA SOLO NUMEROS 
else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
</script>
<form method="post" name="sumar">

  <p>+Primer Numero:
    <input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>+ Segundo Numero:
    <input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>- Tercer Numero:
    <input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onchange="format(this)"/>
  </p>
  <p>Resultado:
  <input name="resultado" type="text" readonly/>
  </p>
</form>
</body>
</html>