// Función que permite la generacion de un número aleatorio entre 0 y el dado
//
// Entrada:
//    - cotaSuperior: cota superior del rango de valores aleatorios entre los que 
//      escoger. El valor final sera un número entre 0 y cotaSuperior - 1
//
// Salida:
//    - numeroAleatorio: un número aleatorio del rango 0 a cotaSuperior - 1
//
function generaNumeroAleatorio(cotaSuperior)
{
   // Math.random() genera numeros aleatorio entre 0 y 1 con muchos decimales
   //
   // Al multiplicarlo por la cota superior conseguimos el rango deseado; de 0
   // a cotaSuperior, pero con muchos decimales.
   //
   // Math.floor redondea hacia el número inmediatamente inferior, lo que da
   // un resultado de 0 a cotaSuperior - 1, indice perfecto para una matriz.

   var numeroAleatorio = Math.floor(Math.random() * cotaSuperior);
   return numeroAleatorio;
} // fin de function generaNumeroAleatorio(cotaSuperior)



// Funcion que permite una generacion aleatoria de los banners
//
// Entrada:
//    - identificador: identificador donde va posicionado el banner
//    - matrizBanners: matriz que contendrá los siguientes datos por fila
//       + href: dirección URL a la que apunta el banner
//       + target: explicita si el enlace se abrirá en una nueva ventana o en la actual
//       + source: la dirección a la cual hay que ir a buscar el banner
//       + alternativo: texto alternativo para la imagen del banner actual
//       + tipo: informacion sobre si es un archivo de imagen o una pelicula en flash
//
function generadorBanners(identificador, matrizBanners)
{
   // Averiguar el tamano de la matriz de los banners, esto es, el numero de filas
   var tamanoMatrizBanners = matrizBanners.length;

   // Generar aleatoriamente el indice que marcara el banner a mostrar
   var bannerQueMostrar = generaNumeroAleatorio(tamanoMatrizBanners);

   // Obtener los datos del banner para colocarlos en el HTML
   var href = matrizBanners[bannerQueMostrar][0];
   var target = matrizBanners[bannerQueMostrar][1];
   var source = matrizBanners[bannerQueMostrar][2];
   var alternativo = matrizBanners[bannerQueMostrar][3];


   // Comprobar el tipo de banner con el que hay que trabajar: imagen o flash
   if (matrizBanners[bannerQueMostrar][4] == "imagen")
   {
      // Colocar el banner de imagen en el HTML
      document.getElementById(identificador).innerHTML = '<a href="'+href+'" target="'+target+'"><img src="'+source+'" alt="'+alternativo+'" /></a>';
   }
   else // se trata de una pelicula en flash
   {
      // Colocar el banner de flash en el HTML      
      document.getElementById(identificador).innerHTML = '<!--[if !IE]> --><object type="application/x-shockwave-flash" data="'
                                              +source+'" width="156" height="124"><!-- <![endif]--><!--[if IE]><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="156" height="124"><param name="movie" value="'
                                              +source+'" /><!--><param name="loop" value="true" /><param name="menu" value="false" /><p>'
                                              +alternativo+'</p></object><!-- <![endif]-->';
      // La razon de utilizar un condicional comentado se puede encontrar en las 2 fuentes siguientes
      //    - http://www.dgx.cz/trine/item/how-to-correctly-insert-a-flash-into-xhtml
      //    - http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/ccomment_ovw.asp

   } // if (matrizBanners[bannerQueMostrar][4] == "imagen") - else
} // fin de function generadorBanners(identificadorBanner, matrizBanners)