The window object provides screen height, width and colour depth.
Modern browsers have geolocation as a JS API, but if you want it to be less accurate/less intrusive then an ajax request to a script that does a geo lookup on the IP would supply that.
The time on site and visits can be done by storing information in localStorage, or whatever the IE equivalent is called.
There are a few harder bits, but replicating most of the low hanging fruit is trivial for any web developer.