/**
 * 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 addSelection(control) {
  //alert('checked: ' + control.checked + ' ' + control.value);
  if (control.checked == true) {
    eolwmsetselection('selectadd', control.value);
  } else {
    eolwmsetselection('selectremove', control.value);
  }
}

function doSelectAllAction(controlid) {
	
  selector = document.getElementById(controlid + '_grpchkbox_selector');
  checked = (selector.value != 'none');
  var dopage = false;
  if (selector.value == 'this_page') {
    dopage =true;
  } else if (selector.value == 'all' || selector.value == 'none') {
    eolwmsetselection('select'+selector.value, 0);
  }
  
  if (!checked) {
    selector.value = ""; 
  }
  curform = document.forms[formname];
  iArrayLength = curform.elements.length;
  preflen = controlid.length;
  var pagest = "";
  
  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) {
        if (pagest != "") {
          pagest += ",";
        }
        pagest += curform.elements[i].value;
        curform.elements[i].checked = checked;
        if (selector.value == 'all') {
          curform.elements[i].disabled = true;
        } else {
          curform.elements[i].disabled = false;
        }
      }
    }
  }
  if (dopage) {
    eolwmsetselection('selectpage', pagest);
  }
}

function eolwmsetselection(action, id) {
  //alert('unload: '+wmid);
  wmRequest = initWMRequester(wmRequest);
  var start = new Date();
  var pp = "wm.php?selection="+wmid+"&action="+action+"&id="+id+"&ts="+start.getTime();
  //alert(pp);
  wmRequest.open("GET", pp, false);
  wmRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  wmRequest.onreadystatechange = function() {  }
  wmRequest.send("");
  return true;
}

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);
    hiddenctrl.value = action;
    eolsubmit(document.forms[formname]);
  }
}

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;
  }
}

