This sounds like you'll be changing your output to WebHelp. If so, you should start at the link below:
We also do something similar with users who do not have internet access. In our case we provide the WebHelp files on the client's application server. Our application uses a timeout call for the help. It assumes there is an internet connection and calls the online help. If after a short time span there is no connection, the backup help is called. We have a Java appl;ication so the call we use would be no good to you. Your developers should be able to find the required code though.
Colum is correct that WebHelp will give you an online help format but it will not be viewable from your server without a connection and that is one of your requirements. What you are looking for is known as Airplane help so that the user gets the latest online help when they have a connection and a perhaps older version when they are not.
How to do that with AIR Help is described on my site but my concern in pointing you in that direction is that I have not seen any new development on that help format. You need the same option with WebHelp and CHM help. I don't have a workflow for setting that up.
There is general information about calling help on my site and you will also find very good information at http://www.wvanweelden.eu
See www.grainge.org for RoboHelp and Authoring tips