function Voltar(pQtd)
{
history.go(pQtd)
}

function ValidaData(pObj)
{
udt = pObj.value;
if (udt == "")
  {
  return true;
  }
   
if(udt.indexOf("/") == -1)
  {
  alert('Data inválida!');
  pObj.focus();
  return false;
  }
dt1 = udt.split("/")
dd1 = parseInt(dt1[0]);
mm1 = parseInt(dt1[1]);
yy1 = parseInt(dt1[2]);

if(isNaN(dd1) || isNaN(mm1) || isNaN(yy1))
  {
  alert('Data inválida!');
  pObj.focus();
  return false;
  }
dd1 = parseInt(dt1[0]);
mm1 = parseInt(dt1[1]);
yy1 = parseInt(dt1[2]);

if (mm1 == 2)
   {if (dd1== 29 && yy1%4 != 0)
       {alert('Data inválida!');
       pObj.focus();
       return false;
       }
   }

if (mm1 == 1 && dd1 > 31)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 3 && dd1 > 31)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 4 && dd1 > 30)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 5 && dd1 > 31)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 6 && dd1 > 30)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 7 && dd1 > 31)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 8 && dd1 > 31)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 9 && dd1 > 30)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 10 && dd1 > 31)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 11 && dd1 > 30)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }

if (mm1 == 12 && dd1 > 31)
   {alert('Data inválida!');
       pObj.focus();
       return false;
       }
}

function ValidaUF(pUF) 
{
uf = pUF.value
uf = uf.toUpperCase()

if (uf=="AC") 
   {return true}
if (uf=="AL") 
   {return true}
if (uf=="AM") 
   {return true}
if (uf=="AP") 
   {return true}
if (uf=="BA") 
   {return true}
if (uf=="CE") 
   {return true}
if (uf=="DF") 
   {return true}
if (uf=="ES") 
   {return true}
if (uf=="GO")
   {return true}
if (uf=="MA") 
   {return true}
if (uf=="MG") 
   {return true}
if (uf=="MS") 
   {return true}
if (uf=="MT") 
   {return true}
if (uf=="PA") 
   {return true}
if (uf=="PB") 
   {return true}
if (uf=="PE") 
   {return true}
if (uf=="PI") 
   {return true}
if (uf=="PR") 
   {return true}
if (uf=="RJ") 
   {return true}
if (uf=="RN") 
   {return true}
if (uf=="RO") 
   {return true}
if (uf=="RR") 
   {return true}
if (uf=="RS") 
   {return true}
if (uf=="SC") 
   {return true}
if (uf=="SE") 
   {return true}
if (uf=="SP") 
   {return true}
if (uf=="TO") 
   {return true}

alert("Estado inválido")
pUF.focus()
return false;
}


function MarcaTexto(pTexto) 
{
pTexto.select()
}

function NovaJanela(url)
{
window.open(url,"_blank","width=500, height=400, top=10, left=10")
}

function SomenteNumero()
{
if (document.all) 
   {vchar=window.event.keyCode} 
else 
   {vchar=event.which}

if (vchar < 48 || vchar > 57) 
   {if (vchar != 8 && vchar != 0) 
        {return false}
   }
}

function GravaLogUnload()
{
param = '?txtNome = ' + frm.txtNome.value 
param = param + '&txtEmail=' + frm.txtEmail.value 
param = param + '&chkBoletim=' + frm.chkBoletim.value 
param = param + '&txtCEP=' + frm.txtCEP.value 
param = param + '&txtDDD=' + frm.txtDDD.value 
param = param + '&txtFone=' + frm.txtFone.value 
param = param + '&hidProduto_txt=' + frm.hidProduto_txt.value 
param = param + '&hidVigencia_id=' +  frm.hidVigencia_id.value 
param = param + '&hidOferta_Id=' + frm.hidOfertaId.value 
param = param + '&hidFormulario=' + frm.hidFormulario.value 
param = param + '&hidSite_txt=' + frm.hidSite_txt.value 
param = param + '&hidOrigem_txt=' + frm.hidOrigem_txt.value 
param = param + '&hidFormato_txt=' +  frm.hidFormato_txt.value 
param = param + '&hidBanner_txt=' + frm.hidBanner_txt.value 
param = param + '&hidVersao_txt=' + frm.hidVersao_txt.value
urlLog = "GravaLog.asp" + param
window.open(urlLog,'_blank','resizable=no,toolbar=no,status=yes,menubar=no,scrollbars=no, copyhistory=no, width=1,height=1,top=1,left=1')
}

