Non me ne intendo molto di JS, ma mi pare che nel tuo codice hai messo lo script con l'onload nella head, mentre va invece inserito in fondo al body
Non ho capito cosa intendi con "Ho provato a mettere le dimensioni in % ma nulla non cambia nulla di nulla va sempre accapo."
Per i "nifty", deviprima avere un layout corretto, con i blocchi normali (senza arrotondamenti).
Poi puoi applicare i JS necessari.
Se ci sono problemi di layout, devi risolverli prima: tra l'altro il JS complica un po' la struttura e quindi se ci sono erorri non riesci poi a correggerli.