Das hier verursacht wohl das Problem:
S.innerHTML = "<line x1 = " + r.x
+" y1 = " +1*(r.y+r.height-1)
+" x2 = " +1*(r.x+r. width-1)
+" y2 = " +1*(r.y+r.height-1)
+" stroke = 'black'"
+"/>";
(Du sollst mit createElementNS()
und dessen Schwestern arbeiten.)