I don't think you need that timeout. What are you trying to wait for?
I also don't think that this is necessary:
Just put all of your script inside the $(document).read(). If it doesn't work, the try stepping through it in a debugger and see where the issue is.
M.
I also don't think that this is necessary:
ExecuteOrDelayUntilScriptLoaded(PostLoad,'SP.js');
M.