function Exhibitionist_preGalleryImageSelector(){
	this.thumbnailHolder = document.createElement("div");
	this.thumbnailHolder.style.width = "600px";
	this.init = function(exhibitionist){
		this.exhibitionist = exhibitionist;
		this.backButtonHolder = document.getElementById('preGalleryImageSelectorButton_'+this.exhibitionist.pageNumber);
		this.backButton = document.createElement('a');
		this.backButton.parent = this;
		this.backButton.setAttribute("href","#");
		this.backButton.onclick = function(){
			this.parent.backToGrid();
			return false;
		}
		this.backButton.appendChild(document.createTextNode("<-- Back To Thumbnail Grid"));
		var mode = "grid";
		switch(mode){
			case "grid":
				var preGalleryPadding = this.exhibitionist.optionsArray['preGalleryPadding'];
				var preGalleryPaddingMode = this.exhibitionist.optionsArray['preGalleryPaddingMode'];
				var preGalleryNoYPadding = this.exhibitionist.optionsArray['preGalleryNoYPadding'];
				var preGalleryNoXPadding = this.exhibitionist.optionsArray['preGalleryNoXPadding'];
				
				for (imageObjectNumber in this.exhibitionist.imagesArray){
					var imageObject = this.exhibitionist.imagesArray[imageObjectNumber];
					if (imageObject.type != "psudo"){
						var currentPreThumbnail = new Exhibitionist_thumbnailObject;
						currentPreThumbnail.init(this.exhibitionist,imageObject.thumbnail.width,imageObject.thumbnail.height,imageObject.thumbnail.src);
						currentPreThumbnail.make(preGalleryPadding,preGalleryPaddingMode,preGalleryNoXPadding,preGalleryNoYPadding);
						currentPreThumbnail.thumbnail.parent = this;
						currentPreThumbnail.thumbnail.number = imageObjectNumber;
						currentPreThumbnail.thumbnail.onclick = this.imageClicked;
						this.thumbnailHolder.appendChild(currentPreThumbnail.thumbnail);
					}
				}
			break;
		}
	}
	this.imageClicked = function(){
		this.parent.exhibitionist.trace("Pre Gallery: clicked image "+this.number);
		this.parent.exhibitionist.bigImageHolder.removeChild(this.parent.thumbnailHolder);
		this.parent.exhibitionist.controller.startOn(this.number);
		this.parent.showBackButton();
		this.parent.exhibitionist.inquiryForm.show();
	}
	this.backToGrid = function(){
		this.exhibitionist.trace("Pre Gallery: Going back to Pre Gallery");
		this.exhibitionist.controller.transitionController.preGalleryImageSelector = this;
		this.exhibitionist.controller.transitionController.onFadeOutExtraTrigger = function(){
			this.preGalleryImageSelector.hideBackButton();
			this.preGalleryImageSelector.start();
			this.onFadeOutExtraTrigger = function(){};
		}
		this.exhibitionist.controller.hide();
		// if enquiry form hidden
		if (this.exhibitionist.optionsArray['enquireFormDisablePreGallery'] == true){
			this.exhibitionist.inquiryForm.hide();
		}
		
	}
	this.showBackButton = function(){
		this.exhibitionist.trace("Pre Gallery: Displaying back to grid button");
		this.backButtonHolder.appendChild(this.backButton);
	}
	this.hideBackButton = function(){
		this.exhibitionist.trace("Pre Gallery: Hiding back to grid button");
		this.backButtonHolder.removeChild(this.backButton);
	}
	this.start = function(){
		this.exhibitionist.trace("Pre Gallery: Starting");
		this.exhibitionist.bigImageHolder.appendChild(this.thumbnailHolder);
		if (this.exhibitionist.optionsArray['enquireFormDisablePreGallery'] == true){
			this.exhibitionist.inquiryForm.hide();
		}
	}
}