/**
 * doSort
 */
function doSort(frm, prefix, fieldname) {
  if ( document.forms[frm].elements[prefix + 'orderby'].value == fieldname ) {
    document.forms[frm].elements[prefix + 'orderby'].value = fieldname;

    if ( document.forms[frm].elements[prefix + 'orderdirection'].value == 'ASC' ) {
      document.forms[frm].elements[prefix + 'orderdirection'].value = 'DESC';
    }
    else {
      document.forms[frm].elements[prefix + 'orderdirection'].value = 'ASC';
    }
  }
  else {
    document.forms[frm].elements[prefix + 'orderby'].value = fieldname;
    document.forms[frm].elements[prefix + 'orderdirection'].value = 'ASC';
  }

  gotoPage(frm, prefix, 1);
}

/**
 * gotoPage
 */
function gotoPage(frm, prefix, page) {
  document.forms[frm].elements[prefix + 'page'].value = page;
  document.forms[frm].submit();
}

/**
 * setFilter
 */
function setFilter(frm, prefix, filter) {
  document.forms[frm].elements[prefix + 'filter'].value = filter;
  gotoPage(frm, prefix, 1);
}

/**
 * clearFilter
 */
function clearFilter(frm, prefix) {
  document.forms[frm].elements[prefix + 'filter'].value = '';
  gotoPage(frm, prefix, 1);
}

/**
 * showAll
 */
function showAll(frm, prefix) {
  document.forms[frm].elements[prefix + 'search'].value = '';
  document.forms[frm].elements[prefix + 'filter'].value = '';
  gotoPage(frm, prefix, 1);
}

/**
 * confirmDelete
 */
function confirmDelete(frm, s, s2) {
  c = cbCheckedCount(frm);
  if ( c > 0 ) {
    if ( confirm(s.replace("%js_count", c)) ) {
      document.forms[frm].elements['delete_confirmed'].value = 1;
      document.forms[frm].submit();
    }
  }
  else {
    alert(s2);
  }
}

/* checkboxes */

/**
 * cbHighlight
 */
function cbHighlight(frm) {
  var len = document.forms[frm].elements.length;
  for ( var i = 0; i < len; ++i ) {
    var e = document.forms[frm].elements[i];
    if ( e.name == "cb_remove_id[]" && e.checked ) {
      highlight(e);
    }
  }
}

/**
 * cbToggle
 */
function cbToggle(frm, e) {
  if ( e.checked ) {
    highlight(e);
    if ( document.forms[frm].elements['cb_toggleAll'] ) {
      document.forms[frm].elements['cb_toggleAll'].checked = cbAllChecked(frm);

    }
  }
  else {
    unhighlight(e);
    if ( document.forms[frm].elements['cb_toggleAll'] ) {
      document.forms[frm].elements['cb_toggleAll'].checked = false;
    }
  }
}

/**
 * cbToggleAll
 */
function cbToggleAll(frm, e) {
  if ( e.checked ) cbCheckAll(frm);
  else cbClearAll(frm);
}

/**
 * cbCheckAll
 */
function cbCheckAll(frm) {
  var len = document.forms[frm].elements.length;
  for ( var i = 0; i < len; ++i ) {
    var e = document.forms[frm].elements[i];
    if ( e.name == "cb_remove_id[]" ) {
      e.checked = true;
      highlight(e);
    }
  }
  document.forms[frm].elements['cb_toggleAll'].checked = true;
}

/**
 * cbClearAll
 */
function cbClearAll(frm) {
  var len = document.forms[frm].elements.length;
  for ( var i = 0; i < len; ++i ) {
    var e = document.forms[frm].elements[i];
    if ( e.name == "cb_remove_id[]" ) {
      e.checked = false;
      unhighlight(e);
    }
  }
  document.forms[frm].elements['cb_toggleAll'].checked = false;
}

/**
 * cbAllChecked
 */
function cbAllChecked(frm) {
  var len = document.forms[frm].elements.length;
  for ( var i = 0; i < len; ++i ) {
    if ( document.forms[frm].elements[i].name == "cb_remove_id[]" && !document.forms[frm].elements[i].checked ) return false;
  }
  return true;
}

/**
 * cbCheckedCount
 */
function cbCheckedCount(frm) {
  c = 0;
  var len = document.forms[frm].elements.length;
  for ( var i = 0; i < len; ++i ) {
    if ( document.forms[frm].elements[i].name == "cb_remove_id[]" && document.forms[frm].elements[i].checked ) c++;
  }
  return c;
}

/* row highlight */

/**
 * highlight
 */
function highlight(e) {
 var r = null;
 if ( e.parentNode && e.parentNode.parentNode ) {
   r = e.parentNode.parentNode;
 }
 else if (e.parentElement && e.parentElement.parentElement ) {
   r = e.parentElement.parentElement;
 }
 if ( r && r.className == "odd" ) {
   r.className = "odd_sel";
 }
 else if ( r && r.className == "even" ) {
   r.className = "even_sel";
 }
 else if ( r && r.className == "update" ) {
   r.className = "update_sel";
 }
 else if ( r && r.className == "insert" ) {
   r.className = "insert_sel";
 }
}

/**
 * unhighlight
 */
function unhighlight(e) {
  var r = null;
  if( e.parentNode && e.parentNode.parentNode ) {
    r = e.parentNode.parentNode;
  }
  else if ( e.parentElement && e.parentElement.parentElement ) {
    r = e.parentElement.parentElement;
  }
  if ( r && r.className == "odd_sel" ) {
    r.className = "odd";
  }
  else if ( r && r.className == "even_sel" ) {
    r.className = "even";
  }
  else if ( r && r.className == "update_sel" ) {
    r.className = "update";
  }
  else if ( r && r.className == "insert_sel" ) {
    r.className = "insert";
  }
}

/**
  * show/hide category
  * uses functions 'hide()' & 'show()' in default.js
  */
function switchCategory(id) {
  var oVDiv = document.getElementsByName(id);
  if ( oVDiv.length > 0 ) {
    for ( var i = 0; i < oVDiv.length; i++ ) {
      if ( oVDiv[i].style.visibility == 'hidden' ) {
        show(oVDiv[i]);
        document.images['img_' + id].src = 'tpl/img/qb_category_close.gif';
      }
      else {
        hide(oVDiv[i]);
        document.images['img_' + id].src = 'tpl/img/qb_category_open.gif';
      }
    }
  }
}
