/* ======================================================================
DESC: Biblioteca de funções do WebFac

PLATFORMS: Windows NT Server 4.0 IIS 3.0 ou superior

USAGE NOTES: desenvolvido por Rodrigo Gomes e Waldeone Santos
====================================================================== */

/* ======================================================================
FUNCTION:   DataMask

INPUT:      campo
                
RETURNS:        

DESC:       Deve ser usada em conjunto com o evento onKeyUp em um input
            do tipo text. A cada número digitado a função conta o tamanho
            atual da string. Se for 2 ou 5 ela inclui uma "/".
====================================================================== */
function DataMask(campo) {
    var digits="0123456789/";
    var temp;
    var a;
    for (var i=0;i<campo.value.length;i++)
    {
        temp=campo.value.substring(i,i+1);
        if (digits.indexOf(temp)==-1){
            campo.value=campo.value.substring(0,(campo.value.length-1))
        }
        else{
            var texto=""
            if ((campo.value.length==2)||(campo.value.length==5)){
                texto=campo.value + "/"
                campo.value=texto
            }       
        }
    }
}
/* ======================================================================
FUNCTION:   WinOpen

INPUT:      url,w,h
                
RETURNS:        Cria uma window sob as especificações dos input's

DESC:           URL recebe a url da página que será carregada na nova
                janela. W e H são respectivamente WIDTH e HEIGHT. O "nome"
                da nova window ´w DisplayWindow.
====================================================================== */

function WinOpen(url,w,h) {
   toolb1="toolbar=no,directories=no,menubar=no,statusbar=yes,scrollbars=yes,resizable=no,width="
   toolb2=toolb1+w+",height="
   toolb3=toolb2+h
   novajanela=open(url,"DisplayWindow",toolb3);
}

/* ======================================================================
FUNCTION:   valida_CPF

INPUT:      s
                
RETURNS:        true ou false

DESC:           Valida se o CPF é válido retornando TRUE ou FALSE
====================================================================== */

function valida_CPF(s)
{
    var i;
    s = limpa_string(s);
    var c = s.substr(0,9);
    var dv = s.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:   valida_CGC

INPUT:      s
                
RETURNS:        true ou false

DESC:           Valida se o CGC retornando TRUE ou FALSE
====================================================================== */

function valida_CGC(s)
{
    var i;
    s = limpa_string(s);
    var c = s.substr(0,12);
    var dv = s.substr(12,2);
    var d1 = 0;
    for (i = 0; i < 12; i++)
    {
        d1 += c.charAt(11-i)*(2+(i % 8));
    }
        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 < 12; i++)
    {
        d1 += c.charAt(11-i)*(2+((i+1) % 8));
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(1) != d1)
    {
        return false;
    }
        return true;
}

/* ======================================================================
FUNCTION:   valida_CGC

INPUT:      s
                
RETURNS:        true ou false

DESC:           Valida se o CGC retornando TRUE ou FALSE
====================================================================== */

function verificadados(objeto,campo) {
    if (objeto.value.length == 0) {
        alert("O " + campo + " é um campo obrigatório !");
        objeto.focus();
        return false;
    }
    if (document.fcadsac.edtNome.value.length == 0) {
        alert("O nome é um campo obrigatório !");
        document.fcadsac.edtNome.focus();
        return false;
    }
    
    if (document.fcadsac.edtEndereco.value.length == 0) {
        alert("O endereço é um campo obrigatório !");
        document.fcadsac.edtEndereco.focus();
        return false;
    }

    if (document.fcadsac.edtCidade.value.length == 0) {
        alert("A cidade é um campo obrigatório !");
        document.fcadsac.edtCidade.focus();
        return false;
    }

    if (document.fcadsac.cbxEstado.value.length == 0) {
        alert("O Estado é um campo obrigatório !");
        document.fcadsac.cbxEstado.focus();
        return false;
    }

    if (document.fcadsac.edtCep.value.length == 0) {
        alert("O CEP é um campo obrigatório !");
        document.fcadsac.edtCep.focus();
        return false;
    }

    if (document.fcadsac.edtlocalizar.value.length == 14) {
        s = limpa_string(document.fcadsac.edtlocalizar.value);
        if (valida_CGC(document.fcadsac.edtlocalizar.value) == false ) {
                alert("O CGC não é válido !");
            document.fcadsac.edtlocalizar.focus();
            return false;
        }
    }
    
    if (document.fcadsac.edtlocalizar.value.length == 11) {
        s = limpa_string(document.fcadsac.edtlocalizar.value);
        if (valida_CPF(document.fcadsac.edtlocalizar.value) == false ) {
            alert("O CPF não é válido !");
            document.fcadsac.edtlocalizar.focus();
            return false;
            }
    }
}   

function ValidaCGCCPF(CGCCPF)
{
   if (document.fcadsac.edtlocalizar.value.length == 11) 
   {
      s = limpa_string(document.fcadsac.edtlocalizar.value);
    if (valida_CPF(document.fcadsac.edtlocalizar.value) == false ) 
      {
         alert("O CPF não é válido !");
         document.fcadsac.edtlocalizar.focus();
         return false;
      }
   }
   else
   {
      if (document.fcadsac.edtlocalizar.value.length != 0) 
      {
       s = limpa_string(document.fcadsac.edtlocalizar.value);
       if (valida_CGC(document.fcadsac.edtlocalizar.value) == false ) 
         {
          alert("O CGC não é válido !");
            document.fcadsac.edtlocalizar.focus();
            return false;
         }
      }
   }
   return true;
}  

