So I am working on building a site for my friend, and when I started working on it, I cam across a roadbump on the JS-enabled site -- I made it so it would show a loading screen for the website so it will preload some images (say, like, buttons, logo(s), etc), and when you type in localhost (it runs on my local server) without a hash, it works just fine, and when you reload the page when it DOES have a hash (part of the feature, when you reload a page with a hash, it will read the hash, and show you the content related to the hash (say #main will show you the main page)

I really can't pinpoint it, so I will dump the entire website JS file, and see if you can find anything that I am doing wrong.
Here are a few screenshots of what happens:

The site when loaded without a hash suffix (note that the hash automatically is placed on load)-
The site when reloaded or loaded WITH a hash suffix-

And here is the main.js file and a couple of HTML files for your reference to know what the document.getElementById is doing

the main.js, the content/initMain.html and the index.html files -