var vbCr = "\r";
var vbLf = "\n";
var vbCrLf = vbCr+vbLf;
var vbTab = "\t";

function Left(s, n){
	// Devuelve los n primeros caracteres de la cadena
	if(n>s.length)
		n=s.length;
		
	return s.substring(0, n);
}
function Right(s, n){
	// Devuelve los n últimos caracteres de la cadena
	var t=s.length;
	if(n>t)
		n=t;
		
	return s.substring(t-n, t);
}
function Mid(s, n, c){
	// Devuelve una cadena desde la posición n, con c caracteres
	// Si c = 0 devolver toda la cadena desde la posición n
	
	var numargs=Mid.arguments.length;
	
	// Si sólo se pasan los dos primeros argumentos
	if(numargs<3)
		c=s.length-n+1;
		
	if(c<1)
		c=s.length-n+1;
	if(n+c >s.length)
		c=s.length-n+1;
	if(n>s.length)
		return "";
		
	return s.substring(n-1,n+c-1);
}
function LTrim(s){
	// Devuelve una cadena sin los espacios del principio
	var i=0;
	var j=0;
	
	// Busca el primer caracter <> de un espacio
	for(i=0; i<=s.length-1; i++)
		if(s.substring(i,i+1) != ' '){
			j=i;
			break;
		}
	return s.substring(j, s.length);
}
function RTrim(s){
	// Quita los espacios en blanco del final de la cadena
	var j=0;
	
	// Busca el último caracter <> de un espacio
	for(var i=s.length-1; i>-1; i--)
		if(s.substring(i,i+1) != ' '){
			j=i;
			break;
		}
	return s.substring(0, j+1);
}
function Trim(s){
	// Quita los espacios del principio y del final
	return LTrim(RTrim(s));
}
function InStr(n, s1, s2){
	// Devuelve la posición de la primera ocurrencia de s2 en s1
	// Si se especifica n, se empezará a comprobar desde esa posición
	// Sino se especifica, los dos parámetros serán las cadenas
	var numargs=InStr.arguments.length;
	
	if(numargs<3)
		return n.indexOf(s1)+1;
	else
		return s1.indexOf(s2, n)+1;
}
function RInStr(n, s1, s2){
	// Devuelve la posición de la última ocurrencia de s2 en s1
	// Si se especifica n, se empezará a comprobar desde esa posición
	// Sino se especifica, los dos parámetros serán las cadenas
	var numargs=RInStr.arguments.length;
	
	if(numargs<3)
		return n.lastIndexOf(s1)+1;
	else
		return s1.lastIndexOf(s2, n)+1;
}
function Space(n){
	// Devuelve una cadena con n espacios
	var t="";
	
	for(var i=1; i<=n; i++)
		t=t+" ";
	
	return t;
}
function jString(n, c){
	// Devuelve n veces el caracter c
	var t="";
	
	for(var i=1; i<=n; i++)
		t=t+c;
	return t;
}
function UCase(s){
	// Devuelve la cadena convertida a mayúsculas
	return s.toUpperCase();
}
function LCase(s){
	// Devuelve la cadena convertida en minúsculas
	return s.toLowerCase();
}
function Len(s){
	// Devuelve la longitud de la cadena s
	return s.length;
}
function StrReverse(s){
	// Invierte la cadena
	var i=s.length;
	var t="";
	
	while(i>-1){
		t=t+ s.substring(i,i+1);
		i--;
	}
	return t;
}
//retorna os valores selecionados em um select multiple
function getMultiple(obejto)
	{
	selecionados = new String();
	for (i = 0; i < obejto.options.length; i++)
		{
		if (obejto.options[i].selected)
			{
			selecionados = selecionados +"," + obejto.options[i].value;
			}
		}
	selecionados = Right(selecionados,Len(selecionados)-1)
	return selecionados
	}
	
function formatnumber(strValue)
{
	strValue = strValue.toString().replace(/\$|\,/g,'');
	dblValue = parseFloat(strValue);

	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+'.'+
		dblValue.substring(dblValue.length-(4*i+3));
	return (((blnSign)?'':'-') + dblValue + ',' + strCents);
}


//funcao para limitar caracteres
function progreso_tecla(obj,max,ancho,progreso)
	{
	if (obj.value.length <= max) 
		{
		progreso.style.backgroundImage = "url(/admin/img/textarea.png)";    
		progreso.style.color = "#ffffff";
		var pos = ancho-parseInt((ancho*parseInt(obj.value.length))/max);
		progreso.style.backgroundPosition = "-"+pos+"px 0px";
		conteudo_textarea = obj.value	
		}
	else
		{
		retorna_mensagem("A quantidade máxima de caracteres foi atingia.")
		}
	progreso.style.border = "1px solid #ffffff"
	obj.value = conteudo_textarea
	progreso.innerHTML = "("+obj.value.length+" / "+max+")";
	}


