function updCounter() {
  var cMax = document.getElementById('cmax'); // chars maximum
  var cRem = document.getElementById('crem');  // chars remaining
  var cMsg = document.getElementById('cmsg'); // message

  if( cMax != null && cRem != null && cMsg != null ) {
    numCMax = parseInt(cMax.value);
    numCMsg = parseInt(cMsg.value.length);

    if( !isNaN(numCMax) && !isNaN(numCMsg) ) {
      newVal = numCMax - numCMsg;

      if( newVal < 0 ) {
        newVal = 0;
        cMsg.value = cMsg.value.substr(0, (numCMsg-1)); // delete last character
        // cMsg.readOnly = true;
        // cMsg.disabled = true;
      }

      cRem.value = newVal;
    }
  }
}   // end of function 'updCounter()'