function setMaxLength(){
    var x = document.getElementsByTagName('textarea');
    var counter = document.createElement('div');
    counter.className = 'counter';

    for (var i=0;i<x.length;i++) {
        var vMaxLength = x[i].getAttribute('maxlength');
        if(!vMaxLength && x[i].getAttribute('ml')){
            vMaxLength = x[i].getAttribute('ml')
            x[i].setAttribute('maxlength', vMaxLength);
        }
        if (vMaxLength) {
            var counterClone = counter.cloneNode(true);
            counterClone.relatedElement = x[i];
            counterClone.innerHTML = '<span> </span>';
            x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
            x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

            x[i].onkeydown = checkMaxLength;
             x[i].onkeyup = removeExtraText;
            x[i].onkeydown();
        }
    }
}

function removeExtraText(evt){
    var vMaxLength = parseInt(this.getAttribute('maxlength'), 10);
    var vCurrentLength = this.value.length;
    if(vCurrentLength > vMaxLength){
        this.value = this.value.substr(0, vMaxLength);
    }
}

function checkMaxLength(evt){
    evt = evt?evt:window.event;
    
    var vMaxLength = parseInt(this.getAttribute('maxlength'), 10);
    var vCurrentLength = this.value.length;
    
    var vAllowKeyDown = true;
    
    
    
    if(evt)
    {
        if((evt.keyCode >= 48 && evt.keyCode <= 90) || (evt.keyCode >= 106 && evt.keyCode <= 222))
        {
            if(vCurrentLength >= vMaxLength)
            {
                this.value = this.value.substr(0, vMaxLength);
                vAllowKeyDown = false;
            }
        }
    }
    else{
        if(vCurrentLength >= vMaxLength)
        {
            this.value = this.value.substr(0, vMaxLength);
            vAllowKeyDown = false;
        }
        else
        {
            this.value = this.value.substr(0, vMaxLength);
        }
    }

    return vAllowKeyDown;
}

setMaxLength();