Finished javascript
needs some serious styling, but it's getting there