No pongas todo el código si el problema está identificado en un par de líneas,
Código:
document.getElementById("d1").style.width = (tamano - diffpos) + "px";
document.getElementById("d2").style.width = (tamano + diffpos) + "px";
document.getElementById("d2").style.left = (tamano + 0 - diffpos) + "px";
document.getElementById("hr").style.left = (tamano + 0 - diffpos) + "px";
Opera te dice que el resultado de
no es un número (NaN). Supongo que la suma de 0 es para convertir el valor de
tamano a entero (o número). Para eso existen parseInt y parseFloat
Código:
document.getElementById("hr").style.left = ( parseInt(tamano) - parseInt(diffpos) ) + "px";
Probá eso a ver qué tal.
Saludos.