human javascript by Henrik Joreteg