PageSourceSearch

https://correiodoestado.com.br/application/themes/correiodoestado.com.br/js/usuario_v090.js

js correiodoestado.com.br collected 2026-09-24 08:48:26 UTC 25,012 bytes, 804 lines download raw bytes

1$(document).ready(function(){
2
3	// dv_login, dv_esqueci, dv_cadastro
4	$('.dv_login .js_esqueci').click(function(e){
5		$('.dv_login, .dv_cadastro').hide();
6		$('.dv_esqueci').show();
7	});
8	$('.dv_esqueci .js_esqueci').click(function(e){
9		$('.dv_esqueci, .dv_cadastro').hide();
10		$('.dv_login').show();
11	});
12
13
14	if ( $.isFunction($.fn.validate) ) {
15		function clear_msg_callback(seletor) {
16			setTimeout(function(){
17				$(seletor).html('');
18			}, 10000);
19		};
20
21		var validatorContato = $("#contato-form").bind("invalid-form.validate", function() {
22			$("#retorno_form").html("Preencha corretamente os campos do formulário");
23		}).validate({
24			errorElement: "em",
25			errorContainer: $("#retorno_form"),
26			rules: {
27				nome: {
28					required: true,
29					minlength: 3,
30					maxlength: 100
31				},
32				email: {
33					required: true,
34					email: true,
35					maxlength: 100
36				},
37				telefone: {
38					required: true,
39					minlength: 14,
40					maxlength: 15
41				},
42				assunto: {
43					required: true
44				},
45				mensagem: {
46					required: true,
47					minlength: 10,
48					maxlength: 200
49				}
50			},
51			submitHandler: function(form, event) {
52				event.preventDefault();
53				var enviaForm = $.ajax({
54					method:'POST',
55					url:"atendimento/enviar_contato/",
56					data:$("#contato-form").serialize(),
57					dataType:'json'
58				}).done(function(obj, textStatus, jqXHR) {
59					var rs = typeof obj.rs != "undefined" ? obj.rs : 'erro';
60					var msg = typeof obj.msg != "undefined" ? obj.msg : '';
61
62					if(rs == 'erro_captcha'){
63						msg = 'Mostre que você não é um robô';
64					}
65
66					$("#retorno_form").html(msg).show();
67
68					if(rs=='sucesso'){
69						window.location = SITE_URL+'atendimento/acompanhamento/'+obj.hash;
70					}
71
72					return false;
73				}).fail(function(jqXHR, textStatus, errorThrown) {
74					console.log('error');
75					$("#retorno_form").html('Erro ao processar o formulário, por favor tente mais tarde').show();
76				}).always(function(data, textStatus, errorThrown) {
77					//alert( "complete" );
78				});
79
80				// Set another completion function for the request above
81				enviaForm.always(function(data, textStatus, errorThrown) {
82					clear_msg_callback("#retorno_form");
83				});
84
85				return false;
86			}
87		});
88
89		var validatorLogin = $("#login-form").bind("invalid-form.validate", function() {
90			$("#retorno_login-form").html("Preencha corretamente os campos do formulário");
91		}).validate({
92			errorElement: "em",
93			errorContainer: $("#retorno_login-form"),
94			rules: {
95				identity: {
96					required: true,
97					email: true,
98					maxlength: 100
99				},
100				password: {
101					required: true,
102					minlength: 6
103				}
104			},
105			submitHandler: function(form, event) {
106				event.preventDefault();
107				var sufixo = $("#login-form input[name=holos]").val()==1 ? '_holos' : '';
108				var url = 'usuario/logar'+sufixo+'/';
109
110				if(sufixo=='_holos'){
111					$("#login-form input.botao-enviar").replaceWith('<div class="botao-enviar" style="padding:0px;"><img src="'+STATIC_URL+'images/pulse-1s-101px.gif" style="margin-bottom:0px; height:50px;" /></div>');
112				}
113
114				var enviaForm = $.ajax({
115					method:'POST',
116					url:url,
117					data:$("#login-form").serialize(),
118					dataType:'json',
119					timeout: 5000 // Timeout de 5 segundos
120				}).done(function(obj, textStatus, jqXHR) {
121					var rs = typeof obj.rs != "undefined" ? obj.rs : 'erro';
122					var msg = typeof obj.msg != "undefined" ? obj.msg : '';
123
124					//$("#retorno_login-form").html(msg).show();
125					if(sufixo=='_holos'){
126						$("#login-form div.botao-enviar").replaceWith('<input type="submit" value="Acessar" data-wait="Aguarde..." class="botao-enviar w-button">');
127					}
128
129					// RECEBEU UMA RESPOSTA DO SERVIDOR
130					if(rs=='sucesso'){
131						window.location = obj.url;
132						flashMessage(rs, msg);
133					}else if(rs=='erro'){
134						flashMessage(rs, msg);
135					}
136				}).fail(function(jqXHR, textStatus, errorThrown) {
137					console.log('error');
138					var msg = 'Erro ao processar o login, por favor tente mais tarde';
139					if(textStatus === 'timeout'){
140						msg = 'Estamos demorando um pouco mais que o esperado para processar sua solicitação. Por favor e tente novamente em alguns instantes (Holos error code: 522).';
141					}
142
143					$("#retorno_login-form").html(msg).show();
144				}).always(function(data, textStatus, errorThrown) {
145					//alert( "complete" );
146				});
147
148				// Set another completion function for the request above
149				enviaForm.always(function(data, textStatus, errorThrown) {
150					clear_msg_callback("#retorno_login-form");
151				});
152
153				return false;
154			}
155		});
156
157		var validatorEsqueci = $("#esqueci-form").bind("invalid-form.validate", function() {
158			$("#retorno_esqueci-form").html("Informe corretamente o seu e-mail de cadastro");
159		}).validate({
160			errorElement: "em",
161			errorContainer: $("#retorno_esqueci-form"),
162			rules: {
163				identity: {
164					required: true,
165					email: true,
166					maxlength: 100
167				}
168			},
169			submitHandler: function(form, event) {
170				event.preventDefault();
171				var sufixo = $("#esqueci-form input[name=holos]").val()==1 ? '_holos' : '';
172				var url = 'usuario/esqueci_minha_senha'+sufixo+'/';
173
174				if(sufixo=='_holos'){
175					$("#esqueci-form input.botao-enviar").replaceWith('<div class="botao-enviar" style="padding:0px;"><img src="'+STATIC_URL+'images/pulse-1s-101px.gif" style="margin-bottom:0px; height:50px;" /></div>');
176				}
177
178				var enviaForm = $.ajax({
179					method:'POST',
180					url:url,
181					data:$("#esqueci-form").serialize(),
182					dataType:'json',
183					timeout: 5000 // Timeout de 5 segundos
184				}).done(function(obj, textStatus, jqXHR) {
185					var rs = typeof obj.rs != "undefined" ? obj.rs : 'erro';
186					var msg = typeof obj.msg != "undefined" ? obj.msg : '';
187
188					//$("#retorno_esqueci-form").html(msg).show();
189					if(sufixo=='_holos'){
190						$("#esqueci-form div.botao-enviar").replaceWith('<input type="submit" value="Acessar" data-wait="Aguarde..." class="botao-enviar w-button">');
191					}
192
193					// RECEBEU UMA RESPOSTA DO SERVIDOR
194					if(rs=='sucesso'){
195						flashMessage(rs, msg);
196						$('#esqueci-form input[name=email]').val('');
197					}else if(rs=='erro'){
198						flashMessage(rs, msg);
199					}
200				}).fail(function(jqXHR, textStatus, errorThrown) {
201					console.log('error');
202					var msg = 'Erro ao processar formulário, por favor tente mais tarde';
203					if(textStatus === 'timeout'){
204						msg = 'Estamos demorando um pouco mais que o esperado para processar sua solicitação. Por favor e tente novamente em alguns instantes (Holos error code: 522).';
205					}
206
207					$("#retorno_esqueci-form").html(msg).show();
208				}).always(function(data, textStatus, errorThrown) {
209					//alert( "complete" );
210				});
211
212				// Set another completion function for the request above
213				enviaForm.always(function(data, textStatus, errorThrown) {
214					clear_msg_callback("#retorno_esqueci-form");
215				});
216
217				return false;
218			}
219		});
220
221		// Regra para CPF ou CNPJ no mesmo campo
222		jQuery.validator.addMethod("len14or18", function(element) {
223			return element.length==14 || element.length==18 ? true : false;
224		}, jQuery.validator.format("O número do documento precisa ter 14 ou 18 digitos"));
225
226		// Alterna entre os campos de PF e PJ
227		function alterna_pf_pj(doc){
228			if(doc.length==18){
229				$('.formCadUser .dv_PF').hide();
230				$('.formCadUser .dv_PJ').show();
231				$('.formCadUser input.inp_tipo_pessoa').val('PJ');
232				$('.formCadUser input.inp_cpf').val('');
233				$('.formCadUser input.inp_cnpj').val(doc);
234			}else{
235				$('.formCadUser .dv_PF').show();
236				$('.formCadUser .dv_PJ').hide();
237				$('.formCadUser input.inp_tipo_pessoa').val('PF');
238				$('.formCadUser input.inp_cpf').val(doc);
239				$('.formCadUser input.inp_cnpj').val('');
240			}
241
242			return;
243		};
244
245		$('.formCadUser .cpfcnpj').keyup(function(){
246			var doc = $(this).val();
247			alterna_pf_pj(doc);
248		});
249
250		var validatorPreCadastro = $("#pre_cadastro-form").bind("invalid-form.validate", function() {
251			$("#retorno_pre_cadastro-form").html("Informe o seu CPF ou CNPJ");
252		}).validate({
253			errorElement: "em",
254			errorContainer: $("#retorno_pre_cadastro-form"),
255			rules: {
256				doc: {
257					required: true,
258					minlength: 14,
259					maxlength: 18
260				}
261			},
262			submitHandler: function(form, event) {
263				event.preventDefault();
264				$('.dv_login, .dv_esqueci').hide();
265				$('.dv_cadastro').show();
266				$('.stepper.stepper-horizontal li:eq(1)').addClass('completed');
267
268				var doc = $("#pre_cadastro-form .cpfcnpj").val();
269				$('#cadastro-form .cpfcnpj').val(doc);
270				alterna_pf_pj(doc);
271
272				return false;
273			}
274		});
275
276		if($("#email_cadastro").css('display') || $("#email_repita").css('display')){
277			$(document).on("cut copy paste contextmenu", "#email_cadastro, #email_repita", function(e) {
278				e.preventDefault();
279			});
280		}
281
282		var validatorCadastro = $("#cadastro-form").bind("invalid-form.validate", function() {
283			$("#retorno_cadastro-form").html("Preencha corretamente os campos do formulário");
284		}).validate({
285			ignore: '',
286			errorElement: "em",
287			errorContainer: $("#retorno_cadastro-form"),
288			rules: {
289				nome_completo: {
290					required: function(element){
291						return $("#cadastro-form input[name=tipo_pessoa]").val()=="PF";
292					},
293					maxlength: 150
294				},
295				nome_fantasia: {
296					required: function(element){
297						return $("#cadastro-form input[name=tipo_pessoa]").val()=="PJ";
298					},
299					maxlength: 150
300				},
301				email: {
302					required: true,
303					email: true,
304					maxlength: 100
305				},
306				repetir_email: {
307					required: true,
308					email: true,
309					maxlength: 100,
310					equalTo: "#email_cadastro"
311				},
312				telefone: {
313					required: true,
314					maxlength: 15
315				},
316				senha: {
317					required: true,
318					minlength: 8,
319					medium_password: true
320				}
321			},
322			submitHandler: function(form, event) {
323				event.preventDefault();
324				var enviaForm = $.ajax({
325					method:'POST',
326					url:"usuario/cadastrar/",
327					data:$("#cadastro-form").serialize(),
328					dataType:'json'
329				}).done(function(obj, textStatus, jqXHR) {
330					var rs = typeof obj.rs != "undefined" ? obj.rs : 'erro';
331					var msg = typeof obj.msg != "undefined" ? obj.msg : '';
332
333					$("#retorno_cadastro-form").html(msg).show();
334
335					// RECEBEU UMA RESPOSTA DO SERVIDOR
336					if(rs=='sucesso'){
337						window.location = obj.url;
338						flashMessage(rs, msg);
339					}else if(rs=='erro'){
340						flashMessage(rs, msg);
341					}
342				}).fail(function(jqXHR, textStatus, errorThrown) {
343					console.log('error');
344					$("#retorno_cadastro-form").html('Erro ao processar o cadastro, por favor tente mais tarde').show();
345				}).always(function(data, textStatus, errorThrown) {
346					//alert( "complete" );
347				});
348
349				// Set another completion function for the request above
350				enviaForm.always(function(data, textStatus, errorThrown) {
351					clear_msg_callback("#retorno_cadastro-form");
352				});
353
354				return false;
355			}
356		});
357
358		if($("#atualiza-cadastro-form input[name=tipo_pessoa]").css('display')){
359			var tipo_pessoa = $("#atualiza-cadastro-form input[name=tipo_pessoa]").val();
360			if(tipo_pessoa!=''){
361				var num_doc = $("#atualiza-cadastro-form .cpfcnpj").val()
362				alterna_pf_pj(num_doc);
363			}
364		}
365
366		var validatorCadastroUpdate = $("#atualiza-cadastro-form").bind("invalid-form.validate", function() {
367			$("#retorno_atualiza-cadastro-form").html("Preencha corretamente os campos do formulário");
368		}).validate({
369			ignore: '',
370			errorElement: "em",
371			errorContainer: $("#retorno_atualiza-cadastro-form"),
372			rules: {
373				cpf: {
374					cpfBR: true,
375					required: function(element){
376						return $("#atualiza-cadastro-form input[name=tipo_pessoa]").val()=="PF";
377					},
378					maxlength: 14
379				},
380				nome_completo: {
381					required: function(element){
382						return $("#atualiza-cadastro-form input[name=tipo_pessoa]").val()=="PF";
383					},
384					maxlength: 150
385				},
386				cnpj: {
387					cnpjBR: true,
388					required: function(element){
389						return $("#atualiza-cadastro-form input[name=tipo_pessoa]").val()=="PJ";
390					},
391					maxlength: 18
392				},
393				nome_fantasia: {
394					required: function(element){
395						return $("#atualiza-cadastro-form input[name=tipo_pessoa]").val()=="PJ";
396					},
397					maxlength: 150
398				},
399				email: {
400					required: true,
401					email: true,
402					maxlength: 100
403				},
404				telefone: {
405					required: true,
406					maxlength: 15
407				}
408			},
409			messages: {
410				cpf: { cpfBR: 'O número do CPF parece estar inválido' },
411				cnpj: { cnpjBR: 'O número do CNPJ parece estar inválido' }
412			},
413			submitHandler: function(form, event) {
414				event.preventDefault();
415				var enviaForm = $.ajax({
416					method:'POST',
417					url:"usuario/alterar_cadastro/",
418					data:$("#atualiza-cadastro-form").serialize(),
419					dataType:'json'
420				}).done(function(obj, textStatus, jqXHR) {
421					var rs = typeof obj.rs != "undefined" ? obj.rs : 'erro';
422					var msg = typeof obj.msg != "undefined" ? obj.msg : '';
423
424					$("#retorno_atualiza-cadastro-form").html(msg).show();
425
426					// RECEBEU UMA RESPOSTA DO SERVIDOR
427					if(rs=='sucesso'){
428						window.location = $("#atualiza-cadastro-form input[name=url_redirect]").val();
429						flashMessage(rs, msg);
430					}else if(rs=='erro'){
431						flashMessage(rs, msg);
432					}
433				}).fail(function(jqXHR, textStatus, errorThrown) {
434					console.log('error');
435					$("#retorno_atualiza-cadastro-form").html('Erro ao processar o cadastro, por favor tente mais tarde').show();
436				}).always(function(data, textStatus, errorThrown) {
437					//alert( "complete" );
438				});
439
440				// Set another completion function for the request above
441				enviaForm.always(function(data, textStatus, errorThrown) {
442					clear_msg_callback("#retorno_atualiza-cadastro-form");
443				});
444
445				return false;
446			}
447		});
448
449		var validatorSenha = $("#senha-form").bind("invalid-form.validate", function() {
450			$("#retorno_senha-form").html("Preencha corretamente os campos do formulário");
451		}).validate({
452			errorElement: "em",
453			errorContainer: $("#retorno_senha-form"),
454			rules: {
455				senha_antiga: {
456					required: true,
457					minlength: 6
458				},
459				senha_nova: {
460					required: true,
461					minlength: 8,
462					medium_password: true
463				},
464				senha_nova_confirmacao: {
465					required: true,
466					equalTo: "#senha-form input[name=senha_nova]"
467				}
468			}
469		});
470
471		var validatorRestarSenha = $("#resetar_senha-form").bind("invalid-form.validate", function() {
472			$("#retorno_resetar_senha-form").html("Preencha corretamente os campos do formulário");
473		}).validate({
474			errorElement: "em",
475			errorContainer: $("#retorno_resetar_senha-form"),
476			rules: {
477				senha_nova: {
478					required: true,
479					minlength: 8,
480					medium_password: true
481				},
482				senha_nova_confirmacao: {
483					required: true,
484					equalTo: "#resetar_senha-form input[name=senha_nova]"
485				}
486			}
487		});
488
489		$("#resetar_senha-form").on("submit", function(event) {
490			event.preventDefault(); // Impede o envio padrão do formulário
491
492			if ($(this).valid()) {
493				$("#resetar_senha-form input.botao-enviar").replaceWith('<div class="botao-enviar w-button" style="padding:0px; width:140px; text-align:center;"><img src="'+STATIC_URL+'images/pulse-1s-101px.gif" style="margin-bottom:0px; height:50px;" /></div>');
494				$(this).off("submit").submit();
495			}
496		});
497
498		$('.dn_Renviar_Codigo_Email').click(function(){
499			var sel = $(this);
500			var pacote = sel.data('pacote');
501
502			var enviaForm = $.ajax({
503				method:'GET',
504				url:"usuario/reenviar_codigo_email/",
505				data: { 'pacote':pacote },
506				dataType:'json'
507			}).done(function(obj, textStatus, jqXHR) {
508				var rs = typeof obj.rs != "undefined" ? obj.rs : 'erro';
509				var msg = typeof obj.msg != "undefined" ? obj.msg : '';
510
511				$("#retorno_reenviar_codigo").html(msg).show();
512
513				// RECEBEU UMA RESPOSTA DO SERVIDOR
514				if(rs=='sucesso'){
515					window.location = obj.url;
516					flashMessage(rs, msg);
517				}else if(rs=='erro'){
518					flashMessage(rs, msg);
519				}
520			}).fail(function(jqXHR, textStatus, errorThrown) {
521				console.log('error');
522				$("#retorno_reenviar_codigo").html('Erro ao reenviar código, por favor tente mais tarde').show();
523			}).always(function(data, textStatus, errorThrown) {
524				//alert( "complete" );
525			});
526
527			// Set another completion function for the request above
528			enviaForm.always(function(data, textStatus, errorThrown) {
529				clear_msg_callback("#retorno_reenviar_codigo");
530			});
531		});
532
533		var validatorConfirmarEmail = $("#email-confirmacao-form").bind("invalid-form.validate", function() {
534			$("#retorno_email-confirmacao-form").html("Informe o código enviado para o e-mail");
535		}).validate({
536			errorElement: "em",
537			errorContainer: $("#retorno_email-confirmacao-form"),
538			rules: {
539				codigo: {
540					required: true,
541					minlength: 6,
542					maxlength: 10
543				}
544			}
545		});
546
547		function comparaMesAno(mes, ano){
548			var date = new Date();
549			var ano_atual = date.getFullYear();
550			var ano_a = String(ano_atual).substr(2, 2);
551			var mes_a = date.getMonth()+1;
552			mes = Number(mes);
553
554			if(mes<1 || mes>12){
555				return false;
556			} else if(ano>ano_a || (ano==ano_a && mes>=mes_a)){
557				return true;
558			}
559
560			return false;
561		};
562
563		$(document).on('keyup keydow blur', '#pagar-assinatura-form input[name="cartao[vencimento]"]', function(){
564			var sel = $(this);
565			var mes_ano = sel.val().split('/');
566			var validade = comparaMesAno(mes_ano[0], mes_ano[1]);
567
568			sel.parent('.item-form').find('em').remove();
569
570			if(mes_ano.length==2 && mes_ano[0].length==2 && mes_ano[1].length==2 && validade){
571				sel.removeClass('error').addClass('valid');
572			}else{
573				sel.removeClass('valid').addClass('error');
574				sel.parent('.item-form').append('<em class="error">Informe o mês/ano de expiração do cartão</em>');
575			}
576		});
577
578		function pagamentoViaCartao(){
579			return $('#pagar-assinatura-form .dvCamposCartao').data('mostrar')==1;
580		};
581
582		var validatorConfirmarEmail = $("#pagar-assinatura-form").bind("invalid-form.validate", function() {
583			$("#retorno_pagar-assinatura-form").html("Preencha os campos");
584		}).validate({
585			errorElement: "em",
586			errorContainer: $("#retorno_pagar-assinatura-form"),
587			rules: {
588				nome:{ required:true },
589				cpf_cnpj:{
590					required:true,
591					minlength: 14,
592					maxlength: 18,
593					len14or18: true
594				},
595				telefone:{ required:true },
596				email:{ required:true, email:true },
597				'cartao[numero]':{ required:pagamentoViaCartao(), minlength:13 },
598				'cartao[titular]':{ required:pagamentoViaCartao(), minlength:10, maxlength:40 },
599				'cartao[vencimento]':{ required:pagamentoViaCartao(), minlength:5 },
600				'cartao[codigo]':{
601					required:pagamentoViaCartao(),
602					minlength: 3
603				},
604				'parcelas':{ required:pagamentoViaCartao() }
605			},
606			messages: {
607				nome:{ required:'Informe seu nome' },
608				cpf_cnpj:{ required:'Informe o seu CPF ou CNPJ' },
609				telefone:{ required:'Informe seu telefone' },
610				email:{ required:'Informe o seu e-mail' },
611				'cartao[numero]':{ required:'Digite o número do cartão', creditcard:'O número do cartão parece estar incorreto' },
612				'cartao[titular]':{ required:'Digite o nome do titular do cartão' },
613				'cartao[vencimento]':{ required:'Digite o vencimento do cartão', monthyear:'Informe o Mês/Ano do vencimento do cartão' },
614				'cartao[codigo]':{ required:'Digite o código do cartão' },
615				'parcelas':{ required:'Selecione a quantidade de parcelas' }
616			},
617			submitHandler: function(form, event) {
618				event.preventDefault();
619
620				var enviaForm = $.ajax({
621					method:'POST',
622					url:"assinatura/solicitar_nova/",
623					data:$("#pagar-assinatura-form").serialize(),
624					dataType:'json'
625				}).done(function(obj, textStatus, jqXHR) {
626					var rs = typeof obj.rs != "undefined" ? obj.rs : 'erro';
627					var msg = typeof obj.msg != "undefined" ? obj.msg : (rs=='ok' ? 'Processado' : 'Erro ao processar');
628
629					$("#retorno_pagar-assinatura-form").html(msg).show();
630					console.log(jqXHR.status+': '+textStatus);
631
632					// RECEBEU UMA RESPOSTA DO SERVIDOR
633					if(rs=='ok'){
634						window.location = obj.url;
635						flashMessage(rs, msg);
636					}else if(rs=='erro'){
637						flashMessage(rs, msg);
638					}
639				}).fail(function(jqXHR, textStatus, errorThrown) {
640					console.log(jqXHR.status+': '+textStatus+' - '+errorThrown);
641
642					$("#retorno_pagar-assinatura-form").html('Erro ao processar a assinatura, por favor tente mais tarde').show();
643				}).always(function(jqXHR, textStatus, errorThrown) {
644					//console.log(jqXHR.status+': '+textStatus+' - '+errorThrown);
645				});
646
647				// Set another completion function for the request above
648				enviaForm.always(function(jqXHR, textStatus, errorThrown) {
649					clear_msg_callback("#retorno_pagar-assinatura-form");
650					console.log(jqXHR.status+': '+textStatus+' - '+errorThrown);
651				});
652
653				return false;
654			}
655		});
656	}
657
658	function atualizaParcelamento(sel){
659		$('.dvCamposCartao .dv_parcelas').html('<input type="hidden" name="parcelas" value="1">');
660		return;
661		/*
662		var subtotal = $('.as_subtotal').val();
663		var parcela_min = $('.as_parcela_minima').val();
664		var maxParcelas = sel.data('parcelas');
665		var html_parcela = '<input type="hidden" name="parcelas" value="1">';
666
667		if(maxParcelas>1 && subtotal > (parcela_min*2)){
668			html_parcela = '<select name="parcelas" class="as_parcela_pgto">';
669			html_parcela += '<option selected="selected" value="">- Parcelas -</option>';
670
671			for (let i = 1; i <= maxParcelas; i++) {
672				var selecionado = i==1 ? ' selected="selected"' : '';
673				var valor_parc = subtotal/i;
674
675				if(i==1 || valor_parc>parcela_min){
676					html_parcela += '<option value="'+i+'"'+selecionado+'>'+i+'x R$ '+number_format (valor_parc, 2, ',', '.')+'</option>';
677				}
678			}
679			html_parcela += '</select>';
680		}
681
682		$('.dvCamposCartao .dv_parcelas').html(html_parcela);
683		*/
684	};
685	
686	function htmlCartoes(){
687		if($('.dvCamposCartao').css('display')){
688			$('.dvCamposCartao').html('');
689
690			var mostrar_cartoes = $('.dvCamposCartao').data('mostrar');
691			if(mostrar_cartoes==1){
692				var form_cartoes = $(".dvCamposCartao_Clone").html();
693				$('.dvCamposCartao').html(form_cartoes);
694
695				jQuery(".dvCamposCartao .mask.monthyear").on("input", function () {
696					_monthYear(this);
697				});
698
699				jQuery(".dvCamposCartao .mask.num").on("input", function () {
700					_onlyNumbers(this);
701				});
702
703				jQuery(".dvCamposCartao .mask.creditcard").on("input", function () {
704					_cardnumbermask(this);
705				});
706
707				var sel = $('#pagar-assinatura-form input[name=id_as_gateway_pagamento]');
708				if(sel.attr('type')=='radio'){
709					sel = $('#pagar-assinatura-form input[name=id_as_gateway_pagamento]:checked');
710				}
711
712				atualizaParcelamento(sel);
713			}
714		}
715	};
716
717	if($('#pagar-assinatura-form input[name=id_as_gateway_pagamento]').css('display')){
718		var sel = $('#pagar-assinatura-form input[name=id_as_gateway_pagamento]');
719		if(sel.attr('type')=='hidden'){
720			$('.dvCamposCartao').data('mostrar', sel.data('cartao'));
721			htmlCartoes();
722		}else{
723			$('#pagar-assinatura-form input[name=id_as_gateway_pagamento]').click(function(){
724				var sel = $(this);
725				$('.dvCamposCartao').data('mostrar', sel.data('cartao'));
726				htmlCartoes();
727			});
728		}
729	}
730
731	// ABRE TEXTO DE UMA ITERACAO
732	$('.toggle-iteracao').click(function(){
733		var seletor = $(this);
734		seletor.next('.texto-bt').show();
735		seletor.find('.dvAberto').hide();
736	});
737
738	// OCULTA TEXTO DE UMA ITERACAO
739	$('.texto-bt .ocultar-texto').click(function(){
740		var seletor = $(this).parent('.texto-bt');
741		seletor.hide();
742		$(this).closest('.texto-helpdesk').find('.dvAberto').show();
743	});
744
745	// ABRE/OCULTA FORM DE ITERACOES EM atendimento/acompanhamento/
746	$('.dn_ResponderAtendimento').click(function(){
747		$('.text-areahelpdesk').show();
748	});
749
750	// FECHA UM ATENDIMENTO em atendimento/acompanhamento/
751	$('.dn_FinalizarAtendimento').click(function(){
752		var post = geraObj();
753		post['id'] = $(this).data('id_contato');
754		post['prefixo'] = '';
755
756		$.post('atendimento/fechar/', post, callbackFechaAtendimento, "json");
757	});
758	function callbackFechaAtendimento(data)
759	{
760		flashMessage(data.rs, data.msg);
761		if(data.rs == 'sucesso') 
762			window.location = SITE_URL;//+'cliente/meus-atendimentos/'
763	};
764
765
766	// FUNÇÃO PARA O CHEKCLIST DA SENHA DURANTE A VALIDAÇÃO
767	$('#pwd_res, #pwd_new, #pwd_reset').keyup(function() {
768		// Defini a variavel senha
769		var pwd_res = $(this).val();
770
771		//valida o tamanho
772		if ( pwd_res.length < 8 ) {
773			$('#pwd_length').removeClass('pwd-valid').addClass('pwd-invalid');
774		} else {
775			$('#pwd_length').removeClass('pwd-invalid').addClass('pwd-valid');
776		}
777
778		//valida letra
779		if ( pwd_res.match(/[a-z]/) ) {
780			$('#pwd_letter').removeClass('pwd-invalid').addClass('pwd-valid');
781		} else {
782			$('#pwd_letter').removeClass('pwd-valid').addClass('pwd-invalid');
783		}
784
785		//valida letra maiúscula
786		if ( pwd_res.match(/[A-Z]/) ) {
787			$('#pwd_cap').removeClass('pwd-invalid').addClass('pwd-valid');
788		} else {
789			$('#pwd_cap').removeClass('pwd-valid').addClass('pwd-invalid');
790		}
791
792		//valida números
793		if ( pwd_res.match(/\d/) ) {
794			$('#pwd_num').removeClass('pwd-invalid').addClass('pwd-valid');
795		} else {
796			$('#pwd_num').removeClass('pwd-valid').addClass('pwd-invalid');
797		}
798	}).focus(function() {
799		$('#pwd_info').show();
800	}).blur(function() {
801		$('#pwd_info').hide();
802	});
803	
804});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.