function sms_message_char_counter(chars_max) {
	var text_chars=0, text_length=0;

	var message_text = document.getElementById("message_text");
	var message_char_left = document.getElementById("message_char_left");
	var message_sms_count = document.getElementById("message_sms_count");

	var text = message_text.value;

	if (!chars_max) chars_max = 450;

	for (var i=0; i<text.length; i++) {
		var schar = text.charAt(i);
		if (schar=='€' || schar=='~' || schar=='^' || schar=='\\' || schar=='{' || schar=='}' || schar=='[' || schar==']' || schar=='|') {
			if (text_chars>(chars_max-2)) { break };
			text_chars+=2;
		} else if (schar=="\r") {
			// not count linefeed
		} else {
			if (text_chars>(chars_max-1)) { break };
			text_chars++;
		}
		text_length = i+1;
	}

	if (text.length > text_length) {
		message_text.value = text.substring(0,text_length);
	}

	if (message_char_left) message_char_left.value = chars_max-text_chars;
	if (message_sms_count) {
		if (text_length > 160) {
			message_sms_count.value = parseInt((text_chars-1)/153)+1;
		} else {
			message_sms_count.value = 1;
		}
	}
}
