// DOM para Opera para pegar corretamente os elementos
isDOM = document.getElementById ? 1:0; 

//************************************************************************************************************************
function validar(f) 
//************************************************************************************************************************
{    
     for( var i=0; i < campos_checar.length; ++i ) 
     { if (! campos_checar[i][1] (f,campos_checar[i][0],campos_checar[i][2],campos_checar[i][3]) ) 
		   { return false ; }
     }
   
    //alert('Ok!!  Seu formulário foi validado com sucesso.');     
    return true ;
}

//************************************************************************************************************************
//
//************************************************************************************************************************
function stripSpaces(x) {
    while (x.substring(0,1) == ' ') x = x.substring(1);
    return x;
}

//************************************************************************************************************************
function empty(x) { if (x.length > 0) return false; else return true; }
//************************************************************************************************************************

//************************************************************************************************************************
// Função para TEXT and TEXTAREA
//************************************************************************************************************************
function chkForNonblank (f,fld,msg) {
    var frm = f ;
    var e
    if(isDOM) {
    // Para Opera   
        e = document.getElementsByTagName('INPUT'); // returns a Node List
        for (var i=0; i<=e.length-1; ++i){
            if(e[i].name == fld) {
                if ( ! empty(stripSpaces(e[i].value)) ) return true; alert( msg ); e[i].focus();e[i].select();
            }
        }
	}else{
	    e = f.elements[fld]
	    if ( ! empty(stripSpaces(e.value))  ) return true; alert( msg ); e.focus();e.select();
	}
    return false;
}

//************************************************************************************************************************
// Função para RADIO e CHECKBOX
//************************************************************************************************************************
function chkForChecked (f,fld,msg) {
    var frm = f ;
    var e ;
    var j = 0 ; // Qual elemento de RADIO/CHECKBOX a retornar.
    if(isDOM) {
    // Para Opera   
        e = document.getElementsByTagName('INPUT'); // returns a Node List
        for (var i=0; i<=e.length-1; ++i){
            if(e[i].name == fld) {
                if(j==0)j=i;
                if ( e[i].checked ) return true;
            }
        }
        
    }else{
    
        e = f.elements[fld] ; // retorna a array de elementos
        
        for( var i=0; i < e.length; ++i ) { 
            if ( e[i].checked ) { 
                return true;
                break; 
            } 
        }
    }
    
    alert( msg );
    e[j].focus() ;
    return false; 
}

//************************************************************************************************************************
// Funcao para SELECT
//************************************************************************************************************************
function chkForIsSelected (f,fld,msg) {
    var e = document.getElementsByName(fld);
    if ( ! e[0].selectedIndex == 0 ) return true; 
    alert( msg );
    e[0].focus() ;
    return false;
}

//************************************************************************************************************************
// Funcao para checar entrada de valores numéricos
//************************************************************************************************************************
function chkNumeric (f,fld,msg) {
    var e = document.getElementsByName(fld);
    if ( !isNaN(parseInt(e[0].value)) ) return true; 
    alert( msg );
    e[0].focus() ;
    return false;
}

//************************************************************************************************************************
// Fucao para validar email.
//************************************************************************************************************************
function chkEmail (f,fld,msg) {
  var e = document.getElementsByName(fld);
  if (e[0].value == null){
    alert(msg);
    e[0].focus();
    return (false);}
  //tirando os espaços vazios no endereço
  for (x = 1; x < e[0].value.length; x ++) 
     { e[0].value= e[0].value.replace(' ', '')}
	
  var emailStr
  emailStr = e[0].value;
  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){
    alert('O email informado não é válido.');
    e[0].value="";
    e[0].focus();
    return (false);}
	
  var user=matchArray[1]
  var domain=matchArray[2]
  if (user.match(userPat)==null){
    alert("O seu Nome de usuário parece não ser válido.");
    e[0].value="";
    e[0].focus();
    return (false);}
	
  var IPArray=domain.match(ipDomainPat)
  if (IPArray!=null){
  for (var i=1;i<=4;i++){
  if (IPArray[i]>255){
    alert('O endereço do IP parece não ser válido!');
    e[0].value="";
    e[0].focus();
    return (false);}
  }
  return true;}

  var domainArray=domain.match(domainPat)
  if (domainArray==null){
    alert('O domínio parece não ser válido !');
    e[0].value="";
    e[0].focus();
    return (false);}
	
  var atomPat=new RegExp(atom,"g")
  var domArr=domain.match(atomPat)
  if (domArr[domArr.length-1].length<2 ||
    domArr[domArr.length-1].length>3){
    alert('O endereço deve conter três letras de domínio, ou duas letras do país.');
    e[0].value="";
    e[0].focus();
    return (false);}
	
  if (domArr.length<2){
    var errStr="Este endereço não está encontrando o seu provedor!"
    alert(errStr);
    e[0].value="";
    e[0].focus();
    return (false);}
	
