﻿$(document).ready(function () {
	$('textarea[textmaxlength]').keyup(function (ev) {
		var item = $(this);
		var max = parseInt(item.attr('textmaxlength'));
		if (!isNaN(max) && max > 0) {
			if (item.val().length > max) {
				var range = item.caret();
				if (range.start < 0) { range.start = range.end; }
				var rangeLength = range.end - range.start;
				var scrollTop = this.scrollTop;
				if (range.end > max) {
					range.start = max - rangeLength;
					range.end = max;
				}
				item.val(item.val().substr(0, max)).caret(range.start, range.end);
				this.scrollTop = scrollTop;
			}

			item.next().html((max - item.val().length));
		}
	}).each(function (index) {
		var item = $(this);
		var max = parseInt(item.attr('textmaxlength'));
		if (!isNaN(max) && max > 0) {
			item.next().html((max - item.val().length));
		}
	});
});
