function CacheImage(ImageSource) { // Devuelve un objeto imagen
   var ImageObject = new Image();
   ImageObject.src = ImageSource;
   return ImageObject;
}

function ShowSlide(Direction) {
   if (SlideReady) {
      NextSlide = CurrentSlide + Direction;
      // desabilita las imagenes en función del valor de NextSlide
	  if (NextSlide <= 0){
	  	eval("document.images['Previous'].style.cursor = 'default'"); 
	  	eval("document.images['Previous'].src = 'imagenes/previo.gif'"); 
		
	  }else{
	  	eval("document.images['Previous'].style.cursor = 'hand'"); 
		eval("document.images['Previous'].src = 'imagenes/previo_off.gif'"); 
	  }
	  
	  if (NextSlide >= (Slides.length-1)){
	  	eval("document.images['Next'].style.cursor = 'default'"); 
	  	eval("document.images['Next'].src = 'imagenes/siguiente.gif'");  	
	  }else{
	  	eval("document.images['Next'].style.cursor = 'hand'");  
	  	eval("document.images['Next'].src = 'imagenes/siguiente_off.gif'");  
		
	
	  }
 if ((NextSlide >= 0) && (NextSlide < Slides.length)) {
            document.images['slide'].src = Slides[NextSlide].src;
            CurrentSlide = NextSlide++;
            Message = 'Imagen ' + (CurrentSlide+1) + ' de ' + Slides.length ;
			document.getElementById('track').childNodes[0].nodeValue = Message;
            if (Direction == 1) CacheNextSlide();
      }
      return true;
   }
}

function Download() {
   if (Slides[NextSlide].complete) {
      SlideReady = true;
      self.defaultStatus = '';
   }
   else setTimeout("Download()", 100); // comprueba la descarga cada 100 ms
   return true;
}

function CacheNextSlide() {
   if ((NextSlide < Slides.length) && (typeof Slides[NextSlide] == 'string'))
	{ // sólo cachea la imagen una vez
      SlideReady = false;
      self.defaultStatus = 'Descargando siguiente imagen...';
      Slides[NextSlide] = CacheImage(Slides[NextSlide]);
      Download();
   }
   return true;
}

function StartSlideShow() {
   CurrentSlide = -1;
   Slides[0] = CacheImage(Slides[0]);
   SlideReady = true;
   ShowSlide(1);
}