/******************************************************************************************
                            INICIO VARIABLES GLOBALES 
*******************************************************************************************/

/* Fecha y hora de entrada en la página. Los elementos de la fecha se separan por _ y no por - 
yaque los elementos de la cookie están separados este último */
var objDate = new Date();
var diaActual = objDate.getDate().toString();
while(diaActual.length < 2)
	diaActual = '0' + diaActual;
var mesActual = (objDate.getMonth()+1).toString();
while(mesActual.length < 2)
	mesActual = '0' + mesActual;
var fechaEntrada = objDate.getFullYear() + "_" + mesActual + "_" + diaActual;
var horaEntrada = objDate.getHours() + ":" + objDate.getMinutes();

/* Por defecto se considera que la fecha de entrada es la actual, pero existe un problema y es que se puede consultar
la programación de mañana y pasado mañana. Por tanto, si se entra a consultar dicha programación habrá que modificar 
la fecha de entrada por la de mañana o pasado mañana. Se comprueba si el último argumento de la url es un día de la semana */
function obtenerFechaEntrada(){
	var url = window.location.href;
	var url2 = url.split("?");
	var a_url = url2[0].split("/");
	var dia = a_url[a_url.length-1];
	var fecha = null;
	var numDiaEntrada = 0;
	switch(dia){
		case 'lunes':
			numDiaEntrada = '1';
			break;
		case 'martes':
			numDiaEntrada = '2';
			break;
		case 'miercoles':
			numDiaEntrada = '3';
			break;
		case 'jueves':
			numDiaEntrada = '4';
			break;
		case 'viernes':
			numDiaEntrada = '5';
			break;
		case 'sabado':
			numDiaEntrada = '6';
			break;
		case 'domingo':
			numDiaEntrada = '7';
			break;
	}

	if(numDiaEntrada != 0){
		var numDiaActual = objDate.getDay();
		if(numDiaActual == 0)
			numDiaActual = 7;
		var diasASumar = numDiaEntrada - numDiaActual;
		if(diasASumar < 0)
			diasASumar += 7;

		var objDateAux = new Date();
		fechaTime = objDateAux.getTime() + (diasASumar*86400*1000);
		objDateAux.setTime(fechaTime);
		var diaAux = objDateAux.getDate().toString();
		while(diaAux.length < 2)
			diaAux = '0' + diaAux;
		var mesAux = (objDateAux.getMonth()+1).toString();
		while(mesAux.length < 2)
			mesAux = '0' + mesAux;
		fecha = objDateAux.getFullYear() + "_" + mesAux + "_" + diaAux;
	}

	return fecha;
}
var fechaEntradaAux = obtenerFechaEntrada();
if(fechaEntradaAux != null)
	fechaEntrada = fechaEntradaAux;

function cargar_cookie(nombreCookie){
	var result = null;
	var cookies = document.cookie.split("; ");
	for(var i = 0; i < cookies.length; i++){
    	var elementoCookie = cookies[i].split("=");
    	if((elementoCookie[0].substring(0,8)) == nombreCookie){
        	if(elementoCookie[1] != undefined)
            	result = elementoCookie[1];
    	}
	}
	return result;
}

var cookieCanales = cargar_cookie("milistaC");
if(cookieCanales == null){
    cookieCanales = fechaEntrada+"-"+horaEntrada+"-opcionC1120-opcionC1076-opcionC1130-opcionC1053-opcionC1124-opcionC1005-opcionC1036";
    var date = new Date();
    date.setTime((date.getTime() + (8760*60*60*1000)));
    document.cookie = "milistaC=" + cookieCanales +"; path=/; expires="+date.toGMTString();
}else{
    // Se reemplaza la fecha y hora de entrada a la página
    var cookieAux = cookieCanales.split("-");

    /* Se comprueba si el primer parámetro de la cookie es un canal o una fecha. Si es un canal hay que modificar la cookie para poner delante
    la fecha y hora de entrada */
    if(cookieAux[0].search("opcionC") != -1)
        cookieCanales = fechaEntrada+"-"+horaEntrada+"-"+cookieCanales;
    else{
        cookieCanales = "";
        for(var i = 0; i < cookieAux.length; i++){
            if(i == 0)
                cookieCanales += fechaEntrada + "-";
            else if(i == 1)
                cookieCanales += horaEntrada + "-";
            else
                cookieCanales += cookieAux[i] + "-";
        }
        if(cookieCanales != "")
            cookieCanales = cookieCanales.substr(0, cookieCanales.length - 1);
    }

    var date = new Date();
    date.setTime((date.getTime() + (8760*60*60*1000)));
    document.cookie = "milistaC=" + cookieCanales +"; path=/; expires="+date.toGMTString();
}

// Se comprueba si existe la cookie de géneros. En caso de no existir se creará una por defecto
var cookiesGeneros = cargar_cookie("milistaT");
if(cookiesGeneros == null){
	// Se escribe la cookie de géneros por defecto
	var date = new Date();
    date.setTime((date.getTime() + (8760*60*60*1000)));
    document.cookie = "milistaT=opcionuno-opciondos; path=/; expires="+date.toGMTString();
}
	
