function up(lstr, evento)
{
    if(evento.keyCode != 37 && evento.keyCode != 39)
        lstr.value = lstr.value.toUpperCase();
}

var currentlyActiveInputRef = false;
var currentlyActiveInputClassName = false;

function highlightActiveInput()
{
	if(currentlyActiveInputRef){
		currentlyActiveInputRef.className = currentlyActiveInputClassName;
	}
	currentlyActiveInputClassName = this.className;
	this.className = 'inputHighlighted';
	currentlyActiveInputRef = this;
}

function blurActiveInput()
{
	this.className = currentlyActiveInputClassName;	
}

function initInputHighlightScript()
{
	var tags = ['INPUT','TEXTAREA'];
	
	for(tagCounter=0;tagCounter<tags.length;tagCounter++){
		var inputs = document.getElementsByTagName(tags[tagCounter]);
		for(var no=0;no<inputs.length;no++){
			if(inputs[no].className && inputs[no].className=='doNotHighlightThisInput')continue;
			
			if(inputs[no].tagName.toLowerCase()=='textarea' || (inputs[no].tagName.toLowerCase()=='input' && inputs[no].type.toLowerCase()=='text')){
				inputs[no].onfocus = highlightActiveInput;
				inputs[no].onblur = blurActiveInput;
			}
		}
	}
}

function ChecaCPF2(strNumber)
{
  var i;
  var c = strNumber.substr(0,9);
  var dv = strNumber.substr(9,2);
  var d1 = 0;
  for (i = 0; i < 9; i++) {  d1 += c.charAt(i)*(10-i); }
  if (d1 == 0) return false;
  d1 = 11 - (d1 % 11);
  if (d1 > 9) d1 = 0;
  if (dv.charAt(0) != d1) { return false; }
  d1 *= 2;
  for (i = 0; i < 9; i++) { d1 += c.charAt(i)*(11-i);}
  d1 = 11 - (d1 % 11);
  if (d1 > 9) d1 = 0;
  if (dv.charAt(1) != d1) { return false; }
  return true;
}


