//Esta libreria utiliza el archivo urlParams.js


//Boton activo, dado como parametro inicial de la pagina o clickeado posteriormente
var roll_botones2 = new Array();

//Prefijos de archivos
var roll_prefijoOut    = "_1.gif";
var roll_prefijoOver   = "_3.gif";
var roll_prefijoActivo = "_2.gif";


//Boton activo, dado como parametro inicial de la pagina o clickeado posteriormente
var roll_botonActivo = "";

//Arreglo con objetos imagenes de cada boton
var roll_botonImagen = new Array();

//Flag que indica si ya se ha inicializado libreria o no
var roll_yaInicializada = false;


//Crea un boton y define la funcion que sera llamada
function roll_addButton( a_boton, a_accion ) {

  roll_botones2[roll_botones2.length] = new Array(a_boton, a_accion)
}


//Busca el indice de un boton dado
function roll_searchButton( a_boton ) {

  for( var i = 0; i < roll_botones2.length; i++ )
    if( roll_botones2[ i ][ 0 ] == a_boton ) return i;
  
  return -1;

}


//Cambia boton activo y lo deja hundido o no dependiendo de parametro
function roll_changeBotonActivo( a_boton, a_dejarHundido ) {

  if( a_dejarHundido )  {
    if( a_boton != roll_botonActivo )  {
      if( document.images[ roll_botonActivo ] )  document.images[ roll_botonActivo ].src = roll_botonImagen[ roll_botonActivo ][ 'Out'   ].src;
      document.images[ a_boton ].src = roll_botonImagen[ a_boton ][ 'Click' ].src;
      roll_botonActivo = a_boton;
    }
  }
  else {
    document.images[ a_boton ].src = roll_botonImagen[ a_boton ][ 'Click' ].src;
    roll_botonActivo = "";
    setTimeout( "document.images['" + a_boton + "'].src = roll_botonImagen['" + a_boton + "'][ 'Out' ].src", 50 );
  }
}


//Handlers de eventos Over, Out y Click
function Over( a_boton )  {
  if( !roll_yaInicializada )  return;
  if( a_boton != roll_botonActivo ) document.images[ a_boton ].src = roll_botonImagen[ a_boton ][ 'Over' ].src;
  if( window.handlerOver )  window.handlerOver( a_boton );
}

function Out( a_boton )  {
  if( !roll_yaInicializada )  return;
  if( a_boton != roll_botonActivo ) document.images[ a_boton ].src = roll_botonImagen[ a_boton ][ 'Out'  ].src;
  if( window.handlerOut )  window.handlerOut( a_boton );
}

function Click( a_boton ) {

  // Obtiene el indice del boton dentro del arreglo
  var indice = roll_searchButton( a_boton );

  if( navigator.platform.toLowerCase().indexOf("mac")==0 ) {
    if( indice >= 0 && roll_botones2[ indice ][ 1 ] != "" )
      eval( "window." + roll_botones2[ indice ][ 1 ] + ";" );
  }
  else
  {
    if( !roll_yaInicializada )  return;
    roll_changeBotonActivo( a_boton, true );
    if( indice >= 0 && roll_botones2[ indice ][ 1 ] != "" )
      eval( "if( window." + roll_botones2[ indice ][ 1 ] + " )  window." + roll_botones2[ indice ][ 1 ] + ";" );
  }
}

function ClickSinHundir( a_boton ) {

  // Obtiene el indice del boton dentro del arreglo
  var indice = roll_searchButton( a_boton );

  if( !roll_yaInicializada )  return;
  roll_changeBotonActivo( a_boton, false );
    if( indice >= 0 && roll_botones2[ indice ][ 1 ] != "" )
    setTimeout( "if( window." + roll_botones2[ indice ][ 1 ] + " )  window." + roll_botones2[ indice ][ 1 ] + ";", 60 );
}


//Funcion de inicializacion
function roll_Init() {

  //Verifica si ya esta creado el arreglo de botones
  if( !window.roll_botones2 ) {
    setTimeout( "roll_Init()", 10 );
    return;
  }
  
  //Crea arreglo de imagenes asociadas a cada boton
  for( var i = 0; i < roll_botones2.length; i++ ) {

    //Nombre del boton
    var boton = roll_botones2[ i ][ 0 ];

    //Crea nuevo elementos en arreglo
    roll_botonImagen[ boton ] = new Array();

    //Crea imagenes para cada estado del boton
    roll_botonImagen[ boton ][ 'Out'   ] = new Image();
    roll_botonImagen[ boton ][ 'Over'  ] = new Image();
    roll_botonImagen[ boton ][ 'Click' ] = new Image();

    //Obtiene URL del boton
    var urlBoton = document.images[ boton ].src

    //Elimina ultima ocurrencia del prefijo out en URL para dejar solo la base de la URL
    urlBoton = urlBoton.substring( 0, urlBoton.lastIndexOf( roll_prefijoOut ) );

    //Asigna URLs de imagenes en cada estado del boton
    roll_botonImagen[ boton ][ 'Out'   ].src = urlBoton + roll_prefijoOut;
    roll_botonImagen[ boton ][ 'Over'  ].src = urlBoton + roll_prefijoOver;
    roll_botonImagen[ boton ][ 'Click' ].src = urlBoton + roll_prefijoActivo;
  }

  //Recupera parametro con boton a destacar
  roll_botonActivo = getParam( "boton" );

  //Cambia imagen del boton seleccionado (dado como parametro)
  if( roll_botonActivo  &&  document.images[ roll_botonActivo ] )  {
    document.images[ roll_botonActivo ].src = roll_botonImagen[  roll_botonActivo ][ 'Click' ].src;
  }

  //Indica que libreria ya esta inicializada
  roll_yaInicializada = true;
}


//Instala funcion de inicializacion
window.onload_OldRollover = window.onload;
window.onload             = function() {
                              roll_Init();
                              if( window.onload_OldRollover )  window.onload_OldRollover();
                            }

