function bodyOnload(){
	
	//Estos efectos no se aplican en móviles, ni estando autenticado
	if ( screen.width > 481 && $("#user-name").length == 0) {
		loadDock();
		load_finished = true;
		
		hoverImages();
	}
}

function fixContent() {
	
	var is_iPad = navigator.userAgent.match(/iPad/i) != null;
	
	var rc = $("#region-content");
	
	var pcc = $("#portal-column-content");
	var pcc_height = pcc.height();
	var pcc_position = pcc.position();
	
	var content = $("#content");
	var pc_position = $("#portal-columns").position();
		
	var page_height = $(window).height();
	var page_width = $(window).width();
	var footer_height = page_height / 10;
	
	var numBotones = 0;
	var max_height = 40;
	
	$("#content a.state-published, #content a.state-missing-value").each( function(e){
		numBotones = numBotones + 1;
	});
	
	//Ajuste de la anchura a la resolucion
	var pcc_new_width = page_width - $("#portal-lateral-image").width() - 71; //El 71 es por las barras de desplazamiento
	pcc.css('width', pcc_new_width+'px');
	
	//Ajustamos la altura
	if ( ! is_iPad ) {
		var new_height = page_height - footer_height - pc_position.top - 25; //El -25 es para que no pise el dock
		rc.css("height", new_height+"px");
	
		if ( $("#portal-breadcrumbs").height() > new_height+20  ) {
			 $("#portal-breadcrumbs").css("height", (new_height+20)+'px' );
		}
	
	}
	
	//Si hay botones, reajustamos margin-top, margin-left y width
	if ( $('body').is('.template-folder_listing') && numBotones >= 1 ) {
		
		var tamanyo_boton = 175; //Tamaño de un boton por número de botones
		
		//Modificamos el ancho en función del número de botones por fila
		var botones_x_fila_array = new Array(0,  
				1, 2, 3, 2, 2,  
				2, 2, 2, 3, 2,
				3, 3, 3, 3, 3,
				4, 4, 4, 4, 4,
				5, 6, 6, 6, 5);
		
		if ( numBotones < botones_x_fila_array.length ) {
			
			var total_botones = botones_x_fila_array[numBotones];
			var c_width = 175 * total_botones;
			
			while ( c_width > pcc_new_width ) {
				total_botones = total_botones - 1;
				c_width = 175 * total_botones;
			}
					
			content.css("width", c_width+"px");
			
			var c_margin_left = (pcc.width() - c_width) / 2;
			
			if( $.browser.msie && $.browser.version == '7.0' ) {
				c_margin_left = 0;
			}
				
			content.css("margin-left", c_margin_left+"px");
		}
		
	}
	
	//Mostramos el contenido
	document.getElementById('region-content').style.display = 'block';
	
	//Si estamos en la portada, ajustamos la imagen
	if ( $("#fondo_portada").css("display") == "block" ){
		
		//AJustamos la imagen de portada
		var img = $("#fondo_portada"); 
		var img_position = img.position();
		var new_height_portada = $(document).height()*0.9 - img_home_top;
		
		//Especial para resoluciones bajas, no iPad
		if ( screen.width < 801 && ! is_iPad ) {
			new_height_portada = 250;
		}
		else if ( is_iPad ) {
			new_height_portada = 425;
		}
		
		var new_width_portada = img_home_width * new_height_portada / img_home_height;
		var new_left_portada = ( $(document).width() - new_width_portada ) / 2;
		
		//Especial para resoluciones bajas, no iPad
		if ( screen.width < 801 && ! is_iPad ) {
			new_left_portada = 166;
			$("#portal-sevilla-home").css("background-image", "url('sevilla_fondo_movil_home.png')");
		}
		
		img.css("height", new_height_portada);
		img.css("width", new_width_portada);
		img.css("left", new_left_portada);
		
		//Ajustamos las letras
		var letras = $("#portal-sevilla-home");
		letras.css("height", new_height_portada);
		letras.css("width", new_width_portada);
		letras.css("left", new_left_portada);
	}
	else {
		if ( screen.width < 801 ) {
			$('#portal-searchbox').css('top', '100px');
		}	
	}
	
	//Ajustamos el buscador
	var search = $("#portal-searchbox");
	var new_left_searh = ( $(document).width() - (search).width() ) / 2;
	search.css('left', new_left_searh);
	
	if (screen.width < 801){
		search.css('width', '290px');
		search.css('height', '22px');
		$("#searchInputBox").css('width', '280px');
		$("#searchGadget").css('width', '320px');
		$(".searchButton").css('margin-left', '-50px');
		$(".searchButton").css('margin-top', '2px');
	}
	
	//ajustamos el height de los botones al boton de mayor height y la altura en general
	if ( numBotones >= 1 ) {
		fixSizeButtoms();
		
		//Ajustamos la altura
		var c_margin_top = (pcc.height() - content.height()) / 2;
		if ( c_margin_top < 0 )
			c_margin_top = 0;
		
		content.css("margin-top", c_margin_top+"px");
	}
	
	if ( is_iPad ) {
		var content_height = $("#content").height();
		
		if ( content_height < 100 ){
			$('#portal-footer-dock').css('bottom', '9%');
		} else {
			$('#portal-footer-dock').css('top', content_height+400 );
			$('.dock-container').css('height', '20px');
		}
		
		$('body').css('background-image', 'none');
		$('body').css('background-color', '#cfcfcf');

		$('#portal-header-bar').css('background-image', 'none');
		$('#portal-header-bar').css('border-bottom', '1px solid #AEBBC1');
		
		$('#portal-globalnav').css('left', '50px');
		
	}
	else {
		$("#region-content").css('overflow', 'auto');
		$('#portal-footer-dock').css('bottom', '9%');
	}
	
}

