PageSourceSearch

https://www.ceit.es/o/ceit-theme/js/main.js?browserId=chrome&minifierType=js&languageId=es_ES&t=1790832330000

js ceit.es collected 2026-10-02 04:28:48 UTC 10,324 bytes, 319 lines download raw bytes

1/*1790832592000*/
2
3window.jquery = window.jQuery;
4AUI().ready(
5	/*
6	This function gets loaded when all the HTML, not including the portlets, is
7	loaded.
8	*/
9	'aui-base', 'aui-helper-hidden', 'event', 'node-event-simulate', 'event-resize', 'liferay-sign-in-modal', 
10	'node-scroll-info', 'anim', 
11	function(A) {
12		var signIn = A.one('li.sign-in a');
13	
14		if (signIn && signIn.getData('redirect') !== 'true') {
15			signIn.plug(Liferay.SignInModal);
16		}
17		
18		var body = A.getBody();
19		
20	    
21	    var slideMenu = A.one('.slide-nav .navbar-toggle');
22	    slideMenu.on('click', slideMenuButton);
23	    
24	    if(A.one('.overlay') != null){
25	    A.one('.overlay').on('click', simulateSlideNav);
26		}
27	
28	    body.on('windowresize', bodyWindowResize);
29		
30		
31		var firstMenuElement;
32		var secondMenuElement;
33		
34		// Evita que al hacer click en el botón que abre el segundo menu en responsive, cierre el menu principal
35		A.all('.unav_nav ul > li > .dropdown-menu.mega-dropdown-menu').each(function () {
36			this.on('click', function (event) {
37				event.stopPropagation();
38			});
39		});
40		
41		A.all('.unav_nav ul > li > button').each(function () {
42			this.on('click', firstMenuButton);
43		});
44		
45		A.all('.unav_nav ul > li .unav_submenu').each(function () {
46			var element = this;
47			
48			if (this.one('.unav_colSubmenu1 .unav_botonSubmenu') != null) {
49				this.one('.unav_colSubmenu1 .unav_botonSubmenu').on('click', function (){
50					secondMenuElement = element;
51					openMenu2Button(element);
52				});			
53			}
54			
55			if (this.one('.unav_colSubmenu2 > button') != null) {
56				this.one('.unav_colSubmenu2 > button').on('click', function (){
57					hideMenu2Button(element);
58				});
59			}
60			
61			if (this.one('.unav_colSubmenu1 > button') != null) {
62				this.one('.unav_colSubmenu1 > button').on('click', hideMenu1Button);
63			}
64		});
65		
66		// Evento lanzado al hacer click fuera del menu principal cuando este esta abierto en modo responsive
67		function simulateSlideNav() {
68			slideMenu.simulate('click');
69		}
70		
71		// Evento lanzado al redimensionar la ventana
72		function bodyWindowResize() {
73	    	var hasSlideActive = A.one('.slide-nav .navbar-toggle').hasClass('slide-active');
74
75        	if (body.width() > 992 && hasSlideActive) {
76	        	if (secondMenuElement != null) {
77	        		hideMenu2Button(secondMenuElement);
78	        	}
79	        	
80	        	if (firstMenuElement != null) {
81	        		hideMenu1Button();
82	        	}
83	        	
84	        	slideMenu.simulate('click');
85	        	
86	        	A.all('.unav_colSubmenu1').setStyle('display', '');
87	        	A.all('.unav_colSubmenu2').setStyle('display', '');
88	        	
89	        	expandMenu("true");
90        	}
91		}
92		
93		// Evento lanzado al abrir el menu en responsive
94		function slideMenuButton () {
95			var selected = slideMenu.hasClass('slide-active');
96
97			if($("#search").length > 0){
98			var hasSearchOpen = A.one('#search').hasClass('open');
99			if (hasSearchOpen) {			  	
100				A.one('#search').simulate('click');
101			}	
102
103			new A.Anim({
104	        	duration: 0.5,
105				node: '.slidemenu',
106				to: {
107					right: selected ? '-100%' : '0px'
108				} 
109			}).run();
110        
111			new A.Anim({
112	        	duration: 0.5,
113				node: '.overlay',
114				to: {
115					top: selected ? '-2000px' : '0px'
116				} 
117			}).run();
118        		
119			new A.Anim({
120	        	duration: 0.5,
121				node: '#navbar-height-col',
122				to: {
123					right: selected ? '-420px' : '0px'
124				} 
125			}).run();
126        
127			new A.Anim({
128	        	duration: 0.5,
129				node: '.page-content',
130				to: {
131					right: selected ? '0px' : '420px'
132				} 
133			}).run();
134
135			slideMenu.toggleClass('slide-active', !selected);
136			A.all('.page-content, .navbar, body, .navbar-header, .slidemenu').toggleClass('slide-active');
137			expandMenu("true");
138			if (secondMenuElement != null) {
139				hideMenu2Button(secondMenuElement);
140     		}
141			}
142			
143	   };
144		
145	   // Evento lanzado al abrir el primer nivel del menu en responsive
146	   function firstMenuButton(){
147		   firstMenuElement = this;
148		   var expanded = this.attr('aria-expanded');
149		   if (expanded == null) {
150				expanded = "false";
151		   }
152		   expandMenu(expanded)
153		}
154		
155		// Muestra u oculta el menu principal en responsive
156		function expandMenu(expanded) {
157			if (expanded == "true") {
158				A.all('#navbar-main .dropdown-toggle, #navbar-top').removeClass('visiblemobile');
159			} else {
160				A.all('#navbar-main .dropdown-toggle, #navbar-top').addClass('visiblemobile');
161			}
162		}
163		
164		// Evento lanzado al abrir el segundo nivel del menu en responsive
165		function openMenu2Button(node){
166			node.one('.unav_colSubmenu1').setStyle('display', 'none');
167			node.one('.unav_colSubmenu2').setStyle('display', 'block');
168		}
169		
170		// Evento lanzado al cerrar el segundo nivel del menu en responsive
171		function hideMenu2Button(node){
172			node.one('.unav_colSubmenu1').setStyle('display', 'list-item');
173			node.one('.unav_colSubmenu2').setStyle('display', 'none');
174			
175			secondMenuElement = null;
176		}
177		
178		// Evento lanzado al cerrar el primer nivel del menu en responsive
179		function hideMenu1Button(){
180			firstMenuElement.simulate('click');
181			firstMenuElement = null;
182		}
183		
184		// Evento lanzado al abrir el buscador
185		function searchButton(event) {
186			event.preventDefault();
187			var hasSlideActive = A.one('.slide-nav .navbar-toggle').hasClass('slide-active');
188			if (hasSlideActive) {
189				simulateSlideNav();
190			}
191			A.one('#search').addClass('open');
192			A.one('#search > form  input[type="search"]').focus();
193		}
194		
195		// Evento lanzado al cerrar el buscador
196		function searchClosebutton(event) {
197			if (event.shiftKey && event.keyCode == 9) { // shift was down when tab was pressed             
198				if (A.one(event.target) == A.one('#search input[type="search"]')) {             
199	                event.preventDefault();
200	                A.one('#search button').focus();
201	            }
202	        } else if (event.keyCode == 9) { // solo tab                         
203	            if (A.one(event.target) == A.one('#search button')) {
204	                event.preventDefault();
205	                A.one('#search input[type="search"]').focus();
206	            }
207	        } else if (event.target == this || event.target.className == 'close' || event.keyCode == 27) {            
208	            this.removeClass('open');
209	        }
210		}
211	}
212);
213
214// Recogemos las alturas a las que se encuentran los componentes que vayan a tener el efecto parallax
215var parallaxElementsOffSet = [];
216$(".parallax").each(function( index ) {
217	parallaxElementsOffSet[index] = $(this).offset();
218});
219
220// Aplica el efecto Parallax y la altura dinamica al scroll de la pantalla
221function smoothScroll() {
222	//  Añadimos el scroll virtual a la pantalla
223    var yScrollPosition = Scrollbar.init(document.querySelector('.scroller')).scrollTop;
224    // Recogemos la altura del header
225    var alturaHeader = $('#banner').outerHeight();    
226	// Se recoge la altura del log
227    if(document.getElementById('p_p_id_145_') != null){
228        var alturaLog = $('#p_p_id_145_').outerHeight(); 
229    } else {
230    	var alturaLog = 0;
231    }
232    
233    // HITO 2: EFECTO PARALLAX GLOBAL    	  
234	// Efecto parallax para los elementos que contengan la clase parallax
235	$(".parallax").each(function( index ) {
236		var marginTop =  $(this).css("margin-top");
237		marginTop = marginTop.substr(0, marginTop.length-2);
238		var alturaParallax = parallaxElementsOffSet[index].top - alturaLog - alturaHeader - marginTop;  
239	    if (yScrollPosition > alturaParallax){
240	    	setTranslate(0, ((yScrollPosition - alturaParallax) * -.25), this);
241	    } else if(yScrollPosition < alturaParallax){
242			setTranslate(0, 0, this)
243		} 	  
244	});
245	  
246    //Tablet y movil
247    if(screen.width < 992){   	
248        //Si existe un usuario logeado, se le asigna una altura a los componentes de la cabecera
249    	if(document.getElementById('p_p_id_145_') != null){
250	        $('.unav #heading #search-button').addClass('altura_logeo');
251	        $('.unav #heading .slide-nav button.navbar-toggle').addClass('altura_logeo');
252	        $('.unav #heading #search-icon').addClass('altura_logeo'); 
253	        $('.unav #heading .menu-buscar').addClass('altura_logeo');
254	        
255	        $('.altura_logeo').css("top", alturaLog +"px");
256	        $('.unav #heading #navbar-moviloption').css('bottom', '152px');
257    	}
258    }
259    
260    //Movil
261    if(screen.width < 768){   
262        // Si existe un usuario logeado, se le asigna una altura doble al buscador
263    	if(document.getElementById('p_p_id_145_') != null){	
264			$('.unav #heading .menu-buscar').addClass('altura_logeo_doble');
265			
266			$('.altura_logeo_doble').css("top", alturaLog * 2 +"px");
267		}
268    }
269
270    requestAnimationFrame(smoothScroll);
271
272    // Restamos las alturas del login y del header para que el scroll encaje perfecto
273    var alturaHeader = 110;
274    var alturaTotalARestar = alturaLog + alturaHeader;    
275    $('.scroller').css("height","calc(100vh - " + alturaTotalARestar + "px)");
276};
277
278//  Estilo translate3d en la posicion recogida y al elemento recogido
279function setTranslate(xPos, yPos, el) {
280    el.style.transform = "translate3d(" + xPos + ", " + yPos + "px, 0)";
281};
282
283function isOverflowHidden() {
284	if (screen.width < 992) {
285		var navbarTopHeight = screen.height - (110 + $('.unav #heading #navbar-moviloption').height() + $('.unav #heading #navbar-top .navbar-nav').height());
286		if ($('#p_p_id_145_').height() != null) {
287			navbarTopHeight = navbarTopHeight - $('#p_p_id_145_').height();
288			
289			// Se aprovecha para ajustar el menu
290			$('#heading .slidemenu').css('top', '170px');
291		}
292		if (navbarTopHeight >  $('.unav #navbar-main-movil .navbar-nav.pull-right').height()) {
293			/*$('#heading .slidemenu').css('overflow-y', 'hidden');*/
294		}
295	}
296}
297
298window.jquery = window.jQuery;
299AUI().ready(
300	function isOverflowHidden(){
301		if(document.getElementById('wrapper') != null){
302			if(!$('#wrapper').hasClass('scroller')){
303				$('#wrapper').addClass('scroller');
304			}
305		}
306		var scrollbarElement = document.querySelector('.scroller');
307		var Scrollbar = window.Scrollbar;
308		if (scrollbarElement.length > 0) {
309			Scrollbar.init(scrollbarElement);	
310		}
311		
312		/* INIT AMLR-544: El footer aparece cortado */
313		// Si existe el banner en pantalla, se llama al listener para el funcionamiento del efecto Parallax
314		// if(document.querySelector("#titulos_banner_parallax") != null){
315			window.addEventListener("DOMContentLoaded", smoothScroll, false);
316		// }
317		/* END AMLR-544 */
318	}
319);

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.