$(document).on('click', '#twitter_login , #google_login , #facebook_login', function(e){
	
	e.preventDefault();
	
	var url='/plugins/twitter/manager.php';
	if($(this).attr('id')=='google_login') url='/plugins/google/manager.php';
	if($(this).attr('id')=='facebook_login') url='/plugins/facebook/manager.php';
	
	$parent=$(this).closest('[name="simple_form"]');
	
	var from=$parent.data('from');
	var return_params=$parent.data('return_params');
	
	location.href=url+'?from='+from+return_params;
	
});

$(document).on('focus , blur', '#email', function(e){
	
	$parent=$(this).closest('[name="simple_form"]');
	
	var value=$(this).val();
	
	//if(e['type']=='focusin') $parent.find('input[type="submit"].continue').show(); else 
	if(e['type']=='focusout' && value==''){
		//$parent.find('input[type="submit"].continue').hide();
		$parent.find('#form_error').hide();
	}
});

$(document).on('change', '#email', function(){//cambiamos dinámicamente el parámetro email en el link de Recuperar contraseña
	$parent=$(this).closest('[name="simple_form"]');
	
	var email=$(this).val();
	
	var url=$parent.find('[name="reset_link"]').attr('template')?.replace('{email}', email);
	$parent.find('[name="reset_link"]').attr('href', url);
});

var current_email = null;

$(document).on('submit', 'form#plugin_sign', function(e){
	
	e.preventDefault();

	document.querySelector("svg.login-loader")?.classList.remove("hidden");
	
	$parent=$(this).closest('[name="simple_form"]');
	
	if($parent.find('[type="submit"]').is(':disabled')) return;

	current_email = null;
	
	$parent.find('[type="submit"]').attr('disabled');
	$parent.find('#form_error').hide();
	$parent.find('#loading').show();
	
	var from=$parent.data('from');
	
	var password=null;
	var email = $parent.find('#email').val();
	var password = $parent.find('#password').val();
	// if(password != '') password=$.md5(password);

	var remember_me = $parent.find('#remember-me-chk')[0]?.checked ?? false;
	var terms_agreement = $parent.find('#terms-agreement-chk')[0]?.checked ?? false;
	var newsletter_subscription = $parent.find('#newsletter-chk')[0]?.checked ?? false;
	var login_type = $parent.find('#login-type').val() ?? (!!password) ? "full" : "partial";
	var signup_type = $parent.find('#signup-type').val() ?? "old";
	
	var args = {};
	if(!!password) {
		var args={from:from, login_type:login_type, email:email, password:password, remember_me:remember_me};
	}
	else {
		var args={from:from, signup_type:signup_type, email:email, terms_agreement:terms_agreement, newsletter_subscription:newsletter_subscription};
	}
	
	if($parent.data('referred_id') !== undefined) args['referred_id']=$parent.data('referred_id');
	if($parent.data('purchase_domain') !== undefined) args['purchase_domain']=$parent.data('purchase_domain');
	if($parent.data('store_url') !== undefined) args['store_url']=$parent.data('store_url');//reseñas
	
	//console.log( args );
	$.post(
		'/plugins/sign/validate.php',
		args,
		function(data){ //console.log(data);//return;

			if ('otp_wall' in data) {
				let vbox_container = document.querySelector(".vbox-container .loaded_content") || document.querySelector("#sign_all_code");
				vbox_container.innerHTML = `
					<style>
					.otp-box {
						text-align: center;
						display: grid;
						justify-content: center;
						gap: 0.5ch;
					}
					.info-title {
						text-align: center;
					}
					.sub-info {
						font-size: 1em;
						font-family: system-ui;
						margin-top: -1em;
						margin-bottom: 1em;
						text-align: center;
					}
					input#otp-input {
						display: block;
						width: calc(11ch + 4.2ch);
						font-size: 2em;
						letter-spacing: 1ch;
						text-align: center;
						padding: 0.4ch 2ch;
						font-family: monospace;
					}
					.otp-error {
						color: orangered;
						font-family: monospace;
						font-size: 0.9em;
						margin-bottom: 0.5em;
						font-weight: 600;
					}
					@media screen and (max-width: 480px) {
						div#sign_all_code {
							margin-top: 2em;
						}
					}
					</style>
					<div class="info-title">Verificación en 2 pasos</div>
					<div class="sub-info">Introduce el código que te hemos enviado al correo</div>
					<div class="otp-box">
						<input type="tel" placeholder="..." id="otp-input" size="6" maxlength="6">
						<div class="otp-error"></div>
					</div>
				`;

				return;
			}

			if(data['error']!==undefined) {
				
				if(data['already']!==undefined){
					$parent.find('#password').show();
					$parent.find('#password').focus();
				}
				
				if(data['forgot']!==undefined) $parent.find('.forgot').show();
				
				$parent.find('#form_error').html(data['error']);
				$parent.find('#form_error').show();
				
				if(data['already'] !== undefined) {
					
					if(window.location.pathname.startsWith("/register")) {
						setTimeout(() => {
							window.location.href = `/login/?email=${email}`;
						}, 1000);
					}else {

						current_email = email;
						$parent.find( '[name="swap_sign"]' ).click();

					}

				}else {
					document.querySelector("svg.login-loader")?.classList.add("hidden");
				}
				
				$parent.find('[type="submit"]').removeAttr('disabled');
				$parent.find('#loading').hide();
				
			}else if(data['url']!==undefined){
				
				location.href=data['url'];
				
			}else location.reload();
			
		}, 'json'
	);
	
});//

