http://jsfiddle.net/23xd9/8/