+ return $.param.fragment("#", newHash);
+};
+
+
+
+// form submit handler
+mkdru.submitQuery = function () {
+ // new query, back to defaults (shallow copy)
+ mkdru.state = $.extend({}, mkdru.defaultState);
+ mkdru.state.query = $('.mkdru-search input:text').attr('value');
+ mkdru.pollDropDowns();
+ mkdru.hashFromState();
+ mkdru.search();
+ mkdru.active = true;
+ return false;
+};
+
+// criteria drop-down (perpage, sort) handler
+mkdru.submitCriteria = function () {
+ mkdru.pollDropDowns();
+ //search is not ON, do nothing
+ if (!mkdru.active) return false;
+ // pages mean different things now
+ mkdru.state.page = 1;
+ mkdru.hashFromState();
+ mkdru.pz2.show(0, mkdru.state.perpage, mkdru.state.sort);
+ return false;
+}
+
+mkdru.search = function () {
+ var filter = null;
+ var query = mkdru.state.query;
+
+ // facet limit implementation
+ for (var facet in mkdru.facets) {
+ // facet is limited
+ if (mkdru.state['limit_' + facet]) {
+ if (facet == "source") {
+ filter = 'pz:id=' + mkdru.state.limit_source;
+ }
+ else {
+ var limits = mkdru.state['limit_' + facet].split(/;+/);
+ for (var i = 0; i < limits.length; i++) {
+ // ex. query + and au="{limit_author}"
+ if (limits[i])
+ query += ' and ' + mkdru.facets[facet]['limiter'] + '="'
+ + limits[i] + '"';
+ }
+ }
+ }
+ }
+
+ mkdru.pz2.search(query, mkdru.state.perpage, mkdru.state.sort, filter);
+ mkdru.active = true;
+};
+
+mkdru.pollDropDowns = function () {
+ mkdru.state.perpage = $('.mkdru-perpage').attr('value');
+ mkdru.state.sort = $('.mkdru-sort').attr('value');