timeout = (ms, cb) -> return setTimeout cb, ms
+# xml 1.0 says:
+valid_attr_regex = new RegExp '^[a-zA-Z_:][-a-zA-Z0-9_:.]*$'
+# html5 spec is much more lax, but chromium won't let me make at attribute with the name "4"
+js_attr_regex = new RegExp '^[oO][nN].'
+
debug_dot_at = (doc, x, y) ->
return # disabled
el = doc.createElement 'div'
if c.name in ['script', 'object', 'iframe', 'link']
# TODO put placeholders instead
remove.unshift i
+ continue
# TODO create in correct namespace
c.el = parent.ownerDocument.createElement c.name
for k, v of c.attrs
# FIXME if attr_whitelist[k]?
- c.el.setAttribute k, v
+ if valid_attr_regex.test k
+ unless js_attr_regex.test k
+ c.el.setAttribute k, v
parent.appendChild c.el
if c.children.length
instantiate_tree c.children, c.el
@overlay.appendChild @cursor_el
@cursor_visible = true
@cursor_el.style.left = "#{loc.x + overlay_padding - 1}px"
- @cursor_el.style.top = "#{loc.y + overlay_padding}px"
+ if loc.h < 5
+ height = 12
+ else
+ height = loc.h
+ @cursor_el.style.top = "#{loc.y + overlay_padding + Math.round(height * .07)}px"
+ @cursor_el.style.height = "#{Math.round height * 0.82}px"
@matt cursor[0]
matt: (n) ->
while @matting.length > 0