Based on http://mattdsmith.com/float-label-demo/