﻿//on load textarea
function onloadTextArea(textareaid, contentlength, blurcontent)
{
    //attach key event handler
    if (contentlength > 0) 
    {
        //set interval for content size
        contentSizeTextArea(textareaid, contentlength, blurcontent);

        //attach key events
        attachKeyEventHandlerTextArea(textareaid, contentlength);
    }
}

//on textarea key press
function onTextAreaKeyPress(e, textareaid, contentlength) 
{
    var keyIndex = 0;
    if (navigator.appName == "Netscape")
        keyIndex = e.which;
    else
        keyIndex = window.event.keyCode;

    //return true / false
    if ($(textareaid + "textarea").value.length < contentlength || keyIndex == 8 || keyIndex == 0)
        return true;
    else
        return false;
}

//attach key event handler textarea
function attachKeyEventHandlerTextArea(textareaid, contentlength) {
    //get element by textareaid
    var element = $(textareaid + "textarea");

    //attach key event handler
    if (element.addEventListener) {
        element.addEventListener("keyup", function() { contentSizeTextArea(textareaid, contentlength, "") }, false);
        element.addEventListener("keydown", function() { contentSizeTextArea(textareaid, contentlength, "") }, false);
    }
    else if (element.attachEvent) {
        element.attachEvent("onkeyup", function() { contentSizeTextArea(textareaid, contentlength, ""); });
        element.attachEvent("onkeydown", function() { contentSizeTextArea(textareaid, contentlength, ""); });
    }
    else {
        element.onkeyup = function() { contentSizeTextArea(textareaid, allowedsize, "") };
        element.onkeydown = function() { contentSizeTextArea(textareaid, allowedsize, "") };
    }
}

//content size
function contentSizeTextArea(textareaid, contentlength, blurcontent) {
    //calculate current size
    var currentSize = contentlength;

    //calculate current size
    if ($(textareaid + "textarea")) {
        if (blurcontent == "") {
            currentSize -= $(textareaid + "textarea").value.length;
        }
    }

    //set calculated current size
    if (currentSize >= 0) {
        $(textareaid + 'csover').style.display = 'block';
        $(textareaid + 'cs').innerHTML = currentSize;

        //return 
        return true;
    }
    else
        $(textareaid + "textarea").value = $(textareaid + "textarea").value.substring(0, contentlength);
}