function ChecaCNPJ(pcgc)
{
 if (pcgc == "00000000000000") return false;
 for (i=0;i<=(pcgc.length-1); i++)
  {
   val = pcgc.charAt(i)
   if((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4")&&(val!="5")&&(val!="6")&&(val!="7")&&(val!="8")) 
    { return false; }
  }
	
  m2 = 2
  soma1 = 0
  soma2 = 0
  for (i=11;i>=0;i--)
   {
     val = eval(pcgc.charAt(i))
     m1 = m2
     if  (m2<9) { m2 = m2+1 }
     else       { m2 = 2 }
     soma1 = soma1 + (val * m1)
     soma2 = soma2 + (val * m2)
   }
  soma1 = soma1 % 11

  if (soma1 < 2) { d1 = 0 }
  else   { d1 = 11- soma1 }

  soma2 = (soma2 + (2 * d1)) % 11
  if (soma2 < 2) { d2 = 0 }
  else { d2 = 11- soma2 }

  if ((d1==pcgc.charAt(12)) && (d2==pcgc.charAt(13))) { return true; }
  else  { return false; }
}

function ValidaDocumento (campoValor, campoFoco)
{
alert('Chegou!');
 if (campoValor.value.length != 14 && campoValor.value.length != 11 )
  {
    alert('Número do C.N.P.J. ou C.P.F. está inválido.');
    campoFoco.focus();  campoFoco.select();
    return false;
  }

 if (campoValor.value.length == 14 )
  if(!ChecaCNPJ(campoValor.value) )
   {
    alert('Número do C.N.P.J. está inválido.');
    campoFoco.focus();  campoFoco.select();    
    return false;
   }

 if (campoValor.value.length == 11 )
  if(! ChecaCPF2(campoValor.value) )
   {
    alert('Número do C.P.F. está inválido.');
    campoFoco.focus();  campoFoco.select();
    return false;
   }
 return true;
}

function formataDocumento(campo, tecla)
{
   if (campo.value.length > 14) 
      Formata_CampoOLD(document.forms[0], campo, tecla, '1');
   else 
      Formata_CampoOLD(document.forms[0], campo, tecla, '2');
}

function Formata_CampoOLD(objForm, strField, evtKeyPress, Tipo_campo) 
 {
	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla, sMask, Temp;
	
	if(document.all) { nTecla = evtKeyPress.keyCode; } // Internet Explorer
	else if(document.layers) { nTecla = evtKeyPress.which;}// Nestcape

    if (nTecla == 13) return true;

        sValue = LimpaCampo(strField.value);

        //1 para CNPJ, 2 para CGC, 3 para valor, 4 para CEP
        if (Tipo_campo == "1") sMask = "99.999.999/9999-99"; 
        if (Tipo_campo == "2") sMask = "999.999.999-99";
        if (Tipo_campo == "3")
         {
           bolMask = 0; Temp = "";
           for (i = 0; i <= sValue.length; i ++)
            {
              if ( sValue.charAt(i) != 0) bolMask = 1;
              if (bolMask == 1) Temp = Temp + sValue.charAt(i);
            }
           sValue = Temp;
           if (sValue.length == 0) { sMask = ""; }
	       if (sValue.length == 1) { sMask = ""; }
	       if (sValue.length == 2) { sMask = "9,99"; }
	       if (sValue.length == 3) { sMask = "99,99"; }
	       if (sValue.length == 4) { sMask = "999,99"; }
	       if (sValue.length == 5) { sMask = "9.999,99"; }
	       if (sValue.length == 6) { sMask = "99.999,99"; }
	       if (sValue.length == 7) { sMask = "999.999,99"; }
	       if (sValue.length == 8) { sMask = "9.999.999,99"; }
           if (sValue.length == 9) { sMask = "99.999.999,99"; }	   
         }
        if (Tipo_campo == "4") sMask = "99.999-999"; 
        
        if (Tipo_campo == "5")
        {
           bolMask = 0; Temp = "";
           for (i = 0; i <= sValue.length; i ++)
            {
              if ( sValue.charAt(i) != 0) bolMask = 1;
              if (bolMask == 1) Temp = Temp + sValue.charAt(i);
            }
           sValue = Temp;
           if (sValue.length == 0) { sMask = ""; }
	       if (sValue.length == 1) { sMask = ""; }
	       if (sValue.length == 2) { sMask = "9,9999"; }
	       if (sValue.length == 3) { sMask = "99,9999"; }
	       if (sValue.length == 4) { sMask = "999,9999"; }
	       if (sValue.length == 5) { sMask = "9.999,9999"; }
	       if (sValue.length == 6) { sMask = "99.999,9999"; }
	       if (sValue.length == 7) { sMask = "999.999,9999"; }
	       if (sValue.length == 8) { sMask = "9.999.999,9999"; }
           if (sValue.length == 9) { sMask = "99.999.999,9999"; }	    
        }

	fldLen = sValue.length;
	mskLen = sMask.length;

	i = 0;
	nCount 	= 0;
	sCod 	= "";
	mskLen 	= fldLen;

	while (i <= mskLen)
	  {
	    bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ","))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
		if (bolMask) { sCod += sMask.charAt(i); mskLen++; }
		else { sCod += sValue.charAt(nCount); nCount++; }
		i++;
	  }

    strField.value = sCod;

	if (Tipo_campo == "3") 
	{ 
           if (strField.value.length == 0) { strField.value = "0,0"; }
	   if (strField.value.length == 1) { strField.value = "0," + strField.value; }
	}
	
	if (Tipo_campo == "5") 
	{ 
           if (strField.value.length == 0) { strField.value = "0,000"; }
	   if (strField.value.length == 1) { strField.value = "0,00" + strField.value; }
	   if (strField.value.length == 2) { strField.value = "0,0" + strField.value; }
	   if (strField.value.length == 3) { strField.value = "0,0" + strField.value; }
	}

	if (nTecla != 8) // backspace
	{
	  if (sMask.charAt(i-1) == "9") // apenas números...
	    { return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
	  else // Qualquer caracter
	    { return true; }
	}
	else
	  { return true;}

}


function LimpaCampo(strField)
{
    var Temp;
    Temp = "";
    for (iw=0; iw < strField.length ; iw++)
    {
        if ( (strField.charAt(iw) != ".")  &&
            (strField.charAt(iw) != ",")  &&
            (strField.charAt(iw) != "/")  &&
            (strField.charAt(iw) != "-")  &&
            (strField.charAt(iw) != " ")  )
        {  Temp = Temp + strField.charAt(iw); }
    } 
    return Temp;
}

function FormataCampo(objForm, tipoCampo) 
 {
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla, sMask, Temp;

    sValue = LimpaCampo(objForm.value);

    //1 para CNPJ, 2 para CGC, 3 para valor, 4 para CEP, 5 para valores
    switch(tipoCampo) 
    {
        case 1:
            sMask = "99.999.999/9999-99";
            //utilizado essas submascaras para que possa deletar {porque senão ele fica retirando e colocando o . por exemplo caso utilize o backspace}
            if (sValue.length == 2)  { sMask = "999"; }
            if (sValue.length == 5)  { sMask = "99.9999"; }
            if (sValue.length == 8)  { sMask = "99.999.9999"; }
            if (sValue.length == 12) { sMask = "99.999.999/99999"; }
            break;
        case 2:
            sMask = "999.999.999-99";
            //utilizado essas submascaras para que possa deletar
            if (sValue.length == 3)  { sMask = "9999"; }
            if (sValue.length == 6)  { sMask = "999.9999"; }
            if (sValue.length == 9)  { sMask = "999.999.9999"; }
            break;
        case 3:
            bolMask = 0; Temp = "";
            //retira os zeros a esquerda
            for (i = 0; i <= sValue.length; i ++)
            {
                if ( sValue.charAt(i) != 0) bolMask = 1;
                if (bolMask == 1) Temp = Temp + sValue.charAt(i);
            }
            sValue = Temp;
            if (sValue.length == 0)  sMask =           "0,00";
            if (sValue.length == 1)  sMask =           "0,09";
            if (sValue.length == 2)  sMask =           "0,99";
            if (sValue.length == 3)  sMask =           "9,99";
            if (sValue.length == 4)  sMask =          "99,99";
            if (sValue.length == 5)  sMask =         "999,99";
            if (sValue.length == 6)  sMask =       "9.999,99";
            if (sValue.length == 7)  sMask =      "99.999,99";
            if (sValue.length == 8)  sMask =     "999.999,99";
            if (sValue.length == 9)  sMask =   "9.999.999,99";
            if (sValue.length == 10) sMask =  "99.999.999,99";
            if (sValue.length == 11) sMask = "999.999.999,99";
            break;
        case 4:
            sMask = "99.999-999"
            break;
        case 5:
            bolMask = 0; Temp = "";
            //retira os zeros a esquerda
            for (i = 0; i <= sValue.length; i ++)
            {
                if ( sValue.charAt(i) != 0) bolMask = 1;
                if (bolMask == 1) Temp = Temp + sValue.charAt(i);
            }
            sValue = Temp;
            if (sValue.length == 0)  sMask =               "0";
            if (sValue.length == 1)  sMask =               "9";
            if (sValue.length == 2)  sMask =              "99";
            if (sValue.length == 3)  sMask =             "999";
            if (sValue.length == 4)  sMask =           "9.999";
            if (sValue.length == 5)  sMask =          "99.999";
            if (sValue.length == 6)  sMask =         "999.999";
            if (sValue.length == 7)  sMask =       "9.999.999";
            if (sValue.length == 8)  sMask =      "99.999.999";
            if (sValue.length == 9)  sMask =     "999.999.999";
            if (sValue.length == 10) sMask =   "9.999.999.999";
            if (sValue.length == 11) sMask =  "99.999.999.999";
            if (sValue.length == 12) sMask = "999.999.999.999";
            break;
    }

    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount 	= 0;
    sCod 	= "";
    mskLen 	= fldLen;

    while (i <= mskLen)
    {
        bolMask = ( (sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ",") || 
        (sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " ") || (sMask.charAt(i) == "0") );
        if (bolMask) { sCod += sMask.charAt(i); mskLen++; }
        else { sCod += sValue.charAt(nCount); nCount++; }
        i++;
    }
    objForm.value = sCod;
}

function ChecaDocumento(source, argument)
{
    var i;
	var exp;
    var str = argument.Value.replace(/[.]+/g,'').replace(/[-]+/g,'').replace(/[/]+/g,'');
    
    if (str.length == 11)
    {
        var c = str.substr(0,9);
        var dv = str.substr(9,2);
        var d1 = 0;
		
		exp = /^\d{11}$/;
		
        argument.IsValid = true;
        argument.IsValid = str.match(exp);
        
        for (i = 0; i < 9; i++)
            d1 += c.charAt(i)*(10-i);
        
        if (d1 == 0) argument.IsValid = false;
		
        d1 = 11 - (d1 % 11);
        if (d1 > 9) d1 = 0;
        if (dv.charAt(0) != d1) argument.IsValid = false;
        
        d1 *= 2;
        for (i = 0; i < 9; i++)
            d1 += c.charAt(i)*(11-i);
        d1 = 11 - (d1 % 11);
        if (d1 > 9) d1 = 0;
        if (dv.charAt(1) != d1) argument.IsValid = false;
    }
    else if (str.length == 14)
    {
		exp = /^\d{14}$/;
        argument.IsValid = (str != "00000000000000");
        argument.IsValid = str.match(exp);
		
        m2 = 2
        soma1 = 0
        soma2 = 0
        for (i=11;i>=0;i--)
        {
			val = eval(str.charAt(i))
			m1 = m2
			if  (m2 < 9) { m2 = m2+1 }
			else { m2 = 2 }
			soma1 = soma1 + (val * m1)
			soma2 = soma2 + (val * m2)
        }
        soma1 = soma1 % 11

        if (soma1 < 2) { d1 = 0 }
        else   { d1 = 11- soma1 }

        soma2 = (soma2 + (2 * d1)) % 11
        if (soma2 < 2) { d2 = 0 }
        else { d2 = 11- soma2 }

		argument.IsValid = ((d1==str.charAt(12)) && (d2==str.charAt(13)));
    }
    else
       argument.IsValid = false;
}

function ValidaData(source, arguments)
{
    var exp = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
    
    arguments.IsValid = arguments.Value.match(exp);
    
    if (arguments.IsValid) {
        var dia = (arguments.Value.substring(0,2)); 
        var mes = (arguments.Value.substring(3,5)); 
        var ano = (arguments.Value.substring(6,10)); 
        // verifica se e ano bissexto 
        if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
            arguments.IsValid = false;
        }
    }
}

