function cb_element(id) {
  return document.forms[0].elements[id];
}

function cb_remove_id(str,id) {
  var list = str.split(","), ostr = "";
  
  for(i=0;i<list.length-1;i++) {
    if (list[i] != id) ostr += list[i] + ",";
  }
  
  return ostr;
}

function cb_add_id(str,id) {
  return str + id + ",";    
}

function cb_check(checkbox, client_id, checkbox_value) {  

  var selected = cb_element(client_id);
  
  if (checkbox.checked) {
    selected.value = cb_add_id(selected.value,checkbox_value);      
  } else {
    selected.value = cb_remove_id(selected.value,checkbox_value);
  }  
  
}

function cb_select(checkbox, client_id, checkbox_value) {
 
  var selected = cb_element(client_id);
    
  if (checkbox.checked) {
    selected.value = checkbox_value + ",";      
  } else {
    selected.value = "";
  }     
}

function cb_selected(client_id) {
  return cb_element(client_id).value;
}

function cb_toggle(checkbox, client_ids, inverse) {
	var list = client_ids.split(",");
		
  for(i=0;i<list.length;i++) {
		var selected = cb_element(list[i]);		
		selected.disabled = !checkbox.checked ^ inverse;
  }	
}

function cb_toggle_select(checkbox, client_ids, inverse) {
	var list = client_ids.split(",");
		
  for(i=0;i<list.length;i++) {
		var selected = cb_element(list[i]);		
		selected.checked = checkbox.checked ^ inverse;
  }	
}


function cb_selected_count(client_id) {
  return cb_selected(client_id).split(",").length-1;  
}

function cb_enable(client_ids, enable) {
	var list = client_ids.split(",");
		
  for(i=0;i<list.length;i++) {
		var selected = cb_element(list[i]);		
		selected.disabled = !enable;
  }	
}

