If I have correctly understand your question, you can check if the user "is on" the page and when leave it with the following code:
$(document).ready(function(){
   $([window, document]).focusin(function(){
      //Your logic when the page gets active
   }).focusout(function(){
      //Your logic when the page gets inactive
   });
});
Another solution, maybe a little more "intricated", is to check the mouse movements (http://api.jquery.com/mousemove/#fn) each N seconds.
If you have cross-browsing issue, you can check this answer that gives a good workaround for differents browsers: https://stackoverflow.com/a/1060034/1720344
UPDATE
The pseudocode to a timeout function is this:
setTimeout(function() {
      // Do something after 2 seconds
}, 2000);
By your comment, I think is best to "around" the sub-function and not the $(document).ready() (I haven't done before, timeouting the document.ready, but you can try and see what it happens ;) - I believe that this function is simple called after N seconds from the document.ready)
With a timeout of 2 seconds, you can do something like that (but I haven't tested it):
$(document).ready(setTimeout(function(){
       $([window, document]).focusin(function(){
          //Your logic when the page gets active
       }).focusout(function(){
          //Your logic when the page gets inactive
       });
    }, 2000));