function fixSizeButtoms(){

	var max_height = 40;
	
	$("#content a.state-published, #content a.state-missing-value").each( function(e){
		
		//Recortamos palabras largas
		var text = $(this).text().split("_").join(" "); 
		$(this).text(text);
		
	    if ( $(this).height() > max_height )
	    	max_height = $(this).height();
			
		//Efectos para IE (sustituye al text-shadow) 
		//$(this).css("filter", "progid:DXImageTransform.Microsoft.Shadow(color='white', Direction=120, Strength=1)");
	});
		
	if ( max_height > 40 ){	    
	    $("#content a.state-published, #content a.state-missing-value").each( function(e){
	    	$(this).css('height', max_height);
	    });
	    
	    $("#content dt").each( function(e){
	    	$(this).css('height', max_height+10);
	    });
	}
		
}

function fixPortalGlobalNav() {
	
	//Alineamos a la izquierda (a la altura de la imagen)
	var new_height_img = $(document).height()*0.9 - img_home_top;
	var new_width_img = img_home_width * new_height_img / img_home_height;

	var pg_left = ( $(document).width() - new_width_img ) / 2;
	if ( screen.width < 801 ) {
		pg_left = 0;
		$("#portal-globalnav li a").css('height', '30px');
		$("#portal-globalnav li a").css('width', '80px');
		$("#portal-globalnav li a").css('padding', '5px 8px');
	}
	
	$('#portal-globalnav').css('left', pg_left + 'px');
	
	var max_width = $(window).width() - pg_left;  
	var tam_buttons = parseInt( $("#portal-globalnav li a").css('width').replace('px','') ) + 30; // 30 = Padding por dos
		
	var numBotones = -1; //El boton al home esta oculto
	$("#portal-globalnav li").each( function(e) {
		numBotones = numBotones + 1;
	});
	
	tam_buttons = tam_buttons * numBotones;
	
	//Activamos la página a la barra de navegación
	if ( tam_buttons > max_width ){
		var new_tam_page = tam_buttons + pg_left;
		
		$("#portal-header-bar").css('width', new_tam_page + 'px');
		$("#portal-main-content-wrapper").css('width', new_tam_page + 'px'); //Dejamos espacio para la barra globalnav
		
		//$("#portal-globalnav").css('width', '100%');
		$("html, body").css('overflow-x', 'auto');
	}
	
}

