﻿function showOrderByMenu(baseUrl, params) {
  var popUpPanelDescriptor = createContextMenu(
    'orderByContextMenu', 'popUpPanel', 'nmi', 'hmi', 'onOrderByContextMenuItemClicked'
  );

  var menuItems = params.split(';');

  for (var i = 0; i != menuItems.length; i++) {
    var menuItem = menuItems[i].split(',');

    addContextMenuItem(popUpPanelDescriptor, menuItem[0], baseUrl + menuItem[1]);
  }

  var panelPosition = getPopUpPanelPositionForElementById('hlOrderBy');

  showContextMenu(popUpPanelDescriptor, panelPosition.x, panelPosition.y);
}

function onOrderByContextMenuItemClicked(url) {
  document.location.href = url;
}

function showLinesPerPageMenu(baseUrl) {
  var popUpPanelDescriptor = createContextMenu(
    'linesPerPageContextMenu', 'popUpPanel', 'nmi', 'hmi', 'onLinesPerPageContextMenuItemClicked'
  );

  var panelPosition = getPopUpPanelPositionForElementById('hlLinesPerPage');

  addContextMenuItem(popUpPanelDescriptor, '20', baseUrl + '20');
  addContextMenuItem(popUpPanelDescriptor, '40', baseUrl + '40');
  addContextMenuItem(popUpPanelDescriptor, '60', baseUrl + '60');
  addContextMenuItem(popUpPanelDescriptor, '80', baseUrl + '80');
  showContextMenu(popUpPanelDescriptor, panelPosition.x, panelPosition.y);
}

function onLinesPerPageContextMenuItemClicked(url) {
  document.location.href = url;
}

function showViewModeMenu(baseUrl, params) {
  var popUpPanelDescriptor = createContextMenu(
    'viewModeContextMenu', 'popUpPanel', 'nmi', 'hmi', 'onViewModeContextMenuItemClicked'
  );

  var menuItems = params.split(';');

  for (var i = 0; i != menuItems.length; i++) {
    var menuItem = menuItems[i].split(',');

    addContextMenuItem(popUpPanelDescriptor, menuItem[0], baseUrl + menuItem[1]);
  }

  var panelPosition = getPopUpPanelPositionForElementById('hlViewMode');

  showContextMenu(popUpPanelDescriptor, panelPosition.x, panelPosition.y);
}

function onViewModeContextMenuItemClicked(url) {
  document.location.href = url;
}

function showFilterMenu(baseUrl, params) {
  var popUpPanelDescriptor = createPopUpPanel(
    'filterPanel', 'popUpPanel'
  );

  var culture = elementById('ctl00_hfCulture').value;
  var html = '<ul class="listFilter">';
  var filterItems = params.split(';');

  for (var i = 0; i != filterItems.length; i++) {
    var filterItem = filterItems[i].split(',');

    html += '<li>';
    html += '<label for="' + filterItem[1] + 'Field">' + filterItem[0] + '</label>';
    html += '<input id="' + filterItem[1] + 'Field" type="text" />';
    html += '</li>';
  }

  html += '</ul>';
  html += '<input type="button" class="applyButton2" value="' + (culture == 'uk-UA' ? 'Застосувати фільтр' : 'Применить фильтр') + '" onclick="onApplyFilterButtonClicked(\'' + baseUrl + '\', \'' + params + '\');" />';
  addChildElementHtml(popUpPanelDescriptor, html);

  var panelPosition = getPopUpPanelPositionForElementById('hlFilter');
  
  showPopUpPanel(popUpPanelDescriptor, panelPosition.x, panelPosition.y);
}

function onApplyFilterButtonClicked(baseUrl, params) {
  var filter = '';
  var filterItems = params.split(';');

  for (var i = 0; i != filterItems.length; i++) {
    var filterItem = filterItems[i].split(',');
    var value = elementById(filterItem[1] + 'Field').value;

    if (value != '') {
      filter += (filter.length == 0 ? '' : ';') + filterItem[1] + ',' + value;
    }
  }

  document.location.href = baseUrl + filter;
}