function GravaLog()
{
param = '?txtNome = ' + frm.txtNome.value 
param = param + '&txtEmail=' + frm.txtEmail.value 
param = param + '&chkBoletim=' + frm.chkBoletim.value 
param = param + '&txtCEP=' + frm.txtCEP.value 
param = param + '&txtDDD=' + frm.txtDDD.value 
param = param + '&txtFone=' + frm.txtFone.value 
param = param + '&hidProduto_txt=' + frm.hidProduto_txt.value 
param = param + '&hidVigencia_id=' +  frm.hidVigencia_id.value 
param = param + '&hidOferta_Id=' + frm.hidOfertaId.value 
param = param + '&hidFormulario=' + frm.hidFormulario.value 
param = param + '&hidSite_txt=' + frm.hidSite_txt.value 
param = param + '&hidOrigem_txt=' + frm.hidOrigem_txt.value 
param = param + '&hidFormato_txt=' +  frm.hidFormato_txt.value 
param = param + '&hidBanner_txt=' + frm.hidBanner_txt.value 
param = param + '&hidVersao_txt=' + frm.hidVersao_txt.value
urlLog = "GravaLog.asp" + param
window.open(urlLog,'_blank','resizable=no,toolbar=no,status=yes,menubar=no,scrollbars=no, copyhistory=no, width=1,height=1,top=1,left=1')
}

function valEmailBox(curfield) 
{ 
    fieldName   = curfield; 
    fieldValue  = fieldName.value; 
    fieldLength = fieldValue.length; 
 
   var err02   = "Email Invalido"; 
   if (fieldValue=="")
     {return true;} 
   if( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test( fieldValue )) 
     {return true;} 
  else 
     {alert( err02 );
	  fieldName.value="";
	  fieldName.focus()} 
} 

//Monta Vetor para Cartoes de credito
var Cards = new makeArray(10);

//Cards[0] = new Banda("Generico", "", "");
//var Generico1      = Cards[0];

//Cards[1] = new Banda("Generico1", "", "");
//var Generico1      = Cards[1];

Cards[2] = new Banda("VisaCard", "4", "13,16");
var VisaCard       = Cards[2];

Cards[3] = new Banda("MasterCard", "50,51,52,53,54,55", "16");
var MasterCard     = Cards[3];

Cards[4] = new Banda("AmExCard", "34,37", "15");
var AmExCard       = Cards[4];

Cards[5] = new Banda("DinersClubCard", "30,36,38", "14");
var DinersClubCard = Cards[5];

Cards[6] = new Banda("DiscoverCard", "6011", "16");
var DiscoverCard   = Cards[6];

Cards[7] = new Banda("enRouteCard", "2014,2149", "15");
var enRouteCard    = Cards[7];

Cards[8] = new Banda("JCBCard", "3088,3096,3112,3158,3337,3528", "16");
var JCBCard        = Cards[8];

Cards[9] = new Banda("Hiper", "1", "13");
var Hiper          = Cards[9];

var LuhnCheckSum = Cards[10] = new Banda();

/*************************************************************************\
ValidaCartao(form)
function called when users click the "check" button.
\*************************************************************************/