function hoverImages(){

	if ( $("#user-name").length == 0 ) {

		$("#content img").each( function(e){
			
			if($.browser.msie)
				prepareMouseOverImageExplorer (this);
			else
				prepareMouseOverImage (this, this.src);
				
		});
		
		$("#portal-searchbox").hover( function(e) {
			$('input.searchButton').css('background', 'transparent url(search-hover.png) no-repeat center top');
		}, function (e) {
			$('input.searchButton').css('background', 'transparent url(search.png) no-repeat center top');
		});
		
	}
}

function grayscale(image, bPlaceImage) {

  var myCanvas=document.createElement("canvas");
  var myCanvasContext=myCanvas.getContext("2d");

  var imgWidth=image.width;
  var imgHeight=image.height;
  myCanvas.width= imgWidth;
  myCanvas.height=imgHeight;

  myCanvasContext.drawImage(image,0,0);
  var imageData=myCanvasContext.getImageData(0,0, imgWidth, imgHeight);
    
  for (i=0; i<imageData.height; i++)
  {
    for (j=0; j<imageData.width; j++)
    {
	  var index=(i*4)*imageData.width+(j*4);
	  var red=imageData.data[index];	  
	  var green=imageData.data[index+1];
	  var blue=imageData.data[index+2];	  
	  var alpha=imageData.data[index+3];	 
	  var average=(red+green+blue)/3; 	  
   	  imageData.data[index]=average;	  
   	  imageData.data[index+1]=average;
   	  imageData.data[index+2]=average;
   	  imageData.data[index+3]=alpha;	  	  
	}
  }
  
  myCanvasContext.putImageData(imageData,0,0,0,0, imageData.width, imageData.height);
  
  if (bPlaceImage)
  {  
	  var myDiv=document.createElement("div");  
	  myDiv.appendChild(myCanvas);
	  image.parentNode.appendChild(myCanvas);
  }
  
  return myCanvas.toDataURL();
}

function prepareMouseOverImage(image, originalURL) {

	image.mouseOverImage=originalURL;
	image.onload=function(){return true;};
	image.normalImage=grayscale(image, false);
	
	image.onmouseover=function() {
		this.src=this.mouseOverImage;
	}
	
	image.onmouseout=function() {
		this.src=this.normalImage;
	}
	image.src=image.normalImage;
	
}

function prepareMouseOverImageExplorer(image) {

	image.style.filter='Gray';
	
	image.onmouseover=function() {
		image.style.filter='None';
	}
	
	image.onmouseout=function() {
		image.style.filter='Gray';
	}

}

function displayLanguages(){

	if ( $("#portal-languageselector").css('display') == 'none' ){
		$("#portal-languageselector").fadeIn(300);
	} else {
		$("#portal-languageselector").fadeOut(300);
	}
}

function displayHome() {
	$("body.section-front-page #visual-portal-wrapper").mousemove(
		function (e){
			$("#portal-header-bar").fadeIn(1000);
			$("#portal-header-bar-left-menu").fadeIn(1000);
			$("#portal-header-bar-right-menu").fadeIn(1000);
			$("#portal-globalnav").fadeIn(1000);
				
			if (load_finished) 
				document.getElementById('portal-footer-dock').style.display = 'block'; //IE Compatibility
			
			$("body.section-front-page #visual-portal-wrapper").unbind();
			
		} 
	);
}

//Efecto de cambio de imagen de portada y copyright
function hoverHomeImage() {
	
	$("body.section-front-page #portal-sevilla-home").hover(
		function(){
			
			_change_home_image();
		
			$("#copyright_foto").css('display','block');
			$("#copyright_text").append(texto_copyright_foto);	
	
			$("#copyright_symbol").hover ( function() {
				$("#copyright_text").css('display','inline');
				$("#copyright_symbol").css('background-color', '#8F9CA2'); 
			}, function () {
				$("#copyright_text").css('display','none');
				$("#copyright_symbol").css('background-color', 'transparent');
			});

		},
		function(){
			$("body.section-front-page #portal-sevilla-home").unbind();
		}
	);
}

function _change_home_image(){
	
	$("body.section-front-page #fondo_portada").fadeOut(50,
		function(){
			$("body.section-front-page #fondo_portada").attr('src', 'fondo_portada_hover.jpg');
			$("body.section-front-page #fondo_portada").fadeIn(100);
		}
	);
}


