﻿
    /////////////////////////////////////////////
    //////////Coment�rios de atualiza��es////////
    /////////////////////////////////////////////

    // <identificacao_de_manutencao>
    // <data>2009-06-08 19:50:00</data>
    // <atende>n/a</atende>
    // <programador>Caetano\tgoncalves</programador>
    // <solicitante>Atende</solicitante>
    // <nome_da_rotina>LB.Edit.cs</nome_da_rotina>
    // <padrao_especifico>P</padrao_especifico>
    // <manutencao>Inclusao da Function L_OnlyNr que retorna apenas os numeros.</manutencao>
    // </identificacao_de_manutencao>
    
    // <identificacao_de_manutencao>
    // <data>2010-02-09 18:00:00</data>
    // <atende>069655</atende>
    // <programador>PPasternak</programador>
    // <solicitante>Atende</solicitante>
    // <nome_da_rotina>LB.Edit.cs</nome_da_rotina>
    // <padrao_especifico>P</padrao_especifico>
    // <manutencao>Inclusao da Function FormataHora que formata hora e PadLeft para aux�lio.</manutencao>
    // </identificacao_de_manutencao>

   
    /////////////////////////////////////////////
    //////////Fim dos Coment�rios////////////////
    /////////////////////////////////////////////

    
    
    //AutoSkip
    function AutoSkip(ctrl, proxcampo, tamanhomax)
    {
        if ((ctrl.value).length >= tamanhomax) FindElem(proxcampo).focus();
    }

    //ColorLabel
    function ColorLabel(label,aColor)
    {
        if (label != null)
        {
            var AuxElement = LocateElement(label);
            if (AuxElement != null)
                AuxElement.style.color = aColor;
        }
    }   

    //Obrigatorio
    function Obrigatorio(ctrl,label)
    {
      ColorLabel(label,"");
      if ((ctrl.value).length == 0)
      { 
         if (ctrl.readOnly == false) 
            FindElem(ctrl.id).focus();
            ColorLabel(label,"red");
         return true;
      } 
      return false;
    }
    
    function L_OnlyNrAux(value, ValorAdicional)
    {
        var AuxValor = "";
        var i = 0;
        var aux ;
        while (i < value.length)
        {
            aux = value.charAt(i);
            if (("0" <= aux && aux <= "9") || ValorAdicional == aux)
            {
               AuxValor = AuxValor + aux;
            }
            i++;
        }
        return AuxValor;
    }   

    function L_OnlyNrDT(value)
    {
        return L_OnlyNrAux(value,"/");
    }
    
    function L_OnlyNr(value)
    {
        return L_OnlyNrAux(value,"");
    }

    function ObrigatorioCB(ctrl,label)
    {
      ColorLabel(label,"");
      if (ctrl.value=="-1")
      { 
       if (ctrl.readOnly != true) 
         FindElem(ctrl.id).focus();
         ColorLabel(label,"red");
       return true;
      } 
       return false;
    }

    //SkipTab
    function SkipTab(event)
    {
      if (event.keyCode == 13)
        event.keyCode = 9;
    }    

//AutoSkipTab
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function AutoSkipTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,13,16,17,18,37,38,39,40,46];
var Campo = 1;
if(((input.value.length >= len) && (!containsElement(filter,keyCode))) || (input.getAttribute("READONLY"))){
input.value = input.value.slice(0, len);
while((input.form[(getIndex(input)+Campo) % input.form.length].getAttribute("READONLY")) &&
     ((input.form[(getIndex(input)+Campo) % input.form.length] != null)&&(input.form[(getIndex(input)+Campo) % input.form.length].type != "hidden" )))
      {
   Campo = Campo+1;
}
if((input.form[(getIndex(input)+Campo) % input.form.length] != null)&&(input.form[(getIndex(input)+Campo) % input.form.length].type != "hidden" ))
input.form[(getIndex(input)+Campo) % input.form.length].focus();
if((input.form[(getIndex(input)+Campo) % input.form.length] != null)&&(input.form[(getIndex(input)+Campo) % input.form.length].type != "hidden" )&&(input.form[(getIndex(input)+Campo) % input.form.length].type == "text"))
input.form[(getIndex(input)+Campo) % input.form.length].select();
}
//containsElement
function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
//getIndex
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}
return true;
}
//AutoSkipEnter
function AutoSkipEnter(ctrl, proxcampo)
{
  if (event.keyCode == 13)
    return AutoSkip(ctrl, proxcampo, 0 );
  else return true;
}
function isNumber(keyCode)
{
  if (keyCode < 48 || keyCode > 57)
    return false
  else
    return true;
}

function L_Repl(ss_string,ss_tam)
{
  var ret = "";
  for( var i = 0; i < ss_tam; i++ )
    ret += "0";
  return ret
}

function L_StrToStrZ( ss_string, ss_tam )
{
  var ret = ""; var ss_string2
  ss_string2  = L_OnlyNr(ss_string);
  ret = ss_string2;
  if (ss_string2.length > 0 ) 
  {
    if (ss_string2.length < ss_tam)
      ret = L_Repl( "0",ss_tam - ss_string2.length) + ss_string2;
  }
  return ret;
}