function ValidaCartao(pForm) 
{
var retval=true

admCartao = pForm.AdmCartao_id.value;
nroCartao = pForm.Nro_Cartao.value;
if (admCartao != "" && nroCartao != "") 
   {
    var TamanhoNroCartao = nroCartao.length
	//var Validade = anoCartao.toFixed()+mesCartao.toFixed()

	//VISA
	if (admCartao == "2")
	   {var bin = nroCartao.substr(0,1)
		if (bin != "4")
		   {var retval=false}
		if (TamanhoNroCartao != 13 && TamanhoNroCartao != 16)
		   {var retval=false}
	    }
    
	//MASTER
	if (admCartao == "3")
	   {var bin = nroCartao.substr(0,2)
		if (bin != "50" && bin != "51" && bin != "52" && bin != "53" && bin != "54" && bin != "55")
		   {var retval=false}
		if (TamanhoNroCartao != 16)
	       {var retval=false}
	    }

	//AMEX
	if (admCartao == "4")
	   {var bin = nroCartao.substr(0,2)
		if (bin != "34" && bin != "37")
		   {var retval=false}
		if (TamanhoNroCartao != 15)
	       {var retval=false}
	    }

	//DINNERS
	if (admCartao == "5")
	   {var bin = nroCartao.substr(0,2)
		if (bin != "30" && bin != "36" && bin != "38")
		   {var retval=false}
		if (TamanhoNroCartao != 14)
	       {var retval=false}
	    }

	//HIPERCARD
	if (admCartao == "9")
	   {if (isHPCreditCard(nroCartao))
		   {var retval=false}
	    }

	if (retval==false)
	   {alert("Dados do cartão Invalido. Por favor verifique o numero do cartão de credito")
	   //pForm.Nro_Cartao.focus()
	   return false}

   }

    var mesCartao = pForm.Mes_Cartao.options[pForm.Mes_Cartao.selectedIndex].value;
    var anoCartao = pForm.Ano_Cartao.value;
    var Corrente  = new Date()
	var MesCorrente = Corrente.getMonth()
    if (MesCorrente<10)
       {MesCorrente = "0" + MesCorrente}
	if (document.all)
	   {var DataCorrente = parseInt(Corrente.getYear()+ MesCorrente)}
    else
	   {var DataCorrente = parseInt((Corrente.getYear()+1900)+ MesCorrente)}

	if (admCartao != "" && nroCartao != "" && mesCartao != "" && anoCartao != "") 
       {
       if (mesCartao.length == 1)
          {mesCartao = "0" + mesCartao}
		var Validade = parseInt(anoCartao+mesCartao)
       //alert(DataCorrente)
       //alert(Validade)
        if (Validade < DataCorrente)
	        {alert("Validade do cartão expirada. Por favor verifique a validade do cartão.")
	        return false}
	   }	
return true

}

/*************************************************************************\
ValidaCartao(form)
function called when users click the "check" button.
\*************************************************************************/
function ValidaCartao2(pForm) {

//	{for (var n = 0; n < Cards.size; n++) 
//		{if (Cards[n].checkCardNumber(nroCartao,anoCartao, mesCartao)) 
//		    {cardname = Cards[n].getBanda();
//		    break;}
//		 }
//	}

if (pForm.Nro_Cartao.value != "") 
   {admCartao = pForm.AdmCartao_id.value;
    nroCartao = pForm.Nro_Cartao.value;
    mesCartao = pForm.Mes_Cartao.options[pForm.Mes_Cartao.selectedIndex].value;
    anoCartao = pForm.Ano_Cartao.value;
    var cardname=""

//    alert(admCartao)
    admCartao = admCartao-1
	if (admCartao==9)
		{if (isHPCreditCard(nroCartao))
		   {cardname = "HiperCard"}
		}
	else
		{
		if (Cards[admCartao].checkCardNumber(nroCartao,anoCartao, mesCartao)) 
		   {cardname = Cards[admCartao].getBanda()}
		}
    
	if (cardname != "") 
	   {var retval=false}
	else
	   {var retval=true}
	   
	if (retval && pForm.Nro_Cartao.value != "")
	   { // comment this out if used on an order form
	   alert("Dados do cartão/validade Invalidos. Por favor verifique o numero do cartão de credito ou a validade.");
	   pForm.Nro_Cartao.focus()
	   return false}

	if (pForm.Nro_Cartao.value == 0)
	   {  // comment this out if used on an order form
	   alert("Dados do cartão/validade Invalidos. Por favor verifique o numero do cartão de credito ou a validade.");
	   pForm.Nro_Cartao.focus()
	   return false }
	return true
		}
}

/*************************************************************************\
ValidaCartao(form)
function called when users click the "check" button.
\*************************************************************************/
function ValidaCartao1(frm) {

admCartao = frm.AdmCartao_id.value
nroCartao = frm.Nro_Cartao.value;
mesCartao = frm.Mes_Cartao.options[frm.Mes_Cartao.selectedIndex].value;
anoCartao = frm.Ano_Cartao.options[frm.Ano_Cartao.selectedIndex].value;

if (nroCartao != "" && admCartao!="" && mesCartao!="" && anoCartao!="") 
	{
	var cardname=""
	admCartao = admCartao - 1
	if (Cards[admCartao].checkCardNumber(nroCartao,anoCartao, mesCartao)) 
	    {cardname = Cards[admCartao].getBanda()}
	if (cardname != "") 
	   {var retval=false}
	else
	   {var retval=true}

	if (retval && frm.Nro_Cartao.value != "")
	   {// comment this out if used on an order frm
	   alert("Numero de cartão Invalido. Por favor verifique o numero do seu cartão de credito.");
	   MarcaTexto(frm.Nro_Cartao)
	   frm.Nro_Cartao.focus()}

	if (frm.Nro_Cartao.value == 0)
	   {// comment this out if used on an order frm
	   alert("Numero de cartão Invalido. Por favor verifique o numero do seu cartão de credito.");
	   MarcaTexto(frm.Nro_Cartao)
	   frm.Nro_Cartao.focus()}
	}
else
   {var retval=false}

}

