added MD5 algorithm from webtoolkit.info/javascript-md5.html