wrap the script in a function
move timezones object and related internal functions out of the prototype so they aren't generated again every time
wrap forin loop with if
use generic getTimezoneOffset function
use a less insane format for the timezone data