First of all get system timezone info and bind it to dropdown list.(In my case i am using mvc application that's why IEnumerable<SelectListItem> return type of object )
Now to to auto select timezone as per user's location there is very simple solution is read offset value using date object using javacript as per below
This offset will be in minutes and you need to store it somewhere (cookie is one option)
Now in above code in GetTimezone() function you need to read that value and set it selected value as per below.
Here i haven't consider daylight savings time (DST), you can refer his link for more detail about that