function ValidaHora(source, arguments) 
{
    var exp=/^([0-1]\d|2[0-3]):[0-5]\d$/;
    arguments.IsValid = arguments.Value.match(exp);
}

function formata(val)
{
	var pass = val.value;
	var expr = /[0123456789]/;

	for(i=0; i<pass.length; i++)
	{
		// charAt -> retorna o caractere posicionado no índice especificado
		var lchar = val.value.charAt(i);
		var nchar = val.value.charAt(i+1);
		
		if(i==0)
		{
			// search -> retorna um valor inteiro, indicando a posição do inicio da primeira
			// ocorrência de expReg dentro de instStr. Se nenhuma ocorrencia for encontrada o método retornara -1
			// instStr.search(expReg);
			if ((lchar.search(expr) != 0) || (lchar>3))
				val.value = "";
		}
		else if(i==1)
		{
			if(lchar.search(expr) != 0)
			{
				// substring(indice1,indice2)
				// indice1, indice2 -> será usado para delimitar a string
				var tst1 = val.value.substring(0,(i));
				val.value = tst1;                
				continue;            
			}
			
			if ((nchar != '/') && (nchar != ''))
			{
				var tst1 = val.value.substring(0, (i)+1);    
				if(nchar.search(expr) != 0) 
				var tst2 = val.value.substring(i+2, pass.length);
				else
				var tst2 = val.value.substring(i+1, pass.length);
				
				val.value = tst1 + '/' + tst2;
			}
		}
		else if(i==4)
		{
			if(lchar.search(expr) != 0)
			{
				var tst1 = val.value.substring(0, (i));
				val.value = tst1;
				continue;            
			}
			
			if    ((nchar != '/') && (nchar != ''))
			{
				var tst1 = val.value.substring(0, (i)+1);
				
				if(nchar.search(expr) != 0) 
					var tst2 = val.value.substring(i+2, pass.length);
				else
					var tst2 = val.value.substring(i+1, pass.length);
					
				val.value = tst1 + '/' + tst2;
			}
		}
		
		if(i>=6)
		{
			if(lchar.search(expr) != 0) 
			{
				var tst1 = val.value.substring(0, (i));
				val.value = tst1;            
			}
		}
	}
	
	if(pass.length>10)
		val.value = val.value.substring(0, 10);
	return true;
}

