var ProductLink = {
  query: [],
  init: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    this.query = vars;
  },
  getUrlVar: function(name){
    return this.query[name];
  },
  setUrlVar: function(name, val){
    if (typeof(this.query[name]) == 'undefined') {
      this.query.push(name);
    }
    this.query[name] = encodeURIComponent(val);
  },
  toQueryString: function() {
    var res = [];
    jQuery.each(this.query, function(key, val) {
       res.push(val + '=' + ProductLink.query[val]);
    })
    return res.join('&');
  },
  href: function (options) {
    options = options || {};

    jQuery.each(options, function(key, val) {
      ProductLink.setUrlVar(key, val);
    });

    window.location = window.location.pathname + '?' + this.toQueryString();
  }
}

jQuery(document).ready(function() {
  ProductLink.init();
});
