/*.............................................................................. Centrar #wrap */
function centrarContenido(animacion) {
	var wrap = $('#wrap');
	var disponible = $(window).height();
	var margen = 20;
	if ((wrap.height() + margen) < disponible) {
		margen = (disponible - wrap.height() - margen) / 3;
	}
	if (animacion) {
		wrap.stop().animate({'paddingTop': margen + 'px'}, 400);
	} else {
        wrap.css('padding-top', margen + 'px');
	}
}

/*.......................................................................... Menus desplegables de n-niveles */
var desplegables = null;
function prepararEventosMenu() { // Prepara eventos del menu
    desplegables = $("#menuCentral > ul:not(#metaLinks) > li");
	desplegables.children('ul').hide().end()
	     .bind("click",      function() { despliega(this)   })
         .bind("mouseleave", function() { pliega(this)      })
         .bind("mouseenter", function() { rompePliega(this) })
};

function despliega(padre){
	if (padre.temporizador) clearTimeout(padre.temporizador);
	var $paraPlegar = $("#menu li > ul:visible").parent();
	if (!$paraPlegar.find('.actual').length) {
		$paraPlegar
			.children("A").removeClass("activo")
			.siblings('ul').hide(300);
	}
    $(padre)
	    .children("A").addClass("activo")
		.siblings("UL").show(300);
}

function pliega(padre) {
    padre.temporizador = setTimeout(function() {
		var $padre = $(padre);
		if (!$padre.find('.actual').length) {
			$padre
				.children("A").removeClass("activo").end()
		    	.children("UL").hide(500);
		}
			
    }, 600)
}

function rompePliega(padre){
	clearTimeout(padre.temporizador);
}

// cargar y mostrar los avisos legales (legal.php y copyright.php)
$( function() {
	$("#metaLinks a").click( function() {
		// creamos e insertamos la mascara de fondo
		$("<div id='mascara'></div>").css({
			"opacity": 0,
			height: $(document).height() + "px"
        }).appendTo("body").fadeTo("fast", 0.8);
		
		// definimos la funcion para pintar la respuesta
		var terminarAjax = function(XHR) {
			$(XHR.responseText)
			    .find("#legal")
			    .css("display", "none")
				.appendTo("body")
				.show("slow", function() {
	                $("#mascara")
					    .css("height", $(document).height() + "px")
	                    .add("#legal img")
						.click( function() {
	                        $("#mascara, #legal").fadeOut("default", function() {
	                            $("#mascara, #legal").remove();
	                        });
	                    });
                });
		}
		
		$.ajax({
			url: this.href,
			complete: terminarAjax
		});
		return false;
	});
});

/*.......................................................................... Poner clases a los listados */
function clasesListado() {
	var lis = $("li");
    lis.filter(":first-child").addClass("primero");
	lis.filter(":last-child").addClass("ultimo");
}




function crearFondo(){
	var pngif = ($.browser.msie && $.browser.version < 7) ? 'gif' : 'png';
	$('body').append('<img src="img/loading.gif" id="cargando" />');
	$.preload(['fondo.jpg', 'menuArriba.gif', 'menuCentral.gif', 'menuAbajo.'+pngif,
	    'indexArriba.'+pngif, 'indexCentral.gif', 'indexAbajo.'+pngif,
		'casePrincipal.'+pngif, 'caseAbajo.gif',
		'comunicacionCentral.gif',
		'detalleNoticiaArriba.'+pngif, 'detalleNoticiaCentral.png', 'detalleNoticiaAbajo.'+pngif, ], {
		base: 'img/',
		onFinish: function(){
			$('#loading').remove();
			$('<div id="fondo"></div>').hide().css('height', $(window).height() + 'px').appendTo('body').fadeIn(800, function() {
				this.style.backgroundPosition = '50% 50%';
				$(window).resize(function(){
                    $('#fondo').css({
                        'height': $(window).height() + 'px',
                        'backgroundPosition': '50% 50%'
                    });
	            });
	            eventosInicio();
			});
		}
	});
}

$(clasesListado);
$(crearFondo);

function eventosInicio() {
		
    centrarContenido(false);
    if (!$.browser.msie) {
		$(window).resize(function(){
			centrarContenido(true);
		});
	}
		
    prepararEventos();
    prepararEventosMenu();
    $('#menuArriba, #menuCentral ul:not(:last)').find('a[href]').click( function() {
		var $t = $(this);
        if (flagMenus || $t.hasClass('actual')) return false;
		$('#menuArriba, #menuCentral ul:not(:last)').find('a').removeClass('actual activo').end().children().mouseout();
		$t.addClass('actual activo').parents('ul').siblings('a').addClass('actual');
        flagMenus = true;
        cambiarPrincipal(this.href);
		
        return false;
    });
	
	// Animacion entrada
    var partesMenu = $('#menu > div').hide().parent().show().end();
	setTimeout(function() {
		partesMenu.eq(0).show('fold', {size: 13}, 1000, function() {
	        partesMenu.eq(1).show('slide', {direction: 'up'}, 800, function() {
	            setTimeout(function() {
	                partesMenu.eq(2).show('blind', {direction: 'vertical'}, 600, function() {
	                    finalizarCambiarPrincipal(document.getElementById('principal').className);
	                });
	            }, 300);
	        });
	    });
	}, 600);
	
}