//função para retornar apenas numeros
function apenasnumero(evtKeyPress)
	{
	var nTecla;
	nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;
	if(nTecla > 47 && nTecla < 58 || (nTecla == 8 || nTecla == 9 || nTecla == 37 || nTecla == 38 || nTecla == 39 || nTecla == 40 || nTecla == 46))
		return true;
	else
		return false;
	}
	
	
//Função para formatar campo currency
function formatar_moeda(campo, separador_milhar, separador_decimal, tecla) {
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? tecla.which : tecla.keyCode;

	if(whichCode == 8 || whichCode == 9 || whichCode == 37 || whichCode == 38 || whichCode == 39 || whichCode == 40 || whichCode == 46)
		{
		return true;
		}
	else
		{
		key = String.fromCharCode(whichCode); // Pegando o valor digitado
		if (strCheck.indexOf(key) == -1) return false; // Valor inválido (não inteiro)
		len = campo.value.length;
		for(i = 0; i < len; i++)
		if ((campo.value.charAt(i) != '0') && (campo.value.charAt(i) != separador_decimal)) break;
		aux = '';
		for(; i < len; i++)
		if (strCheck.indexOf(campo.value.charAt(i))!=-1) aux += campo.value.charAt(i);
		aux += key;
		len = aux.length;
		if (len == 0) campo.value = '';
		if (len == 1) campo.value = '0'+ separador_decimal + '0' + aux;
		if (len == 2) campo.value = '0'+ separador_decimal + aux;

		if (len > 2) {
			aux2 = '';

			for (j = 0, i = len - 3; i >= 0; i--) {
				if (j == 3) {
					aux2 += separador_milhar;
					j = 0;
				}
				aux2 += aux.charAt(i);
				j++;
			}

			campo.value = '';
			len2 = aux2.length;
			for (i = len2 - 1; i >= 0; i--)
			campo.value += aux2.charAt(i);
			campo.value += separador_decimal + aux.substr(len - 2, len);
		}

		return false;
	}
}

//funcao para checar CPF e CNPJ
function ChecaCPF(field) {

  var cpf='', cgc='', digito='', digitoc='', temp='', k=0; i=0, j=0, soma=0, mt=0, dg='';
 if (field.value=='') return false; else cpf = field.value;

  if (((cpf.length > 13) && (cpf.length < 19)) && (cpf.substring(3,4) !='.')){
  if (cpf.length == 18) {
     temp = cpf.substring(0,2) + cpf.substring(3,6) + cpf.substring(7,10) + cpf.substring(11,15) + cpf.substring(16,18);
  }
  if (cpf.length == 16) {
     temp = cpf.substring(0,2) + cpf.substring(2,5) + cpf.substring(5,8) + cpf.substring(9,13) + cpf.substring(14,16);
  }
  if (cpf.length == 15 && cpf.substring(12,13) == '-') {
     temp = cpf.substring(0,2) + cpf.substring(2,5) + cpf.substring(5,8) + cpf.substring(8,12) + cpf.substring(13,15);
  }
  if (cpf.length == 15 && cpf.substring(8,9) == '/') {
     temp = cpf.substring(0,2) + cpf.substring(2,5) + cpf.substring(5,8) + cpf.substring(9,13) + cpf.substring(13,15);
  }
  if (cpf.length == 14) {
     temp = cpf.substring(0,2) + cpf.substring(2,5) + cpf.substring(5,8) + cpf.substring(8,12) + cpf.substring(12,14);
  }
	  cgc = temp.substring(0,12);
	  digito = temp.substring(12,14);
   	  mult = '543298765432';
	  for (j = 1; j <= 2; j++) {
	    soma = 0;
	    for (i = 0; i <= 11; i++) {
	      k = i + 1;
	      soma += parseInt((cgc.substring(i,k)) * (mult.substring(i,k)));
	    }

	      if (j == 2){
			soma = soma + (2 * digitoc);
	      }
	      digitoc = ((soma * 10) % 11);
	      if (digitoc == 10){
			digitoc = 0;
	      }
	     dg +=digitoc;
      	     mult = '654329876543';
	  }
	  if (dg != digito || TudoIgual(field)) {
	    return "cnpj";
	    } 
	  else {
	    field.value=temp.substring(0,2)+'.'+temp.substring(2,5)+'.'+temp.substring(5,8)+'/'+temp.substring(8,12)+'-'+temp.substring(12,14);

	    return true;
	  }

  }
  else {
  if (cpf.length < 11 || cpf.length > 14 || cpf.length == 13) {
	    return "cpf";
  }
  if (cpf.length == 11) {
     temp = cpf.substring(0,3) + cpf.substring(3,6) + cpf.substring(6,9) + cpf.substring(9,11);
  }
  if (cpf.length == 12) {
     temp = cpf.substring(0,3) + cpf.substring(3,6) + cpf.substring(6,9) + cpf.substring(10,12);
  } 
  if (cpf.length == 14) {
     temp = cpf.substring(0,3) + cpf.substring(4,7) + cpf.substring(8,11) + cpf.substring(12,15);
  }
	  cpf = temp.substring(0,9);
	  digito = temp.substring(9,11);
	  for (j = 1; j <= 2; j++) {
	    soma = 0;
	    mt = 2;
	    for (i = 8 + j; i >= 1; i--) {
	      soma += parseInt(cpf.charAt(i-1),10) * mt;
	      mt++;
	    }
	    dg = 11 - (soma % 11);
	    if (dg > 9) {dg = 0};
	    cpf += dg;
	  }

	  if (digito != cpf.substring(9,11) || TudoIgual(field)) {
	    return "cpf";
	    } 
	  else {
	    field.value=cpf.substring(0,3)+'.'+cpf.substring(3,6)+'.'+cpf.substring(6,9)+'-'+cpf.substring(9,11);
	    return true;
	  }
  } 

}