/* Se realizan las llamadas ajax de carga que permiten obtener los outputs para los módulos de la portada */
rules_carga_modulos = {

	cargar : function(){
		// Se realiza una llamada ajax para cargar los canales que exitan en la cookie. En caso de no existir se cargarán lo que hayan por defecto
		var listaCanales = cargar_cookie("milistaC");
		var canalesAjax = "";
		if(listaCanales != null){
    		var canalesAjaxAux = listaCanales.split("-");
		    for(var i = 0; i < canalesAjaxAux.length; i++){
        		if(i != 0 && i != 1)
		            canalesAjax += canalesAjaxAux[i].replace("opcionC","") + "-";
		    }
		    if(canalesAjax != "")
        		canalesAjax = canalesAjax.substr(0, canalesAjax.length - 1);
		}

		var modulo = 'PARMenuCanalesSuperiorOU';
        var cnt = 'menu_canales_superior';
		var params = "canales%3D"+canalesAjax;
		var fin = function(){
			// Recarga de funciones asociadas a los elementos del menú superior
			$(document).ready(rules_canales_dia.click);

			// Carga del módulo de parrilla
			modulo = 'PARParrillaCanalesOU';
			cnt = 'temporal_pases';
			params = "fechaEntrada%3D"+fechaEntrada.replace(/_/g,"-")+"%26horaEntrada%3D"+horaEntrada+"%26franja%3D"+"manana-tarde-noche"+"%26canales%3D"+canalesAjax+"%26vista%3D"+"completa";
	        aP = "modulo=" + modulo + "&params=" + params;
			var fin2 = function(){
				// Se carga cada franja y se modifica su franja horaria en función de la que venga en la llamada ajax
				// Mañana
				$("#franja_maniana_estirar").html($("#temporal_franja_maniana").html());
				$("#franja_maniana_estirar").css("background-position", $("#temporal_franja_maniana").css("background-position"));
				$("#temporal_franja_maniana").html("");

				// Tarde
				$("#franja_tarde_estirar").html($("#temporal_franja_tarde").html());
				$("#franja_tarde_estirar").css("background-position", $("#temporal_franja_tarde").css("background-position"));
				$("#temporal_franja_tarde").html("");

				// Noche
				$("#franja_noche_estirar").html($("#temporal_franja_noche").html());
				$("#franja_noche_estirar").css("background-position", $("#temporal_franja_noche").css("background-position"));
				$("#temporal_franja_noche").html("");

				// Se marcan los colores de las opciones marcadas
				$(document).ready(rules_programacion_parrilla.tratar_prog_concapa);
	            $(document).ready(rules_programacion_parrilla.cargar_eleccion);

				// Se muestran las franjas de mañana, tarde y noche en función de la elección del menú lateral
				$(document).ready(rules_estirarH.evento);
			}

			a = new Ajax();
	        imagen = '<div id="cargando" class="preload"><img src="/im/loading.gif" alt="cargando"><p>Cargando...</p></div>';
    	    a.replace("/modulo/index.html",aP,imagen,cnt,"GET",fin2);
		}

		aP = "modulo=" + modulo + "&params=" + params;
		a = new Ajax();
		imagen = '<div id="cargando" class="preload"><img src="/im/loading.gif" alt="cargando"><p>Cargando...</p></div>';
		a.replace("/modulo/index.html",aP,imagen,cnt,"GET",fin);	

	}
}
$(document).ready(rules_carga_modulos.cargar);
/******************************************************************************************
                            FIN VARIABLES GLOBALES
*******************************************************************************************/

///////////////////////////////////////////////////////////// funciones de menu
///////////////////////////////////////////////////////////// tipos de programa

rules_estirar = {
 evento : function() {
	 $("input.masT").unbind("click");
     $("input.masT").click(rules_estirar.ejecutar);
    
     //checked en el pintado //////////////////////////
     listacooke=null;   
     var cooke = document.cookie.split("; ");   
     for (var nBucle=0;nBucle<cooke.length;nBucle++){
         var aCookie = cooke[nBucle].split("=");
         if ((aCookie[0].substring(0,8)) == 'milistaT'){
             if(aCookie[1]!=undefined)
                 listacooke = aCookie[1];
         }
     }
    if(listacooke){    
     arraylistacooke = listacooke.split("-");

     for(var i=0;i<arraylistacooke.length;i++){
        var valor = arraylistacooke[i];  
        if(arraylistacooke[i]!=""){
          if(document.getElementById(arraylistacooke[i])){
            document.getElementById(arraylistacooke[i]).checked=true;
			}
        }
     }
     ////////////////////////////////////////
    } 
    
 },
 ejecutar : function() {
     var milistaTipos = "";
     var ckArr = document.cookie.split("; ");
     //xref en cookie
     for (var nBucle=0;nBucle<ckArr.length;nBucle++){
         var aCookie = ckArr[nBucle].split("=");
         if ((aCookie[0].substring(0,8)) == 'milistaT'){
             if(aCookie[1]!=undefined)
                 milistaTipos = aCookie[1];
         }
     }
     //nuevo xref
     xrefNuevo= this.id;
     //validar que no esté el xref en la lista
     myRE = new RegExp(xrefNuevo, "i");
     resultado = milistaTipos.match(myRE);

     if((resultado!="") && (resultado!=null)){
        
         ELEArr = milistaTipos.split("-");
         milistaTipos="";   
         for(var i=0;i<ELEArr.length;i++){
             if(ELEArr[i]!=xrefNuevo){
                 if(milistaTipos!="")
                     milistaTipos = milistaTipos + "-";
                 milistaTipos = milistaTipos + ELEArr[i];
             }
         }
		 var date = new Date();
		 date.setTime((date.getTime() + (8760*60*60*1000)));
         document.cookie = "milistaT=" + milistaTipos+"; path=/; expires="+date.toGMTString();   
     }
     else{   
      //actualizar lista  en cookie
      if(milistaTipos!="" && milistaTipos!=null)
         milistaTipos=milistaTipos+"-";
         milistaTipos = milistaTipos + xrefNuevo;
		 var date = new Date();
         date.setTime((date.getTime() + (8760*60*60*1000)));
         document.cookie = "milistaT=" + milistaTipos+"; path=/; expires="+date.toGMTString();
     }   
         cargar_lista_T();
 },
 cargar_milista_T : function (){
 cargar_lista_T();
 return false;

 }
}
$(document).ready(rules_estirar.evento);


