function getCharCount(field, max_char_count) {
  var char_count = field.value.length;
  var free_chars = max_char_count - char_count;
  if (free_chars < 0) {
    field.value = field.value.substr(0, max_char_count);
    return 0;
  } else {
    return free_chars;
  }
}
function setExternalRecipient(mobile_prefix, number, recipient_name) {
  $('sms_mobile_prefix').removeAttribute('disabled');
  $('sms_mobile_prefix').value = mobile_prefix;
  $('sms_number').removeAttribute('disabled'); 
  $('sms_number').value = number;
  $('sms_recipient_name').removeAttribute('disabled');
  $('sms_recipient_name').value = recipient_name;
  $('sms_recipient_id').setAttribute('disabled', 'disabled');
  $('sms_recipient_id').value = '';
}
function setRecipient(recipient_id) {
  $('sms_mobile_prefix').setAttribute('disabled', 'disabled');
  $('sms_mobile_prefix').value = '';
  $('sms_number').setAttribute('disabled', 'disabled');
  $('sms_number').value = '';
  $('sms_recipient_name').setAttribute('disabled', 'disabled');
  $('sms_recipient_name').value = '';
  $('sms_recipient_id').removeAttribute('disabled');
  $('sms_recipient_id').value = recipient_id;
  $('recipient').style.display = 'block';
}
function recipientIdChanged() {
  if ($('sms_recipient_id').value == '') {
    $('sms_recipient_id').setAttribute('disabled', 'disabled');
    $('sms_mobile_prefix').removeAttribute('disabled');
    $('sms_number').removeAttribute('disabled');
    $('sms_recipient_name').removeAttribute('disabled');
  } else {
    $('sms_recipient_id').removeAttribute('disabled');
    $('sms_mobile_prefix').setAttribute('disabled', 'disabled');
    $('sms_number').setAttribute('disabled', 'disabled');
    $('sms_recipient_name').setAttribute('disabled', 'disabled');
  }
}

function filterSmsRecipients() {
  var filter = new RegExp($('sms_recipient_filter').value.trim(), 'ig');
  $$('.sms_recipient_name').each(function(item) {
    if (item.innerHTML.search(filter) != -1) {
      item.parentNode.style.display = 'block';
    } else {
      item.parentNode.style.display = 'none';
    }
  });
}