//Funcion de carga del Dock inferior
function loadDock() {
	
	//Mostramos el dock (excepto en la portada)
	if ( $("#portal-globalnav").css("display") == "block" ) {
		document.getElementById("portal-footer-dock").style.display = "block";
	} else {
		$("body.section-front-page #visual-portal-wrapper").mousemove( function (e){	
			if (load_finished) 
				document.getElementById('portal-footer-dock').style.display = 'block'; //IE Compatibility
			$("body.section-front-page #visual-portal-wrapper").unbind();
		});
	}
	
	$('#portal-footer-dock').Fisheye({
		maxWidth: 65,
		items: 'a',
		itemsText: 'span',
		container: '.dock-container',
		itemWidth: 50,
		proximity: 20,
		alignment : 'left',
		valign: 'bottom',
		halign : 'center'
	})		
	$('.dock-item').hover( function(e){
		muestraTip(this);
	}, function (e) {
		ocultaTip(this);
	});
	
	//Precarga imagenes para el hover del dock
	$("#portal-footer-dock img").each( function(){
		jQuery.preLoadImages( this.src.replace('.png', '-hover.png') );
	});
	
	//Ponemos en ocre el boton activo, si hay alguno
	var active = dockBottonActive();
	
	//Hover del dock inferior
	$("#portal-footer-dock img").hover(
		
		function(e){
			if ( this.src != active ) {
				var file = basename(this.src);
				
				var file_aux = file.split(".");
				var new_file = file_aux[0] + '-hover.' + file_aux[1];
								
				var file_hover_aux = this.src.split(file);
				var file_hover = file_hover_aux[0] + new_file + file_hover_aux[1];
				
				this.src = file_hover;
			}
		},
		function(e){
			if ( this.src != active ) {
				var file = basename(this.src);
				
				var file_aux_1 = file.split(".");
				var file_aux_2 = file_aux_1[0].split("-hover");
			
				var file_ini = dirname(this.src) + "/" + file_aux_2[0] + "." + file_aux_1[1];
				this.src = file_ini;
			}
		}
		
	);	
	
	if ( screen.width < 801 ) {
		$("#portal-footer-dock").css('bottom','13%');
		$(".dock-item img").css('width', '60%');
	}
	
}

//Pone en ocre el boton del dock que esté activo en un momento dado
function dockBottonActive(){
	
	var active = '';
	
	$(".dock-item").each( function(){ 
		
		if (this.href == location.href || this.href == location.href+'/' || this.href+'/' == location.href){
			
			$(this).children("img").each( function() {
				
				var file = basename(this.src);
				
				var file_aux = file.split(".");
				var new_file = file_aux[0] + '-active.' + file_aux[1];
								
				var file_active_aux = this.src.split(file);
				var file_active = file_active_aux[0] + new_file + file_active_aux[1];
				
				this.src = file_active;
				active = file_active;
				
			});
			
			$(this).children("span").css("color", "#AA2941");
			
			if ( screen.width > 481 )
				$(this).children("span").css("border", "1px solid #AA2941");
			
			$(this).click( function(){ 
				return false
			});
		}
		
	});
	
	return active;
}

function muestraTip(e){
	e.firstChild.style.display = "inline";
}

function ocultaTip(e){
	e.firstChild.style.display = "none";	
}

