Why bother making this from scratch? There are tons of tour plugins and companies that have sprouted in the past few months.
The startup offerings don't work for us since we're inside of Gmail which presents a unique technical challenge in regards to loading javascript, etc.
The libraries have the issue of things being "hard coded" meaning it becomes too difficult and annoying to make lots of tour variations, or do A/B testing.