function cargar_lista_T(){
 var milistaTipos = "";
 var ckArr = document.cookie.split("; ");
 // xref en cookie
 for (var nBucle=0;nBucle<ckArr.length;nBucle++){
     var aCookie = ckArr[nBucle].split("=");
     if ((aCookie[0].substring(0,8)) == 'milistaT'){
         if(aCookie[1]!=undefined)
             milistaTipos = aCookie[1];
     }
 }


}



///////////////////////////////////////////////////////////// funciones de menu
///////////////////////////////////////////////////////////// mañana tarde noche
rules_estirarH = {
 evento : function() {
     $("input.masH").click(rules_estirarH.ejecutarH);

     //checked en el pintado //////////////////////////
     listacooke=null;   
     var cooke = document.cookie.split("; ");   
     for (var nBucle=0;nBucle<cooke.length;nBucle++){
         var aCookie = cooke[nBucle].split("=");
         if ((aCookie[0].substring(0,8)) == 'milistaH'){
             if(aCookie[1]!=undefined)
                 listacooke = aCookie[1];
         }
     }
    if(listacooke){    
     arraylistacooke = listacooke.split("-");

     for(var i=0;i<arraylistacooke.length;i++){
        var valor = arraylistacooke[i];  
        if(valor!=""){
          if(document.getElementById(valor)){
            document.getElementById(valor).checked=true;
			$("input#"+valor).parent().parent().addClass("activo");
			$("div.franja").each(function(i){
            	if($(this).hasClass(valor)){
					$(this).prev().show();		// Nombre franja horaria
                	$(this).show();				// Contenido franja horaria
					$(this).next().show();		// Publicidad asociada a la franja horaria
            	}
        	});
		 }
        }
     }
     ////////////////////////////////////////
    }else{
		// Si no existe la cookie entonces se muestran todos los bloques
		$("div.franja").each(function(i){
			$(this).prev().show();      // Nombre franja horaria
			$(this).show();             // Contenido franja horaria
			$(this).next().show();      // Publicidad asociada a la franja horaria
		});
	} 
 },
 ejecutarH : function() {
     var milistaTipos = "";
     var ckArr = document.cookie.split("; ");
     //xref en cookie
     for (var nBucle=0;nBucle<ckArr.length;nBucle++){
         var aCookie = ckArr[nBucle].split("=");
         if ((aCookie[0].substring(0,8)) == 'milistaH'){
             if(aCookie[1]!=undefined)
                 milistaTipos = aCookie[1];
         }
     }
     //nuevo xref
     xrefNuevo= this.id;
     //validar que no esté el xref en la lista
     myRE = new RegExp(xrefNuevo, "i");
     resultado = milistaTipos.match(myRE);
     if((resultado!="") && (resultado!=null)){
		 // Si encuentra el elemento en la cookie entonces lo elimina de ésta
         ELEArr = milistaTipos.split("-");
         milistaTipos="";   
         for(var i=0;i<ELEArr.length;i++){
             if(ELEArr[i]!=xrefNuevo){
                 if(milistaTipos!="")
                     milistaTipos = milistaTipos + "-";
                 milistaTipos = milistaTipos + ELEArr[i];
             }
         }
		 var date = new Date();
         date.setTime((date.getTime() + (8760*60*60*1000)));
         document.cookie = "milistaH=" + milistaTipos+"; path=/; expires="+date.toGMTString();

		// Se oculta el bloque correspondiente al div asociado al check pulsado. Si no queda alguna pulsado entonces se muestran todos
		$("input#"+xrefNuevo).parent().parent().removeClass("activo");
		if(milistaTipos == "" || milistaTipos == null){
			$("div.franja").each(function(i){
				$(this).prev().show();      // Nombre franja horaria
				$(this).show();             // Contenido franja horaria
				$(this).next().show();      // Publicidad asociada a la franja horaria
			});
		}else{
			$("div.franja").each(function(i){
				if($(this).hasClass(xrefNuevo)){
					$(this).prev().slideUp();
					$(this).slideUp();
					$(this).next().slideUp();
				}
			});
		}
     }
     else{   
		// Si no encuentra el elemento en la cookie entonces lo añade al final de ésta
      	// Actualizar lista  en cookie
      	if(milistaTipos!="" && milistaTipos!=null)
         	milistaTipos=milistaTipos+"-";
        milistaTipos = milistaTipos + xrefNuevo;
		var date = new Date();
        date.setTime((date.getTime() + (8760*60*60*1000)));
        document.cookie = "milistaH=" + milistaTipos+"; path=/; expires="+date.toGMTString();

		// Se muestra el bloque correspondiente al div asociado al check pulsado ocultando todos los que no estén checkeados
		$("input#"+xrefNuevo).parent().parent().addClass("activo");
		$("input.masH").each(function(i){
			var id = $(this).attr("id");
			if($(this).is(':checked')){
				$("div.franja").each(function(o){
					if($(this).hasClass(id)){
						$(this).prev().slideDown();
						$(this).slideDown();
						$(this).next().slideDown();
					}
				});			
			}else{
				$("div.franja").each(function(o){
                    if($(this).hasClass(id)){
                        $(this).prev().slideUp();
                        $(this).slideUp();
                        $(this).next().slideUp();
                    }
                });
			}
		});
     }   
	 cargar_lista_H();
 },
 cargar_milista_H : function (){
 cargar_lista_H();
 return false;

 }
}
// Ya no se hace la carga de esta función en este punto sino en la carga de módulos por ajax
//$(document).ready(rules_estirarH.evento);