/*************************************************************************\
Object Banda([String Banda, String rules, String len, int year, 
                                        int month])
Banda    : type of card, eg: MasterCard, Visa, etc.
rules       : rules of the cardnumber, eg: "4", "6011", "34,37".
len         : valid length of cardnumber, eg: "16,19", "13,16".
year        : year of expiry date.
month       : month of expiry date.
eg:
var VisaCard = new Banda("Visa", "4", "16");
var AmExCard = new Banda("AmEx", "34,37", "15");
\*************************************************************************/
function Banda() {
var n;
var argv = Banda.arguments;
var argc = Banda.arguments.length;

this.objname = "object Banda";

var tmpBanda = (argc > 0) ? argv[0] : "CardObject";
var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";

this.setCardNumber = setCardNumber;  // set CardNumber method.
this.setBanda = setBanda;  // setBanda method.
this.setLen = setLen;  // setLen method.
this.setRules = setRules;  // setRules method.
this.setExpiryDate = setExpiryDate;  // setExpiryDate method.

this.setBanda(tmpBanda);
this.setLen(tmplen);
this.setRules(tmprules);
if (argc > 4)
this.setExpiryDate(argv[3], argv[4]);
this.checkCardNumber = checkCardNumber;  // checkCardNumber method.
this.getExpiryDate = getExpiryDate;  // getExpiryDate method.
this.getBanda = getBanda;  // getBanda method.
this.isCardNumber = isCardNumber;  // isCardNumber method.
this.isExpiryDate = isExpiryDate;  // isExpiryDate method.
this.luhnCheck = luhnCheck;// luhnCheck method.
return this;
}

/*************************************************************************\
boolean checkCardNumber([String cardnumber, int year, int month])
return true if cardnumber pass the luhncheck and the expiry date is
valid, else return false.
\*************************************************************************/
function checkCardNumber() {
var argv = checkCardNumber.arguments;
var argc = checkCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
var year = (argc > 1) ? argv[1] : this.year;
var month = (argc > 2) ? argv[2] : this.month;

this.setCardNumber(cardnumber);
this.setExpiryDate(year, month);

if (!this.isCardNumber())
return false;
if (!this.isExpiryDate())
return false;

return true;
}
/*************************************************************************\
String getBanda()
return the Banda.
\*************************************************************************/
function getBanda() {
return this.Banda;
}
/*************************************************************************\
String getExpiryDate()
return the expiry date.
\*************************************************************************/
function getExpiryDate() {
return this.month + "/" + this.year;
}
/*************************************************************************\
boolean isCardNumber([String cardnumber])
return true if cardnumber pass the luhncheck and the rules, else return
false.
\*************************************************************************/
function isCardNumber() {
var argv = isCardNumber.arguments;
var argc = isCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
if (!this.luhnCheck())
return false;

for (var n = 0; n < this.len.size; n++)
if (cardnumber.toString().length == this.len[n]) {
for (var m = 0; m < this.rules.size; m++) {
var headdigit = cardnumber.substring(0, this.rules[m].toString().length);
if (headdigit == this.rules[m])
return true;
}
return false;
}
return false;
}

/*************************************************************************\
boolean isExpiryDate([int year, int month])
return true if the date is a valid expiry date,
else return false.
\*************************************************************************/
function isExpiryDate() {
var argv = isExpiryDate.arguments;
var argc = isExpiryDate.arguments.length;

year = argc > 0 ? argv[0] : this.year;
month = argc > 1 ? argv[1] : this.month;

if (!isNum(year+""))
return false;
if (!isNum(month+""))
return false;
today = new Date();
expiry = new Date(year, month);
if (today.getTime() > expiry.getTime())
return false;
else
return true;
}

/*************************************************************************\
boolean isNum(String argvalue)
return true if argvalue contains only numeric characters,
else return false.
\*************************************************************************/
function isNum(argvalue) {
argvalue = argvalue.toString();

if (argvalue.length == 0)
return false;

for (var n = 0; n < argvalue.length; n++)
if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
return false;

return true;
}