function limpa_string(S){
    // Deixa so' os digitos no numero
    var Digitos = "0123456789";
    var temp = "";
    var digito = "";
    for (var i=0; i<S.length; i++){
      digito = S.charAt(i);
      if (Digitos.indexOf(digito)>=0){temp=temp+digito}
    }
   return temp
}
function poezero(sFraseZero, iTam){
   for (var iIndice=0; iIndice<(iTam-parseInt(document.frm.texto.value.length
)); iIndice++){
       sFraseZero = '0'+sFraseZero
   }
   document.frm.texto.value=sFraseZero
}

function strtrans(strng,procura,substitui){
    var retorno=""
    if (substitui==""){
        palavra=" "+strng
        fim=palavra.length
        for (var i=1; i< fim;){
            if (palavra.charAt(i)!=procura){
                retorno=retorno+palavra.charAt(i)
            }
            i++
        }
        Vstrtrans=retorno
        return retorno}
    else{
        palavra=" "+strng
        fim=palavra.length
        for (var i=1; i< fim;){
            if (palavra.charAt(i)!=procura){
                retorno=retorno+palavra.charAt(i)
            }
            else{
                retorno=retorno+substitui
            }
            i++
        }
        Vstrtrans=retorno
        return retorno
    }
}

function ConfirmaCadSac(){
    if (confirm("Tem certeza que deseja criar um novo bordero")){
        return true
    }
    else{
        return false
    }
}
//função que confirma se vc quer criar um novo bordero com um já existente na tela
function Confirmanovo(){
    if (confirm("Deseja abandonar o Borderaux atual?")){
        return true
    }
    else{
        return false
    }
}


function CarregaSelectBox(objeto,qte,valor){
    if (valor != ""){
        for (i=0;i<qte;i++){
            if (objeto.options[i].value==valor){
                objeto.selectedIndex=i;
            }
        }
    }
}

//*************************************************************************************************
//***                    Função para validar Datas com o formato(dd/mm/aaaa)                    ***
//*************************************************************************************************
function validadata(fundata)
{
	var str = fundata

	// Verifica se foram digitados 10 caracteres.
	if (str.length != 10)
		return false;

	// Verifica se os caracteres são números e barra.
	for (var i = 0; i < str.length; i++) 
		if ((str.substring(i, i + 1) < "0" || "9" < str.substring(i, i + 1)) && str.substring(i, i + 1) != "/") 
			return false;

	// Verifica o valor do dia.
	if ( (str.substring(0, 2) < 1)  ||  (str.substring(0, 2) > 31)  ) 
		return false;

	// Verifica o valor do dia no valor do mês.

	// Fevereiro
	if (str.substring(3, 5) == 2 )
	{
		if (parseInt(str.substring(6, 10) % 2) != 0)
		{
			if (str.substring(0, 2) > 28)
				return false;
		}
		else if (str.substring(0, 2) > 29)
			return false;
	}


	// Abril
	if ( (str.substring(3, 5) == 4 )  &&  (str.substring(0, 2) > 30)  )
		return false;

	// Junho
	if ( (str.substring(3, 5) == 6 )  &&  (str.substring(0, 2) > 30)  )
	{
	return false;
	}

	// Setembro
	if ( (str.substring(3, 5) == 9 )  &&  (str.substring(0, 2) > 30)  )
	{
	return false;
	}

	// Novembro
	if ( (str.substring(3, 5) == 11 )  &&  (str.substring(0, 2) > 30)  )
	{
	return false;
	}

	// Verifica o valor do mês.
	if ( (str.substring(3, 5) < 1)  ||  (str.substring(3, 5) > 12)  ) 
	{
	return false;
	}

	// Verifica o valor do ano.
	if ( (str.substring(6, 10) < 1900)  ||  (str.substring(6, 8) > 2099)  ) 
	{
	return false;
	}

	// Verifica posicionamento da barra.
	if ( str.substring(3, 4) == "/"  || str.substring(4, 5) == "/" ) 
	{
	return false;
	}
	if ( str.substring(0, 1) == "/"  || str.substring(1, 2) == "/" ) 
	{
	return false;
	}
	if ( str.substring(6, 7) == "/"  || str.substring(7, 8) == "/" ) 
	{
	return false;
	}
	if ( str.substring(2, 3) != "/"  ||  str.substring(5, 6) != "/" ) 
	{
	return false;
	}
	return true;
}
//************************** Término da Função de Validação de Data ******************************

//*************************************************************************************************
//***                    Função para mascarar Datas no formato(dd/mm/aaaa)                      ***
//*************************************************************************************************
function mascaraData(campo)
{
    var digits="0123456789/";
    var temp;
    var a;
    for (var i=0;i<campo.value.length;i++)
    {
        temp=campo.value.substring(i,i+1);
        if (digits.indexOf(temp)==-1){
            campo.value=campo.value.substring(0,(campo.value.length-1))
        }
        else
        {
            var texto=""
            if ((campo.value.length==2)||(campo.value.length==5)){
                texto=campo.value + "/"
                campo.value=texto
            }       
        }
    }
}
//************************** Término da Função de Mascarar Data ******************************
