+
+ // simple paging functions
+ that.pagerNext = function () {
+ if (m_totalRecordCount - m_perpage*m_currentPage > 0) {
+ m_paz.showNext();
+ m_currentPage++;
+ }
+ }
+
+
+ that.pagerPrev = function () {
+ if (m_paz.showPrev() != false)
+ m_currentPage--;
+ }
+
+
+ // switching view between targets and records
+ function switchView(view) {
+ var targets = findnode('.mkwsTargets');
+ var results = findnode('.mkwsResults,.mkwsRecords');
+ var blanket = findnode('.mkwsBlanket');
+ var motd = findnode('.mkwsMOTD');
+
+ switch(view) {
+ case 'targets':
+ if (targets) targets.css('display', 'block');
+ if (results) results.css('display', 'none');
+ if (blanket) blanket.css('display', 'none');
+ if (motd) motd.css('display', 'none');
+ break;
+ case 'records':
+ if (targets) targets.css('display', 'none');
+ if (results) results.css('display', 'block');
+ if (blanket) blanket.css('display', 'block');
+ if (motd) motd.css('display', 'none');
+ break;
+ case 'none':
+ alert("mkws.switchView(" + m_teamName + ", 'none') shouldn't happen");
+ if (targets) targets.css('display', 'none');
+ if (results) results.css('display', 'none');
+ if (blanket) blanket.css('display', 'none');
+ if (motd) motd.css('display', 'none');
+ break;
+ default:
+ alert("Unknown view '" + view + "'");
+ }
+ }
+
+
+ that.switchView = switchView;
+
+
+ // detailed record drawing
+ that.showDetails = function (prefixRecId) {
+ var recId = prefixRecId.replace('mkwsRec_', '');
+ var oldRecId = m_curDetRecId;
+ m_curDetRecId = recId;
+
+ // remove current detailed view if any
+ var detRecordDiv = document.getElementById('mkwsDet_' + m_teamName + '_' + oldRecId);
+ // lovin DOM!
+ if (detRecordDiv)
+ detRecordDiv.parentNode.removeChild(detRecordDiv);
+
+ // if the same clicked, just hide
+ if (recId == oldRecId) {
+ m_curDetRecId = '';
+ m_curDetRecData = null;
+ return;
+ }
+ // request the record
+ debug("showDetails() requesting record '" + recId + "'");
+ m_paz.record(recId);
+ }
+
+
+ /*
+ * All the HTML stuff to render the search forms and
+ * result pages.
+ */
+ function mkwsHtmlAll() {
+ mkwsSetLang();
+ if (mkws_config.show_lang)
+ mkwsHtmlLang();
+
+ debug("HTML search form");
+ mkws.handleNodeWithTeam(findnode('.mkwsSearch'), function(tname) {
+ this.html('\
+<form name="mkwsSearchForm" class="mkwsSearchForm mkwsTeam_' + tname + '" action="" >\
+ <input class="mkwsQuery mkwsTeam_' + tname + '" type="text" size="' + mkws_config.query_width + '" />\
+ <input class="mkwsButton mkwsTeam_' + tname + '" type="submit" value="' + M('Search') + '" />\
+</form>');
+ });
+
+ debug("HTML records");
+ // If the team has a .mkwsResults, populate it in the usual
+ // way. If not, assume that it's a smarter application that
+ // defines its own subcomponents, some or all of the
+ // following:
+ // .mkwsTermlists
+ // .mkwsRanking
+ // .mkwsPager
+ // .mkwsNavi
+ // .mkwsRecords
+ if (findnode(".mkwsResults").length) {
+ findnode(".mkwsResults").html('\
+<table width="100%" border="0" cellpadding="6" cellspacing="0">\
+ <tr>\
+ <td class="mkwsTermlistContainer1 mkwsTeam_' + m_teamName + '" width="250" valign="top">\
+ <div class="mkwsTermlists mkwsTeam_' + m_teamName + '"></div>\
+ </td>\
+ <td class="mkwsMOTDContainer mkwsTeam_' + m_teamName + '" valign="top">\
+ <div class="mkwsRanking mkwsTeam_' + m_teamName + '"></div>\
+ <div class="mkwsPager mkwsTeam_' + m_teamName + '"></div>\
+ <div class="mkwsNavi mkwsTeam_' + m_teamName + '"></div>\
+ <div class="mkwsRecords mkwsTeam_' + m_teamName + '"></div>\
+ </td>\
+ </tr>\
+ <tr>\
+ <td colspan="2">\
+ <div class="mkwsTermlistContainer2 mkwsTeam_' + m_teamName + '"></div>\
+ </td>\
+ </tr>\
+</table>');
+ }
+
+ var node = findnode(".mkwsRanking");
+ if (node.length) {
+ var ranking_data = '';
+ ranking_data += '<form name="mkwsSelect" class="mkwsSelect mkwsTeam_' + m_teamName + '" action="" >';
+ if (mkws_config.show_sort) {
+ ranking_data += M('Sort by') + ' ' + mkwsHtmlSort() + ' ';