function FormataMask(ctrl, event, mask)
{
 var charmask = mask.charAt(ctrl.value.length);
 var keyChar = String.fromCharCode(event.keyCode);
 // faz verifica��o se � para colocar mascara
 if ((keyChar.toUpperCase() != charmask) && ('9Aa'.indexOf(charmask) == -1))
 {
   if (mask.charAt(ctrl.value.length+1) == '9')
   {
     if (isNumber(event.keyCode))
       ctrl.value = ctrl.value + charmask
     else
       event.returnValue = false;
   }
   else
   {
     ctrl.value = ctrl.value + charmask;
   }
 }
 else
 {
 if (charmask == '9')
   event.returnValue = (isNumber(event.keyCode))
 else
   event.returnValue = true;
 }
}


function ObtemValorSemMask(pConteudo, pMascara)
{
    var conteudo = "";
    var mascara = "";
    var retFormatado = "";
    var cont = pMascara.length;
    var contConteudo = 0;
    
    for (var i = 0; i < cont; i++ )
    {
        //Caso o conteudo seja um valor maior que o tamanho da m�scara
        if(i >= pMascara.length)
        {
            return retFormatado;
        }
        else
        {
            conteudo = pConteudo.charAt(contConteudo);
            mascara = pMascara.charAt(i);

            if (('9Aa'.indexOf(mascara) == -1) && (conteudo.toUpperCase() == mascara))
            {
                contConteudo++;
            }
            if (('Aa'.indexOf(mascara) > -1) || (mascara == "9" &&  "0" <= conteudo && conteudo <= "9"))
            {
                retFormatado = retFormatado + conteudo;
                contConteudo++;
            }
        }
    }
    return retFormatado;
}

function AplicaMask(pConteudo, pMascara)
{
    pConteudo = ObtemValorSemMask(pConteudo, pMascara);
    var conteudo = "";
    var mascara = "";
    var retFormatado = "";
    var cont = pConteudo.length;
    var contConteudo = 0;
    
    for (var i = 0; i < cont; i++ )
    {
        //Caso o conteudo seja um valor maior que o tamanho da m�scara
        if(i >= pMascara.length)
            return retFormatado;
        else
        {
            conteudo = pConteudo.charAt(contConteudo);
            mascara = pMascara.charAt(i);

            //Se corresponde a m�scara e o conteudo tem um valor diferente.
            if (('9Aa'.indexOf(mascara) == -1) && (conteudo.toUpperCase() != mascara))
            {
                retFormatado = retFormatado + mascara;
                cont++;
            }
            else
            {
                retFormatado = retFormatado + conteudo;
                contConteudo++;
            }
        }
    }
    return retFormatado;
}


function FiOnExit_(TextoBranco, OldValue, HTMLName, Validar)
{
  if (window.document.activeElement != null)
  {
    if (window.document.activeElement.name != HTMLName)
    {
      if ((FindElem(HTMLName).ultimocampo == "S") | (window.document.activeElement.criticarsaida != "N")) 
      {
        if (TextoBranco == "S")
        { 
          if (FindElem(HTMLName).value != "")
            if (OldValue == "-=+87u*")
               SubmitClick(HTMLName, 'eventonexit', Validar)
            else if (OldValue != FindElem(HTMLName).value)
               SubmitClick(HTMLName, 'eventonexit', Validar)
        } 
        else 
        {
          if (OldValue == "-=+87u*")
             SubmitClick(HTMLName, 'eventonexit', Validar)
          else if (OldValue != FindElem(HTMLName).value)
             SubmitClick(HTMLName, 'eventonexit', Validar)
        }
      }
    }
  }
}

function FormataLowCase(ctrl, event)
{
   var keyChar = String.fromCharCode(event.keyCode).toLowerCase();
   event.keyCode = keyChar.charCodeAt(0);
}

function FormataUpperCase(ctrl, event)
{
   var keyChar = String.fromCharCode(event.keyCode).toUpperCase();
   event.keyCode = keyChar.charCodeAt(0);
}

function FormataNumber(ctrl, event)
 {
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 45)) event.returnValue = false;
  if (event.keyCode == 45)
       event.returnValue = (ctrl.value == ''); 
}

function FormataFloat(ctrl, event, precision, maxlength)
{
   maxlength = typeof(maxlength) != 'undefined' ? maxlength: -1;
   if(precision > maxlength - 2)
   {
        maxlength = -1;
   }
   
   if (event.keyCode == 46)
      event.keyCode = 44;
   if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 44)) event.returnValue = false;
   if (event.keyCode == 44)
   {
     if (ctrl.value.indexOf(",") != -1) event.returnValue = false;
   }
   //Verifica se a fun��o foi chamada com o parametro maxlengh definido    
   if(maxlength != -1 )
   {
        var pos = ctrl.value.indexOf(",");
       
        if ((ctrl.value.length + 1 > (maxlength - precision - 1)) && (event.keyCode != 44 ))
        {
            if (!(pos >= 0))
            {
               event.returnValue = false;
            }
        }
   }
}

