﻿function canAddCharacter(textarea, maxChars) 
{ 
     if(typeof(textarea.onkeypress.arguments[0]) != 'undefined') 
          var keyCode = textarea.onkeypress.arguments[0].keyCode; 
     else 
     { 
          if(document.selection.createRange().text.length != 0) return true; 
          var keyCode = event.keyCode; 
     } 

     var allowedChars = new Array(8, 37, 38, 39, 40, 46);     //Backspace, delete and arrow keys 
     for(var x=0; x<allowedChars.length; x++) if(allowedChars[x] == keyCode) return true; 

     if(textarea.value.length < maxChars) return true; 

     return false; 
}

function displayRemaining(textarea, maxChars, targetDiv) 
{
    elem = document.getElementById(targetDiv);
    var em = '<span style=\'color:red;font-weight:bold\'>';
    var slashem = '</span>';
    
    if (maxChars - textarea.value.length == 1)
        elem.innerHTML = em + '1' + slashem + ' character remaining';
    else if (maxChars - textarea.value.length >= 0 && maxChars - textarea.value.length <= 10)
        elem.innerHTML = em + (maxChars - textarea.value.length) + slashem + ' characters remaining';
    else if (maxChars - textarea.value.length >= 0)
        elem.innerHTML = '' + (maxChars - textarea.value.length) + ' characters remaining';
    else
        trimLength(textarea, maxChars);        
}

function trimLength(textarea, maxChars) 
{
     if(textarea.value.length <= maxChars) return; 

     textarea.value = textarea.value.substr(0, maxChars) 
}