That code, as presented, will ALWAYS call pagenumber(), on EVERY iteration of loop(), because when the if is evaluated, nowtime will ALWAYS be > update!
And, even if update is global or static, it will NOT do the delay properly when update gets to within 10000 of its maximum value of 2^31.
If you want it to do otherwise, update needs to be either global or static, so it does NOT get zeroed on every iteration of loop().