function formatar2(src, mask)
{
  var i = src.value.length;
  var saida = mask.substring(0,1);
  var texto = mask.substring(i)
    if (texto.substring(0,1) != saida)
    {
       src.value += texto.substring(0,1);
    }
}

function formatar(mascara, documento, e)
{
	var tecla=(window.event)?event.keyCode:e.which;
	if((tecla > 47 && tecla < 58))
	{
		var i = documento.value.length;
		var saida = mascara.substring(0,1);
		var texto = mascara.substring(i);  
		if (texto.substring(0,1) != saida)
		documento.value += texto.substring(0,1);
		return true;
	}
	else
	{
		if(tecla != 8)
			return false;
		else
		{
			var i = documento.value.length;
			var saida = mascara.substring(0,1);
			var texto = mascara.substring(i);  
			if (texto.substring(0,1) != saida)
			documento.value += texto.substring(0,1);
			return true;
		}
	}
}

function GetValidatorByString (e) 
{ 
	tecla = (document.all)?e.keyCode:e.which; 
	if (tecla==8) return true; 
	patron = /[a-zA-ZÑñ1234567890@.-_áéí&oacute;ú;:()+*!"·$%&]/; 
	te = String.fromCharCode(tecla); 
	return patron.test(te);

	//EJEMPLOS: de patrones 
	//patron = /[a-zA-ZÑñ]/; //letras
	//patron = /[a-zA-ZÑñ1234567890@.-_áéí&oacute;ú;:()+*!"·$%& ]/; //caracteres y numeros 
	//patron = /[1234567890]/; //solo numeros 
}

function Floats(obj, e)
{ 
	// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57, ',' = 44
	cadena = obj.value;
	key = (document.all)? e.keyCode:e.which;
	// buscar en la cadena si existe ','
	if (cadena.indexOf(',') == -1 && cadena.length > 0)
		return (key <= 13 || (key >= 48 && key <= 57) || key == 44);
	else
		return (key <= 13 || (key >= 48 && key <= 57));
}

function Limpar(valor, validos)
{
// retira caracteres invalidos da string
	var result = "";
	var aux;
	for (var i=0; i < valor.length; i++)
	{
		aux = validos.indexOf(valor.substring(i, i+1));
		if (aux>=0)
			result += aux;
	}
	return result;
}

//Formata número tipo moeda usando o evento onKeyDown

function formataMoeda(campo,tammax,teclapres,casas) 
{
	var tecla = teclapres.keyCode;
	vr = Limpar(campo.value,"0123456789");
	tam = vr.length;
	dec=casas;
	
	if (tam < tammax && tecla != 8) 
		tam = vr.length + 1;
		
	if (tecla == 8 ) 
		tam = tam - 1;
		
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
	{
		if ( tam <= dec )
			campo.value = vr;
			
		if ( (tam > dec) && (tam <= 5) ) 
			campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam );
		if ( (tam >= 6) && (tam <= 8) ) 
			campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam );
		if ( (tam >= 9) && (tam <= 11) ) 
			campo.value = vr.substr( 0, tam - 8 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam );
		if ( (tam >= 12) && (tam <= 14) )
			campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam );
		if ( (tam >= 15) && (tam <= 17) ) 
			campo.value = vr.substr( 0, tam - 14 ) + "." + vr.substr( tam - 14, 3 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - 2, tam );
	}
}