return true;
}

//********************************************************************************
// Função para validação de Datas - Permitindo valores nulos na datas
//********************************************************************************
function chkDate(f,fld,msg,vazio) { 
  var e = document.getElementsByName(fld);
  dataStr = e[0].value;

  if (vazio == "sim") {
     return true;
  } else { 
	   if (dataStr == "") {
        alert(msg);e[0].focus(); e[0].select(); return false;
	   }
     var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; 
     var matchArray = dataStr.match(datePat); // formato da data ok? 
     if (matchArray == null) {
        alert("Data Inválida com formato inválido.");e[0].focus(); e[0].select(); return false;
     } 
     dia= matchArray[1]; 
     mes = matchArray[3]; 
     ano = matchArray[4]; 

     if (dia < 1 || dia > 31) {
   	    alert("Favor digitar um Dia Válido."); e[0].focus(); e[0].select();return false;
     } 

     if ((mes==4 || mes==6 || mes==9 || mes==11) && dia==31) {
        alert("O Mês "+mes+" não possue 31 dias!"); e[0].focus(); e[0].select(); return false;
     } 

     if (mes == 2) {
        // checando Fevereiro para dia 29  
	      var isleap = (ano % 4 == 0 && (ano % 100 != 0 || ano % 400 == 0)); 
	      if (dia>29 || (dia==29 && !isleap)) {
	         alert("Fevereiro de " + ano + " não tem " + dia + " dias!"); e[0].focus(); e[0].select(); return false;
        } 
     } 

     if (mes < 1 || mes > 12) {
        alert("Favor digitar um Mês Válido."); e[0].focus(); e[0].select(); return false;
     } 

     return true; // Data válida
		 
  }
} 
function FormataCPF(Campo, teclapres)
{

	var tecla = teclapres.keyCode;

	var vr = new String(Campo.value);
	vr = vr.replace(".", "");
	vr = vr.replace(".", "");
		vr = vr.replace("-", "");

	tam = vr.length + 1 ;

	
	if (tecla != 9 && tecla != 8){
		if (tam > 3 && tam < 7)
			Campo.value = vr.substr(0, 3) + '.' + vr.substr(3, tam);
		if (tam >= 7 && tam < 10)
			Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,tam-6);
		if (tam >= 10 && tam < 12)
			Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,3) + '-' + vr.substr(9,tam-9);
		}
}
function soNums(e)
	{
	    if (document.all){var evt=event.keyCode;}
	    else{var evt = e.charCode;}
	    if (evt <20 || (evt >47 && evt<58)){return true;}
	    return false;
	}
	
	function isNum(entra){   
		var str = entra;  
	//	if (str == 0)  {   
	//     return false;         
	//    }
	      for (var i = 0; i < str.length; i++){      
		   var ch = str.substring(i, i + 1);      
			if ((ch < "0" || "9" < ch)&&(ch != ".")){        
			 return false;         
			}      
	      } 
		return true;   
	}
	
	function isEmpty(s) {
	  return ((s == null) || (s.length == 0));
	}
				
	function F_Valida(){
		var oForm = eval('document.form');
		if (validar(document.getElementById('form'))){
			if(oForm.ds_valor.value == 0)
			{
				alert('Você deve selecionar um valor de pagamento.');
				oForm.ds_valor.focus();
				return false;
			}
			if(oForm.fl_cartao_credito.value == '')
			{
				alert('Você deve selecionar uma forma de pagamento.');
				return false;
			}
			//Pagamento com Cartão de Crédito
			if(oForm.fl_cartao_credito.value == '1'){
				ds_numero_cartao	= eval('document.form.ds_numero_cartao_' + oForm.cd_forma_pagamento.value);
				nu_digito_cartao	= eval('document.form.nu_digito_cartao_' + oForm.cd_forma_pagamento.value);
	
				//Número do Cartão
				if(isEmpty(ds_numero_cartao.value)){
					alert('O campo NÚMERO DO CARTÃO é obrigatório e deve ser preenchido.');
					ds_numero_cartao.focus();
					return false;
				}else{
					if(!isNum(ds_numero_cartao.value)){
						alert('O campo NÚMERO DO CARTÃO aceita apenas números. Verifique.');
						ds_numero_cartao.focus();
						return false;
					}
					
					if(parseInt(ds_numero_cartao.value.length) < 16){
						alert('O campo NÚMERO DO CARTÃO deve possuir 16 números. Verifique.');
						ds_numero_cartao.focus();
						return false;
					}
				}
				
				//Digito Verificador
				if(isEmpty(nu_digito_cartao.value)){
					alert('O campo DIGITO DE SEGURANÇA é obrigatório e deve ser preenchido.');
					nu_digito_cartao.focus();
					return false;
				}else{
					if(!isNum(nu_digito_cartao.value)){
						alert('O campo DIGITO DE SEGURANÇA aceita apenas números. Verifique.');
						nu_digito_cartao.focus();
						return false;
					}
					
					if(parseInt(nu_digito_cartao.value.length) < 3){
						alert('O campo DIGITO DE SEGURANÇA deve possuir 3 números. Verifique.');
						nu_digito_cartao.focus();
						return false;
					}
				}
			}
			
			oForm.submit();
		}
		return false;
	}
			
	function F_Seleciona_Pagamento_Cartao(pFormaPagamento, pItem){
		var oForm = eval('document.form');
		var i, iTotal, bFormaPagamento;
		
		oForm.cd_forma_pagamento.value	= pFormaPagamento;
		
		if (oForm.txt_itens_boleto)
		{
			iTotal = parseInt(oForm.txt_itens_boleto.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_boleto_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_deposito)
		{
			iTotal = parseInt(oForm.txt_itens_deposito.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_deposito_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_cartao_credito)
		{
			iTotal = parseInt(oForm.txt_itens_cartao_credito.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_cartao_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_precadastro)
		{
			iTotal = parseInt(oForm.txt_itens_precadastro.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_precadastro_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		oForm.fl_cartao_credito.value = '1';
		bFormaPagamento = eval('document.btn_cartao_' + pItem);
		bFormaPagamento.style.display = '';
	}
	
	function F_Seleciona_Pagamento_Boleto(pFormaPagamento, pItem){
		var oForm = eval('document.form');
		var i, iTotal, bFormaPagamento;
		
		oForm.cd_forma_pagamento.value	= pFormaPagamento;		
		
		if (oForm.txt_itens_cartao_credito)
		{
			iTotal = parseInt(oForm.txt_itens_cartao_credito.value);		
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_cartao_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_deposito)
		{
			iTotal = parseInt(oForm.txt_itens_deposito.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_deposito_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_boleto)
		{
			iTotal = parseInt(oForm.txt_itens_boleto.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_boleto_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_precadastro)
		{
			iTotal = parseInt(oForm.txt_itens_precadastro.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_precadastro_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		oForm.fl_cartao_credito.value = '0';
		bFormaPagamento = eval('document.btn_boleto_' + pItem);
		bFormaPagamento.style.display = '';
	}
	
	function F_Seleciona_Pagamento_Deposito(pFormaPagamento, pItem){
		var oForm = eval('document.form');
		var i, iTotal, bFormaPagamento;
		
		oForm.cd_forma_pagamento.value	= pFormaPagamento;		
		
		if (oForm.txt_itens_cartao_credito)
		{
			iTotal = parseInt(oForm.txt_itens_cartao_credito.value);		
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_cartao_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_boleto)
		{
			iTotal = parseInt(oForm.txt_itens_boleto.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_boleto_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_deposito)
		{
			iTotal = parseInt(oForm.txt_itens_deposito.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_deposito_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_precadastro)
		{
			iTotal = parseInt(oForm.txt_itens_precadastro.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_precadastro_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		oForm.fl_cartao_credito.value = '0';
		bFormaPagamento = eval('document.btn_deposito_' + pItem);
		bFormaPagamento.style.display = '';
	}
	
	function F_Seleciona_Pagamento_PreCadastro(pFormaPagamento, pItem){
		var oForm = eval('document.form');
		var i, iTotal, bFormaPagamento;
		
		oForm.cd_forma_pagamento.value	= pFormaPagamento;		
		
		if (oForm.txt_itens_cartao_credito)
		{
			iTotal = parseInt(oForm.txt_itens_cartao_credito.value);		
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_cartao_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_boleto)
		{
			iTotal = parseInt(oForm.txt_itens_boleto.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_boleto_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_deposito)
		{
			iTotal = parseInt(oForm.txt_itens_deposito.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_deposito_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		if (oForm.txt_itens_precadastro)
		{
			iTotal = parseInt(oForm.txt_itens_precadastro.value);
			for(i=1;i<=iTotal;i++){
				bFormaPagamento = eval('document.btn_precadastro_' + i);
				if(bFormaPagamento.style.display == ''){
					bFormaPagamento.style.display = 'none';
				}
			}
		}
		
		oForm.fl_cartao_credito.value = '0';
		bFormaPagamento = eval('document.btn_precadastro_' + pItem);
		bFormaPagamento.style.display = '';
	}