$( document ).on( 'click', '[name="swap_sign"]', function(){

	$this = $(this);
	let data = $this.attr( 'refData' );

	$.post(
		'/plugins/sign/simple_form.php',
		{ data:data },
		function( html ){
			
			$this.parents( '#sign_all_code' ).html( html );
			if( current_email != null ) $( '[type="email"]' ).val( current_email );

		}
	);
});

$(document).on('input', '#otp-input', function(e) {
	if (e.target.value.length !== 6)
		return;

	let otp_err_elem = document.querySelector(".otp-error");

	let frm_data = new FormData();
	frm_data.append("otp", e.target.value);
	fetch("/plugins/sign/validate_otp.php", {
		method: "POST",
		body: frm_data
	})
	.then(r => r.json())
	.then(result => {
		if ("location" in result)
			setTimeout(() => {
				location.href = result["location"]; 
			}, 3000);
		if ("error" in result) {
			otp_err_elem.innerHTML = result["error"];
			return;
		}
		location.reload();
	})
	.catch(err => {
		console.log(err);
		otp_err_elem.textContent = "Error desconocido";
	});
});

// ----- FACEBOOK:
/*
var facebookStatus=null;
var facebookAppId;

function statusChangeCallback(response) {
	console.log('statusCallback');
	console.log(response);
	
	if(facebookStatus===null && response.authResponse!==undefined && response.status === 'connected'){
		
		$('#facebook_iframe').hide();
		
		var uid = response.authResponse.userID;
		
		$.post(
			'/plugins/sign/get_user_social.php',
			{type:'facebook', id:uid},
			function(data){
				console.log(data);
				if(data['error']!==undefined) return;
				
				if(data['name']!==undefined){
					data['name']=data['name'].charAt(0).toUpperCase() + data['name'].slice(1);
					var s='Continuar como '+data['name'];
					$('.continue.facebook span.center').text(s);
				}
				
				if(data['avatar']!==undefined){
					$('.continue.facebook span.avatar').html('<img src="/images_avatars/'+data['avatar']+'" />');
				}
				
				$('#facebook_login').show();
				
			}, 'json'
		);
		
	}
	
	console.log('sigue');
		
	if(response.authResponse!==null && response.status!='connected'){
		console.log('error auth');
		//console.log(response);
	}else{
		console.log('normal: '+facebookStatus);
		if(response.status=='connected'){
			$('#facebook_iframe').hide();
			$('#facebook_login').show();
			if(facebookStatus !== null) location.href=$('#facebook_login').attr('href');
		}
	}
	
	facebookStatus=response.status;
	
}//statusChange

window.fbAsyncInit = function() {
	console.log('async');
	
	facebookStatus=null;
	facebookAppId=$(window).data('FACEBOOK_APP_ID');
	
	if(facebookAppId === undefined){
		console.log('error id FB');
		return;
	}
	
	if(isMobile){
		$('.fb-login-button').attr('data-width', '300');
		$('.fb-login-button').attr('data-size', 'medium');
	}
	
	FB.init({
		appId: facebookAppId,
		xfbml: true,
		cookies: true,
		version: 'v2.10',
		status: true
	});
	
	FB.Event.subscribe('auth.authResponseChange', function(response) {
		console.log('do something with response');
		statusChangeCallback(response);
	});
	
	FB.Event.subscribe('auth.statusChange', function(response) {
		var value='';
		if(response.status=='connected' && response.authResponse.userID !== undefined) value=response.authResponse.userID;
		console.log('guardamos FB id');
		$.post(
			'/actions/set_session.php',
			{field:'facebookId', value:value}
		);
	});
	
};//fbAsyncInit function
*/
// ----- :FACEBOOK