function Imprime(cartaoSUS, nome, prontuario, dataNascimento, sexo, dataMatricula, municipio)
{
    ComunixZebra1.ImprimeEtiqueta(cartaoSUS, nome, prontuario, dataNascimento, sexo, dataMatricula, municipio);
}

/*-----------------------------------------------------------------------
Máscara para o campo data dd/mm/aaaa hh:mm:ss
Alterado para dd/mm/yyyy hh:mm
Exemplo: <input maxlength="16" name="datahora" onKeyPress="DataHora(event, this)">
-----------------------------------------------------------------------*/
function DataHora(evento, objeto)
{
	var keypress=(window.event)?event.keyCode:evento.which;
	campo = eval (objeto);
	//if (campo.value == '00/00/0000 00:00:00')
	if (campo.value == '00/00/0000 00:00')
	{
		campo.value=""
	}

	caracteres = '0123456789';
	separacao1 = '/';
	separacao2 = ' ';
	separacao3 = ':';
	conjunto1 = 2;
	conjunto2 = 5;
	conjunto3 = 10;
	conjunto4 = 13;
	//conjunto5 = 16;
	if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (19))
	{
		if (campo.value.length == conjunto1 )
		campo.value = campo.value + separacao1;
		else if (campo.value.length == conjunto2)
		campo.value = campo.value + separacao1;
		else if (campo.value.length == conjunto3)
		campo.value = campo.value + separacao2;
		else if (campo.value.length == conjunto4)
		campo.value = campo.value + separacao3;
		//else if (campo.value.length == conjunto5)
		//campo.value = campo.value + separacao3;
	}
	else
		event.returnValue = false;
}

