	/*
	 *
	 * 2003 - 2023 @ Yal Publicidad
	 * www.yalpublicidad.com
	 * online@yalpublicidad.com
	 *
	 * @yms
	 *
	 */
	
	// -- url
	function ujax(u,e){ e=(e!==undefined)?e:'php'; return u + '.' + e; }
	// ej. compartir.lista(1) : Si idPu es 0 no buscará publicación
	var compartir = {
		lista: function (idPu){
					$y.ajax({
							url : ujax('dat2json'),
							metodo: 'POST',
							data : 'acc=compartir&id='+idPu,
							contenidoTipo: 'application/x-www-form-urlencoded',
							suceso : function(j){
										$y.modal.abrir({ html: j });
									}
					});
			return false;
		},
		en: function (objLink){
				var aHref = objLink.href;
				var dataId = objLink.getAttribute('data-id');
				var dataRel = objLink.getAttribute('data-rel');
				window.open(dataRel);
				return false;
		}
	};

	ms=(function(d){
			var pag = 1, ePag = 1, ultPu;
			
			// -- actualizar cada x segundo
			function actXSeg(funcion,tiempo){
				//clearInterval(mbTimer);
				//mbTimer = setTimeout( function(){ funcion(); actXSeg(funcion,tiempo); }, tiempo );
				setTimeout( function(){ funcion(); actXSeg(funcion,tiempo); }, tiempo );
			};
		
			var ajax = function(e){
				$y.ajax({
							url: e.url,
							metodo: 'POST',
							data: e.data,
							contenidoTipo: 'application/x-www-form-urlencoded',
							suceso: function(r){ e.suceso(r); }
				});			
				return false;
			};
			// -- funcion wimdow.onload();
			function aOnload(func)
			{
				//window.addEventListener("load", func);
				//document.addEventListener("DOMContentLoaded", func);
				if (d.addEventListener){
					window.addEventListener('load',func,false);
				} else {
					window.attachEvent('onload',func);
				}

			}
			
			// -- funcion copiar
			function copiar(input) {
				let copyInput = document.querySelector(input);
				copyInput.select();
				document.execCommand("copy");
			}
			
			// -- abrir form de contacto
			function enviar_consulta_frm(id){
					ajax({
						url : ujax('dat2json'),
						data : 'acc=contactar&id='+id,
						suceso : function(j){
							$y.modal.abrir({ html: j })
						}
					})
			}
			
			// -- cargar ic de usuario
			function icusm(sel){
				if(!typeof d.querySelector(sel)) return;
				ajax({
					url : ujax('login'),
					data : 'a=icusm&key=',
					suceso : function(j){
						d.querySelector(sel).innerHTML=j;
					}
				});
			}
			
			// -- funcion fecha publicacion
			function fechaPu(fecha){
				
				// obtengo fecha local actual .toDateString() .getTime()
				var fechaActual = new Date();
				// si la fecha es vacia, retorno falso
				if( fecha===undefined || fecha==='' ) return fechaActual.toLocaleDateString();
				// obtengo fecha registrada
				var fechaR = new Date(fecha);
				// obtengo diferencia en milesegundos (1000*60*60*24) --> milisegundos -> segundos -> minutos -> horas -> días
				var day_as_milliseconds = 86400000,
					hour_as_milliseconds= 3600000,
					minute_as_milliseconds=60000;
				var diff_in_millisenconds = fechaActual - fechaR;
				var diffDias = diff_in_millisenconds / day_as_milliseconds;
				var diffHoras= diff_in_millisenconds / hour_as_milliseconds;
				var diffMinutos= diff_in_millisenconds / minute_as_milliseconds;
				
				// calculo si el registro si hizo hoy o días atrás
				if(diffDias < 1){
					// primero evaluo si la publicacion fue hace un momento
					if( diffMinutos < 1 ) return 'Hace un momento';
					
					// luego evaluo si la pulicacion se realizo hace menos de una hora
					if( diffMinutos.toFixed() < 60 ) return 'Hace ' + diffMinutos.toFixed() + ' minutos'; 
					
					// luego verifico si la publicacion se hizo hoy o ayer
					// primero evaluo si los dias son diferentes
					if( fechaR.getDay() < fechaActual.getDay()  ){
						return 'Ayer ' + fechaR.getHours() + ':' + ( (fechaR.getMinutes() < 10) ? '0' + fechaR.getMinutes() : fechaR.getMinutes());
					}
					// Si la publicacion es hoy muestro horas transcurridas
					if( diffHoras > 0 && diffHoras < 6 ){
							return 'Hace ' + diffHoras.toFixed() + ' horas';
					}
					
					return 'Hoy ' + fechaR.getHours() + ':' + ( (fechaR.getMinutes() < 10) ? '0' + fechaR.getMinutes() : fechaR.getMinutes());
				} 
				// si la diferencia de dias es igual a 1
				if( diffDias === 1 && ( (fechaActual.getDay() - fechaR.getDay()) === 1 ) ){
					return 'Ayer ' + fechaR.getHours() + ':' + ( (fechaR.getMinutes() < 10) ? '0' + fechaR.getMinutes() : fechaR.getMinutes());
				} if(diffDias > 1 && diffDias < 30){
					return fechaR.toLocaleString('default', { weekday: 'short' }) + ' ' + fechaR.toLocaleString('default', { day: 'numeric' }) + ' de ' + fechaR.toLocaleString('default', { month: 'long' });
				} if(diffDias > 28 && diffDias < 60){
					return fechaR.toLocaleString('default', { weekday: 'short' }) + ' ' + fechaR.toLocaleString('default', { day: 'numeric' }) + '/' + fechaR.toLocaleString('default', { month: 'short' });
				}
				
				return fechaR.toLocaleString('default', { d: 'long' });
			}
			
			// -- me gusta
			function me_gusta(id){
				var d=document;
				var lksme = d.getElementById('lksme'+id);
				
				ajax({
					url : ujax('dat2json'),
					data : 'acc=me_gusta&id='+id,
					suceso : function(j){
						var data = JSON.parse(j);
						// compruebo si pueden dar likes
						if(data[0].nolikes==1){ MsjBox.mostrar(data[0].msj); return; } 
						likes = data[0].likes;
						likesme = data[0].likesme;
						likes = (likes > 0) ? ' '+likes:'';
						if(likesme > 0) {
							lksme.classList.add('likesme');
							lksme.innerHTML='<i class="far fa-home-heart fs-24"></i>' + likes + '<span class="tooltipp">Te gusta</span>';
						}else{
							lksme.classList.remove('likesme');
							lksme.innerHTML='<i class="far fa-home-heart fs-24"></i>' + likes + '<span class="tooltipp">Me gusta</span>';
						}
					}
				});
			}
			
			// cargar funciones al leer body
			aOnload(function(){
				//cAuCookie(); 
				//carPubliC('#cfc'); 
				//icusm('#icUsM');
			});
			
			var c = {
				cookies: {
					borrar: function (n) { this.crear(n,"",-1);	},
					crear: function (nombre,valor,dias,horas) {
								var fecha = new Date();
								var expires = "";
								if (dias) {
									fecha.setTime(fecha.getTime()+(dias*24*60*60*1000));
									expires = "; expires="+fecha.toGMTString();
								}else if (!dias && horas){
									fecha.setTime(fecha.getTime()+(horas*60*60*1000));
									expires = "; expires="+fecha.toGMTString();
								}
								document.cookie = nombre+"="+valor+expires+"; path=/";
							},
					leer: function (n) {
								var nombreCO = n + "=";
								var ca = document.cookie.split(';');
								for(var i=0;i < ca.length;i++) { 
										var c = ca[i];//alert(c);
										while (c.charAt(0)===' '){c = c.substring(1,c.length);}
										if (c.indexOf(nombreCO) === 0){ return c.substring(nombreCO.length,c.length); }
								}
								return false;
							},
					permitir: function (colorFondo,color){ 
								nomCookie = 'ms://'+d.domain; 
								$textoCookie = '<div class="m-b-15">Las cookies son importantes para el correcto funcionamiento del sitio y para mejorar su experiencia de navegación. Asimismo, utilizamos cookies propias y de terceros para mostrarte publicidad según tus preferencias. Al continuar navegando aceptas su uso.</div>'; 
								if(this.leer(nomCookie) === false){ 
									var divC = d.createElement('div'); 
										divC.setAttribute( "id", "iconsCookie" );
										divC.style.position = "fixed"; 
										divC.style.bottom = 0;
										divC.style.left = 0;
										divC.style.textAlign = 'center';
										divC.style.padding = "15px 25px";
										divC.style.borderTop = "1px solid #cccccc";
										divC.style.backgroundColor = (typeof colorFondo!=="undefined")?colorFondo:"#ffffff";
										divC.style.Color = (typeof color!=="undefined")?color:"#202124"; 
										divC.style.zIndex = "2001";
										divC.innerHTML = $textoCookie;
									var btn = document.createElement('button');
										btn.innerHTML = 'Aceptar';
										btn.style.border = "1px solid #545454";
										btn.style.borderRadius = "5px";
										btn.style.backgroundColor = "#ffffff";
										btn.style.cursor = "pointer";
										btn.style.display = "inline-flex";
										btn.style.padding = "10px 45px";
										btn.onclick = function(){ //alert('cookie');
														ms.cookies.crear(nomCookie,'consCookie',360,24);
														divC.style.bottom = '-1000px';
										};
										divC.appendChild(btn);
										d.body.appendChild( divC );
								} 
							}
				},
				descargar: function(id,dl){
					var acc = (typeof dl === 'undefined') ? 'descargar' : 'regDescarga';
						$y.ajax({
							url : ujax('dat2json'),
							metodo: 'POST',
							data : 'acc=' + acc + '&id='+id,
							contenidoTipo: 'application/x-www-form-urlencoded',
							suceso : function(j){
										d = JSON.parse(j);
										$y.modal.abrir({ html: d[0].m });
										if(d[0].dl==='iss'){ ms.login(null,d[0].href); }
										if(d[0].dl==='sw'){ location.href=d[0].href; setTimeout($y.modal.cerrar,15000); }
									}
						});
						return false;
				},
				login: function(e,l){ 
					var dataRel = ( e !== null ) ? e:''; 
					var lg = (typeof l !== 'undefined' ) ? l:'';
					switch(lg){
						case 'in':
							// logear usuario
							if(e.user.value===''){
								e.user.focus();
								MsjBox.mostrar('Ingresa un nombre de usuario válido');
								return false;
							} if(e.passwd.value.length < 6 ){
								e.passwd.focus();
								MsjBox.mostrar('Ingresa una contraseña válida');
								return false;
							}
							var fData = new FormData(e); 
							$y.formData({
								url: e.action,
								data: fData,
								suceso: function(r){
									var data = JSON.parse(r);
									$y.modal.abrir({html:data[0].m});
									if(data[0].login==='OKR') { location.href = data[0].href; }
								}
							});
							return false;
							break;
						case 'out':
							
							//cerrar sesion
							break;
						case 'nuevacuenta':
							if(e.nombre.value.length < 3){
								e.nombre.focus();
								MsjBox.mostrar('Ingresa un nombre(s) válido');
								return false;
							} if(e.apellidos.value.length < 6){
								e.apellidos.focus();
								MsjBox.mostrar('Ingresa apellidos válidos');
								return false;
							} if(e.user.value===''){
								e.user.focus();
								MsjBox.mostrar('Ingresa un nombre de usuario válido');
								return false;
							} if(e.passwd.value.length < 6 ){
								e.passwd.focus();
								MsjBox.mostrar('Ingresa una contraseña válida');
								return false;
							} if(e.passwd.value !== e.rpasswd.value ){
								e.rpasswd.focus();
								MsjBox.mostrar('Las contraseñas no coinciden');
								return false;
							}
							fData = new FormData(e); 
							$y.formData({
								url: e.action,
								data: fData,
								suceso: function(r){
									var data = JSON.parse(r);
									MsjBox.mostrar(data[0].m);
									if(data[0].login==='OKR') { location.href = e.ref.value; }
								}
							});
							return false;
							break;
						default:
							ref = (lg!=='') ? lg : ((typeof e.getAttribute('data-rel') !== 'undefined')?e.getAttribute('data-rel'):'');
						ajax({
							url : ujax('login'),
							data : 'a=iradmcu',
							suceso : function(j){
								var data = JSON.parse(j);
								if(data[0].login!==1){
									$y.modal.abrir({html:'<div class="row"><div class="col-md-12 text-center p-r-10 p-l-10 p-t-10 p-b-10"><form id="flmodal" action="login.php" method="post" onSubmit="return ms.login( this, \'in\' )"><input type="hidden" name="a" value="sign"><input type="hidden" name="ref" value="'+ref+'"><div class="fs-24 text-center m-b-15">Iniciar Sesión</div><div class="m-b-10"><input type="email" id="user" name="user" placeholder="Correo electrónico"></div><div class="m-b-10"><input type="password" id="passwd" name="passwd" placeholder="Contraseña:"></div><div><button class="button-login">Iniciar Sesión</button></div><div class="m-t-45 fs-small text-center"><a href="cuenta/recuperar-cuenta">¿Olvidaste tu contraseña?</a></div><hr><div class="m-t-25 text-center"><span class="fs-small">¿No tienes una cuenta?</span>   <a href="cuenta/nueva-cuenta'+((ref!=='')?'?ref='+encodeURIComponent(ref):'')+'">Regístrate</a></div></form></div></div>'});
								}else{
									location.href = dataRel.getAttribute('data-rel');
								}
							}
						});
					}	
				},
				actualizarxseg: function(funcion,tiempo){
					actXSeg(funcion,tiempo);
				},
				m : function(){ alert('Hola Mundoo!'); }
			};
		
			return c;
		})(document);