How to make jQuery remember the page number after page reload

How to make jQuery remember the page number after page reload

I am trying to configure a jquery plugin/script for pagination to use with my perl application, the problem is on page reload or refresh the pagination slider returns to 1 because there is no functionality in the script to remember the position of slider on page reload, so as to make slider to remember its position after page reload we will have to add some routines to the javascript using a jquery cookie plugin.
 
There is an example how to do that at: How to use the jQuery Cookie Plugin to make jQuery remember the animations after page reload but I don't know jquery therefore your help would be much appreciated.
 
 
Many many thanks in advance.
 
<code> 
/**
* simplePagination.js v1.6
* A simple jQuery pagination plugin.
* http://flaviusmatis.github.com/simplePagination.js/
*
* Copyright 2012, Flavius Matis
* Released under the MIT license.
* http://flaviusmatis.github.com/license.html
*/
(function($){
 var methods = {
  init: function(options) {
   var o = $.extend({
    items: 1,
    itemsOnPage: 1,
    pages: 0,
    displayedPages: 5,
    edges: 2,
    currentPage: 1,
    hrefTextPrefix: '?page=',
    hrefTextSuffix: '',
    prevText: 'Prev',
    nextText: 'Next',
    ellipseText: '&hellip;',
    cssStyle: 'light-theme',
    labelMap: [],
    selectOnClick: true,
    onPageClick: function(pageNumber, event) {
     // Callback triggered when a page is clicked
     // Page number is given as an optional parameter
    },
    onInit: function() {
     // Callback triggered immediately after initialization
    }
   }, options || {});
   var self = this;
   o.pages = o.pages ? o.pages : Math.ceil(o.items / o.itemsOnPage) ? Math.ceil(o.items / o.itemsOnPage) : 1;
   o.currentPage = o.currentPage - 1;
   o.halfDisplayed = o.displayedPages / 2;
   this.each(function() {
    self.addClass(o.cssStyle + ' simple-pagination').data('pagination', o);
    methods._draw.call(self);
   });
   o.onInit();
   return this;
  },
  selectPage: function(page) {
   methods._selectPage.call(this, page - 1);
   return this;
  },
  prevPage: function() {
   var o = this.data('pagination');
   if (o.currentPage > 0) {
    methods._selectPage.call(this, o.currentPage - 1);
   }
   return this;
  },
  nextPage: function() {
   var o = this.data('pagination');
   if (o.currentPage < o.pages - 1) {
    methods._selectPage.call(this, o.currentPage + 1);
   }
   return this;
  },
  getPagesCount: function() {
   return this.data('pagination').pages;
  },
  getCurrentPage: function () {
   return this.data('pagination').currentPage + 1;
  },
  destroy: function(){
   this.empty();
   return this;
  },
  drawPage: function (page) {
   var o = this.data('pagination');
   o.currentPage = page - 1;
   this.data('pagination', o);
   methods._draw.call(this);
   return this;
  },
  redraw: function(){
   methods._draw.call(this);
   return this;
  },
  disable: function(){
   var o = this.data('pagination');
   o.disabled = true;
   this.data('pagination', o);
   methods._draw.call(this);
   return this;
  },
  enable: function(){
   var o = this.data('pagination');
   o.disabled = false;
   this.data('pagination', o);
   methods._draw.call(this);
   return this;
  },
  updateItems: function (newItems) {
   var o = this.data('pagination');
   o.items = newItems;
   o.pages = methods._getPages(o);
   this.data('pagination', o);
   methods._draw.call(this);
  },
  updateItemsOnPage: function (itemsOnPage) {
   var o = this.data('pagination');
   o.itemsOnPage = itemsOnPage;
   o.pages = methods._getPages(o);
   this.data('pagination', o);
   methods._selectPage.call(this, 0);
   return this;
  },
  _draw: function() {
   var o = this.data('pagination'),
    interval = methods._getInterval(o),
    i,
    tagName;
   methods.destroy.call(this);
   
   tagName = (typeof this.prop === 'function') ? this.prop('tagName') : this.attr('tagName');
   var $panel = tagName === 'UL' ? this : $('<ul></ul>').appendTo(this);
   // Generate Prev link
   if (o.prevText) {
    methods._appendItem.call(this, o.currentPage - 1, {text: o.prevText, classes: 'prev'});
   }
   // Generate start edges
   if (interval.start > 0 && o.edges > 0) {
    var end = Math.min(o.edges, interval.start);
    for (i = 0; i < end; i++) {
     methods._appendItem.call(this, i);
    }
    if (o.edges < interval.start && (interval.start - o.edges != 1)) {
     $panel.append('<li class="disabled"><span class="ellipse">' + o.ellipseText + '</span></li>');
    } else if (interval.start - o.edges == 1) {
     methods._appendItem.call(this, o.edges);
    }
   }
   // Generate interval links
   for (i = interval.start; i < interval.end; i++) {
    methods._appendItem.call(this, i);
   }
   // Generate end edges
   if (interval.end < o.pages && o.edges > 0) {
    if (o.pages - o.edges > interval.end && (o.pages - o.edges - interval.end != 1)) {
     $panel.append('<li class="disabled"><span class="ellipse">' + o.ellipseText + '</span></li>');
    } else if (o.pages - o.edges - interval.end == 1) {
     methods._appendItem.call(this, interval.end++);
    }
    var begin = Math.max(o.pages - o.edges, interval.end);
    for (i = begin; i < o.pages; i++) {
     methods._appendItem.call(this, i);
    }
   }
   // Generate Next link
   if (o.nextText) {
    methods._appendItem.call(this, o.currentPage + 1, {text: o.nextText, classes: 'next'});
   }
  },
  _getPages: function(o) {
   var pages = Math.ceil(o.items / o.itemsOnPage);
   return pages || 1;
  },
  _getInterval: function(o) {
   return {
    start: Math.ceil(o.currentPage > o.halfDisplayed ? Math.max(Math.min(o.currentPage - o.halfDisplayed, (o.pages - o.displayedPages)), 0) : 0),
    end: Math.ceil(o.currentPage > o.halfDisplayed ? Math.min(o.currentPage + o.halfDisplayed, o.pages) : Math.min(o.displayedPages, o.pages))
   };
  },
  _appendItem: function(pageIndex, opts) {
   var self = this, options, $link, o = self.data('pagination'), $linkWrapper = $('<li></li>'), $ul = self.find('ul');
   pageIndex = pageIndex < 0 ? 0 : (pageIndex < o.pages ? pageIndex : o.pages - 1);
   options = {
    text: pageIndex + 1,
    classes: ''
   };
   if (o.labelMap.length && o.labelMap[pageIndex]) {
    options.text = o.labelMap[pageIndex];
   }
   options = $.extend(options, opts || {});
   if (pageIndex == o.currentPage || o.disabled) {
    if (o.disabled) {
     $linkWrapper.addClass('disabled');
    } else {
     $linkWrapper.addClass('active');
    }
    $link = $('<span class="current">' + (options.text) + '</span>');
   } else {
    $link = $('<a href="' + o.hrefTextPrefix + (pageIndex + 1) + o.hrefTextSuffix + '" class="page-link">' + (options.text) + '</a>');
    $link.click(function(event){
     return methods._selectPage.call(self, pageIndex, event);
    });
   }
   if (options.classes) {
    $link.addClass(options.classes);
   }
   $linkWrapper.append($link);
   if ($ul.length) {
    $ul.append($linkWrapper);
   } else {
    self.append($linkWrapper);
   }
  },
  _selectPage: function(pageIndex, event) {
   var o = this.data('pagination');
   o.currentPage = pageIndex;
   if (o.selectOnClick) {
    methods._draw.call(this);
   }
   return o.onPageClick(pageIndex + 1, event);
  }
 };
 $.fn.pagination = function(method) {
  // Method calling logic
  if (methods[method] && method.charAt(0) != '_') {
   return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
  } else if (typeof method === 'object' || !method) {
   return methods.init.apply(this, arguments);
  } else {
   $.error('Method ' +  method + ' does not exist on jQuery.pagination');
  }
 };
})(jQuery);
 
</code>