+ mkdru.stateFromHash();
+ // Request for details
+ if (mkdru.state.recid) {
+ mkdru.pz2.record(mkdru.state.recid);
+ }
+ // Other internal link
+ else {
+ // may need to run search again to limit targets
+ for (key in mkdru.state) {
+ if (key.substring(0,5) === 'limit' && mkdru.state[key]) {
+ mkdru.search();
+ break;
+ }
+ }
+ mkdru.pz2.showPage(mkdru.state.page-1);
+ $('.mkdru-detail').hide();
+ $('.mkdru-results').show();
+ }
+};
+
+// return link to limit facet
+mkdru.addLimit = function (facet, limit) {
+ var newHash = $.deparam.fragment();
+ delete newHash['page'];
+ if ((typeof(newHash['limit_' + facet]) === 'undefined')
+ || !mkdru.facets[facet].multiLimit) {
+ newHash['limit_' + facet] = limit;
+ }
+ else {
+ newHash['limit_' + facet] += ';' + limit;
+ }
+ return $.param.fragment("#", newHash);
+};
+
+// return link to remove limit from facet
+mkdru.removeLimit = function (facet, limit) {
+ var newHash = $.deparam.fragment();
+ delete newHash['page'];
+ if (!newHash['limit_' + facet].indexOf(';') || !mkdru.facets[facet].multiLimit) {
+ delete newHash['limit_' + facet];
+ }
+ else {
+ var limits = newHash['limit_' + facet].split(';');
+ for (var i = 0; i < limits.length; i++) {
+ if (limits[i] == limit) {
+ limits.splice(i, 1);
+ newHash['limit_' + facet] = limits.join(';');
+ break;
+ }
+ }
+ }
+ return $.param.fragment("#", newHash);