function cargar_lista_H(){
 var milistaTipos = "";
 var ckArr = document.cookie.split("; ");
 // xref en cookie
 for (var nBucle=0;nBucle<ckArr.length;nBucle++){
     var aCookie = ckArr[nBucle].split("=");
     if ((aCookie[0].substring(0,8)) == 'milistaH'){
         if(aCookie[1]!=undefined)
             milistaTipos = aCookie[1];
     }
 }


}





///////////////////////////////////////////////////////////// funciones de menu
///////////////////////////////////////////////////////////// canales
rules_estirarC = {
 evento : function() {
     //checked en el pintado //////////////////////////
     listacooke=null;   
     var cooke = document.cookie.split("; ");   
     for (var nBucle=0;nBucle<cooke.length;nBucle++){
         var aCookie = cooke[nBucle].split("=");
         if ((aCookie[0].substring(0,8)) == 'milistaC'){
             if(aCookie[1]!=undefined)
                 listacooke = aCookie[1];
         }
     }
    if(listacooke){    
     arraylistacooke = listacooke.split("-");

     for(var i=0;i<arraylistacooke.length;i++){
        var valor = arraylistacooke[i];  
//        if(arraylistacooke[i]!=""){
//          if(document.getElementById(arraylistacooke[i]))   
//            document.getElementById(arraylistacooke[i]).checked=true;
//        }
     }
     ////////////////////////////////////////
    }
    else{
		// Se crea la cookie en caso de no existir. Los dos primeros valores son la fecha y hora de entrada en la página
        milistaTipos = fechaEntrada+"-"+horaEntrada+"-opcionC1120-opcionC1076-opcionC1130-opcionC1053-opcionC1124-opcionC1005-opcionC1036";
		var date = new Date();
        date.setTime((date.getTime() + (8760*60*60*1000)));
        document.cookie = "milistaC=" + milistaTipos+"; path=/; expires="+date.toGMTString();
    }     
    return false;
 },

 cargar_milista_C : function (){
 cargar_lista_C();

 }
}
$(document).ready(rules_estirarC.evento);


function cargar_lista_C(){
 var milistaTipos = "";
 var ckArr = document.cookie.split("; ");
 // xref en cookie
 for (var nBucle=0;nBucle<ckArr.length;nBucle++){
     var aCookie = ckArr[nBucle].split("=");
     if ((aCookie[0].substring(0,8)) == 'milistaC'){
         if(aCookie[1]!=undefined)
             milistaTipos = aCookie[1];
     }
 }


}

/******************************************************************************************
							INICIO FUNCIONES CAPA AÑADIR CANALES                            
*******************************************************************************************/

