Using pushState instead of location.hash to preserve back button
JSLint fix