Problemas con un menú desplegable

Me copié como poner un menú desplegable, el de los archivos estilo-menu... no-tocar...definir-menus... etc. A parte de que no lo encuentro ahora en el curso, lo he insertado en una página que me estoy haciendo pero en el Opera no se descarga, ¿que puedo hacer?

Gracias.
Hola:

Como no soy muy adicto a utilizar programas que lo hagan todo por mi, y trato de hacer las cosas un poco más artesanalmente.

Espero que no se líe tanto con esta explicación, ya que veo que a muchos les sucede que no tienen el menu desplegable que había en el curso.
El menu desplegable que había en el curso se compone de tes archivos de texto una hoja de estilo y ocho imagenes, tanto los archivos de texto como la hoja de estilo y las imagenes puede uno hacerlos sin ningún problema, (espero).
Por tanto espero esta explicación le ayude y le aclare algunas cosas, (si no es así, lo siento, ya que puede que no sepa explicarlo mejor.

.........................................
Creamos una carpeta en el escritorio.
Le ponemos por nombre-- desplegables.
Dentro de esa carpeta creamos otra que se llame objetos

Luego vamos a “Inicio” y pulsamos– Ponemos el cursor sobre “Todos los Programas” – Ponemos el cursor sobre “Accesorios” –

Pulsamos donde dice “Bloc de Nota” (click izquierdo)

Se nos abre una ventana vacía.

Pulsamos en “Archivo” – y pulsamos en “Guardar como”

arriba buscamos con la flecha de la derecha la carpeta en el que vamos a guardar ese archivo, (en la carpeta que hemos creado en el escritorio)

Luego vamos abajo y donde dice “Tipo”-- nos fijamos que haya esto: Documentos de texto[*.text]

Así que vamos a la casilla “Nombre” borramos lo que haya allí y escribimos definir-menus

Solo escribimos eso y Guardamos

Así se guardará ese archivo ( que se guarde en la carpeta que creamos en el escritorio, la que se llama desplegables).

Luego volvemos a ir a “Inicio”--Todos los Programas”-- “Accesorios” – “Bloc de notas”

“Archivo” --”Guardar como” --

Y volvemos a hacer lo mismo para crear otro archivo, siguiéndo las mismas normas que cuando creamos el anterior, solo que a este le pondremos por nombre: numero-de-menus

Solo escribimos eso y Guardamos (en la misma carpeta en que guardamos el anterior, en la que se llama desplegables)

Luego volvemos a ir a “Inicio” – “Todos los Programas” – “Accesorios” – “Bloc de Notas” –
“Archivo” – “Guardar como” --
Y guardamos este tercer archivo con el nombre : transmenuC
Recordar que en la casilla Nombre hay que borrar lo que haya allí y escribir solo el nombre del archivo, por ejemplo en este caso sería transmenuC y nada más

Hasta ahora tenemos en esa carpeta del escritorio, (la desplegables) tres archivos de texto

(1) definir-menus con extensión .txt
(2) numero-de-menus con extensión .txt
(3) transmenuC con extensión .txt

Ahora volvemos a ir a “Inicio” – Todos los Programas” – Accesorios” – “Bloc de notas” –
“Archivo” – “Guardar como”

Cuando se abra esa ventana del Guardar Como, entonces vamos a la casilla “Tipo” y pulsamos la flecha de la derecha, para en el desplegable pulsar en “Todos los Archivos”.

Luego vamos a la casilla “Nombre”, borramos lo que hay allí y escribimos : estilo-menu-desplegable.css

solo escribimos eso nada más, y guardamos ese archivo en la misma carpeta en que están los demás.

Por tanto, si vamos a esa carpeta que creamos en el escritorio , (la carpeta desplegables) veremos que tenemos cuatro archivos

(1) definir-menus.txt
(2) numero-de-menus.txt
(3) transmenuC.txt
(4) estilo-menu-desplegable.css

Ahora copiamos y pegamos los códigos que van dentro del archivo de texto definir-menus.txt
Ahora copiamos y pegamos los códigos que van dentro del archivo de texto numero-de-menus.txt
Ahora copiamos y pegamos los códigos que van dentro del archivo de texto transmenuC.txt
Ahora copiamos y pegamos los códigos que van dentro del archivo css estilo-menu-desplegable.css

Claro que para pegarlos allí, primero tenéis que copiarlos de acá

Con eso ya tenemos nuestros desplegables en esa carpeta, solo queda poner las ocho imagenes dentro de esa carpeta objetos que hemos creado en la carpeta desplegables

(1) submenu-abierto.gif Las dimensiones son de 16 x 16 px
(2) submenu-cerrado.gif Las dimensiones son de 16 x 16 px
(3) punto.gif Las dimensiones son de 16 x 16 px
(4) fondo-activo.gif Las dimensiones son de 16 x 16 px
(5) fondo-no-activo.gif Las dimensiones son de 16 x 16 px
(6) gris.png Las dimensiones son de 100 x 100 px
(7) blanco.png Las dimensiones son de 100 x 100 px
(8) espaciador.gif Las dimensiones son de 1 x 1 px

Podéis haceros las imagenes , no voy a deciros por ahora, de que color tenéis que hacerlas, pero podéis hacerlas transparentes si queréis, la cuestión es que tengan esas dimensiones , y ya tendríamos los desplegables completos y con las imagenes

Ahora que ya tenemos nuestras imagenes, las ponemos en esa carpeta llamada objetos que está dentro de la carpeta desplegables.
Así tendremos todos los archivos que tienen que ver con los desplegables en esa carpeta, más una página plantilla y una hoja de estilo-general.

Ahora si queremos poner las imagenes en la página que corresponde a la web “web-ejemplo-cctw”seleccionamos todas (las ocho) imagenes (que están dentro de la carpeta objetos de la carpeta desplegables, y las copiamos y las pegamos dentro de la carpeta objetos que estará dentro de la carpeta “web-ejemplo-cctw”.

Ahora volvemos a la carpeta desplegables, y seleccionamos los cuatro archivos, (los tres de texto y esa hoja de estilo), las seleccionamos, (desde la carpeta desplegables) “Edicion” – “Copiar” – vamos a nuestra carpeta “web-ejemplo-cctw” y las pegamos allí , “Edicion” --”Pegar” –


Ahora en la página plantilla , de la “web-ejemplo-cctw”, entre el <head> y el </head> ponemos tres de aquellos archivos (que estarán en la pagina plantilla de la carpeta desplegables)
Así que vamos a la pagina plantilla de la carpeta desplegables, seleccionamos esos tres archivos, Edicion-- Copiar, cerramos, abrimos la pagina plantilla de la “web-ejemplo-cctw”, y entre el >head> y el </head> pegamos esos códigos.

<link rel="stylesheet" href="estilo-menu-desplegable.css" type="text/css" media="all">
<script language="javascript" src="transmenuC.txt" type="text/javascript"></script>
<script language="javascript" src="numero-de-menus.txt"type="text/javascript"></script>


Luego de poner esos archivos allí, cerramos la pagina plantilla de la “web-ejemplo-cctw”. Abrimos otra vez la pagina plantilla de la carpeta desplegables, seleccionamos el script language, (el que está al final), le damos a copiar, cerramos, abrimos nuestra pagina plantilla de la carpeta “web-ejemplo-cctw”, vamos al final de nuestra página, y justo antes de donde se cierra el </body>, pegamos el código script language

<div id="curva-inferior"></div>
</div>
<script language="javascript" src="definir-menus.txt" type="text/javascript"></script>
</body>
</html>

Precisamente allí entre esas etiquetas hay que ponerlo.

Luego guardamos y cerramos.
Así tenemos en la carpeta desplegables los códigos del desplegable, por si queremos hacerle modificaciones más adelante, y tenemos también los desplegables en la pagina plantilla de la carpeta “web-ejemplo-cctw”



Luego que hemos hecho eso , y como en este ejemplo hay cinco Secciones para el desplegable, (o mejor dicho, cinco desplegables) ( cada seccion tiene unas Subsecciones), entonces ahora abrimos nuestra página plantilla (o portada)
Y en la capa “navegacion”, ponemos las cosas en la capa navegación de esta manera:


<div id="navegacion">
<ul>
  • Seccion 1
  • Seccion 2
  • Seccion 3
  • Seccion 4
  • Seccion 5

    </div>


    Ahora, si queremos ocupar la primera Seccion de nuestra capa navegacion con enlaces que nos lleven a webs externas, pondremos por ejemplo en nuestra página en la Seccion 1, lo siguiente:

    <div id="navegacion">
    <ul>
  • Web amigas
  • Seccion 2
  • Seccion 3
  • Seccion 4
  • Seccion 5

    </div>

    Entonces, después de guardar y cerrar nuestra página, nos dirigimos al archivo “definir-menus.txt”

    Lo abrimos (puede ser click derecho “Abrir con” – “Bloc de notas”--)

    Y en el primer grupo que hay allí de desplegables, (desplegable 1) que es el que pertenece a la Seccion 1, (y que en la capa navegacion de nuestra página plantilla ya le pusimos por nombre “Web amigas”), entonces allí ponemos las rutas correspondientes, como son páginas web externas , (o sea que quedan fuera de nuestra web) debemos utilizar rutas absolutas. ¿Qué significa eso?. Pues que debemos poner la direccion completa, con http y todo.

    Pero claro, tenemos unas cuantas web amigas, pero también vemos que algunas hablan de un tema en particular y otras hablan de otro tema, así que en esa Seccion 1, lo que haremos será ponerlas por grupos

    Este es el principo del archivo definir-menus, y lógicamente aparece el primer desplegable, así que tomamos la primera seccion del primer desplegable para poner allí un grupo de web amigas que hablen acerca de Deportes
    Así que ponemos acá ese grupo y le ponemos sus rutas

    if (TransMenu.isSupported())
    {
    var ms=new TransMenuSet(TransMenu.direction.down,1,0, TransMenu.reference.bottomLeft);

    var desplegable1 = ms.addMenu(document.getElementById('desplegable1'));
    desplegable1.addItem('Deportes','ruta');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[0]);
    desplegable1_0.addItem('Sub-Seccion 1.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 1.2','ruta');
    desplegable1_0.addItem('Sub-Seccion 1.3','ruta');

    Como véis, donde decía Seccion 1, le hemos borrado y hemos escrito Deportes

    Y ahora pondremos en las Subsecciones, las rutas de esas paginas amigas que hablan de deporte.

    if (TransMenu.isSupported())
    {
    var ms=new TransMenuSet(TransMenu.direction.down,1,0, TransMenu.reference.bottomLeft);

    var desplegable1 = ms.addMenu(document.getElementById('desplegable1'));
    desplegable1.addItem('Deportes','ruta');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[0]);
    desplegable1_0.addItem('Patinaje','http://www.fep.es/website/index.asp');
    desplegable1_0.addItem('Natacion','http://www.todonatacion.com/');
    desplegable1_0.addItem('Sub-Seccion 1.3','ruta');

    Bien, estas son las web que hablan una de patinaje, la otra de natacion, así que ahora vamos a ver que otras web pueden ser parte de un grupo que hablen de cosas afines

    Por tanto, tomaremos las que hablan acerca de como hacer páginas web, así que en la Seccion 2 , siempre del desplegable 1

    if (TransMenu.isSupported())
    {
    var ms=new TransMenuSet(TransMenu.direction.down,1,0, TransMenu.reference.bottomLeft);

    var desplegable1 = ms.addMenu(document.getElementById('desplegable1'));
    desplegable1.addItem('Deportes','ruta');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[0]);
    desplegable1_0.addItem('Patinaje','http://www.fep.es/website/index.asp');
    desplegable1_0.addItem('Natacion','http://www.todonatacion.com/');
    desplegable1_0.addItem('Sub-Seccion 1.3','ruta');

    Esto de arriba son web amigas que hablan acerca de deporte


    Acá pondremos las que hablan acerca de hacer paginas web, ¡Vaya! Que casualidad, tenemos una muy cercana a nosotros, solemos conocerla por las siglas cctw, así que eso haremos donde dice SubSeccion 2.1 y donde dice ruta pondremos la ruta completa.


    desplegable1.addItem('Diseños Web','rutas');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[1]);

    desplegable1_0.addItem('cctw','http://www.comocreartuweb.com');
    desplegable1_0.addItem('Sevilla','http://www.disenosweb.net');
    desplegable1_0.addItem('Sub-Seccion 2.3','ruta');

    Hasta ahora vamos viendo que las cosas resultan, ya que en el desplegable 1, que pertenece en la capa de navegacion al primero comenzando por la izquierda (Web amigas), en el archivo definir-menus le vamos poniendo título a las Secciones que tiene (Deportes – Diseños Web) y en las Subsecciones de ese primer desplegable vamos poniendo las web con sus rutas absolutas.

    Como este desplegable en el que estamos trabajándo (el desplegable 1, o el Web amigas) tiene cuatro secciones hacia abajo y cada una de esas secciones tiene unas Subsecciones es cosa de ir poniendole algún título a la seccion y añadir algún título descriptivo a la subseccion referente a la página web a la que nos referiremos cuando pongamos la ruta.

    Este es el desplegable 1, que pertenece en la capa navegacion al primero comenzando por la izquierda, Cuando en la capa navegacion se pone el cursor encima de la frase que antes decía “Seccion 1” pero que la hemos cambiado y ahora dice “Web amigas”, se despliegan hacia abajo cuatro secciones, cada una de esas secciones tiene unas subsecciones que es donde ponemos las rutas de esas web

    if (TransMenu.isSupported())
    {
    var ms=new TransMenuSet(TransMenu.direction.down,1,0, TransMenu.reference.bottomLeft);

    var desplegable1 = ms.addMenu(document.getElementById('desplegable1'));
    desplegable1.addItem('Seccion 1','ruta');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[0]);
    desplegable1_0.addItem('Sub-Seccion 1.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 1.2','ruta');
    desplegable1_0.addItem('Sub-Seccion 1.3','ruta');


    desplegable1.addItem('Seccion 2','rutas');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[1]);
    desplegable1_0.addItem('Sub-Seccion 2.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 2.2','ruta');
    desplegable1_0.addItem('Sub-Seccion 2.3','ruta');


    desplegable1.addItem('Seccion 3','rutas');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[2]);
    desplegable1_0.addItem('Sub-Seccion 3.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 3.2','ruta');
    desplegable1_0.addItem('Sub-Seccion 3.3','ruta');

    desplegable1.addItem('Seccion 4','rutas');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[3]);
    desplegable1_0.addItem('Sub-Seccion 4.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 4.2','ruta');
    desplegable1_0.addItem('Sub-Seccion 4.3','ruta');




    Ahora pasaremos a la Seccion 2, (este sería el desplegable 2) que en la capa navegacion es la segunda comenzando desde la izquierda, como en la capa navegacion, aún dice Seccion 2, pues iremos a nuestra página
    y modificaremos ese nombre, y como ya en nuestra web tenemos varias páginas hechas, utilizaremos esa seccion 2 para que cuando pulsemos en sus desplegables nos lleve a nuestras paginas que están dentro de nuestra web.

    Por tanto en la capa navegación borraremos donde dice Seccion 2 y pondremos en su lugar Mis Páginas

    <div id="navegacion">
    <ul>
  • Web Amigas
  • Mis Paginas
  • Seccion 3
  • Seccion 4
  • Seccion 5

    </div>

    Hecho esto, cerramos y nos dirigimos otra vez al archivo definir-menus, y en el grupo de desplegables 2 que sería este que también tiene cuatro secciones y cada seccion tiene unas subsecciones. Y como nuestra web ya se compone de varias paginas, sin contar la portada o el index, pues también vamos a agruparlas por temas.

    Imaginemos que tenemos dos paginas que hablan acerca de la historia del mundo, la página historia1.html y la pagina historia2.html.

    Por tanto, donde dice Seccion 1, lo borramos y escribimos Historia, y en las subsecciones de esa seccion 1 como tenemos dos páginas que hablan, una de la historia de America y la otra de la historia de Asia, y esas paginas les hemos puesto por nombre americahistoria.html y asiahistoria.html, pues pondremos donde dice Subseccion 1. 1, la de america, y la de asia en la siguiente, (en la Subseccion 1.2)

    Tambien tenemos un par de paginas que hablan acerca de la ciudad en que resido, por tanto ya yendo a la seccion 2 de este mismo deplegable, quitaré lo que dice Seccion 2 y en su lugar pondré Mi Ciudad, y en las dos subsecciones que tiene esa seccion 2 pondré la ruta de las páginas donde hablo de los campos y su gente, ya que tengo dos paginas que hablan acerca de ello, paginas que se llaman micampo.html y migente.html.

    La Seccion 3 y 4 como podéis ver, no tienen subsecciones, y como tengo dos paginas que hablan, una acerca de mi perro y otra acerca de mi gato, páginas que se llaman, miperro.html, migato.html, pues las pondré allí


    var desplegable2 = ms.addMenu(document.getElementById('desplegable2'));
    desplegable2.addItem('Historia','ruta');
    var desplegable2_0 = desplegable2.addMenu(desplegable2.items[0]);
    desplegable2_0.addItem('America','americahistoria.html');
    desplegable2_0.addItem('Asia','asiahistoria.html');


    desplegable2.addItem('Mi Ciudad','ruta');
    var desplegable2_0 = desplegable2.addMenu(desplegable2.items[1]);
    desplegable2_0.addItem('El Campo','micampo.html');
    desplegable2_0.addItem('La gente','migente.html');

    desplegable2.addItem('Mi Gato','migato.html');
    desplegable2.addItem('Mi Perro','miperro.html');

    Como podéis ver, cuando pongo un enlace a alguna página que está o pertenece a mi web no necesito poner las famosas rutas absolutas con http y todo, basta con que ponga solo el nombre de la página, eso se llama rutas relativas.
    ….......................................................................................
    De acá hacia abajo pongo los códigos que hay que poner en cada archivo, la explicación anterior es un poco diferente (ya que solo era para explicar como se pueden poner las rutas etc.
    A continuación le pondré los códigos de los archivos que hay que tener para el menu desplegable.
    Saludos
  • Agradecido de los que aprenden enseñando
    Hola:
    Acá están los archivos con sus códigos del menú desplegable, con alguna pequeña variación.
    .................................................
    Este sería el archivo definir-menus.txt, hay que copiar todo este código y pegarlo en el archivo definir-menus.txt que hemos creado en la carpeta de nuestro escritorio, a la que le hemos puesto por nombre desplegables
    ….....................................................................
    ….....…............................................................
    if (TransMenu.isSupported())
    {
    var ms=new TransMenuSet(TransMenu.direction.down,1,0, TransMenu.reference.bottomLeft);

    var desplegable1 = ms.addMenu(document.getElementById('desplegable1'));
    desplegable1.addItem('Seccion 1','ruta');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[0]);
    desplegable1_0.addItem('Sub-Seccion 1.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 1.2','ruta');
    desplegable1_0.addItem('Sub-Seccion 1.3','ruta');


    desplegable1.addItem('Seccion 2','rutas');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[1]);
    desplegable1_0.addItem('Sub-Seccion 2.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 2.2','ruta');
    desplegable1_0.addItem('Sub-Seccion 2.3','ruta');


    desplegable1.addItem('Seccion 3','rutas');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[2]);
    desplegable1_0.addItem('Sub-Seccion 3.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 3.2','ruta');
    desplegable1_0.addItem('Sub-Seccion 3.3','ruta');

    desplegable1.addItem('Seccion 4','rutas');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[3]);
    desplegable1_0.addItem('Sub-Seccion 4.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 4.2','ruta');
    desplegable1_0.addItem('Sub-Seccion 4.3','ruta');

    desplegable1.addItem('Seccion 5','ruta');
    var desplegable1_0 = desplegable1.addMenu(desplegable1.items[4]);
    desplegable1_0.addItem('Sub-Seccion 5.1','ruta');
    desplegable1_0.addItem('Sub-Seccion 5.2','ruta');





    var desplegable2 = ms.addMenu(document.getElementById('desplegable2'));
    desplegable2.addItem('Seccion 1','ruta');
    var desplegable2_0 = desplegable2.addMenu(desplegable2.items[0]);
    desplegable2_0.addItem('Sub-Seccion 1.1','ruta');
    desplegable2_0.addItem('Sub-Seccion 1.2','ruta');
    desplegable2_0.addItem('Sub-Seccion 1.3','ruta');

    desplegable2.addItem('Seccion 2','ruta');
    var desplegable2_0 = desplegable2.addMenu(desplegable2.items[1]);
    desplegable2_0.addItem('Sub-Seccion 2.1','ruta');
    desplegable2_0.addItem('Sub-Seccion 2.2','ruta');
    desplegable2_0.addItem('Sub-Seccion 2.3','ruta');

    desplegable2.addItem('Seccion 3','ruta');
    var desplegable2_0 = desplegable2.addMenu(desplegable2.items[2]);
    desplegable2_0.addItem('Sub-Seccion 3.1','ruta');
    desplegable2_0.addItem('Sub-Seccion 3.2','ruta');
    desplegable2_0.addItem('Sub-Seccion 3.3','ruta');

    desplegable2.addItem('Seccion 4','ruta');
    var desplegable2_0 = desplegable2.addMenu(desplegable2.items[3]);
    desplegable2_0.addItem('Sub-Seccion 4.1','ruta');
    desplegable2_0.addItem('Sub-Seccion 4.2','ruta');
    desplegable2_0.addItem('Sub-Seccion 4.3','ruta');

    desplegable2.addItem('Seccion 5','ruta');
    var desplegable2_0 = desplegable2.addMenu(desplegable2.items[4]);
    desplegable2_0.addItem('Sub-Seccion 5.1','ruta');
    desplegable2_0.addItem('Sub-Seccion 5.2','ruta');





    var desplegable3 = ms.addMenu(document.getElementById('desplegable3'));
    desplegable3.addItem('Seccion 1','ruta');
    var desplegable3_0 = desplegable3.addMenu(desplegable3.items[0]);
    desplegable3_0.addItem('Sub-Seccion 1.1','ruta');
    desplegable3_0.addItem('Sub-Seccion 1.2','ruta');

    desplegable3.addItem('Seccion 2','ruta');
    var desplegable3_0 = desplegable3.addMenu(desplegable3.items[1]);
    desplegable3_0.addItem('Sub-Seccion 2.1','ruta');
    desplegable3_0.addItem('Sub-Seccion 2.2','ruta');
    desplegable3_0.addItem('Sub-Seccion 2.3','ruta');

    desplegable3.addItem('Seccion 3','ruta');
    var desplegable3_0 = desplegable3.addMenu(desplegable3.items[2]);
    desplegable3_0.addItem('Sub-Seccion 3.1','ruta');
    desplegable3_0.addItem('Sub-Seccion 3.2','ruta');

    desplegable3.addItem('Seccion 4','ruta');
    var desplegable3_0 = desplegable3.addMenu(desplegable3.items[3]);
    desplegable3_0.addItem('Sub-Seccion 4.1','ruta');
    desplegable3_0.addItem('Sub-Seccion 4.2','ruta');
    desplegable3_0.addItem('Sub-Seccion 4.3','ruta');

    desplegable3.addItem('Seccion 5','ruta');
    var desplegable3_0 = desplegable3.addMenu(desplegable3.items[4]);
    desplegable3_0.addItem('Sub-Seccion 5.1','ruta');
    desplegable3_0.addItem('Sub-Seccion 5.2','ruta');
    desplegable3_0.addItem('Sub-Seccion 5.3','ruta');




    var desplegable4 = ms.addMenu(document.getElementById('desplegable4'));
    desplegable4.addItem('Seccion 1','ruta');
    var desplegable4_0 = desplegable4.addMenu(desplegable4.items[0]);
    desplegable4_0.addItem('Sub-Seccion 1.1','ruta');
    desplegable4_0.addItem('Sub-Seccion 1.2','ruta');

    desplegable4.addItem('Seccion 2','ruta');
    var desplegable4_0 = desplegable4.addMenu(desplegable4.items[1]);
    desplegable4_0.addItem('Sub-Seccion 2.1','ruta');
    desplegable4_0.addItem('Sub-Seccion 2.2','ruta');
    desplegable4_0.addItem('Sub-Seccion 2.3','ruta');

    desplegable4.addItem('Seccion 3','ruta');
    var desplegable4_0 = desplegable4.addMenu(desplegable4.items[2]);
    desplegable4_0.addItem('Sub-Seccion 3.1','ruta');
    desplegable4_0.addItem('Sub-Seccion 3.2','ruta');

    desplegable4.addItem('Seccion 4','ruta');
    var desplegable4_0 = desplegable4.addMenu(desplegable4.items[3]);
    desplegable4_0.addItem('Sub-Seccion 4.1','ruta');
    desplegable4_0.addItem('Sub-Seccion 4.2','ruta');
    desplegable4_0.addItem('Sub-Seccion 4.3','ruta');

    desplegable4.addItem('Seccion 5','ruta');
    var desplegable4_0 = desplegable4.addMenu(desplegable4.items[4]);
    desplegable4_0.addItem('Sub-Seccion 5.1','ruta');
    desplegable4_0.addItem('Sub-Seccion 5.2','ruta');
    desplegable4_0.addItem('Sub-Seccion 5.3','ruta');





    var desplegable5 = ms.addMenu(document.getElementById('desplegable5'));
    desplegable5.addItem('Seccion 1','ruta');
    var desplegable5_0 = desplegable5.addMenu(desplegable5.items[0]);
    desplegable5_0.addItem('Sub-Seccion 1.1','ruta');
    desplegable5_0.addItem('Sub-Seccion 1.2','ruta');

    desplegable5.addItem('Seccion 2','ruta');
    var desplegable5_0 = desplegable5.addMenu(desplegable5.items[1]);
    desplegable5_0.addItem('Sub-Seccion 2.1','ruta');
    desplegable5_0.addItem('Sub-Seccion 2.2','ruta');
    desplegable5_0.addItem('Sub-Seccion 2.3','ruta');

    desplegable5.addItem('Seccion 3','ruta');
    var desplegable5_0 = desplegable5.addMenu(desplegable5.items[2]);
    desplegable5_0.addItem('Sub-Seccion 3.1','ruta');
    desplegable5_0.addItem('Sub-Seccion 3.2','ruta');

    desplegable5.addItem('Seccion 4','ruta');
    var desplegable5_0 = desplegable5.addMenu(desplegable5.items[3]);
    desplegable5_0.addItem('Sub-Seccion 4.1','ruta');
    desplegable5_0.addItem('Sub-Seccion 4.2','ruta');
    desplegable5_0.addItem('Sub-Seccion 4.3','ruta');

    desplegable5.addItem('Seccion 5','ruta');
    var desplegable5_0 = desplegable5.addMenu(desplegable5.items[4]);
    desplegable5_0.addItem('Sub-Seccion 5.1','ruta');
    desplegable5_0.addItem('Sub-Seccion 5.2','ruta');
    desplegable5_0.addItem('Sub-Seccion 5.3','ruta');

    TransMenu.renderAll();
    }
    Acá con esta llave, terminan los códigos del archivo definir-menus que hay que pegar en el archivo definir-menus.txt
    …............................................................................................................................................
    …............................................................................................................................................
    …............................................................................................................................................
    Este sería el archivo numero-de-menus.txt, todos estos códigos hay que pegarlos en el archivo numero-de-menus.txt que tenemos dentro de la carpeta desplegables
    …............................................................

    function init()
    {
    if (TransMenu.isSupported())
    {
    TransMenu.initialize();

    desplegable1.onactivate = function() { document.getElementById('desplegable1').className = 'hover'; };
    desplegable1.ondeactivate = function() { document.getElementById('desplegable1').className = ''; }
    desplegable2.onactivate = function() { document.getElementById('desplegable2').className = 'hover'; };
    desplegable2.ondeactivate = function() { document.getElementById('desplegable2').className = ''; }
    desplegable3.onactivate = function() { document.getElementById('desplegable3').className = 'hover'; };
    desplegable3.ondeactivate = function() { document.getElementById('desplegable3').className = ''; }
    desplegable4.onactivate = function() { document.getElementById('desplegable4').className = 'hover'; };
    desplegable4.ondeactivate = function() { document.getElementById('desplegable4').className = ''; }
    desplegable5.onactivate = function() { document.getElementById('desplegable5').className = 'hover'; };
    desplegable5.ondeactivate = function() { document.getElementById('desplegable5').className = ''; }

    }
    }
    Acá con esta llave terminan los códigos que hay que pegar en el archivo numero-de-menus.txt
    …...................................................................................................................
    Este sería el archivo transmenuC.txt, todo este código hay que pegarlo en el archivo transmenuC.txt que tenemos dentro de la carpeta desplegables
    ….........................................................................

    /* =================================================================================================
    * TransMenu
    * March, 2003
    *
    * Customizable multi-level animated DHTML menus with transparency.
    *
    * Copyright 2003-2004, Aaron Boodman (www.youngpup.net)
    * =================================================================================================
    * "Can I use this?"
    *
    * Use of this library is governed by the Creative Commons Attribution 2.0 License. You can check it
    * out at: http://creativecommons.org/licenses/by/2.0/
    *
    * Basically: You may copy, distribute, and eat this code as you wish. But you must give me credit
    * for writing it. You may not misrepresent yourself as the author of this code.
    * =================================================================================================
    * "It's kinda hard to read, though"
    *
    * The uncompressed, commented version of this script can be found at:
    * http://youngpup.net/projects/transMenus
    * =================================================================================================
    * updates:
    * 04.19.04 fixed cascade problem with menus nested greater than two levels.
    * 12.23.03 added hideCurrent for menu actuators with no menus. renamed to TransMenu.
    * 04.18.03 fixed render bug in IE 5.0 Mac by removing that browser from compatibility table ;)
    * also made gecko check a little more strict by specifying build no.
    * ============================================================================================== */



    //==================================================================================================
    // Configuration properties
    //==================================================================================================
    TransMenu.spacerGif = "objetos/espaciador.gif"; // path to a transparent spacer gif
    TransMenu.dingbatOn = "objetos/submenu-abierto.gif"; // path to the active sub menu dingbat
    TransMenu.dingbatOff = "objetos/submenu-cerrado.gif"; // path to the inactive sub menu dingbat
    TransMenu.dingbatSize = 14; // size of the dingbat (square shape assumed)
    TransMenu.menuPadding = 0; // padding between menu border and items grid
    TransMenu.itemPadding = 2; // additional padding around each item
    TransMenu.shadowSize = 2; // size of shadow under menu
    TransMenu.shadowOffset = 3; // distance shadow should be offset from leading edge
    TransMenu.shadowColor = "#888"; // color of shadow (transparency is set in CSS)
    TransMenu.shadowPng = "objetos/gri.png"; // a PNG graphic to serve as the shadow for mac IE5
    TransMenu.backgroundColor = "#C4CCCC"; // color of the background (transparency set in CSS)
    TransMenu.backgroundPng = "objetos/blanco.png"; // a PNG graphic to server as the background for mac IE5
    TransMenu.hideDelay = 1000; // number of milliseconds to wait before hiding a menu
    TransMenu.slideTime = 400; // number of milliseconds it takes to open and close a menu
    TransMenu.preImg = "objetos/punto.gif";


    //==================================================================================================
    // Internal use properties
    //==================================================================================================
    TransMenu.reference = {topLeft:1,topRight:2,bottomLeft:3,bottomRight:4};
    TransMenu.direction = {down:1,right:2};
    TransMenu.registry = [];
    TransMenu._maxZ = 100;



    //==================================================================================================
    // Static methods
    //==================================================================================================
    // supporting win ie5+, mac ie5.1+ and gecko >= mozilla 1.0
    TransMenu.isSupported = function() {
    var ua = navigator.userAgent.toLowerCase();
    var pf = navigator.platform.toLowerCase();
    var an = navigator.appName;
    var r = false;

    if (ua.indexOf("gecko") > -1 && navigator.productSub >= 20020605) r = true; // gecko >= moz 1.0
    else if (an == "Microsoft Internet Explorer") {
    if (document.getElementById) { // ie5.1+ mac,win
    if (pf.indexOf("mac") == 0) {
    r = /msie (\d(.\d*)?)/.test(ua) && Number(RegExp.$1) >= 5.1;
    }
    else r = true;
    }
    }

    return r;
    }

    // call this in onload once menus have been created
    TransMenu.initialize = function() {
    for (var i = 0, menu = null; menu = this.registry; i++) {
    menu.initialize();
    }
    }

    // call this in document body to write out menu html
    TransMenu.renderAll = function() {
    var aMenuHtml = [];
    for (var i = 0, menu = null; menu = this.registry; i++) {
    aMenuHtml = menu.toString();
    }
    document.write(aMenuHtml.join(""));
    }

    //==================================================================================================
    // TransMenu constructor (only called internally)
    //==================================================================================================
    // oActuator : The thing that causes the menu to be shown when it is mousedover. Either a
    // reference to an HTML element, or a TransMenuItem from an existing menu.
    // iDirection : The direction to slide out. One of TransMenu.direction.
    // iLeft : Left pixel offset of menu from actuator
    // iTop : Top pixel offset of menu from actuator
    // iReferencePoint : Corner of actuator to measure from. One of TransMenu.referencePoint.
    // parentMenuSet : Menuset this menu will be added to.
    //==================================================================================================
    function TransMenu(oActuator, iDirection, iLeft, iTop, iReferencePoint, parentMenuSet) {
    // public methods
    this.addItem = addItem;
    this.addMenu = addMenu;
    this.toString = toString;
    this.initialize = initialize;
    this.isOpen = false;
    this.show = show;
    this.hide = hide;
    this.items = [];

    // events
    this.onactivate = new Function(); // when the menu starts to slide open
    this.ondeactivate = new Function(); // when the menu finishes sliding closed
    this.onmouseover = new Function(); // when the menu has been moused over
    this.onqueue = new Function(); // hack .. when the menu sets a timer to be closed a little while in the future
    this.ondequeue = new Function();

    // initialization
    this.index = TransMenu.registry.length;
    TransMenu.registry[this.index] = this;

    var id = "TransMenu" + this.index;
    var contentHeight = null;
    var contentWidth = null;
    var childMenuSet = null;
    var animating = false;
    var childMenus = [];
    var slideAccel = -1;
    var elmCache = null;
    var ready = false;
    var _this = this;
    var a = null;

    var pos = iDirection == TransMenu.direction.down ? "top" : "left";
    var dim = null;

    // private and public method implimentations
    function addItem(sText, sUrl) {
    var item = new TransMenuItem(sText, sUrl, this);
    item._index = this.items.length;
    this.items[item._index] = item;
    }

    function addMenu(oMenuItem) {
    if (!oMenuItem.parentMenu == this) throw new Error("Cannot add a menu here");

    if (childMenuSet == null) childMenuSet = new TransMenuSet(TransMenu.direction.right, -5, 2, TransMenu.reference.topRight);

    var m = childMenuSet.addMenu(oMenuItem);

    childMenus[oMenuItem._index] = m;
    m.onmouseover = child_mouseover;
    m.ondeactivate = child_deactivate;
    m.onqueue = child_queue;
    m.ondequeue = child_dequeue;

    return m;
    }

    function initialize() {
    initCache();
    initEvents();
    initSize();
    ready = true;
    }

    function show() {
    //dbg_dump("show");
    if (ready) {
    _this.isOpen = true;
    animating = true;
    setContainerPos();
    elmCache["clip"].style.visibility = "visible";
    elmCache["clip"].style.zIndex = TransMenu._maxZ++;
    //dbg_dump("maxZ: " + TransMenu._maxZ);
    slideStart();
    _this.onactivate();
    }
    }

    function hide() {
    if (ready) {
    _this.isOpen = false;
    animating = true;

    for (var i = 0, item = null; item = elmCache.item; i++)
    dehighlight(item);

    if (childMenuSet) childMenuSet.hide();

    slideStart();
    _this.ondeactivate();
    }
    }

    function setContainerPos() {
    var sub = oActuator.constructor == TransMenuItem;
    var act = sub ? oActuator.parentMenu.elmCache["item"][oActuator._index] : oActuator;
    var el = act;

    var x = 0;
    var y = 0;


    var minX = 0;
    var maxX = (window.innerWidth ? window.innerWidth : document.body.clientWidth) - parseInt(elmCache["clip"].style.width);
    var minY = 0;
    var maxY = (window.innerHeight ? window.innerHeight : document.body.clientHeight) - parseInt(elmCache["clip"].style.height);

    // add up all offsets... subtract any scroll offset
    while (sub ? el.parentNode.className.indexOf("transMenu") == -1 : el.offsetParent) {
    x += el.offsetLeft;
    y += el.offsetTop;

    if (el.scrollLeft) x -= el.scrollLeft;
    if (el.scrollTop) y -= el.scrollTop;

    el = el.offsetParent;
    }

    if (oActuator.constructor == TransMenuItem) {
    x += parseInt(el.parentNode.style.left);
    y += parseInt(el.parentNode.style.top);
    }

    switch (iReferencePoint) {
    case TransMenu.reference.topLeft:
    break;
    case TransMenu.reference.topRight:
    x += act.offsetWidth;
    break;
    case TransMenu.reference.bottomLeft:
    y += act.offsetHeight;
    break;
    case TransMenu.reference.bottomRight:
    x += act.offsetWidth;
    y += act.offsetHeight;
    break;
    }

    x += iLeft;
    y += iTop;

    x = Math.max(Math.min(x, maxX), minX);
    y = Math.max(Math.min(y, maxY), minY);

    elmCache["clip"].style.left = x + "px";
    elmCache["clip"].style.top = y + "px";
    }

    function slideStart() {
    var x0 = parseInt(elmCache["content"].style);
    var x1 = _this.isOpen ? 0 : -dim;

    if (a != null) a.stop();
    a = new Accelimation(x0, x1, TransMenu.slideTime, slideAccel);

    a.onframe = slideFrame;
    a.onend = slideEnd;

    a.start();
    }

    function slideFrame(x) {
    elmCache["content"].style = x + "px";
    }

    function slideEnd() {
    if (!_this.isOpen) elmCache["clip"].style.visibility = "hidden";
    animating = false;
    }

    function initSize() {
    // everything is based off the size of the items table...
    var ow = elmCache["items"].offsetWidth;
    var oh = elmCache["items"].offsetHeight;
    var ua = navigator.userAgent.toLowerCase();

    // clipping container should be ow/oh + the size of the shadow
    elmCache["clip"].style.width = ow + TransMenu.shadowSize + 2 + "px";
    elmCache["clip"].style.height = oh + TransMenu.shadowSize + 2 + "px";

    // same with content...
    elmCache["content"].style.width = ow + TransMenu.shadowSize + "px";
    elmCache["content"].style.height = oh + TransMenu.shadowSize + "px";

    contentHeight = oh + TransMenu.shadowSize;
    contentWidth = ow + TransMenu.shadowSize;

    dim = iDirection == TransMenu.direction.down ? contentHeight : contentWidth;

    // set initially closed
    elmCache["content"].style = -dim - TransMenu.shadowSize + "px";
    elmCache["clip"].style.visibility = "hidden";

    // if *not* mac/ie 5
    if (ua.indexOf("mac") == -1 || ua.indexOf("gecko") > -1) {
    // set background div to offset size
    elmCache["background"].style.width = ow + "px";
    elmCache["background"].style.height = oh + "px";
    elmCache["background"].style.backgroundColor = TransMenu.backgroundColor;

    // shadow left starts at offset left and is offsetHeight pixels high
    elmCache["shadowRight"].style.left = ow + "px";
    elmCache["shadowRight"].style.height = oh - (TransMenu.shadowOffset - TransMenu.shadowSize) + "px";
    elmCache["shadowRight"].style.backgroundColor = TransMenu.shadowColor;

    // shadow bottom starts at offset height and is offsetWidth - shadowOffset
    // pixels wide (we don't want the bottom and right shadows to overlap or we
    // get an extra bright bottom-right corner)
    elmCache["shadowBottom"].style.top = oh + "px";
    elmCache["shadowBottom"].style.width = ow - TransMenu.shadowOffset + "px";
    elmCache["shadowBottom"].style.backgroundColor = TransMenu.shadowColor;
    }
    // mac ie is a little different because we use a PNG for the transparency
    else {
    // set background div to offset size
    elmCache["background"].firstChild.src = TransMenu.backgroundPng;
    elmCache["background"].firstChild.width = ow;
    elmCache["background"].firstChild.height = oh;

    // shadow left starts at offset left and is offsetHeight pixels high
    elmCache["shadowRight"].firstChild.src = TransMenu.shadowPng;
    elmCache["shadowRight"].style.left = ow + "px";
    elmCache["shadowRight"].firstChild.width = TransMenu.shadowSize;
    elmCache["shadowRight"].firstChild.height = oh - (TransMenu.shadowOffset - TransMenu.shadowSize);

    // shadow bottom starts at offset height and is offsetWidth - shadowOffset
    // pixels wide (we don't want the bottom and right shadows to overlap or we
    // get an extra bright bottom-right corner)
    elmCache["shadowBottom"].firstChild.src = TransMenu.shadowPng;
    elmCache["shadowBottom"].style.top = oh + "px";
    elmCache["shadowBottom"].firstChild.height = TransMenu.shadowSize;
    elmCache["shadowBottom"].firstChild.width = ow - TransMenu.shadowOffset;
    }
    }

    function initCache() {
    var menu = document.getElementById(id);
    var all = menu.all ? menu.all : menu.getElementsByTagName("*"); // IE/win doesn't support * syntax, but does have the document.all thing

    elmCache = {};
    elmCache["clip"] = menu;
    elmCache["item"] = [];

    for (var i = 0, elm = null; elm = all; i++) {
    switch (elm.className) {
    case "items":
    case "content":
    case "background":
    case "shadowRight":
    case "shadowBottom":
    elmCache[elm.className] = elm;
    break;
    case "item":
    elm._index = elmCache["item"].length;
    elmCache["item"][elm._index] = elm;
    break;
    }
    }

    // hack!
    _this.elmCache = elmCache;
    }

    function initEvents() {
    // hook item mouseover
    for (var i = 0, item = null; item = elmCache.item; i++) {
    item.onmouseover = item_mouseover;
    item.onmouseout = item_mouseout;
    item.onclick = item_click;
    }

    // hook actuation
    if (typeof oActuator.tagName != "undefined") {
    oActuator.onmouseover = actuator_mouseover;
    oActuator.onmouseout = actuator_mouseout;
    }

    // hook menu mouseover
    elmCache["content"].onmouseover = content_mouseover;
    elmCache["content"].onmouseout = content_mouseout;
    }

    function highlight(oRow) {
    oRow.className = "item hover";
    if (childMenus[oRow._index])
    oRow.lastChild.firstChild.src = TransMenu.dingbatOn;
    }

    function dehighlight(oRow) {
    oRow.className = "item";
    if (childMenus[oRow._index])
    oRow.lastChild.firstChild.src = TransMenu.dingbatOff;
    }

    function item_mouseover() {
    if (!animating) {
    highlight(this);

    if (childMenus[this._index])
    childMenuSet.showMenu(childMenus[this._index]);
    else if (childMenuSet) childMenuSet.hide();
    }
    }

    function item_mouseout() {
    if (!animating) {
    if (childMenus[this._index])
    childMenuSet.hideMenu(childMenus[this._index]);
    else // otherwise child_deactivate will do this
    dehighlight(this);
    }
    }

    function item_click() {
    if (!animating) {
    if (_this.items[this._index].url)
    location.href = _this.items[this._index].url;
    }
    }

    function actuator_mouseover() {
    parentMenuSet.showMenu(_this);
    }

    function actuator_mouseout() {
    parentMenuSet.hideMenu(_this);
    }

    function content_mouseover() {
    if (!animating) {
    parentMenuSet.showMenu(_this);
    _this.onmouseover();
    }
    }

    function content_mouseout() {
    if (!animating) {
    parentMenuSet.hideMenu(_this);
    }
    }

    function child_mouseover() {
    if (!animating) {
    parentMenuSet.showMenu(_this);
    }
    }

    function child_deactivate() {
    for (var i = 0; i < childMenus.length; i++) {
    if (childMenus == this) {
    dehighlight(elmCache["item"]);
    break;
    }
    }
    }

    function child_queue() {
    parentMenuSet.hideMenu(_this);
    }

    function child_dequeue() {
    parentMenuSet.showMenu(_this);
    }

    function toString() {
    var aHtml = [];
    var sClassName = "transMenu" + (oActuator.constructor != TransMenuItem ? " top" : "");

    for (var i = 0, item = null; item = this.items; i++) {
    aHtml = item.toString(childMenus);
    }

    return '<div id="' + id + '" class="' + sClassName + '">' +
    '<div class="content"><table class="items" cellpadding="0" cellspacing="0" border="0">' +
    '<tr><td colspan="2">[contenido no disponible]</td></tr>' +
    aHtml.join('') +
    '<tr><td colspan="2">[contenido no disponible]</td></tr></table>' +
    '<div class="shadowBottom">[contenido no disponible]</div>' +
    '<div class="shadowRight">[contenido no disponible]</div>' +
    '<div class="background">[contenido no disponible]</div>' +
    '</div></div>';
    }
    }


    //==================================================================================================
    // TransMenuSet
    //==================================================================================================
    // iDirection : The direction to slide out. One of TransMenu.direction.
    // iLeft : Left pixel offset of menus from actuator
    // iTop : Top pixel offset of menus from actuator
    // iReferencePoint : Corner of actuator to measure from. One of TransMenu.referencePoint.
    //==================================================================================================
    TransMenuSet.registry = [];

    function TransMenuSet(iDirection, iLeft, iTop, iReferencePoint) {
    // public methods
    this.addMenu = addMenu;
    this.showMenu = showMenu;
    this.hideMenu = hideMenu;
    this.hide = hide;
    this.hideCurrent = hideCurrent;

    // initialization
    var menus = [];
    var _this = this;
    var current = null;

    this.index = TransMenuSet.registry.length;
    TransMenuSet.registry[this.index] = this;

    // method implimentations...
    function addMenu(oActuator) {
    var m = new TransMenu(oActuator, iDirection, iLeft, iTop, iReferencePoint, this);
    menus[menus.length] = m;
    return m;
    }

    function showMenu(oMenu) {
    if (oMenu != current) {
    // close currently open menu
    if (current != null) hide(current);

    // set current menu to this one
    current = oMenu;

    // if this menu is closed, open it
    oMenu.show();
    }
    else {
    // hide pending calls to close this menu
    cancelHide(oMenu);
    }
    }

    function hideMenu(oMenu) {
    //dbg_dump("hideMenu a " + oMenu.index);
    if (current == oMenu && oMenu.isOpen) {
    //dbg_dump("hideMenu b " + oMenu.index);
    if (!oMenu.hideTimer) scheduleHide(oMenu);
    }
    }

    function scheduleHide(oMenu) {
    //dbg_dump("scheduleHide " + oMenu.index);
    oMenu.onqueue();
    oMenu.hideTimer = window.setTimeout("TransMenuSet.registry[" + _this.index + "].hide(TransMenu.registry[" + oMenu.index + "])", TransMenu.hideDelay);
    }

    function cancelHide(oMenu) {
    //dbg_dump("cancelHide " + oMenu.index);
    if (oMenu.hideTimer) {
    oMenu.ondequeue();
    window.clearTimeout(oMenu.hideTimer);
    oMenu.hideTimer = null;
    }
    }

    function hide(oMenu) {
    if (!oMenu && current) oMenu = current;

    if (oMenu && current == oMenu && oMenu.isOpen) {
    hideCurrent();
    }
    }

    function hideCurrent() {
    if (null != current) {
    cancelHide(current);
    current.hideTimer = null;
    current.hide();
    current = null;
    }
    }
    }

    //==================================================================================================
    // TransMenuItem (internal)
    // represents an item in a dropdown
    //==================================================================================================
    // sText : The item display text
    // sUrl : URL to load when the item is clicked
    // oParent : Menu this item is a part of
    //==================================================================================================
    function TransMenuItem(sText, sUrl, oParent) {
    this.toString = toString;
    this.text = sText;
    this.url = sUrl;
    this.parentMenu = oParent;

    function toString(bDingbat) {
    var sDingbat = bDingbat ? TransMenu.dingbatOff : TransMenu.spacerGif;
    var iEdgePadding = TransMenu.itemPadding + TransMenu.menuPadding;
    var sPaddingLeft = "padding:" + TransMenu.itemPadding + "px; padding-left:" + iEdgePadding + "px;"
    var sPaddingRight = "padding:" + TransMenu.itemPadding + "px; padding-right:" + iEdgePadding + "px;"

    return '<tr class="item" ><td width="16" style="' + sPaddingLeft + '" >' + '[contenido no disponible]</td><td nowrap style="' + sPaddingLeft + '" >' +
    sText + '</td><td width="14" style="' + sPaddingRight + '" >' +
    '[contenido no disponible]</td></tr>';
    }
    }






    //=====================================================================
    // Accel imation object
    // change a property of an object over time in an accelerated fashion
    //=====================================================================
    // obj : reference to the object whose property you'd like to animate
    // prop : property you would like to change eg: "left"
    // to : final value of prop
    // time : time the animation should take to run
    // zip : optional. specify the zippiness of the acceleration. pick a
    // number between -1 and 1 where -1 is full decelerated, 1 is
    // full accelerated, and 0 is linear (no acceleration). default
    // is 0.
    // unit : optional. specify the units for use with prop. default is
    // "px".
    //=====================================================================
    // bezier functions lifted from the lib_animation.js file in the
    // 13th Parallel API. www.13thparallel.org
    //=====================================================================

    function Accelimation(from, to, time, zip) {
    if (typeof zip == "undefined") zip = 0;
    if (typeof unit == "undefined") unit = "px";

    this.x0 = from;
    this.x1 = to;
    this.dt = time;
    this.zip = -zip;
    this.unit = unit;
    this.timer = null;
    this.onend = new Function();
    this.onframe = new Function();
    }



    //=====================================================================
    // public methods
    //=====================================================================

    // after you create an accelimation, you call this to start it-a runnin'
    Accelimation.prototype.start = function() {
    this.t0 = new Date().getTime();
    this.t1 = this.t0 + this.dt;
    var dx = this.x1 - this.x0;
    this.c1 = this.x0 + ((1 + this.zip) * dx / 3);
    this.c2 = this.x0 + ((2 + this.zip) * dx / 3);
    Accelimation._add(this);
    }

    // and if you need to stop it early for some reason...
    Accelimation.prototype.stop = function() {
    Accelimation._remove(this);
    }



    //=====================================================================
    // private methods
    //=====================================================================

    // paints one frame. gets called by Accelimation._paintAll.
    Accelimation.prototype._paint = function(time) {
    if (time < this.t1) {
    var elapsed = time - this.t0;
    this.onframe(Accelimation._getBezier(elapsed/this.dt,this.x0,this.x1,this.c1,this.c2));
    }
    else this._end();
    }

    // ends the animation
    Accelimation.prototype._end = function() {
    Accelimation._remove(this);
    this.onframe(this.x1);
    this.onend();
    }




    //=====================================================================
    // static methods (all private)
    //=====================================================================

    // add a function to the list of ones to call periodically
    Accelimation._add = function(o) {
    var index = this.instances.length;
    this.instances = o;
    // if this is the first one, start the engine
    if (this.instances.length == 1) {
    this.timerID = window.setInterval("Accelimation._paintAll()", this.targetRes);
    }
    }

    // remove a function from the list
    Accelimation._remove = function(o) {
    for (var i = 0; i < this.instances.length; i++) {
    if (o == this.instances) {
    this.instances = this.instances.slice(0,i).concat( this.instances.slice(i+1) );
    break;
    }
    }
    // if that was the last one, stop the engine
    if (this.instances.length == 0) {
    window.clearInterval(this.timerID);
    this.timerID = null;
    }
    }

    // "engine" - call each function in the list every so often
    Accelimation._paintAll = function() {
    var now = new Date().getTime();
    for (var i = 0; i < this.instances.length; i++) {
    this.instances._paint(now);
    }
    }


    // Bezier functions:
    Accelimation._B1 = function(t) { return t*t*t }
    Accelimation._B2 = function(t) { return 3*t*t*(1-t) }
    Accelimation._B3 = function(t) { return 3*t*(1-t)*(1-t) }
    Accelimation._B4 = function(t) { return (1-t)*(1-t)*(1-t) }


    //Finds the coordinates of a point at a certain stage through a bezier curve
    Accelimation._getBezier = function(percent,startPos,endPos,control1,control2) {
    return endPos * this._B1(percent) + control2 * this._B2(percent) + control1 * this._B3(percent) + startPos * this._B4(percent);
    }


    //=====================================================================
    // static properties
    //=====================================================================

    Accelimation.instances = [];
    Accelimation.targetRes = 10;
    Accelimation.timerID = null;


    //=====================================================================
    // IE win memory cleanup
    //=====================================================================

    if (window.attachEvent) {
    var cearElementProps = [
    'data',
    'onmouseover',
    'onmouseout',
    'onmousedown',
    'onmouseup',
    'ondblclick',
    'onclick',
    'onselectstart',
    'oncontextmenu'
    ];

    window.attachEvent("onunload", function() {
    var el;
    for(var d = document.all.length;d--;){
    el = document.all;
    for(var c = cearElementProps.length;c--;){
    el[cearElementProps] = null;
    }
    }
    });
    }
    Acá con esta llave terminan los códigos que hay que pegar en el archivo transmenuC.txt
    …....................................................................................................................................
    Todos estos códigos anteriores, son los que hay que pegar en el archivo transmenuC.txt que tenemos dentro de la carpeta desplegable
    …....................................................................................................................................
    ….....................................................................................................................................
    Este sería el archivo estilo-menu-desplegable.css, todos estos códigos son los que hay que pegar en el archivo llamado estilo-menu-desplegable.css que tenemos dentro de la carpeta desplegable
    …..................................................................................................................................................


    /* this is the clipping region for the menu. it's width and height get set by script, depending on the size of the items table */
    .transMenu {
    position:absolute;
    overflow:hidden;
    left:-1000px;
    top:-1000px;
    text-align: left;
    }

    /* this is the main container for the menu itself. it's width and height get set by script, depending on the size of the items table */
    .transMenu .content {
    position:absolute;
    }

    /* this table comprises all menu items. each TR is one item. It is relatively positioned so that the shadow and background transparent divs can be positioned underneath it */
    .transMenu .items {
    position:relative;
    left:0px; top:0px;
    border:1px solid #FF0000;
    z-index:2;
    }

    .transMenu.top .items {
    border-top:1px solid #FF0000;
    }

    /* each TR.item is one menu item */
    .transMenu .item {
    color:#FF0000;
    background-image: url(objetos/fondo-no-activo.gif);
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px;
    font-weight: bold;
    text-decoration:none;
    /* this is a hack for mac/ie5, whom incorrectly cascades the border properties of the parent table to each row */
    border:none;
    cursor:pointer;
    cursor:hand;
    }

    /* this DIV is the semi-transparent white background of each menu. the -moz-opacity is a proprietary way to get transparency in mozilla, the filter is for IE/windows 5.0+. */
    /* we set the background color in script because ie mac does not use it; that browser only uses a semi-transparent white PNG that the spacer gif inside this DIV is replaced by */
    .transMenu .background {
    position:absolute;
    left:0px;
    top:0px;
    z-index:1;
    -moz-opacity:.8;
    filter:alpha(opacity=95);
    }

    /* same concept as .background, but this is the sliver of shadow on the right of the menu. It's left, height, and background are set by script. In IE5/mac, it uses a PNG */
    .transMenu .shadowRight {
    position:absolute;
    z-index:3;
    top:3px; width:2px;
    -moz-opacity:.4;
    filter:alpha(opacity=40);
    }

    /* same concept as .background, but this is the sliver of shadow on the bottom of the menu. It's top, width, and background are set by script. In IE5/mac, it uses a PNG */
    .transMenu .shadowBottom {
    position:absolute;
    z-index:1;
    left:3px; height:2px;
    -moz-opacity:.4;
    filter:alpha(opacity=40);
    }

    /* this is the class that is used when the mouse is over an item. script sets the row to this class when required. */
    .transMenu .item.hover {
    background-image: url(objetos/fondo-activo.gif);
    color:#385385;
    }

    /* this is either the dingbat that indicates there is a submenu, or a spacer gif in it's place. We give it extra margin to create some space between the text and the dingbat */
    .transMenu .item img {
    margin-left:10px;
    }
    .textoNoIdent {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    color: #333333;
    text-decoration: none;
    }
    .formError {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: bold;
    color: #333333;
    border-top: 1px solid #C4CCCC;
    border-right: 1px solid #ACB5B5;
    border-bottom: 1px solid #6F7777;
    border-left: 1px solid #ACB5B5;
    padding: 2px 0 2px 0.25em;
    background-color: #F5E984;
    }
    .txtError {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: bold;
    color: #990000;
    background-color: #E9E9E9;
    padding: 5px;
    text-align: justify;
    }
    Acá con esta llave terminan los códigos que hay que pegar en el archivo estilo-menu-desplegable.css
    ….......................................................................................................................................................
    Acá terminan los códigos que tenemos que pegar en el archivo llamado estilo-menu-desplegable.css que tenemos dentro de la carpeta desplegable
    …........................................................................................................................................................
    …........................................................................................................................................................
    Esta sería la pagina plantilla.html
    …................................................................

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Mi portada</title>
    <link rel="stylesheet" href="estilos-general.css" type="text/css" media="all">
    <link rel="stylesheet" href="estilo-menu-desplegable.css" type="text/css" media="all">
    <script language="javascript" src="no-tocar.txt" type="text/javascript"></script>
    <script language="javascript" src="numero-de-menus.txt" type="text/javascript"></script>
    </head>
    <body onload="init();">
    <div id="global">
    <div id="curva-superior"></div>
    <div id="cabecera">
    <div id="logotipo"><a href="index.html">
    [contenido no disponible]</a></div>
    <div id="publicidad">Bienvenidos a mi Web</div>
    </div>
    <div id="navegacion">
    <ul>
  • Seccion 1
  • Seccion 2
  • Seccion 3
  • Seccion 4
  • Seccion 5

    </div>
    <div id="contenido">

    <div id="menu">
    <h1>Título de Sección 1</h1>
    <ul>
  • Enlace 1
  • Enlace 2

  • Enlace 3
  • Enlace 4
    </div>

    <h1>Esta será la zona principal de la web</h1>


    Este es mi segundo párrafo. Acabo de poner un punto y en cambio sigue siendo un párrafo pues no le he colocado aún la etiqueta de cierre. Voy a ponersela justo aquí.</p>
    <h2>Y este es el tercer párrafo.</h2>

    En pocas lecciones aprenderé a darle margenes para separarlos unos de otros, e incluso hacerles sanguias por la izquierda a la primera línea, que queda mucho mejor.</p>


    Anda, fijate! Salen todos centrados, que cosa. Espero que Jorgens nos enseñe a ponerlos alineados a la izquierda, o justificados. Así esto parece una poesia! je je je.</p>
    </div>
    <div id="pie">
    <div id="pieuno">
    <ul>
  • Foro Ejemplo
  • Contactos
  • Nos Enlazan

    </div>
    <div id="piedos">pie dos</div>
    <div id="pietres">
    <ul>
  • Directorio
  • TopSite
  • Mapa de la Web

    </div>
    </div>
    <div id="curva-inferior"></div>
    </div>
    <script language="javascript" src="definir-menus.txt" type="text/javascript"></script>
    </body>
    </html>
    Acá terminan los códigos que hay que pegar en la pagina plantilla.html
    …....................................................................................................................................
    Esta sería la hoja de estilo estilo-general.css
    ….........................................................................................

    * {text-indent:0px;margin:0px ; padding:0px ; border:0px}
    p {text-align: justify}
    h1 {font-size: 1.2em; color:blue ; font-weight: bold ; text-decoration: underline ;
    text-align: center}
    h2 {font.size: 1.1em; color:blue ; font-weight: bold ; text-decoration: none ;
    text-align: center}
    body {text-align: center }
    #global {width:800px ; margin:4px auto }

    #curva-superior { background-image: url(objetos/curva-superior.gif.gif) ;
    background-repeat: no-repeat ;
    width: 800px ;
    height:12px ;
    overflow: hidden }
    #cabecera {background-color: white ; border-left: black 1px solid ;
    border-right: black 1px solid ; height:85px}
    #logotipo {width:280px ; float:left }
    #publicidad {width:518px ; float:right ; margin-top:25px ; font-size: 16px }
    #navegacion {background-color: gray ; border: black 1px solid ; height:20px}
    #navegacion li {float:left ; list-style:none ; margin: 0px 20px 0px 20px }
    #navegacion ul { margin-left: 180px }
    #contenido {background-color:#FFEC8B; border-left: black 1px solid ;
    border-right: black 1px solid }
    #contenido p {padding: 5px 10px 5px 10px ; text-indent: 15px}
    #menu {background-color:orange ; width: 150px ;
    text-align:left ; margin: 3px 10px 6px 3px ;float:left;
    background-image: url(objetos/menu-parte-inferior-1.gif);
    background-position: bottom ;
    padding-bottom:5px }
    #menu li {list-style:none ; margin: 4px 8px 4px 6px }
    #menu h1 {text-decoration:none ; font-size:12px ; padding-top:12px ;
    background-image: url(objetos/menu-parte-superior-1.gif) }
    #pie {border-left: black 1px solid ; border-right: black 1px solid ;
    border-top: black 1px solid ; height: 65px }
    #pie li {list-style: none ; font-size: 12px }
    #pieuno {float:left ; width:150px }
    #piedos {float:left ; width:498px }
    #pietres {float:left ; width:150px }
    #curva-inferior { background-image: url(objetos/curva-inferior.gif) ;
    background-repeat: no-repeat ;
    width: 800px ;
    height:12px ;
    overflow: hidden }
    a {color: brown ; text-decoration:none ; display: block }
    a:link {}
    a:visited {}
    a:hover {color:red ; text-decoration:underline ; background-color: silver}
    a:active {}
    #pie a {color: blue; text-decoration:none ; display: block }
    #pie a:link {}
    #pie a:visited {}
    #pie a:hover {color:black ; text-decoration:underline ; background-color: white }
    #pie a:active {color:black}
    #logotipo a {}
    #logotipo a:link {}
    #logotipo a:visited {}
    #logotipo a:hover {background-color: white }
    #logotipo a:active {}
    Acá terminan los códigos que hay que pegar en la hoja de estilo-general.css
    ….......................................................................................................................

    Como se ve, estos son los archivos del menu desplegable del curso Paso a Paso