/*************************************************************************\
boolean luhnCheck([String CardNumber])
return true if CardNumber pass the luhn check else return false.
Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
\*************************************************************************/
function luhnCheck() {
var argv = luhnCheck.arguments;
var argc = luhnCheck.arguments.length;

var CardNumber = argc > 0 ? argv[0] : this.cardnumber;

if (! isNum(CardNumber)) {
return false;
  }

var no_digit = CardNumber.length;
var oddoeven = no_digit & 1;
var sum = 0;

for (var count = 0; count < no_digit; count++) {
var digit = parseInt(CardNumber.charAt(count));
if (!((count & 1) ^ oddoeven)) {
digit *= 2;
if (digit > 9)
digit -= 9;
}
sum += digit;
}
if (sum % 10 == 0)
return true;
else
return false;
}

/*************************************************************************\
ArrayObject makeArray(int size)
return the array object in the size specified.
\*************************************************************************/
function makeArray(size) {
this.size = size;
return this;
}

/*************************************************************************\
Banda setCardNumber(cardnumber)
return the Banda object.
\*************************************************************************/
function setCardNumber(cardnumber) {
this.cardnumber = cardnumber;
return this;
}

/*************************************************************************\
Banda setBanda(Banda)
return the Banda object.
\*************************************************************************/
function setBanda(Banda) {
this.Banda = Banda;
return this;
}

/*************************************************************************\
Banda setExpiryDate(year, month)
return the Banda object.
\*************************************************************************/
function setExpiryDate(year, month) {
this.year = year;
this.month = month;
return this;
}

/*************************************************************************\
Banda setLen(len)
return the Banda object.
\*************************************************************************/
function setLen(len) {
// Create the len array.
if (len.length == 0 || len == null)
len = "13,14,15,16,19";

var tmplen = len;
n = 1;
while (tmplen.indexOf(",") != -1) {
tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
n++;
}
this.len = new makeArray(n);
n = 0;
while (len.indexOf(",") != -1) {
var tmpstr = len.substring(0, len.indexOf(","));
this.len[n] = tmpstr;
len = len.substring(len.indexOf(",") + 1, len.length);
n++;
}
this.len[n] = len;
return this;
}

/*************************************************************************\
Banda setRules()
return the Banda object.
\*************************************************************************/
function setRules(rules) {
// Create the rules array.
if (rules.length == 0 || rules == null)
rules = "0,1,2,3,4,5,6,7,8,9";
  
var tmprules = rules;
n = 1;
while (tmprules.indexOf(",") != -1) {
tmprules = tmprules.substring(tmprules.indexOf(",") + 1, tmprules.length);
n++;
}
this.rules = new makeArray(n);
n = 0;
while (rules.indexOf(",") != -1) {
var tmpstr = rules.substring(0, rules.indexOf(","));
this.rules[n] = tmpstr;
rules = rules.substring(rules.indexOf(",") + 1, rules.length);
n++;
}
this.rules[n] = rules;
return this;
}

// Funcao para a preencher os zeros a esquerda
function Preenchezeros(ptexto, pQtd)
{
var zeros = ""
if (ptexto.length < pQtd)
   {
   dif =  pQtd - ptexto.length
   for (i=1;i<=dif;i++)
     {
	 zeros = zeros + "0"
	 }
   }
return zeros + ptexto
}

// Funcao para a agencia do Bco do Brasil
function chkDigAgenciaBrasil(frm)
{
pAg = Preenchezeros(frm.Agencia_Debito.value, 4)
pDg = frm.DigAgencia_Debito.value

if (pDg == "")
  {frm.DigAgencia_Debito.focus()
   alert("Informe o dígito da agência")}

sPeso = "5432"
var sSoma = 0
var r1 = 0
for (i=0;i<=3;i++)
    {sSoma = sSoma + (pAg.charAt(i) * sPeso.charAt(i))}
r1 = sSoma % 11
if (r1==1)
   {r1="X"}
else if (r1==0)
   {r1="0"}
else
   {r1=11 - r1}

if (pDg.toUpperCase() != r1)
  {frm.DigAgencia_Debito.focus()
   alert("Dígito da agência inválido")}
}

function chkDigAgenciaBradesco(frm)
{
pAg = Preenchezeros(frm.Agencia_Debito.value, 4)
pDg = frm.DigAgencia_Debito.value
sPeso = "5432"
var sSoma = 0
var r1 = 0
for (i=0;i<=3;i++)
    {sSoma = sSoma + (pAg.charAt(i) * sPeso.charAt(i))}
r1 = sSoma % 11
if (r1==1)
   {r1="P"}
else if (r1==0)
   {r1="0"}
else
   {r1=11 - r1}

if (pDg.toUpperCase() != r1)
  {frm.DigAgencia_Debito.focus()
   alert("Dígito da agência inválido")}
}

