var digits = "0123456789";
var blanks = " \t\n\r";  // aka whitespace chars
// decimal point character differs by language and culture
var decimalPointDelimiter = "."
// Returns true if string s is empty
function isEmpty(s) {return ((s == null) || (s.length == 0) || (s == ""));}
// Returns true if string s is empty or all blank chars
function isBlank(s) { var i;
  if (isEmpty(s))
    return true;
  for (i=0; i<s.length; i++)
    { var c = s.charAt(i);
      if (blanks.indexOf(c) == -1) 
        return false;
    }
  return true;
}
function consultaCep()
{
	window.open('http://www.correios.com.br/servicos/cep/cep_default.cfm','ShowCep','location=no,resize=yes, width=730,height=400,left=18,top=18,maximized=0,scrollbars=1');
}
function paginaIS()
{
	window.open('http://www.internetsolucoes.com.br','byis','location=no,resize=yes, width=790,height=590,left=0,top=0,maximized=0,scrollbars=1');
}
function submeter(formulario,cmd)
{
	formulario.cmd.value=cmd; 
	formulario.submit();
}
// Returns true if character c is an English letter (A .. Z, a..z)
function isLetter(c) {return (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")));}
// Returns true if character c is a digit (0 .. 9)
function isDigit(c)  {return ((c >= "0") && (c <= "9"));}
function isMoeda(s) {
  if (isBlank(s))
    return false;
  if (s==0,00)
    return false;
  var i = 0;
  for (i; i<s.length; i++)
  { var c = s.charAt(i);
    if (!isDigit(c) && c != ',' && c != '.')
      return false;
  }
  return true;
}
function isInteger(s)
  {
  if (isBlank(s))
    return false;
  for (i=0; i<s.length; i++)
  { var c = s.charAt(i);
    if (!isDigit(c)) 
      return false;
  }
  return true;
}
function isIntegerIsbn(s)
  {
  if (isBlank(s))
    return false;
  //if (s.length < 13)
//    return false;
  for (i=0; i<s.length; i++)
  { var c = s.charAt(i);
    if (i == (s.length-1) && c != 'x' && c != 'X' && c != '-')
      if (!isDigit(c))
        return false;
  }
  return true;
}
// Returns true if string s is English letters (A .. Z, a..z) only
function isAlphabetic(s)
  {var i;
  if (isBlank(s)) 
     return false;
  for (i = 0; i < s.length; i++)
  { var c = s.charAt(i);
  if (!isLetter(c))
    return false;
  }
  return true;
}
// Returns true if string s is file name
function isNomeImagem(s)
{ 
    if (isBlank(s)) 
       return false;
	for (i=0; i<s.length; i++)
  	{ 
  		var c = s.charAt(i);
      	if (c == ' ') 
    		return false;
    	else
    	if (c == '.' || c == '-' || c == '_' || isAlphanumeric(c))
    		continue;
    	else
    		return false;
    	    	
	}
  return true;
}
// Returns true if string s is file name
function isExtensao(s)
{ 
  if (isBlank(s)) 
     return false;
  var pos1 = 0;
  var pos2 = 0;
  pos1 = s.toUpperCase().indexOf(".GIF");
  pos2 = s.toUpperCase().indexOf(".JPG");
  pos3 = s.toUpperCase().indexOf(".BMP");
  if (pos1 == -1 && pos2 == -1 && pos3 == -1)
	return false;
  return true;
}
// Returns true if string s is English letters (A .. Z, a..z) and numbers only
function isAlphanumeric(s)
  { var i;
  if (isBlank(s)) 
     return false;
  for (i = 0; i < s.length; i++)
  { var c = s.charAt(i);
    if (! (isLetter(c) || isDigit(c) ) )
    return false;
  }
  return true;
}
function isNome(s,tam)
{ // verifica se existe pelo menos um branco nos 32 primeiros bytes
	var qtd = 0;
	for (i=0; i<s.length; i++)
  	{ 
  		var c = s.charAt(i);
  	  	qtd++;
      	if (c == ' ') 
      	{ 
      		qtd = 0;
        	if (qtd>tam)
      			return false;
      	}	
  		if (qtd>tam)
  			return false;
	}
	return true;
}
function retirarMascara(s)
{
	var v='';
	for (i=0; i<s.length; i++)
  	{ 
  		var c = s.charAt(i);
	    if (isDigit(c))
	    	v = v + c;
	    else
	    if (c==',')
	    	return v;	
	}
	return v;
}
// Função de validação de emails
function isEmail(emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*\\.?$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null || matchArray=="") {
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null || user.match(userPat)=="") {
		return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null && IPArray!="") {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
			return false
			}
		}
		return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null || domainArray=="") {
		return false
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>3) {
	   return false
	}
	if (len<2) {
	   return false
	}
	return true;
}
//Valida o CPF 
function val_CPF(numero)
{
	var num_aux='';
	for ( i=0 ; i < 14 ; i++)
	{
		if (isDigit(numero.substring(i, i+1)))
		num_aux = num_aux + numero.substring(i, i+1);
	}
	numero = num_aux;

	dig_1 = 0;
	dig_2 = 0;
	controle_1 = 10;
	controle_2 = 11;
	lsucesso = 1;
	if (numero.length != 11) {return false;}
	else
	{  for ( i=0 ; i < 9 ; i++)
		{
			dig_1 = dig_1 + parseInt(numero.substring(i, i+1) * controle_1);
			controle_1 = controle_1 - 1;
		}
		resto = dig_1 % 11;
		dig_1 = 11 - resto;
		if ((resto == 0) || (resto == 1)) {	dig_1 = 0;	}
		for ( i=0 ; i < 9 ; i++)
		{
			dig_2 = dig_2 + parseInt(numero.substring(i, i + 1) * controle_2);
			controle_2 = controle_2 - 1;
		}
		dig_2 = dig_2 + 2 * dig_1;
		resto = dig_2 % 11;
		dig_2 = 11 - resto;
		if ((resto == 0) || (resto == 1)) {	dig_2 = 0;	}
		dig_ver = (dig_1 * 10) + dig_2;
		if (dig_ver != parseFloat(numero.substring(numero.length-2,numero.length)))
		{return false;}
	}
	return true;
}
// Valida o Cnpj
function isNUMB(c)
	{
	if((cx=c.indexOf(","))!=-1)	{c = c.substring(0,cx)+"."+c.substring(cx+1);}
	if((parseFloat(c) / c != 1))
	{ if(parseFloat(c) * c == 0)	{return(1);	}
		  else {return(0);	}
	}
	else
	{return(1);	}
	}
