var gsm7bitChars = "@£$¥èéùìòÇ\nØø\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\"#¤%&'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑÜ§¿abcdefghijklmnopqrstuvwxyzäöñüà";
var gsm7bitExChar = "^{}\\[~]|€";
var maxlimit = 160;

function smsCharCount(message) {
  var gsm7bitUnits = 0;
  var utf16codeUnits = 0;
    
  for (var i = 0, len = message.length; i < len; i++) {
    if (gsm7bitUnits != null) {
      if (gsm7bitChars.indexOf(message.charAt(i)) > -1) {
        gsm7bitUnits++;
      } else if (gsm7bitExChar.indexOf(message.charAt(i)) > -1) {
        gsm7bitUnits += 2;
      } else {
	gsm7bitUnits += 0;
	//dont count char as it is not in the allowed list. Also remove it.
        document.getElementById('smsbox').value = message.substring(message.length-1, message);
	alert('Unfortunately '+message.substring(message.length, message.length-1)+' is not a permitted character.');
	//gsm7bitUnits = null;
      }
    }
    //utf16codeUnits += message.charCodeAt(i) < 0x10000 ? 1 : 2;  
  }
if (gsm7bitUnits > maxlimit) { // if too long...trim it!
	document.getElementById('smsbox').value = message.substring(message.length-1, message);
	alert('You have reached the maximum amount of characters.');
}
// otherwise, update 'characters left' counter
else {
	document.getElementById('remLen').value = maxlimit - gsm7bitUnits;
}
  //return [160-gsm7bitUnits, utf16codeUnits];
/*
console.log('message:'+message);
console.log(message.length);
console.log(gsm7bitUnits);
console.log(document.getElementById('smsbox').value);
console.log(document.getElementById('remLen').value);
*/
}