// Funcao para a conta do Bco do Brasil
function chkDigContaBrasil(frm)
{
pAg = Preenchezeros(frm.NroConta_Debito.value, 8)
pDg = frm.DigNroConta_Debito.value
sPeso = "98765432"
var sSoma = 0
var r1 = 0
for (i=0;i<=7;i++)
    {sSoma = sSoma + (pAg.charAt(i) * sPeso.charAt(i))}
r1 = sSoma % 11
if (r1==1)
   {r1="X"}
else if (r1==0)
   {r1="0"}
else
   {r1=11 - r1}

if (pDg.toUpperCase() != r1)
  {frm.DigNroConta_Debito.focus()
   alert("Dígito da conta inválido")}
}

// Funcao para verificar o digito da conta do Bradesco
function chkDigContaBradesco(frm)
{
pCC = Preenchezeros(frm.NroConta_Debito.value, 7)
pDg = frm.DigNroConta_Debito.value
sPeso = "2765432"
var sSoma = 0
for (i=0;i<=6;i++)
    {sSoma = sSoma + (pCC.charAt(i) * sPeso.charAt(i))}
r1 = sSoma % 11
if (r1==1)
   {r1="P"}
else if (r1==0)
   {r1="0"}
else
   {r1=11 - r1}
if (pDg.toUpperCase() != r1)
  {frm.DigNroConta_Debito.focus()
   alert("Dígito da Conta inválido")}
}

// Funcao para verificar o digito da conta do CEF
function chkDigContaCEF(frm)
{
pCC = Preenchezeros(frm.Agencia_Debito.value, 4) + Preenchezeros(frm.NroConta_Debito.value+frm.DigNroConta_Debito.value, 9)
pDg = frm.DigNroConta_Debito.value
sPeso = "876543298765432"
var sSoma = 0
for (i=0;i<=15;i++)
    {sSoma = sSoma + (pCC.charAt(i) * sPeso.charAt(i))}
r1 = (sSoma*10) % 11
if (r1==0)
   {r1="0"}
else if (r1==10)
   {r1="0"}
alert(r1)
if (pDg.toUpperCase() != r1)
  {frm.DigNroConta_Debito.focus()
   alert("Dígito da Conta inválido")}
}

// Funcao para verificar o digito da conta do Banespa
function chkDigContaBanespa(frm)
{
pCC = Preenchezeros(frm.Agencia_Debito.value, 3) + Preenchezeros(frm.NroConta_Debito.value+frm.DigNroConta_Debito.value, 9)
pDg = frm.DigNroConta_Debito.value
sPeso = "73197131973"
var sSoma = 0
for (i=0;i<=11;i++)
    {sSoma = sSoma + ((pCC.charAt(i) * sPeso.charAt(i)) % 10)}
r1 = sSoma % 10
if (r1!=0)
   {r2 = 10-r1
   if (r2 == pDg.toUpperCase())
       {r1=r2}
   }
else if (pDg.toUpperCase()=='0')
   {r1=pDg.toUpperCase()}

if (pDg.toUpperCase() != r1)
  {frm.DigNroConta_Debito.focus()
   alert("Dígito da Conta inválido")}
}


// Funcao para verificar o digito da conta do Itau
function chkDigContaItau(frm)
{
pCC = Preenchezeros(frm.Agencia_Debito.value, 5) + Preenchezeros(frm.NroConta_Debito.value, 7)
pDg = frm.DigNroConta_Debito.value
sPeso = "121212121212"
var sSoma = 0
var iNum = 0
var sNum = ""
for (i=0;i<=11;i++)
    {
	iNum = (pCC.charAt(i) * sPeso.charAt(i))
    sNum = iNum.toString()
	if (sNum.length > 1)
	   {
	   iNum = 0
	   for (x=0;x<=sNum.length;x++)
	       {
		   var iNumx = 0
		   iNumx = sNum.charAt(x)
		   iNumx = new Number(iNumx)
		   iNum = iNum + iNumx
		   }
       }
	 sSoma = sSoma + iNum  
	}
r1 = sSoma % 10
if (r1!=0)
   {r1=10 - r1}
if (pDg.toUpperCase() != r1)
  {frm.DigNroConta_Debito.focus()
   alert("Dígito da Conta inválido")}
}

