Here's a long explanation but a short answer would be javascript.
http://zoompf.com/blog/2012/04/h…