function LIMP(c)
	{while((cx=c.indexOf("-"))!=-1) {c = c.substring(0,cx)+c.substring(cx+1);}
  	 while((cx=c.indexOf("/"))!=-1)  {c = c.substring(0,cx)+c.substring(cx+1);}
	 while((cx=c.indexOf(","))!=-1)  {c = c.substring(0,cx)+c.substring(cx+1);}
	 while((cx=c.indexOf("."))!=-1)  {c = c.substring(0,cx)+c.substring(cx+1);}
	 while((cx=c.indexOf("("))!=-1) 	{c = c.substring(0,cx)+c.substring(cx+1);}
	 while((cx=c.indexOf(")"))!=-1)  {c = c.substring(0,cx)+c.substring(cx+1);}
	 while((cx=c.indexOf(" "))!=-1)  {c = c.substring(0,cx)+c.substring(cx+1);}
	 return(c);
	}
function val_CNPJ(CNPJ)
{
	var num_aux='';
	for ( i=0 ; i < 18 ; i++)
	{
		if (isDigit(CNPJ.substring(i, i+1)))
		num_aux = num_aux + CNPJ.substring(i, i+1);
	}
	CNPJ = num_aux;
	
	CNPJ = LIMP(CNPJ);
	if(isNUMB(CNPJ) != 1) {return(0);}
	else
	{ if(CNPJ == 0)	{return(0);}
  	  else
	  {
		g=CNPJ.length-2;
		if(RealTestaCNPJ(CNPJ,g) == 1) 
		{
			g=CNPJ.length-1;
			if(RealTestaCNPJ(CNPJ,g) == 1)	{return(1);}
			else
			{return(0);}
		}
		else
		{return(0);}
	  }
	}
}
function RealTestaCNPJ(CNPJ,g)
{
	var VerCNPJ=0;
	var ind=2;
	var tam;
	for(f=g;f>0;f--)
	{
		VerCNPJ+=parseInt(CNPJ.charAt(f-1))*ind;
		if(ind>8) {ind=2;}
		else
		{ind++;}
	}
	VerCNPJ%=11;
	if(VerCNPJ==0 || VerCNPJ==1) {VerCNPJ=0;}
	else
	{VerCNPJ=11-VerCNPJ;}
	if(VerCNPJ!=parseInt(CNPJ.charAt(g)))	{return(0);}
	else
	{return(1);}
}
function retirarCaminho(caminho,campo)
{
	pos = caminho.lastIndexOf('\\');
	pos++;
	caminho = caminho.substr(pos);
	campo.value = caminho;
}
function textoBoxFormat(objForm, strField, sMask, evtKeyPress) {
	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

	if(document.all) { // Internet Explorer
		nTecla = evtKeyPress.keyCode; }
	else {
	//if(document.layers) { // Nestcape
		nTecla = evtKeyPress.which;
	}
	
	sValue = objForm[strField].value;
	
	// Limpa todos os caracteres de formatação que
	// já estiverem no campo.
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	fldLen = sValue.length;
	mskLen = sMask.length;
	
	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;
	
	// Caso seja pressionado backspace, então ignora a verificação da máscara
	if (nTecla !=8){
	   while (i <= mskLen) {
		  bolMask = ((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++;
	   }	
		
	   objForm[strField].value = sCod;
	   
	}
	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 FormataReais(fld, milSep, decSep, e) { 
var sep = 0; 
var key = ''; 
var i = j = 0; 
var len = len2 = 0; 
var strCheck = '0123456789'; 
var aux = aux2 = ''; 
var whichCode = (window.Event) ? e.which : e.keyCode; 
if (whichCode == 13) return true; 
key = String.fromCharCode(whichCode);// Valor para o código da Chave 
if (strCheck.indexOf(key) == -1) return false; // Chave inválida 
len = fld.value.length; 
for(i = 0; i < len; i++) 
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break; 
aux = ''; 
for(; i < len; i++) 
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i); 
aux += key; 
len = aux.length; 
if (len == 0) fld.value = ''; 
if (len == 1) fld.value = '0'+ decSep + '0' + aux; 
if (len == 2) fld.value = '0'+ decSep + aux; 
if (len > 2) { 
aux2 = ''; 
for (j = 0, i = len - 3; i >= 0; i--) { 
if (j == 3) { 
aux2 += milSep; 
j = 0; 
} 
aux2 += aux.charAt(i); 
j++; 
} 
fld.value = ''; 
len2 = aux2.length; 
for (i = len2 - 1; i >= 0; i--) 
fld.value += aux2.charAt(i); 
fld.value += decSep + aux.substr(len - 2, len); 
} 
return false; 
} 
function tratarFlash()
{
objects = document.getElementsByTagName("object");
for (var i = 0; i < objects.length; i++)
{
    objects[i].outerHTML = objects[i].outerHTML;
}
}
function passaMouse_Linha(obj)
{
	obj.className = "mouseOver";
}
function saiMouse_Linha(obj , Classe)
{
	obj.className = Classe;
}
function colocarFocoSelect(campo,conteudo)
{
 for (var i = 0; i < campo.length; i++)
 {
    if (conteudo==campo(i).value)
	{
		campo(i).selected = true;
		break;
	}	
 }
}
function mudarImagem(nome)
{
var n = 'file://'+nome.value;
document.getElementById('imagem').src = n;
}