function FormataNumero( num, precision, maxlength ) 
{
    maxlength = typeof(maxlength) != 'undefined' ? maxlength: -1;
    if(precision > maxlength - 2)
    {
        maxlength = -1;
    }
 
    if (num == "")
        return num;
	// Elimina os Pontos na String			
	while (num.indexOf(".") >= 0)
	{             
        num = num.replace(".","");
	} 
	num = "" + num;	// Numero no Formato "0,00"  
  		
  	// Se for um numero negativo 
  	var neg = false;				// Numero Negativo (s/N); 
	if( num.charAt(0) == "-" ) 
	{
		neg = true;
  		num = num.substring(1); 
	}
  		
  	// Divide o Numero em 2 Strings, quebrando pela virgula 
	var parteInteira = "";			// Parte a Esquerda da virgula 
	var parteDecimal = "";			// Parte a Direita da virgula 	
	var pos = num.indexOf(",");	    // Posi��o da Virgula 

     //Verifica se a fun��o foi chamada com o parametro maxlengh definido  
    if( maxlength != -1)
    {
	    if( pos >= 0 ) 
	    {
	        if(pos > maxlength)
	        {
	            pos = maxlength;
	        }
    	    	    
		    parteInteira = num.substring( 0, pos );
		    parteDecimal = num.substring( pos + 1 );
    		    		
		    if( parteInteira.length > maxlength - precision - 1)
		    {
		        var aux = parteInteira + parteDecimal;
		        pos = maxlength - precision - 1;
    		    
		        parteInteira = aux.substring( 0, pos );
		        parteDecimal = aux.substring( pos );
		    }
	    } 
	    else 
	    {       if(num.length >= maxlength - precision - 1)
        	    {
	                parteInteira = num.substring( 0, maxlength - precision - 1 );
		            parteDecimal = num.substring(maxlength - precision - 1);
        	    }
        	    else
        	    {	    
        	        parteInteira = num;
        	    } 
	    } 
	}
	else
    {
        if( pos >= 0 ) 
        {
            parteInteira = num.substring( 0, pos );
            parteDecimal = num.substring( pos+1 );
        } 
        else 
        { 
            parteInteira = num; 
        } 
    }
	
  	// Ajusta no numero de casas decimais 
	if( parteDecimal.length > precision ) 
	{
		parteDecimal = parteDecimal.substring( 0, precision );
  	} 
  	else if (parteDecimal.length < precision) 
  	{ 
		var diff = precision - parteDecimal.length;
  		for (var i = 0; i < diff; i++ ) 
  		    parteDecimal += "0"; 
	}
  		
	if( parteInteira == "" ) 
	{
		parteInteira = "0";
	}
  	 
	if( parteDecimal.length > 0 ) 
	{
		parteDecimal = "," + parteDecimal;
	}
	var resp = ( neg ? "-" : "" ) + parteInteira + parteDecimal;
	return resp;
}
	 
//removezero
function RemoveZero( num ) 
{
	var resp = "";
	var numeroComecou = false;
  		var c; 
	for( var i = 0; i < num.length; i++ ) 
	{
  		c = num.charAt(i); 
		if( c == "0" && !numeroComecou ) 
		{
			// ignorar...
  		} 
  		else 
  		{ 
			if( c > "0" && c <= "9" ) 
			{
				numeroComecou = true;
			}
			resp += c;
		}
	}
  	if( resp == "" ) resp = "0"; 
	return resp;
} 


function chpsq(obj)
{
    if (typeof(obj.fiPesquisa) != "undefined")
    {
		if (obj.fiPesquisa == true)
		{
			obj.fiPesquisa == false;
			var onchanre = obj.onchange;
			if (onchanre != null)
			   onchanre.call();
		}
	}
}

auxMes = "";

function FIAlertAux() { 
    if(typeof(Sys) !== 'undefined')
        Sys.Application.remove_load(FIAlertAux); 
    window.alert(auxMes); 
    auxMes = "";
}

function FIAlert(pMensagem) 
{ 
    auxMes = pMensagem;
    if(typeof(Sys) !== 'undefined')
        Sys.Application.add_load(FIAlertAux);
    else 
        FIAlertAux();
}

function FormataHora(pConteudo, pMascara)
{
    arrHora = AplicaMask(L_StrToStrZ(L_OnlyNr(pConteudo), 4), pMascara).split(":");
    
    if (arrHora.length != 2)
        return pConteudo;
   
    var auxHr = new Number(arrHora[0]);
    var auxMin = new Number(arrHora[1]);        
    
    while (auxMin >= 60)
    {
        auxHr = auxHr + 1;
        auxMin = auxMin - 60;
    }
    
    if (auxHr > 99)
    {
        auxHr = 99;
        auxMin = 59;
    }
   
    return PadLeft(auxHr.toString(), "0", 2) + ":" + PadLeft(auxMin.toString(), "0", 2);
}
    
function PadLeft(pStr, pChar, pTam) 
{
    while(pStr.length < pTam)
        pStr = pChar + pStr;
    return pStr;
}