PageSourceSearch

https://libros.com/plugins/sign/simple.js?t=1790273710

js libros.com collected 2026-09-24 18:15:24 UTC 8,683 bytes, 330 lines download raw bytes

1$(document).on('click', '#twitter_login , #google_login , #facebook_login', function(e){
2	
3	e.preventDefault();
4	
5	var url='/plugins/twitter/manager.php';
6	if($(this).attr('id')=='google_login') url='/plugins/google/manager.php';
7	if($(this).attr('id')=='facebook_login') url='/plugins/facebook/manager.php';
8	
9	$parent=$(this).closest('[name="simple_form"]');
10	
11	var from=$parent.data('from');
12	var return_params=$parent.data('return_params');
13	
14	location.href=url+'?from='+from+return_params;
15	
16});
17
18$(document).on('focus , blur', '#email', function(e){
19	
20	$parent=$(this).closest('[name="simple_form"]');
21	
22	var value=$(this).val();
23	
24	//if(e['type']=='focusin') $parent.find('input[type="submit"].continue').show(); else 
25	if(e['type']=='focusout' && value==''){
26		//$parent.find('input[type="submit"].continue').hide();
27		$parent.find('#form_error').hide();
28	}
29});
30
31$(document).on('change', '#email', function(){//cambiamos dinámicamente el parámetro email en el link de Recuperar contraseña
32	$parent=$(this).closest('[name="simple_form"]');
33	
34	var email=$(this).val();
35	
36	var url=$parent.find('[name="reset_link"]').attr('template')?.replace('{email}', email);
37	$parent.find('[name="reset_link"]').attr('href', url);
38});
39
40var current_email = null;
41
42$(document).on('submit', 'form#plugin_sign', function(e){
43	
44	e.preventDefault();
45
46	document.querySelector("svg.login-loader")?.classList.remove("hidden");
47	
48	$parent=$(this).closest('[name="simple_form"]');
49	
50	if($parent.find('[type="submit"]').is(':disabled')) return;
51
52	current_email = null;
53	
54	$parent.find('[type="submit"]').attr('disabled');
55	$parent.find('#form_error').hide();
56	$parent.find('#loading').show();
57	
58	var from=$parent.data('from');
59	
60	var password=null;
61	var email = $parent.find('#email').val();
62	var password = $parent.find('#password').val();
63	// if(password != '') password=$.md5(password);
64
65	var remember_me = $parent.find('#remember-me-chk')[0]?.checked ?? false;
66	var terms_agreement = $parent.find('#terms-agreement-chk')[0]?.checked ?? false;
67	var newsletter_subscription = $parent.find('#newsletter-chk')[0]?.checked ?? false;
68	var login_type = $parent.find('#login-type').val() ?? (!!password) ? "full" : "partial";
69	var signup_type = $parent.find('#signup-type').val() ?? "old";
70	
71	var args = {};
72	if(!!password) {
73		var args={from:from, login_type:login_type, email:email, password:password, remember_me:remember_me};
74	}
75	else {
76		var args={from:from, signup_type:signup_type, email:email, terms_agreement:terms_agreement, newsletter_subscription:newsletter_subscription};
77	}
78	
79	if($parent.data('referred_id') !== undefined) args['referred_id']=$parent.data('referred_id');
80	if($parent.data('purchase_domain') !== undefined) args['purchase_domain']=$parent.data('purchase_domain');
81	if($parent.data('store_url') !== undefined) args['store_url']=$parent.data('store_url');//reseñas
82	
83	//console.log( args );
84	$.post(
85		'/plugins/sign/validate.php',
86		args,
87		function(data){ //console.log(data);//return;
88
89			if ('otp_wall' in data) {
90				let vbox_container = document.querySelector(".vbox-container .loaded_content") || document.querySelector("#sign_all_code");
91				vbox_container.innerHTML = `
92					<style>
93					.otp-box {
94						text-align: center;
95						display: grid;
96						justify-content: center;
97						gap: 0.5ch;
98					}
99					.info-title {
100						text-align: center;
101					}
102					.sub-info {
103						font-size: 1em;
104						font-family: system-ui;
105						margin-top: -1em;
106						margin-bottom: 1em;
107						text-align: center;
108					}
109					input#otp-input {
110						display: block;
111						width: calc(11ch + 4.2ch);
112						font-size: 2em;
113						letter-spacing: 1ch;
114						text-align: center;
115						padding: 0.4ch 2ch;
116						font-family: monospace;
117					}
118					.otp-error {
119						color: orangered;
120						font-family: monospace;
121						font-size: 0.9em;
122						margin-bottom: 0.5em;
123						font-weight: 600;
124					}
125					@media screen and (max-width: 480px) {
126						div#sign_all_code {
127							margin-top: 2em;
128						}
129					}
130					</style>
131					<div class="info-title">Verificación en 2 pasos</div>
132					<div class="sub-info">Introduce el código que te hemos enviado al correo</div>
133					<div class="otp-box">
134						<input type="tel" placeholder="..." id="otp-input" size="6" maxlength="6">
135						<div class="otp-error"></div>
136					</div>
137				`;
138
139				return;
140			}
141
142			if(data['error']!==undefined) {
143				
144				if(data['already']!==undefined){
145					$parent.find('#password').show();
146					$parent.find('#password').focus();
147				}
148				
149				if(data['forgot']!==undefined) $parent.find('.forgot').show();
150				
151				$parent.find('#form_error').html(data['error']);
152				$parent.find('#form_error').show();
153				
154				if(data['already'] !== undefined) {
155					
156					if(window.location.pathname.startsWith("/register")) {
157						setTimeout(() => {
158							window.location.href = `/login/?email=${email}`;
159						}, 1000);
160					}else {
161
162						current_email = email;
163						$parent.find( '[name="swap_sign"]' ).click();
164
165					}
166
167				}else {
168					document.querySelector("svg.login-loader")?.classList.add("hidden");
169				}
170				
171				$parent.find('[type="submit"]').removeAttr('disabled');
172				$parent.find('#loading').hide();
173				
174			}else if(data['url']!==undefined){
175				
176				location.href=data['url'];
177				
178			}else location.reload();
179			
180		}, 'json'
181	);
182	
183});//
184
185$( document ).on( 'click', '[name="swap_sign"]', function(){
186
187	$this = $(this);
188	let data = $this.attr( 'refData' );
189
190	$.post(
191		'/plugins/sign/simple_form.php',
192		{ data:data },
193		function( html ){
194			
195			$this.parents( '#sign_all_code' ).html( html );
196			if( current_email != null ) $( '[type="email"]' ).val( current_email );
197
198		}
199	);
200});
201
202$(document).on('input', '#otp-input', function(e) {
203	if (e.target.value.length !== 6)
204		return;
205
206	let otp_err_elem = document.querySelector(".otp-error");
207
208	let frm_data = new FormData();
209	frm_data.append("otp", e.target.value);
210	fetch("/plugins/sign/validate_otp.php", {
211		method: "POST",
212		body: frm_data
213	})
214	.then(r => r.json())
215	.then(result => {
216		if ("location" in result)
217			setTimeout(() => {
218				location.href = result["location"]; 
219			}, 3000);
220		if ("error" in result) {
221			otp_err_elem.innerHTML = result["error"];
222			return;
223		}
224		location.reload();
225	})
226	.catch(err => {
227		console.log(err);
228		otp_err_elem.textContent = "Error desconocido";
229	});
230});
231
232// ----- FACEBOOK:
233/*
234var facebookStatus=null;
235var facebookAppId;
236
237function statusChangeCallback(response) {
238	console.log('statusCallback');
239	console.log(response);
240	
241	if(facebookStatus===null && response.authResponse!==undefined && response.status === 'connected'){
242		
243		$('#facebook_iframe').hide();
244		
245		var uid = response.authResponse.userID;
246		
247		$.post(
248			'/plugins/sign/get_user_social.php',
249			{type:'facebook', id:uid},
250			function(data){
251				console.log(data);
252				if(data['error']!==undefined) return;
253				
254				if(data['name']!==undefined){
255					data['name']=data['name'].charAt(0).toUpperCase() + data['name'].slice(1);
256					var s='Continuar como '+data['name'];
257					$('.continue.facebook span.center').text(s);
258				}
259				
260				if(data['avatar']!==undefined){
261					$('.continue.facebook span.avatar').html('<img src="/images_avatars/'+data['avatar']+'" />');
262				}
263				
264				$('#facebook_login').show();
265				
266			}, 'json'
267		);
268		
269	}
270	
271	console.log('sigue');
272		
273	if(response.authResponse!==null && response.status!='connected'){
274		console.log('error auth');
275		//console.log(response);
276	}else{
277		console.log('normal: '+facebookStatus);
278		if(response.status=='connected'){
279			$('#facebook_iframe').hide();
280			$('#facebook_login').show();
281			if(facebookStatus !== null) location.href=$('#facebook_login').attr('href');
282		}
283	}
284	
285	facebookStatus=response.status;
286	
287}//statusChange
288
289window.fbAsyncInit = function() {
290	console.log('async');
291	
292	facebookStatus=null;
293	facebookAppId=$(window).data('FACEBOOK_APP_ID');
294	
295	if(facebookAppId === undefined){
296		console.log('error id FB');
297		return;
298	}
299	
300	if(isMobile){
301		$('.fb-login-button').attr('data-width', '300');
302		$('.fb-login-button').attr('data-size', 'medium');
303	}
304	
305	FB.init({
306		appId: facebookAppId,
307		xfbml: true,
308		cookies: true,
309		version: 'v2.10',
310		status: true
311	});
312	
313	FB.Event.subscribe('auth.authResponseChange', function(response) {
314		console.log('do something with response');
315		statusChangeCallback(response);
316	});
317	
318	FB.Event.subscribe('auth.statusChange', function(response) {
319		var value='';
320		if(response.status=='connected' && response.authResponse.userID !== undefined) value=response.authResponse.userID;
321		console.log('guardamos FB id');
322		$.post(
323			'/actions/set_session.php',
324			{field:'facebookId', value:value}
325		);
326	});
327	
328};//fbAsyncInit function
329*/
330// ----- :FACEBOOK

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.