﻿//*********************************************************************************************//
//************************** Yamil Vanegas (Xolo S.A.) ****************************************//
//*********************************************************************************************//
//*** Solamente hay que agregar el evento siguiente al TextArea: onfocus="textAreaFocus(this,N);"
//*** Donde N es la cantidad de caracteres a permitir

var sBrowser;
var sVersion;
var longitud;

//Para todos (saber el tipo de navegador)
function setBrowserType() {
    var aBrowFull = new Array("opera", "msie", "netscape", "gecko", "mozilla");
    var aBrowVers = new Array("opera", "msie", "netscape", "rv", "mozilla");
    var aBrowAbrv = new Array("op", "ie", "ns", "mo", "ns");
    var sInfo = navigator.userAgent.toLowerCase();

    sBrowser = "";
    for (var i = 0; i < aBrowFull.length; i++) {
        if ((sBrowser == "") && (sInfo.indexOf(aBrowFull[i]) != -1)) {
            sBrowser = aBrowAbrv[i];
            sVersion = String(parseFloat(sInfo.substr(sInfo.indexOf(aBrowVers[i]) + aBrowVers[i].length + 1)));
        }
    }
}

function textAreaFocus(input, longi) {
    //Conociendo el tipo de navegador
    setBrowserType();
    //Estableciendo longitud
    longitud = longi;

    if (sBrowser == "ie") { //Internet Explorer
        input.onkeypress = keyPressIE;
        input.onkeydown = keyDownIE;
    } else if (sBrowser == "mo") { //Mozilla Firefox
        input.onkeypress = keyPressMO;
    }
}

//Para Internet Explorer
function keyPressIE(evento) {
    if (this.value.length + 1 > longitud) {
        window.event.keyCode = 0;
    }
}

//Para Internet Explorer
function keyDownIE(evento) {
    var whichCode = event.keyCode;
    if (whichCode == 35 || whichCode == 36 || whichCode == 37 || whichCode == 38 || whichCode == 39 || whichCode == 40 || whichCode == 8 || whichCode == 46) { return true; }

    if (this.value.length + 1 > longitud) {
        return false;
    }
    return true;
}

//Para FireFox
function keyPressMO(evento) {
    var key = evento.keyCode;
    if (key == 35 || key == 36 || key == 37 || key == 38 || key == 39 || key == 40 || key == 8 || key == 46) { return true; }

    if (this.value.length + 1 > longitud) {
        return false;
    }
}