capa_anadir_canales = {

	personalizar : function(){

		$("#btn_anadir_canales").unbind("click");
		$("#btn_anadir_canales").click(function(){
			if($(this).children("a#a_anadir_canales").html() != "Personalizar"){
				// Se hace una llamada ajax para cargar el módulo de canales
				var listaCanales = cargar_cookie("milistaC");
				var canalesAjax = "";
				if(listaCanales != null){
					var canalesAjaxAux = listaCanales.split("-");
					for(var i = 0; i < canalesAjaxAux.length; i++){
						if(i != 0 && i != 1)
							canalesAjax += canalesAjaxAux[i].replace("opcionC","") + "-";
					}
					if(canalesAjax != "")
						canalesAjax = canalesAjax.substr(0, canalesAjax.length - 1);
				}

				var modulo = 'PARCapaCanalesOU';
                var cnt = 'personaliza_capas';
				var params = "canales%3D"+canalesAjax;
                aP = "modulo=" + modulo + "&params=" + params;

                var fin = function(){
					$("#btn_anadir_canales").addClass("anadir_activo");
        	        $("#btn_anadir_canales").addClass("estirar");
    	            $("#btn_anadir_canales").addClass("activo");
					$("#btn_anadir_canales").children("a#a_anadir_canales").html("Personalizar");

					// Se recalcula el ancho de la lista que contiene los canales
					var nuevoAncho = ((canalesAjaxAux.length-2)*83) + 230;
					$("div.mover_canales ul").css("width", nuevoAncho+"px");

					// Se recargan las funciones asociadas al módulo
					$(document).ready(capa_anadir_canales.cargar_configuracion);
					$(document).ready(parrilla.moverIzquierda);
					$(document).ready(parrilla.moverDerecha);
					$(document).ready(parrilla.insertar);
					$(document).ready(parrilla.eliminar);			
					$(document).ready(capa_anadir_canales.cerrar_personalizar);						
					$(document).ready(capa_anadir_canales.restaurar_configuracion);

					// Se muestra la capa en cuestión
		            $("#personaliza_capas").show();
                }

                a = new Ajax();
                imagen = '<div id="cargando" class="preload"><img src="/im/loading.gif" alt="cargando"><p>Cargando...</p></div>';
                a.replace("/modulo/index.html",aP,imagen,cnt,"GET",fin);
			}else{
				$(this).removeClass("anadir_activo");
                $(this).removeClass("estirar");
                $(this).removeClass("activo");
                $(this).children("a#a_anadir_canales").html("<strong>Añadir canales</strong>&nbsp;");
                $("#personaliza_capas").hide();
			}
			return false;
		});
	},

	cerrar_personalizar : function(){
		
		$("div#personaliza_capas input.btn_cerrar").unbind("click");			
		$("div#personaliza_capas input.btn_cerrar").click(function(){
			if($("div#personaliza_capas").is(":hidden")){
				$("#btn_anadir_canales").addClass("anadir_activo");
                $("#btn_anadir_canales").addClass("estirar");
                $("#btn_anadir_canales").addClass("activo");
                $("#btn_anadir_canales").children("a#a_anadir_canales").html("Personalizar");
                $("#personaliza_capas").show();
            }else{
				// Se oculta la capa de personalización de canales
				$("#btn_anadir_canales").removeClass("anadir_activo");
                $("#btn_anadir_canales").removeClass("estirar");
                $("#btn_anadir_canales").removeClass("activo");
                $("#btn_anadir_canales").children("a#a_anadir_canales").html("<strong>Añadir canales</strong>&nbsp;");
                $("#personaliza_capas").hide();
			}
			return false;
		});
	},

	restaurar_configuracion : function(){

		$("#btn_restaurar_configuracion").unbind("click");
		$("#btn_restaurar_configuracion").click(function(){
			milistaTipos = fechaEntrada+"-"+horaEntrada+"-opcionC1120-opcionC1076-opcionC1130-opcionC1053-opcionC1124-opcionC1005-opcionC1036";
			var date = new Date();
	        date.setTime((date.getTime() + (8760*60*60*1000)));
         	document.cookie = "milistaC=" + milistaTipos+"; path=/; expires="+date.toGMTString();
			$("#btn_anadir_canales").removeClass("anadir_activo");
            $("#btn_anadir_canales").removeClass("estirar");
            $("#btn_anadir_canales").removeClass("activo");
            $("#btn_anadir_canales").children("a#a_anadir_canales").html("<strong>Añadir canales</strong>&nbsp;");
            $("#personaliza_capas").hide();
			$(document).ready(parrilla.recargar);
		});
	},

	cargar_configuracion : function(){
		$("div.cabecera_parrilla div#personaliza_capas div.mover_canales ul li").each(function(){
			if($(this).prev().attr("id") == null || $(this).prev().attr("id") == "")
				$(this).children("a.flecha_izq").hide();
			else
				$(this).children("a.flecha_izq").show();
			if($(this).next().attr("id") == null || $(this).next().attr("id") == ""){
                $(this).children("a.flecha_der").hide();
			}else
				$(this).children("a.flecha_der").show();
		});	
	}
}

$(document).ready(capa_anadir_canales.personalizar);
$(document).ready(capa_anadir_canales.cerrar_personalizar);
$(document).ready(capa_anadir_canales.restaurar_configuracion);
$(document).ready(capa_anadir_canales.cargar_configuracion);

/******************************************************************************************
							FIN FUNCIONES CAPA AÑADIR CANALES                            
*******************************************************************************************/

/******************************************************************************************
                            INICIO FUNCIONES MOVER 
*******************************************************************************************/

rules_mover_canales = {

	mover_menu_derecha : function(){
		$("#btn_mover_derecha").unbind("click");
		$("#btn_mover_derecha").click(function(){
			// Números de canales existentes
			var numElementos = $("ul#mover_canal li").length;
			// Se realiza el movimiento siempre y cuando hayan canales hacia la derecha. Caben 7 elementos <li> en el <ul>
			if(numElementos > 7){
				var numSobrantes = numElementos - 7;
				// Se obtiene la posición left que deberá ocupar el último elemento. 13 píxeles iniciales menos el espacio que ocupan los <li> no mostrados
				var leftUltimo = 13 - (numSobrantes*112);
				var posizq = $("ul#mover_canal").css("left").split("px");
				posizq = parseInt(posizq[0]) - 112;
				posizq = posizq <= leftUltimo?leftUltimo:posizq;
				$("ul#mover_canal").animate({left: posizq+"px"});
				$("div.maniana ul.parrilla").animate({left: posizq+"px"});
				$("div.tarde ul.parrilla").animate({left: posizq+"px"});
				$("div.noche ul.parrilla").animate({left: posizq+"px"});
			}
			return false;
		});
	},

	mover_menu_izquierda : function(){
		$("#btn_mover_izquierda").unbind("click");
		$("#btn_mover_izquierda").click(function(){
			var posizq = $("ul#mover_canal").css("left").split("px");
			posizq = parseInt(posizq[0]) + 112;
			posizq = posizq >= 13?13:posizq;
			$("ul#mover_canal").animate({left: posizq+"px"});
			$("div.maniana ul.parrilla").animate({left: posizq+"px"});
			$("div.tarde ul.parrilla").animate({left: posizq+"px"});
			$("div.noche ul.parrilla").animate({left: posizq+"px"});
			return false;
		});
	}

}

