A flexible pagination view model based on knockout.js