// Funcao para verificar o digito da conta do Itau
function chkDigContaReal(frm)
{
pCC = Preenchezeros(frm.Agencia_Debito.value, 4) + Preenchezeros(frm.NroConta_Debito.value, 7)
pDg = frm.DigNroConta_Debito.value
sPeso = "81472259395"
var sSoma = 0
var iNum = 0
var sNum = ""
for (i=0;i<=11;i++)
    {sSoma = sSoma + (pCC.charAt(i) * sPeso.charAt(i))}
r1 = sSoma % 11
if (r1==1)
   {r1="0"}
else if (r1==0)
   {r1="1"}
else
   {r1=11 - r1}
if (pDg.toUpperCase() != r1)
  {frm.DigNroConta_Debito.focus()
   alert("Dígito da Conta inválido")}
}

// Funcao para verificar o digito da conta do Unibanco
function chkDigContaUnibanco(frm)
{
pCC = Preenchezeros(frm.Agencia_Debito.value, 4) + Preenchezeros(frm.NroConta_Debito.value, 6)
pDg = frm.DigNroConta_Debito.value
sPeso = "121212121212"
var sSoma = 0
var iNum = 0
var sNum = ""
for (i=1;i<=10;i++)
    {
	iNum = (pCC.charAt(i) * sPeso.charAt(i))
    sNum = iNum.toString()
	if (sNum.length > 1)
	   {
	   iNum = 0
	   for (x=0;x<=sNum.length;x++)
	       {
		   var iNumx = 0
		   iNumx = sNum.charAt(x)
		   iNumx = new Number(iNumx)
		   iNum = iNum + iNumx
		   }
       }
	 sSoma = sSoma + iNum  
	}
r1 = sSoma % 10
if (r1!=0)
   {r1=10 - r1}
if (pDg.toUpperCase() != r1)
  {frm.DigNroConta_Debito.focus()
   alert("Dígito da Conta inválido")}
}

// Funcao para checar o banco em relacao ao digito agencia
function chkBanco(pBco)
{
if (document.all)
   {var frm = document.all("Inclusao")}
else   
   {var frm = document.getElementById("Inclusao")}

frm.Agencia_Debito.value=""
frm.DigAgencia_Debito.value=""
frm.NroConta_Debito.value=""
frm.DigNroConta_Debito.value=""
pBc = Preenchezeros(pBco.value, 3)
if (pBc == "001" || pBc == "237")
   {frm.DigAgencia_Debito.disabled = false}
if (pBc == "341" || pBc == "409" || pBc == "356" || pBc == "104" || pBc == "033")
   {frm.DigAgencia_Debito.disabled = true}
}

// Funcao para checar o digito da agencia
function chkDigAgencia()
{
if (document.all)
   {var frm = document.all("Inclusao")}
else   
   {var frm = document.getElementById("Inclusao")}

if (frm.DigAgencia_Debito.value == "")
   {return false}
pBc = Preenchezeros(frm.Banco_Debito.value, 3)
if (pBc == "001")
   {chkDigAgenciaBrasil(frm)}
if (pBc == "237")
   {chkDigAgenciaBradesco(frm)}
if (pBc == "341" || pBc == "356" || pBc == "104" || pBc == "033")
   {frm.DigAgencia_Debito.value=""}
if (pBc == "409")
   {frm.DigAgencia_Debito.value=""}
}

// Funcao para checar o digito da conta
function chkDigConta()
{
if (document.all)
   {var frm = document.all("Inclusao")}
else   
   {var frm = document.getElementById("Inclusao")}

if (frm.DigNroConta_Debito.value == "")
   {return false}
pBc = Preenchezeros(frm.Banco_Debito.value, 3)
if (pBc == "001")
   {chkDigContaBrasil(frm)}
if (pBc == "033")
   {chkDigContaBanespa(frm)}
if (pBc == "104")
   {chkDigContaCEF(frm)}
if (pBc == "237")
   {chkDigContaBradesco(frm)}
if (pBc == "341")
   {chkDigContaItau(frm)}
if (pBc == "356")
   {chkDigContaReal(frm)}
if (pBc == "409")
   {chkDigContaUnibanco(frm)}

}

// Funcao para checar CPF