$(document).ready(rules_mover_canales.mover_menu_derecha);
$(document).ready(rules_mover_canales.mover_menu_izquierda);


/******************************************************************************************
                            FIN FUNCIONES MOVER
*******************************************************************************************/

/******************************************************************************************
							INICIO FUNCIONES CAPA DIA     
*******************************************************************************************/

rules_canales_dia = {

	click : function(){		
		$("li.mod_canales div.canales ul#mover_canal li a").unbind("click");
		$("li.mod_canales div.canales ul#mover_canal li a").click(function(){
			if($(this).parent().hasClass("activo")){
				// Se oculta la capa
				$("div#capa_dia").hide();				
				// Se quitan estilos a los botones del menú superior de canales
				$(this).parent().removeClass("activo");
			}else{
				// Se pone el nombre del canal en la columna de programación por días			
				var nombreCadena = $(this).contents().find("img").attr("alt");
				nombreCadena = nombreCadena.replace("logotipo de la cadena ", "");
				$("div#capa_dia div.pordias h4").text(nombreCadena);

				// Se renombran los enlaces para los días de la programación introduciendo el identificador del canal pulsado
				var idCanal = $(this).parent().attr("id");				
				var nombreCanal = $("div#capa_dia div.col_canales a#"+idCanal).children("img").attr("title").split("logop_");
				nombreCanal = nombreCanal[1];
				$("div#capa_dia div.pordias li a").each(function(i){
					var href = $(this).attr("href");
					href = href.split("/parrillatv/");
					href = href[1].split('/');
					if(href[1] != null && href[1] != "")
						hrefNuevo = "/parrillatv/" + nombreCanal + "/" + href[1];
					else
						hrefNuevo = "/parrillatv/" + nombreCanal;
					$(this).attr("href", hrefNuevo);
				});

				// Se muestra la capa
				$("div#capa_dia").show();

				// Se ponen estilos a los botones del menú superior de canales
				$("li.mod_canales div.canales ul#mover_canal li").removeClass("activo");			
				$(this).parent().addClass("activo");
			}
			return false;
		});	
		
	},

	cerrar : function(){
		$("div#capa_dia input.btn_cerrar").unbind("click");
		$("div#capa_dia input.btn_cerrar").click(function(){
			$("div#capa_dia").hide();
			$("li.mod_canales div.canales ul#mover_canal li").removeClass("activo");
		});
	},

	reemplazar : function(){
		$("div#capa_dia div.cambiar_canal li a").unbind("click");
		$("div#capa_dia div.cambiar_canal li a").click(function(){
			// Se carga el identificador del canal pulsado
			var id_canal = $(this).attr("id");

			// Se comprueba si existe en el conjunto superior de canales. Si es así no se realiza la sustitución
			var existe = $("div.cabecera_canales ul#mover_canal li#"+id_canal).attr("id");
			if(existe == null || existe == ""){
				// Como el canal todavía no está en la lista superior entonces se sustituye el canal que desplegó la lista inferior por el que se ha pulsado
				var id_nuevo = id_canal;
				var alt_nuevo = "logotipo de la cadena " + $(this).children("span").text();
				var href_nuevo = $(this).attr("href");
				var title_nuevo = $(this).children("span").text();
				var height_nuevo = "29";
				var width_nuevo = "88";
				var src_nuevo = $(this).children("img").attr("src");
				src_nuevo = src_nuevo.replace("48x20", "88x29");
				src_nuevo = src_nuevo.replace("imgTamX=48", "imgTamX=88");
				src_nuevo = src_nuevo.replace("imgTamY=20", "imgTamY=29");

				// Se realiza la sustitución de los datos entre el canal pulsado y el que ha de ser sustituido en la barra superior
				// Se obtiene el canal activo de la barra superior
				var id_activo = $("li.mod_canales div.canales ul#mover_canal li.activo").attr("id");
				// Se realiza el cambio
				$("#"+id_activo+" img").attr("alt", alt_nuevo);
				$("#"+id_activo+" img").attr("src", src_nuevo);
				$("#"+id_activo+" img").attr("title", title_nuevo);
				$("#"+id_activo+" img").attr("height", height_nuevo);
				$("#"+id_activo+" img").attr("width", width_nuevo);
				$("#"+id_activo+" a").attr("href", href_nuevo);
				$("#"+id_activo).attr("id", id_nuevo);

				// Se realiza la sustituación de canales en la cookie
                var milistaTipos = "";
				var ckArr = document.cookie.split("; ");

				// Se busca la cookie en cuestión
				for(var nBucle = 0; nBucle < ckArr.length; nBucle++){
					var aCookie = ckArr[nBucle].split("=");
					if((aCookie[0].substring(0,8)) == 'milistaC'){
						if(aCookie[1] != undefined)
							milistaTipos = aCookie[1];
					}
				}

				// Se busca el canal a sustituir dentro de la cookie. Se crea un nuevo valor para la cookie realizando la sustitución pertinente
				var nuevaCookie = '';
				var nuevoCanal = 'opcionC' + id_canal;
				var anteriorCanal = 'opcionC' + id_activo;
				var i = 0;
				var arraytipos = milistaTipos.split("-");
				while(i < arraytipos.length){
					if(arraytipos[i] == anteriorCanal)
						nuevaCookie += nuevoCanal + "-";
					else	
						nuevaCookie += arraytipos[i] + "-";
					i++;
				}

				// Se escribe la nueva cookie
				if(milistaTipos != "" && milistaTipos != null){
					nuevaCookie = nuevaCookie.substr(0,nuevaCookie.length-1);
					var date = new Date();
         			date.setTime((date.getTime() + (8760*60*60*1000)));
		         	document.cookie = "milistaC=" + nuevaCookie + "; path=/; expires="+date.toGMTString();
				}

				// Se oculta la barra superior para evitar la recarga del contenedor inferior con la información del nuevo canal
				$("#"+id_nuevo).removeClass("activo");
				$("#"+id_nuevo+" a").click();

				// Se sustituye el identificador del programa que ha sido sustituido por el actual. Se hace para todas las franjas
				$("#"+'programa_manana_'+id_activo).attr("id", 'programa_manana_' + id_canal);
				$("#"+'programa_tarde_'+id_activo).attr("id", 'programa_tarde_' + id_canal);
				$("#"+'programa_noche_'+id_activo).attr("id", 'programa_noche_' + id_canal);

				// Se hace una llamada ajax para cargar la programación del nuevo programa incluido en la lista
				// El valor devuelto por la llamada ajx contiene los pases para todas las franjas horarias. Se deja en un div temporal
				// Módulo a utilizar en la llamada ajax
				var modulo = 'PARParrillaCanalesOU';

				// Contenedor temporal, parámetros y llamada. 
				var cnt = 'temporal_pases';
				var params = "fechaEntrada%3D"+fechaEntrada.replace(/_/g,"-")+"%26horaEntrada%3D"+horaEntrada+"%26franja%3D"+"manana-tarde-noche"+"%26canales%3D"+id_canal+"%26vista%3D";
				aP = "modulo=" + modulo + "&params=" + params;

				// Una vez realizada la petición ajax se copia cada div resultante (almacenado en el div temporal) sobre su franja correspondiente
				var fin = function(){
					$("#"+'programa_manana_'+id_canal).html($("#"+'temporal_manana_'+id_canal).html());
					$("#"+'temporal_manana_'+id_canal).html("");
					$("#"+'programa_tarde_'+id_canal).html($("#"+'temporal_tarde_'+id_canal).html());
					$("#"+'temporal_tarde_'+id_canal).html("");
					$("#"+'programa_noche_'+id_canal).html($("#"+'temporal_noche_'+id_canal).html());
					$("#"+'temporal_noche_'+id_canal).html("");

					// Se recargan las funciones asociadas al nuevo módulo
					$(document).ready(rules_programacion_parrilla.tratar_prog_concapa);
					$(document).ready(rules_programacion_parrilla.cargar_eleccion);
				}

		       	a = new Ajax();
		        imagen = '<div id="cargando" class="preload"><img src="/im/loading.gif" alt="cargando"><p>Cargando...</p></div>';
				a.replace("/modulo/index.html",aP,imagen,cnt,"GET",fin);

			}
			return false;
		});
	}	

}

