/*------------------------------------------------------------------------------------
 
	Preloader
	A very simple image preloader object
  
 	Usage:
 	
    Preloader.add(path);
    Preloader.onFinish(func);
    Preloader.load();
    
      path: 		A string or array of strings of image paths to preload
      func:     A function or array of functions to be called after images are loaded

      load():   Start the preloader
      
------------------------------------------------------------------------------------*/

var Preloader = {
  callbacks: [],
  images: [],
  loadedImages: [],
  imagesLoaded: 0,
  
  add: function(image){
    if (typeof image == 'string') this.images.push(image);
    if (typeof image == 'array' || typeof image == 'object'){
      for (var i=0; i< image.length; i++){
        this.images.push(image[i]);
      }
    }
  },
  onFinish: function(func){
    if (typeof func == 'function') this.callbacks.push(func);
    if (typeof func == 'array' || typeof func == 'object'){
      for (var i=0; i< func.length; i++){
        this.callbacks.push(func[i]);
      }
    }
  },
  load: function(){
    for(var i=0; i<this.images.length; i++){
      this.loadedImages[i] = new Image();
      this.loadedImages[i].onload = function(){ Preloader.checkFinished.apply(Preloader) }
      this.loadedImages[i].src = this.images[i];
    }
  },
  
  checkFinished: function(){
    this.imagesLoaded++;
    if (this.imagesLoaded == this.images.length) this.fireFinish();
  },
  fireFinish: function(){
    for (var i=0; i<this.callbacks.length; i++){
      this.callbacks[i]();
    }
    this.images = [];
    this.loadedImages = [];
    this.imagesLoaded = 0;
    this.callbacks = [];
  }
}

/**
 * Pasa elementos de un select box multiple a otro.
 * @author Amed Rodriguez 29/Mayo/08
 */
function SendElement( sel1, sel2 ) 
{
	obj = document.getElementById( sel1 );
  	for ( i=0; i<obj.length; i++ )
	{
		opt = obj.options[i];
		if ( opt.selected ) 
		{
			valor = opt.value;
			txt = obj.options[i].text;
			obj.options[i] = null;
			obj2 = document.getElementById( sel2 );
			opc = new Option(txt, valor);
			eval(obj2.options[obj2.options.length] = opc);
		}
	}
}

/**
 * Selecciona todos los elementos de un select box multiple.
 * @author Amed Rodriguez 29/Mayo/08
 */
function SelectElements( select_id )
{
	obj = document.getElementById( select_id );
	for ( j=0; j<obj.length; j++ ) 
	{
		obj[ j ].selected = true;
	}
}

/**
 * Muestra una ventana emergente para la Administración de Listas
 */

function show_list()
{
        document.getElementById("hidden_layer").style.display="block";
        mostrando=true;
}