﻿//-------------------------------------------------------------------------
//                  FUNCOES JS CWTOP
//-------------------------------------------------------------------------
//
//  DATA: 02/07/2008
//  
//  ARQUIVO COM AS PRINCIPAIS FUNCOES JAVASCRIPT
//
//=========================================================================

function trimString (str) 
{
  return str.replace(/^\s+/, '').replace(/\s+$/, '');
}


/*
FUNCAO PARA VALIDAR TANTO CPF QUANTO CNPJ
RETORNA TRUE OU FALSE
-----------------------------------------------------------------------------
*/

function isCpfCnpj(str)
{
  if (((str.value.length == 11) && (str.value == 11111111111) || (str.value == 22222222222) || (str.value == 33333333333) || (str.value == 44444444444) || (str.value == 55555555555) || (str.value == 66666666666) || (str.value == 77777777777) || (str.value == 88888888888) || (str.value == 99999999999) || (str.value == 00000000000)))
      return false;
  

  if (!((str.value.length == 11) || (str.value.length == 14)))
  {
    return (false);
  }

  var checkOK = "0123456789";
  var checkStr = str.value;
  var allValid = true;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  if (!allValid)
  {
    return (false);
  }

  var chkVal = allNum;
  var prsVal = parseFloat(allNum);
  if (chkVal != "" && !(prsVal > "0"))
  {
    return (false);
  }

if (str.value.length == 11)
{
  var tot = 0;

  for (i = 2;  i <= 10;  i++)
    tot += i * parseInt(checkStr.charAt(10 - i));

  if ((tot * 10 % 11 % 10) != parseInt(checkStr.charAt(9)))
  {
    return (false);
  }
  
  tot = 0;
  
  for (i = 2;  i <= 11;  i++)
    tot += i * parseInt(checkStr.charAt(11 - i));

  if ((tot * 10 % 11 % 10) != parseInt(checkStr.charAt(10)))
  {
    return (false);
  }
}
else
{
  var tot  = 0;
  var peso = 2;
  
  for (i = 0;  i <= 11;  i++)
  {
    tot += peso * parseInt(checkStr.charAt(11 - i));
    peso++;
    if (peso == 10)
    {
        peso = 2;
    }
  }

  if ((tot * 10 % 11 % 10) != parseInt(checkStr.charAt(12)))
  {
    return (false);
  }
  
  tot  = 0;
  peso = 2;
  
  for (i = 0;  i <= 12;  i++)
  {
    tot += peso * parseInt(checkStr.charAt(12 - i));
    peso++;
    if (peso == 10)
    {
        peso = 2;
    }
  }

  if ((tot * 10 % 11 % 10) != parseInt(checkStr.charAt(13)))
  {
    return (false);
  }
}
  return(true);
} 

/*
FUNCAO PARA VALIDAR O DOMINIO NA HORA QUE PERDE O FOCO DO INPUT
RETORNA TRUE OU FALSE
-------------------------------------------------------------------------
*/
function isValidURL(url){
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(url)){
        return true;
    }else{
        return false;
    }
}
/*
FUNCAO PARA VALIDAR EMAIL
RETORNA: TRUE OU FALSE CASO EMAIL VERDADEIRO
-----------------------------------------------------------------------------
*/	

function isValidMail(str) 
{
    if (!str.value) return false; 
	    str.value = trimString(str.value);
	var expr = /^\w+((\-\w+)|(\.\w+))*@\w+((\-\w+)|(\.\w+))+$/;

	return expr.test(str.value);
}

/*
FUNCAO PARA VALIDAR OS CAMPOS EM CADASTRO DE PESSOAS
EX. CLIENTES VENDEDORES REVENDEDORES
RETORNA TRUE OU FALSE | SE ESTÁ PREENCHIDO OS CAMPOS OBRIGATORIOS DO FORM
-----------------------------------------------------------------------------
*/

function validaPessoa()
{
    var frm = document.forms[0];

    for(x=0;x<= frm.elements.length -1;x++)
    {
        if(frm.elements[x].type == "text")
        {
            if(frm.elements[x].title != "")
            {
                if (frm.elements[x].title == 'CPF/CNPJ')
                {
                    if(!isCpfCnpj(frm.elements[x]))
                    {
                        alert('CNPJ/CPF inválido.Favor verifique novamente.');
                        frm.elements[x].focus();
                        return false;
                    }
                }
                else if (frm.elements[x].title == 'Cidade')
                {
                    if (!frm.elements[x].value)
                    {
                        alert('Informe a cidade.');
                        frm.elements[x].focus();
                        return false;
                    }
                    else
                    {
                        if (frm.ctl00$ContentPlaceHolder1$ddlEstado.selectedIndex == "0") 
                        {
                               alert('Informe o estado.');
                               frm.elements[x].focus();
                               return false;
                        }
                    }
                }
                else if (frm.elements[x].title == 'fone')
                {
                    if (frm.elements[x].value)
                    {
                        if(frm.ctl00$ContentPlaceHolder1$ddlOperadora.selectedIndex == 0)
                        {
                            alert('Informe a operadora.');
                            return false;
                        }
                    }
                }  
                
                
                else if (frm.elements[x].title == 'Mensagem')
                {
                    if (frm.elements[x].value)
                    {
                           alert('Informe a mensagem.');
                           return false;
                    }
                }  
                
                
                else if (frm.elements[x].title == 'E-mail')
                {
                    if(!isValidMail(frm.elements[x]))
                    {
                        alert('E-mail está em um formato inválido. Favor verifique novamente.');
                        frm.elements[x].focus();
                        return false;
                    }
                }                
                else if (frm.elements[x].title == 'Domínio')
                {
                    if (frm.elements[x].value)
                    {
                        if(!isValidURL(frm.elements[x].value))
                        {
                            alert('Domínio está em um formato inválido. Favor verifique novamente.');
                            frm.elements[x].focus();
                            return false;
                        }
                    }
                }
                else if(!frm.elements[x].value) 
                {
                    alert('Preenchimento do campo '+ frm.elements[x].title +' é obrigatório.');
                    frm.elements[x].focus();
                    return false;
                }
            } 
        }
    }
    return true;    
}   


/*
FUNCAO PARA VALIDAR OS CAMPOS DO FORM DE CONTATO
RETORNA TRUE OU FALSE | SE ESTÁ PREENCHIDO OS CAMPOS OBRIGATORIOS DO FORM
-----------------------------------------------------------------------------
*/

function validaContato()
{
    var frm = document.forms[0];

    for(x=0;x<= frm.elements.length -1;x++)
    {
        if(frm.elements[x].type == "text")
        {
            if(frm.elements[x].title != "")
            {
                if (frm.elements[x].title == 'E-mail')
                {
                    if(!isValidMail(frm.elements[x]))
                    {
                        alert('E-mail está em um formato inválido. Favor verifique novamente.');
                        frm.elements[x].focus();
                        return false;
                    }
                }                
                else if(!frm.elements[x].value) 
                {
                    alert('Preenchimento do campo '+ frm.elements[x].title +' é obrigatório.');
                    frm.elements[x].focus();
                    return false;
                }
            } 
        }
        else if (frm.elements[x].type == "textarea")
        {
            if (frm.elements[x].title == "Mensagem")
            {
                if (frm.elements[x].value.length <= 2)
                {
                       alert('Informe a mensagem.');
                       frm.elements[x].focus();
                       return false;
                }
            }  
        }
    }
    return true;    
}