//Zoom de imagenes
function zoomImages() {
	
	$("#content img").click( function(e){ 
		
		//Oscurecido
		$('#mask2').css({'width': $(window).width(), 'height': $(window).height() });
		$('#mask2').fadeTo(200, 0.8);		
		document.getElementById("mask2").style.display = 'block';
		
		//Imagen
		var href_img = this.src;
		href_img = href_img.replace('/image_preview', ''); //Imágenes de páginas
		href_img = href_img.replace('/image_mini', '/image'); //Imágenes de noticias
		href_img = href_img.replace('/image_thumb', '/image'); //Imágenes de noticias
		
		var html_content = "<div id='gallery_photo_container'> <img id='gallery_photo' src='" + href_img + "' alt='' /></div>";
		$("body").append(html_content);
		
		$('#gallery_photo').load(function(){
			
			//Ajuste de tamaño, varía en sobremesa y movil
			if ( screen.width > 481 )
				fixGalleryImageSize( $(window).width(), ($(window).height() * 0.9) );
			else 
				fixGalleryImageSize(screen.width, screen.height);
			
			$('#gallery_photo').css('border', '1px solid #AA2941');
			$('#gallery_photo').css('cursor', 'pointer');
			$('#gallery_photo').click( function(e){
				$('#gallery_photo').css('cursor','auto');
				$('#gallery_photo').unbind();
				$('#mask2').fadeOut(500).hide();
				$("#gallery_photo_container").fadeOut(500).remove();
				
				//document.getElementById("mask2").style.display = 'none';
				//document.getElementById("gallery_photo_container").style.display = 'none';
			});
		});
		
		return false;
		
	});
	
	//Desactivamos el zoom en los casos en que la imagen sea un enlace
	$("#content a.external-link img, #content a.internal-link img").unbind(); 
}

function menuTransparency() {
	
	var nivelProfundidad = 0;
	$("#portal-breadcrumbs span a, #portal-breadcrumbs span span").each( function(e){
		nivelProfundidad = nivelProfundidad + 1;
		
		//Recortamos palabras largas
		var text = $(this).text().split("_").join(" "); 
		$(this).text(text);
	});
	if ( nivelProfundidad > 0 ){
		$("#portal-globalnav li.selected a").fadeTo(1, 0.3);
		$("#portal-breadcrumbs a").fadeTo(1, 0.3); //IE Fix
		
		$("#portal-globalnav li.selected a").hover(
			function(e){
				$("#portal-globalnav li.selected a").fadeTo(1, 1);
			},
			function(e){
				$("#portal-globalnav li.selected a").fadeTo(1, 0.3);
			}
		);
		
		$("#portal-breadcrumbs a").hover(
			function(e){
				$(this).fadeTo(1, 1);
			},
			function(e){
				$(this).fadeTo(1, 0.3);
			}
		);
	}
	else 
	if ( nivelProfundidad == 0 ){
	
		//FIX IE
		$("#portal-globalnav li a").hover( function(e) {
			$(this).css("background", "#ebbc48");
		}, function (e) {
			$(this).css("background", "transparent");
		});
		
		$("#portal-globalnav li.selected a").hover( function (e){
			$("#portal-globalnav li.selected a").css("cursor", "default");
			$("#portal-globalnav li.selected a").css("background", "url('bg-button.png') repeat-x #861121");
		});
		
		$("#portal-globalnav li.selected a").click( function (e){
			return false;
		});
	}	

}

function hoverHomeImageMobile(){
	
	if ($('body').is('.section-front-page')) {
		
		$("body.section-front-page #portal-sevilla-home").click( function(e) {
		    $("body.section-front-page #fondo_portada").attr('src', 'fondo_portada_hover.jpg');
		    $("body.section-front-page #portal-sevilla-home").unbind();
		});
		
		$("body.section-front-page #searchGadget").click( function(e) {
		    $("body.section-front-page #fondo_portada").attr('src', 'fondo_portada_hover.jpg');
		    $("body.section-front-page #portal-sevilla-home").unbind();
		});
		
	}
}

/*
function hoverToggleConstrast() {
	
	$("#toggleContrastImg").hover ( function(e){
		$("#toggleContrastImg").attr('src','cambiaColorTexto-hover.png');
	}, function (e) {
		if ( $('body').is('.color_accesible') )
			$("#toggleContrast").css('color','#AA2941');
		els
	});	
	
}
*/

//FUNCIONES AUXILIARES

//Devuelve el nombre de un fichero a partir del path
function basename(path) {
	return path.replace(/\\/g,'/').replace( /.*\//, '' );
}
	
//Devuelve el directorio en el que está un fichero a partir del path
function dirname(path) {
	return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');;
}

//Precarga de imágenes mediante jquery
var cache = [];
$.preLoadImages = function() { 
   var args_len = arguments.length;
   for (var i = args_len; i--;) {
     var cacheImage = document.createElement('img');
     cacheImage.src = arguments[i];
     cache.push(cacheImage);
   }
}
