/**
 * Deselects all records in a form
 */
function selectAll(elt, strprefix) {
  curform = document.forms[formname];
  iArrayLength = curform.elements.length;
  preflen = strprefix.length;
  for (i = 0; i < iArrayLength; i++) {
    if (curform.elements[i].type == "checkbox" && 
      curform.elements[i] != null) {
      if (curform.elements[i].name.substr(0, preflen) == strprefix) {
        curform.elements[i].checked = elt.checked;
      }
    }
  }
}

function doSelectAllAction(controlid) {
  selector = document.getElementById(controlid + '_grpchkbox_selector');
  checked = (selector.value != 'none');
  curform = document.forms[formname];
  iArrayLength = curform.elements.length;
  preflen = controlid.length;
  for (i = 0; i < iArrayLength; i++) {
    if (curform.elements[i].type == "checkbox" && 
      curform.elements[i] != null) {
      if (curform.elements[i].name.substr(0, preflen) == controlid) {
        curform.elements[i].checked = checked;
        if (selector.value == 'all') {
          curform.elements[i].disabled = true;
        } else {
          curform.elements[i].disabled = false;
        }
      }
    }
  }
}

function getSelectedIds(strprefix) {
  selector = document.getElementById(strprefix + '_selector');
  if (selector) {
    if (selector.value == 'all') {
      return 'all';
    }
  }
  var ids = new Array();
  var count = 0;
  curform = document.forms[formname];
  iArrayLength = curform.elements.length;
  preflen = strprefix.length;
  for (i = 0; i < iArrayLength; i++) {
    if (curform.elements[i].type == "checkbox" && 
      curform.elements[i] != null) {
      if (curform.elements[i].name.substr(0, preflen) == strprefix) {
        if (curform.elements[i].checked) {
          ids[count] = curform.elements[i].value;
          count++;
        }
      }
    }
  }
  return ids;
}

function countSelectedItems(strprefix) {
  var ids = getSelectedIds(strprefix);
  if (ids == 'all') {
    return total_item_count;
  } else {
    return ids.length;
  }
}

/**
 * Execute selection action
 */
function doSelectionAction(action, confirmation_message, hiddenctrl, message_vars, usemain) {
  execute = true;
  if (confirmation_message != null) {
    execute = eolconfirm(confirmation_message, message_vars);
  }
  if (execute) {
    var ids = getSelectedIds(hiddenctrl.name);
    if (usemain || true) {
      hiddenctrl.value = action;
      eolsubmit(document.forms[formname]);
    } else {
      // SG: Not quite there yet
      newwin = window.open('ajax.php', '', 'resizable,width=800,height=600,scrollbars');
      newwin.focus;
      doSelectionActionAjax(ids, action, newwin);
    }
  }
}

function doSelectionActionAjax(ids, action, newwin) {
  updateRequest = initRequester(updateRequest);
  updateRequest.open("POST", "ajax.php", true);
  updateRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  updateRequest.onreadystatechange = function() {
   if (updateRequest.readyState == 4) {
     newwin.location = 'index.php?action=behaviour&actionid='+action;
   }
  }
  query = 'ids='+ids.join(',')+'&actionid='+action;
  updateRequest.send(query);
  return '';
} 



function eoldelete(key, hiddenctrl, id) {
  if (id == '+newid+') {
    // get selected id
    id = newid;
  }
  doSelectionAction('sys_delobj_' + id, key, hiddenctrl, null, true)
}

/**
 * alters the css class of element between class1 and class2
 */
function alterStyles(element, class1, class2) {
  if (element.className == class1) {
    element.className = class2;
  } else if (element.className == class2) {
    element.className = class1;
  }
}