$(document).ready(rules_canales_dia.click);
$(document).ready(rules_canales_dia.cerrar);
$(document).ready(rules_canales_dia.reemplazar);

/******************************************************************************************
							FIN FUNCIONES CAPA DIA     
*******************************************************************************************/


/******************************************************************************************
                            INICIO FUNCIONES BUSQUEDA AVANZADA 
*******************************************************************************************/

rules_busqueda_avanzada = {

    click : function(){
		$("a.busqueda_avanzada").unbind("click");
        $("a.busqueda_avanzada").click(function(){
            if($(this).parent().hasClass("activo")){
                $("div#capa_busqueda_avanzada").hide();
                $(this).parent().removeClass("activo");
            }else{
                $("div#capa_busqueda_avanzada").show();
                $(this).parent().addClass("activo");
            }
            return false;
        });

    },

	cerrar : function(){
		$("div#botonera_avanzada input.btn_cerrar").unbind("click");
        $("div#botonera_avanzada input.btn_cerrar").click(function(){
            $("div#capa_busqueda_avanzada").hide();
			$("div.cabecera_opciones p.b_avanzada").removeClass("activo");
        });
    },
	
	formulario : function(){
		var categorias = 0;
		var dias = 0;
		var horas = 0;
		var canales = 0;
		$("form#avanzada").bind("submit", function(event){
			var noEnvio = 1;
			if(categorias < 1 || dias < 1 || horas < 1)
				event.preventDefault();
		}),
		$("input[id*='categoria']").change(function(){
			if($(this).attr('id') == 'categoria0'){
                if($(this).is(':checked')){
                    $("input[id*='categoria']").attr("checked", "checked");
                    categorias = 7;
                }else{
                    $("input[id*='categoria']").attr("checked", "");
                    categorias = 0;
                }
            }else{
				if($(this).is(':checked')){
					categorias++;
					if(categorias == 7)
						$("input[id='categoria0']").attr("checked", "checked");
				}else{
					categorias--;
					if(categorias < 7) 
						$("input[id='categoria0']").attr("checked", "");
				}	
    		}        
        }),
        $("input[id*='horas']").change(function(){
			if($(this).attr('id') == 'horas0'){
                if($(this).is(':checked')){
                    $("input[id*='horas']").attr("checked", "checked");
                    horas = 3;
                }else{
                    $("input[id*='horas']").attr("checked", "");
                    horas = 0;
                }
            }else{
                if($(this).is(':checked')){
                    horas++;
                    if(horas == 3)
                        $("input[id='horas0']").attr("checked", "checked");
                }else{
                    horas--;
                    if(horas < 3)
                        $("input[id='horas0']").attr("checked", "");
                }
            }
        }),
        $("input[id*='dia']").change(function(){
			if($(this).attr('id') == 'dia0'){
                if($(this).is(':checked')){
                    $("input[id*='dia']").attr("checked", "checked");
                    dias = 3;
                }else{
                    $("input[id*='dia']").attr("checked", "");
                    dias = 0;
                }
            }else{
                if($(this).is(':checked')){
                    dias++;
                    if(dias == 3)
                        $("input[id='dia0']").attr("checked", "checked");
                }else{
                    dias--;
                    if(dias < 3)
                        $("input[id='dia0']").attr("checked", "");
                }
            }
        }),
        $("input[id*='canales']").change(function(){
			if($(this).attr('id') == 'canales0'){
                if($(this).is(':checked')){
                    $("input[id*='canales']").attr("checked", "checked");
                    canales = 3;
                }else{
                    $("input[id*='canales']").attr("checked", "");
                    canales = 0;
                }
            }else{
                if($(this).is(':checked')){
                    canales++;
                    if(canales == 3)
                        $("input[id='canales0']").attr("checked", "checked");
                }else{
                    canales--;
                    if(canales < 3)
                        $("input[id='canales0']").attr("checked", "");
                }
            }
        });
	}
}