function SomenteNumeros(){
 if (window.event.keyCode >= 48 && window.event.keyCode <= 57)
  return true
 else
  window.event.keyCode = 0;
}
function SomenteCaracter(){
 if (window.event.keyCode >= 97 && window.event.keyCode <= 122)
  return true
 else
  window.event.keyCode = 0;
}

String.prototype.trim = function()
{
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function MostraQuantidade(object, label, caracs)
{ 
    var obj   = eval(object);
    var txt   = new String(obj.value.trim());
    var qtd   = eval(caracs);
    var quant = (qtd - 1 - txt.length);
    if (quant < 0) quant = 0;
    //document.getElementById(botao).disabled = !(quant == 0);
    document.getElementById(label).innerHTML = "Restam: " + quant + " caracteres";
}

function TABEnter(object, event) 
{
    if(event.keyCode == 9) event.keyCode = 13;
}

function EnterAsTab(object, event)
{
    if(event.keyCode == 13) event.keyCode = 9;
}

/* -------------------------------------------------------------------------- */

function LimitaQuantidadeCaracteres(campo, maxCaracteres, maxCaracteresPorLinha, maxLinhas, evt)
{
	var contCaracteres = 0;
	var contCaracteresPorLinha = 0;
	var contLinhas = 0;
	var valido = true;
	
  var e = window.event ? window.event : evt;
	
	for (var i = 0; i < campo.value.length; i++)
	{
		var strChar = campo.value.substring(i, i + 1);

		if (strChar == '\n')
		{
			contLinhas++;
			contCaracteresPorLinha = 0;
		}
		else
		{
			contCaracteres++;
			contCaracteresPorLinha++;
		}
	}

  var k = GetKeyCode(e);

	// valida número de caracteres
	if (maxCaracteres > 0 && contCaracteres >= maxCaracteres)
		valido = false;
			
	// valida número de caracteres por linha
	if (maxCaracteresPorLinha > 0 && k != 13 && contCaracteresPorLinha >= maxCaracteresPorLinha)
			valido = false;
    
  // valida número máximo de linhas
  if (maxLinhas > 0 && k == 13 && contLinhas >= maxLinhas - 1)
		valido = false;

    
	if (!valido)
	{
		if (k == 13 || k >= 32)
			ChangeKeyCode(e, campo, 0);
	}
		
	return valido;
}

function GetKeyCode(e)
{
	if (window.event)
		return e.keyCode;
	else
		return e.which;
}

function ChangeKeyCode(e, field, newKeyCode)
{
	if (window.event)
		e.keyCode = newKeyCode;
	else
	{
    alert("Não implementado");
		e.preventDefault();
	}
}