function TudoIgual(field) {
  var str = field.value, primeiro='';
  for(i = 0; i < str.length; i++)
    if (str.charAt(i)>='0' && str.charAt(i)<='9')
      if (primeiro=='') primeiro = str.charAt(i);
      else if (str.charAt(i) != primeiro) return 0;
  return 1;
}


// Formata o CPF
function FormatarCEP(objCampo,tecla)
    {
    var qtd = objCampo.value.length
	if (TeclaPress(tecla) != 8  && TeclaPress(tecla) != 37 && TeclaPress(tecla) != 38 && TeclaPress(tecla) != 39 && TeclaPress(tecla) != 40 && TeclaPress(tecla) != 46)
		{
		if (qtd == 5)
			{
			objCampo.value = objCampo.value + "-"
			}
		}
    }
    
// Formata o telefone
function FormatarTelefone(objCampo,tecla)
    {
    var qtd = objCampo.value.length
    if (TeclaPress(tecla) != 8  && TeclaPress(tecla) != 37 && TeclaPress(tecla) != 38 && TeclaPress(tecla) != 39 && TeclaPress(tecla) != 40 && TeclaPress(tecla) != 46)
		{
		if (qtd == 1)
			{
			objCampo.value = "(" + objCampo.value
			}
		if (qtd == 3)
			{
			objCampo.value = objCampo.value + ")"
			}
		if (qtd == 3)
			{
			objCampo.value = objCampo.value + " "
			}
		if (qtd == 9)
			{
			objCampo.value = objCampo.value + "-"
			}
		}
    }
    
//funcao para validar sintaxe do email
function VerificaEmail(objCampo)
	{
	var email = objCampo.value;
	var ultpos = (email.length - 1);
	if ((email.charAt(0) == "@")
		 || (email.charAt(0) == ".")
		 || (email.charAt(ultpos) == "@")
		 || (email.charAt(ultpos) == ".")
		 || (email.indexOf("@") == -1)
		 || (email.indexOf(".") == -1)
		 || (email.indexOf("@.") != -1))
		{
		return "incorreto";
		}
	}
	
function TeclaPress(evtKeyPress)
	{
	var nTecla;
	nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;
	return nTecla;
    }

function TrocaCampo(de, qtd, para) 
    {
    if (de.value.length >= qtd) 
        {
        para.focus()
        }
    }

function ReplaceAll(strText, oque, pelo_que) {
    var strReplaceAll = strText;
    var intIndexOfMatch = strReplaceAll.indexOf(oque);


    // Loop over the string value replacing out each matching
    // substring.
    while (intIndexOfMatch != -1) {
        // Relace out the current instance.
        strReplaceAll = strReplaceAll.replace(oque, pelo_que)


        // Get the index of any next matching substring.
        intIndexOfMatch = strReplaceAll.indexOf(oque);
    }


    return strReplaceAll;
}