function clsGalleryViewer(pidGallery, paItems, pstrPathStorage, pstrPathModules) {
	this.buildSlide				=	clsGalleryViewer_buildSlide;
	this.buildSlide_IMG			=	clsGalleryViewer_buildSlide_IMG;
	this.buildSlide_SWF			=	clsGalleryViewer_buildSlide_SWF;
	this.buildSlide_FLV			=	clsGalleryViewer_buildSlide_FLV;
	this.buildSlide_HTM			=	clsGalleryViewer_buildSlide_HTM;
	this.slideAttachText		=	clsGalleryViewer_slideAttachText;
	this.destroySlide			=	clsGalleryViewer_destroySlide;
	this.refresh				=	clsGalleryViewer_refresh;
	this.strTable				=	'galerias_items';
	this.strFieldId				=	'idItem';
	this.strFieldFile			=	'file';
	this.strFieldFileName		=	'fileFile';
	this.strFieldFileKey		=	'fileKey';
	this.strFieldHtml			=	'strHTML';
	this.blnBusy				=	false;

	this.objContainer			=	document.getElementById('objGallery'+pidGallery+'_Container');
//	this.objDescription			=	document.getElementById('objGallery'+pidGallery+'_Description');
	this.idGallery				=	pidGallery;
	this.aItems					=	paItems;
	this.strPathStorage			=	pstrPathStorage;
	this.strPathModules			=	pstrPathModules;
	this.intSlides				=	this.aItems.length;
	this.intSlide				=	null;
	this.objSlide				=	null;
	this.objSlideElement		=	null;
	this.objSlideTitle			=	null;
	this.objSlideDescription	=	null;

	this.objCmdPrev				=	document.getElementById('objGallery'+pidGallery+'_CmdPrev');
	this.objCmdPrev.objParent	=	this;
	this.objCmdPrev.onclick		=	clsGalleryViewerCmd_prev;
	this.objCmdNext				=	document.getElementById('objGallery'+pidGallery+'_CmdNext');
	this.objCmdNext.objParent	=	this;
	this.objCmdNext.onclick		=	clsGalleryViewerCmd_next;

	this.buildSlide(1);
}
function clsGalleryViewer_buildSlide(pintSlide) {
	if(!this.blnBusy) {
		this.blnBusy=true;
		if(this.intSlide!=null)
			this.destroySlide();
		this.intSlide		=	pintSlide;
		this.objSlide		=	this.aItems[this.intSlide-1];
		this.objCmdPrev.style.visibility			=	( this.intSlide>1 ? 'visible' : 'hidden' );
		this.objCmdNext.style.visibility			=	( this.intSlide<this.intSlides ? 'visible' : 'hidden' );
		switch(this.objSlide['strTipo']) {
			case 'IMG':	this.buildSlide_IMG(); break;
			case 'SWF': this.buildSlide_SWF(); break;
			case 'FLV':	this.buildSlide_FLV(); break;
			case 'HTM':	this.buildSlide_HTM(); break;
		}
	}
}
function clsGalleryViewer_buildSlide_IMG() {
	var strFile=this.strPathStorage+'/'+this.strTable+'/'+this.strFieldFile+'/'+this.objSlide[this.strFieldId]+'-'+this.objSlide[this.strFieldFileKey]+'.'+getPathExtension(this.objSlide[this.strFieldFileName]);
	this.objSlideTitle=null;
	this.objSlideElement=document.createElement('img');
	this.objContainer.appendChild(this.objSlideElement);
	this.objSlideElement.style.position='absolute';
	this.objSlideElement.style.visibility='hidden';
	this.objSlideElement.style.zIndex=9;
	this.objSlideElement.objParent=this;
	this.objSlideElement.onload=clsGalleryViewer_onSlideElementLoad;
	this.objSlideElement.src=strFile;
}
function clsGalleryViewer_buildSlide_SWF() {
	var strFile=this.strPathStorage+'/'+this.strTable+'/'+this.strFieldFile+'/'+this.objSlide[this.strFieldId]+'-'+this.objSlide[this.strFieldFileKey]+'.'+getPathExtension(this.objSlide[this.strFieldFileName]);
	this.objSlideElement=document.createElement('div');
	this.objSlideElement.id='objGallery'+this.idGallery+'_Slide'+this.objSlide[this.strFieldId];
	this.objSlideElement.style.position='absolute';
	this.objSlideElement.style.zIndex=9;
	this.objSlideElement.objParent=this;
	this.objSlideElement.objSlide=this.objSlide;
	this.objContainer.appendChild(this.objSlideElement);
	var objSWF = new SWFObject(strFile, this.objSlideElement.id+'x', this.objSlide['intDimX'], this.objSlide['intDimY'], '8', 'white');
	objSWF.addParam('quality',	'high');
	objSWF.addParam('scale',	'exactfit');
	objSWF.addParam('menu',		'false');
	objSWF.addParam('wmode',	'transparent');
	objSWF.write(this.objSlideElement.id);	
	this.slideAttachText();
	this.refresh();
}
function clsGalleryViewer_buildSlide_FLV() {
	var strFilePlayer	=	this.strPathModules+"/modGallery/player.swf";
	var strFileSkin		=	this.strPathModules+"/modGallery/overlay.swf";
	var strFileVideo	=	this.strPathStorage+'/'+this.strTable+'/'+this.strFieldFile+'/'+this.objSlide[this.strFieldId]+'-'+this.objSlide[this.strFieldFileKey]+'.'+getPathExtension(this.objSlide[this.strFieldFileName]);
	this.objSlideElement=document.createElement('div');
	this.objSlideElement.id='objGallery'+this.idGallery+'_Slide'+this.objSlide[this.strFieldId];
	this.objSlideElement.style.position='absolute';
	this.objSlideElement.style.zIndex=9;
	this.objSlideElement.objParent=this;
	this.objSlideElement.objSlide=this.objSlide;
	this.objContainer.appendChild(this.objSlideElement);

	var strParameters='';
	strParameters+='&file='+strFileVideo;
	strParameters+='&frontcolor=ffffff';
	strParameters+='&lightcolor=cc9900';
	strParameters+='&skin='+strFileSkin;
	strParameters+='&controlbar=over';
	strParameters+='&autostart=true';

	var objSWF = new SWFObject(strFilePlayer, this.objSlideElement.id+'x', this.objSlide['intDimX'], this.objSlide['intDimY'], '8', 'white');
	objSWF.addParam('allowscriptaccess','always');
	objSWF.addParam('allowfullscreen','true');
	objSWF.addParam('flashvars',strParameters);
	objSWF.write(this.objSlideElement.id);	
	this.slideAttachText();
	this.refresh();
}
function clsGalleryViewer_buildSlide_HTM() {
	this.objSlideElement=document.createElement('iframe');
	this.objSlideElement.style.position='absolute';
	this.objSlideElement.style.zIndex=9;
	this.objSlideElement.style.borderWidth=0;
	this.objSlideElement.src=this.objSlide['strHTML'];
	setObjectWidth(this.objSlideElement, this.objSlide['intDimX']);
	setObjectHeight(this.objSlideElement, this.objSlide['intDimY']);
	this.objContainer.appendChild(this.objSlideElement);
	this.slideAttachText();
	this.refresh();
}
function clsGalleryViewer_slideAttachText() {
	this.objSlideTitle=document.createElement('div');
	this.objSlideTitle.style.position='absolute';
	this.objSlideTitle.style.zIndex=9;
	this.objSlideTitle.className='SlideTitle';
	this.objSlideTitle.innerHTML=this.objSlide['strTitulo'];
	this.objContainer.appendChild(this.objSlideTitle);

	this.objSlideDescription=document.createElement('div');
	this.objSlideDescription.style.position='absolute';
	this.objSlideDescription.style.zIndex=9;
	this.objSlideDescription.className='SlideDescription';
	this.objSlideDescription.innerHTML=this.objSlide['strDescripcion'];
	this.objContainer.appendChild(this.objSlideDescription);
}
function clsGalleryViewer_refresh() {
//window.status=this.intSlide;
	centerObjectInsideObject(this.objSlideElement, this.objContainer, 0, -20);
	if(this.objSlideTitle==null)
		this.slideAttachText();
	moveObjectTo(this.objSlideTitle,globalX(this.objSlideElement),globalY(this.objSlideElement)-objectHeight(this.objSlideTitle),objectWidth(this.objSlideElement));
	moveObjectTo(this.objSlideDescription,globalX(this.objSlideElement),globalY(this.objSlideElement)+objectHeight(this.objSlideElement),objectWidth(this.objSlideElement));
	buildShadow(this.objSlideElement);
	this.objSlideElement.style.visibility		=
	this.objSlideTitle.style.visibility			=
	this.objSlideDescription.style.visibility	=	'visible';
	this.blnBusy=false;
}
function clsGalleryViewer_destroySlide() {
	if(this.objSlideElement.innerHTML)
		this.objSlideElement.innerHTML='';
	destroyShadow(this.objSlideElement);
	this.objContainer.removeChild(this.objSlideTitle);
	this.objContainer.removeChild(this.objSlideDescription);
	this.objContainer.removeChild(this.objSlideElement);
	this.objSlideElement=null;
}
// --------------------------------------------------
function clsGalleryViewerCmd_prev() {
	if(this.objParent.intSlide>1)
		this.objParent.buildSlide(this.objParent.intSlide-1);
}
function clsGalleryViewerCmd_next() {
	if(this.objParent.intSlide<this.objParent.intSlides)
		this.objParent.buildSlide(this.objParent.intSlide+1);
}
// --------------------------------------------------
function clsGalleryViewer_onSlideElementLoad() {
	this.objParent.refresh();
}
