// JavaScript Document
//function ImageGallery(big_id, thumb_id, max_thumbs, no_image, thumb_path, big_path, gallery_caption, mostrar_navegador){
function ImageGallery(big_id, thumb_id, max_thumbs, no_image, alt){
	this.big_id = big_id;
	this.browser_incompatible = false;
	this.left_thumb = 0;
	this.image_selected = 0;
	this.max_thumbs = max_thumbs;
	this.no_image = no_image;
	this.altTag = alt;
	//this.thumb_path = thumb_path;
	//this.big_path = big_path;
	//this.gallery_caption = gallery_caption;
	//this.mostrar_navegador = mostrar_navegador;
	
	
	this.thumbsId = {};
	this.images = {};
	this.alts = {};
	this.thumbnails = {};
	this.numImages = 0;
	this.playing = false;
	this.playingId = -1;
	
	for(i=0; i < max_thumbs; i++)
		this.thumbsId[i] = thumb_id+"_"+i;

	this.Compatible = function(){
		return this.browser_incompatible;	
	}

	// BrowserIsCompatible --> indica si el navegador es compatible.
	// Versiones soportadas:
	/***********************
		Opera > 7
		Safari > 1.25
		IE >5.5
		NS > 7
		FF > 0.8
	***********************/
	this.BrowserIsCompatible = function(){
		if(this.browser_incompatible)
			return false;
		if (!window.RegExp)
			return false; 
		var AGENTS = ["opera","msie","safari","firefox","netscape","mozilla"];
		var agent = navigator.userAgent.toLowerCase();
		for (var i = 0; i < AGENTS.length; i++) {
			var agentStr = AGENTS[i];
			if (agent.indexOf(agentStr) != -1) {
				var versionExpr = new RegExp(agentStr + "[ \/]?([0-9]+(\.[0-9]+)?)");
				var version = 0;
				if (versionExpr.exec(agent) != null) {
					version = parseFloat(RegExp.$1);
				}
				if (agentStr == "opera"){
					return version >= 7;
				}
				if (agentStr == "safari")
					return version >= 125;
				if (agentStr == "msie")
					return (version >= 5.5 &&agent.indexOf("powerpc") == -1);
				if (agentStr == "netscape")
					return version > 7;
				if (agentStr == "firefox"){
					this.offsetX = -50;
					this.offsetY = -25;
					return version >= 0.8;
				}
			}
		}
		return !!document.getElementById;	
	}
	
	this.add_image = function(src, thmb, alt){
		this.images[this.numImages] = src;
		this.thumbnails[this.numImages] = thmb;
		this.alts[this.numImages] = alt;
		this.numImages++;
	}
	
	this.init = function(){
		// Precargar todas las imagenes de la galeria para darle velocidad.
		arg = "";
		for(i=0; i<this.numImages; i++){
			if(i==0)
				arg="'"+this.images[i]+"'"
			arg = arg+", '"+this.images[i]+"'";
		}
		MM_preloadImages(arg);
		
		// Colocar los thumbs.
		//this.changeThumbs(0);

		// Colocar la imagen grande.
		this.changeSelectedImage(0);
		
		//this.play();
	}
	
	this.changeThumbs = function(which){
		this.left_thumb = which;
		for(i=0; i<this.max_thumbs; i++){
			if(i+this.left_thumb>=this.numImages)
				//document.getElementById(this.thumbsId[i]).src = this.thumb_path+this.no_image;
				//document.getElementById(this.thumbsId[i]).src = this.thumb_path+this.images[i+this.left_thumb-this.numImages];
				document.getElementById(this.thumbsId[i]).src = this.thumbnails[i+this.left_thumb-this.numImages];
			else
				document.getElementById(this.thumbsId[i]).src = this.thumbnails[i+this.left_thumb];
		}
		ultima_imagen = (this.left_thumb+this.max_thumbs)<=imageGallery.numImages ? this.left_thumb+this.max_thumbs : this.left_thumb+this.max_thumbs-imageGallery.numImages;
		/*if(this.mostrar_navegador!=0)
			document.getElementById(this.gallery_caption).innerHTML = "<p>fotograf&iacute;as "+(this.left_thumb+1)+" a "+ultima_imagen+" de "+imageGallery.numImages+"</p>";*/
	}
	
	this.changeSelectedImage = function(which){
		this.image_selected = which;
		if(which>=this.numImages)
			document.getElementById(this.big_id).src = this.no_image;
		else
			document.getElementById(this.big_id).src = this.images[which];
		this.deHighlightThumbs();
		this.highlightThumb(which);
		document.getElementById(this.altTag).innerHTML = this.alts[which];
		// (des)activar boton rw
/*		if(this.image_selected==0)
			document.getElementById("botonrw").className='desactivado';
		else
			document.getElementById("botonrw").className='';
			
			
		// (des)activar boton ff
		if(this.image_selected==this.numImages-1)
			document.getElementById("botonff").className='desactivado';
		else
			document.getElementById("botonff").className='';*/
	}
	
	this.highlightThumb = function(which){
		document.getElementById(this.thumbsId[which]).style.border='1px solid #FF0000';
		document.getElementById(this.thumbsId[which]).style.opacity='1';
		document.getElementById(this.thumbsId[which]).style.filter='alpha(opacity=100)';
	}
	
	this.deHighlightThumbs = function(){
		for(i=0; i<this.numImages; i++){
			document.getElementById(this.thumbsId[i]).style.border='1px solid #FFFFFF';
			document.getElementById(this.thumbsId[i]).style.opacity='0.5';
			document.getElementById(this.thumbsId[i]).style.filter='alpha(opacity=50)';
		}
	}
	
		
	this.slideRight = function(){
		if(this.left_thumb<this.numImages-1)
			this.changeThumbs(this.left_thumb+1);
		else
			this.changeThumbs(0);
	}
	

	this.slideLeft = function(){
		if(this.left_thumb>0)
			this.changeThumbs(this.left_thumb-1);
		else
			this.changeThumbs(this.numImages-1);
	}
	
	this.rw = function(){
		if (this.playing) clearInterval(this.playingId);
		this.playingId = -1;
		if(this.image_selected>0){
			this.image_selected--;
			//this.changeThumbs(this.image_selected);
			this.changeSelectedImage(this.image_selected);
		}
		
	}
	
	this.ff = function(){
		if(this.image_selected<this.numImages-1){
			this.image_selected++;
			//this.changeThumbs(this.image_selected);
			this.changeSelectedImage(this.image_selected);
		}
		else if (this.playing) this.stop();
	}
	
	this.play = function(){
		this.playing = true;
		this.playingId = setInterval("imageGallery.ff()", 3000);
		document.getElementById("botonstop").className='';
		document.getElementById("botonpause").className='';
		document.getElementById("botonstart").className='on';
	}
	
	this.stop = function(){
		if (this.playing) clearInterval(this.playingId);
		this.playingId = -1;
		this.playing = false;
		document.getElementById("botonstop").className='on';
		document.getElementById("botonstart").className='';
		this.changeSelectedImage(0);
	}
	
	this.pause = function(){
		if (this.playing) clearInterval(this.playingId);
		this.playingId = -1;
		this.playing = false;
		document.getElementById("botonpause").className='on';
	}
	
	this.browser_incompatible = this.BrowserIsCompatible();
}