$(document).ready(rules_busqueda_avanzada.click);
$(document).ready(rules_busqueda_avanzada.cerrar);
$(document).ready(rules_busqueda_avanzada.formulario);


/******************************************************************************************
                            FIN FUNCIONES BUSQUEDA AVANZADA
*******************************************************************************************/

/******************************************************************************************
                            INICIO FUNCIONES PROGRAMACIÓN PARRILLA 
*******************************************************************************************/

rules_programacion_parrilla = {

	tratar_prog_concapa : function(){
		
		$("div.concapa > a").unbind("click");
		$("div.concapa > a").click(function(){
			if($(this).hasClass("activo") || $(this).hasClass("up")){
                if($(this).hasClass("enlace_sube")){
                    $(this).removeClass("up");
                    $(this).next().removeClass("capa_up");
                }else
                    $(this).removeClass("activo");
                $(this).parent().css("z-index", 0);
                $(this).next().hide();
			}else{
                if($(this).hasClass("enlace_sube")){
                    $(this).addClass("up");
                    $(this).next().addClass("capa_up");
                }else
                    $(this).addClass("activo");

                // Se coge el z-index más alto que haya para sumarle una unidad y así prevalecer sobre el resto de divs desplegables
                var mayor = 0;
                $("div.concapa").each(function(i){
                    var indiceZ = $(this).css("z-index");
                    if(indiceZ != "" && indiceZ != null && indiceZ != 'auto')
                        mayor = (indiceZ > mayor) ? indiceZ : mayor;
                });
                $(this).parent().css("z-index", parseInt(mayor)+1);
                $(this).next().show();
            }
            return false;
		});
	},
	
	cargar_eleccion : function(){

		$("div#menu_tipos input[id^='opcion']").each(function(e){
			if($(this).is(':checked')){
				var genero = $(this).attr("value");
				$(this).parent().parent().addClass("activo");
				$("ul.parrilla div[value*='"+genero+"']").addClass(genero);
			}
		});
	},

	tratar_eleccion : function(){

		$("div#menu_tipos input[id^='opcion']").unbind("click");
		$("div#menu_tipos input[id^='opcion']").click(function(){
			var genero = $(this).attr("value"); 
			if($(this).is(":checked")){
				$(this).parent().parent().addClass("activo");
				$("ul.parrilla div[value*='"+genero+"']").addClass(genero);					
			}else{
				$(this).parent().parent().removeClass("activo");
				$("ul.parrilla div[value*='"+genero+"']").removeClass(genero);
			}
		});		
	}

}

$(document).ready(rules_programacion_parrilla.tratar_prog_concapa);
$(document).ready(rules_programacion_parrilla.cargar_eleccion);
$(document).ready(rules_programacion_parrilla.tratar_eleccion);

/******************************************************************************************
                            FIN FUNCIONES PROGRAMACIÓN PARRILLA
*******************************************************************************************/