function ValidaCPF(pObj){ 
var i; 
var flgTeste;

// Primeiro checa o CPF, caso esteja errado checa CGC
s = pObj.value; 
var c = s.substr(0,9); 
var dv = s.substr(9,2); 
var d1 = 0; 
flgTeste = true

if (s == "")
   {return true}

for (i = 0; i < 9; i++) 
   { 
   d1 += c.charAt(i)*(10-i); 
   } 

if (d1 == 0)
   {flgTeste = false} 

if (s.length > 11)
   {flgTeste = false} 

d1 = 11 - (d1 % 11); 

if (d1 > 9) d1 = 0; 
if (dv.charAt(0) != d1) 
   {flgTeste = 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) 
   {flgTeste = false} 

// Caso o CPF estiver errado checa CGC
if (flgTeste == false)
{
    var i;
    flgTeste = true
	var c = s.substr(0,12);
    var dv = s.substr(12,2);
    var d1 = 0;

    if (s.length > 14)
        {flgTeste = false} 
	
	for (i = 0; i < 12; i++)
    {
        d1 += c.charAt(11-i)*(2+(i % 8));
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1)
       {flgTeste = 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)
       {flgTeste = false} 
    
    if (flgTeste == false)
       {
	   alert("CPF/CGC invalido");
//       pObj.focus();
       return false;
       }
} 
return true;
}

function BoxAguardeCarregando() 
{ 
var corpo = "<TABLE width=200 border=0 bgcolor=#FFFFCC>"
corpo = corpo + "  <tr> "
corpo = corpo + "    <TD HEIGHT=34 ALIGN=CENTER>Aguarde, carregando...</TD> "
corpo = corpo + "  </tr> "
corpo = corpo + "  </table> "
this.corpo = corpo
}

//--------------------------------------------------------------------
// rotina de valida??o do DV de cart?o de cr?dito Hipercard
function isHPCreditCard(numCartao) {
		if (numCartao.length != 13) return false;

		var S1 = numCartao.charCodeAt(10)-48;
		var S2 = numCartao.charCodeAt(11)-48;
		
		var m1 = ((numCartao.charCodeAt(0)-48)*9);
		var m2 = ((numCartao.charCodeAt(1)-48)*8);
		var m3 = ((numCartao.charCodeAt(2)-48)*7);
		var m4 = ((numCartao.charCodeAt(3)-48)*6);
		var m5 = ((numCartao.charCodeAt(4)-48)*5);
		var m6 = ((numCartao.charCodeAt(5)-48)*4);
		var m7 = ((numCartao.charCodeAt(6)-48)*3);
		var m8 = ((numCartao.charCodeAt(7)-48)*2);
		var MT1 = (m1+m2+m3+m4+m5+m6+m7+m8);
		var R1 = (MT1%11);
		
		var DV1 = 0;
		if (R1 == 0 || R1 == 1) DV1 = 0; 
		else DV1 = (11 - R1);
		
		var m1a = ((numCartao.charCodeAt(0)-48)*2);
		var m2a = ((numCartao.charCodeAt(1)-48)*9);
		var m3a = ((numCartao.charCodeAt(2)-48)*8);
		var m4a = ((numCartao.charCodeAt(3)-48)*7);
		var m5a = ((numCartao.charCodeAt(4)-48)*6);
		var m6a = ((numCartao.charCodeAt(5)-48)*5);
		var m7a = ((numCartao.charCodeAt(6)-48)*4);
		var m8a = ((numCartao.charCodeAt(7)-48)*3);
		var m9a = (DV1*2);
		var MT2 = (m1a+m2a+m3a+m4a+m5a+m6a+m7a+m8a+m9a);
		var R2 = (MT2%11);
		
		var DV2 = 0;
		if (R2 == 0 || R2 == 1) DV2 = 0;
		else DV2 = (11 - R2);
		
		m1a = ((numCartao.charCodeAt(0)-48)*3);
		m2a = ((numCartao.charCodeAt(1)-48)*2);
		m3a = ((numCartao.charCodeAt(2)-48)*9);
		m4a = ((numCartao.charCodeAt(3)-48)*8);
		m5a = ((numCartao.charCodeAt(4)-48)*7);
		m6a = ((numCartao.charCodeAt(5)-48)*6);
		m7a = ((numCartao.charCodeAt(6)-48)*5);
		m8a = ((numCartao.charCodeAt(7)-48)*4);
		m9a = (DV1*0);
		var m10a = (DV2*0);
		var m11a = (S1*3);
		var m12a = (S2*2);
		var MT3 = (m1a+m2a+m3a+m4a+m5a+m6a+m7a+m8a+m9a+m10a+m11a+m12a);
		var R3 =  (MT3%11);
		
		var DV3 = 0;
		if (R3 == 0 || R3 == 1) DV3 = 0;
		else DV3 = (11 - R3);
		
		if (DV1 == (numCartao.charCodeAt(8)-48) && 
		    DV2 == (numCartao.charCodeAt(9)-48) && 
		    DV3 == (numCartao.charCodeAt(12)-48)) 
		    return true;
		else return false;
}		

