﻿var count_class_title = ".info.medium";
jQuery(document).ready(function() { InitializeInputs(); });
function InitializeInputs() {
    var inputs = jQuery(":input[characterlimit]:not([counted])");
    for (index = 0; index < inputs.length; index++) {
        jQuery(inputs[index]).attr("counted", "true").siblings(count_class_title)
        .html(GenerateMaxDiv(RemainingChars(jQuery(inputs[index])), jQuery(inputs[index]).attr("characterlimit")));
    }
    jQuery(inputs).keyup(function(event) {
        var remaining_chars = RemainingChars(jQuery(this));
        if (remaining_chars < 0) {
            remaining_chars = jQuery(this).attr("characterlimit") - 1;
            (count_class_title, jQuery(this).parent().siblings()).val(jQuery(this).val().substring(0, remaining_chars));
        }
        jQuery(this).siblings(count_class_title).text(GenerateMaxDiv(remaining_chars, jQuery(this).attr("characterlimit")));
        return;
    });
    function RemainingChars(div) {
        var length = jQuery(div).val().length;
        var limit = jQuery(div).attr("characterlimit");
        if (length < limit)
            return limit - length;
        else return 0;
    }
    function GenerateMaxDiv(remaining_chars, max_chars) {
        return remaining_chars + " / " + max_chars;
    };
};
