function NumberedGallery(pictureContainerId,pictureDirectory) {
	this.pictureContainer=document.getElementById(pictureContainerId);
	this.pictureDirectory=pictureDirectory;
	this.pictureFiles=new Array();
	this.pictureXPos=new Array();
	this.pictureYPos=new Array();
	this.selectedPicture=0;
}

NumberedGallery.prototype.addPicture= function(fileName,xPos,yPos) {
	this.pictureFiles[this.pictureFiles.length]=fileName;
	this.pictureXPos[this.pictureXPos.length]=xPos;
	this.pictureYPos[this.pictureYPos.length]=yPos;
}

NumberedGallery.prototype.displayPicture=function (pictureNum) {
	var newPictureElement;
	while (this.pictureContainer.hasChildNodes()) {
		this.pictureContainer.removeChild(this.pictureContainer.firstChild);
	}
	newPictureElement=document.createElement("img");
	newPictureElement.setAttribute("src",this.pictureDirectory+this.pictureFiles[pictureNum]);
	this.pictureContainer.appendChild(newPictureElement);
	newPictureElement.style.marginLeft=this.pictureXPos[pictureNum]+"px";
	newPictureElement.style.marginTop=this.pictureYPos[pictureNum]+"px";
	this.selectedPicture=pictureNum;
} 

NumberedGallery.prototype.getSelectedPicture=function() {
	return this.selectedPicture;
}

NumberedGallery.prototype.setSelectedPicture=function(selectedPictureNum) {
	this.selectedPicture=selectedPictureNum;
}


function NumberedMenu(menuContainerId,menuIconsDirectory,menuIconsImages,menuIconsImagesOver,galleryObject) {
	this.menuContainer=document.getElementById(menuContainerId);
	this.menuIconsDirectory=menuIconsDirectory;
	this.menuIconsImages=menuIconsImages;
	this.menuIconsImagesOver=menuIconsImagesOver;
	this.menuIcons=new Array();
	this.galleryObject=galleryObject;
	//this.selectedIconNum=0;	
}

NumberedMenu.prototype.addIcon= function () {
	var rolloverImage,newElementPosition,imageElement;
	newElementPosition=this.menuIcons.length;
	imageElement=document.createElement("img");
	imageElement.setAttribute("src",this.menuIconsDirectory+this.menuIconsImages[newElementPosition]);
	this.menuContainer.appendChild(imageElement);
	rolloverImage= new Image();
	rolloverImage.src=this.menuIconsDirectory+this.menuIconsImagesOver[newElementPosition];
	this.menuIcons[newElementPosition]=imageElement;
	this.menuIcons[newElementPosition].num=newElementPosition;
}

NumberedMenu.prototype.addPicture=function(fileName,xPos,yPos) {
	this.galleryObject.addPicture(fileName,xPos,yPos);
	this.addIcon();
}

NumberedMenu.prototype.initHandlers=function () {
	var menuObject=this;
	for (var i=0; i< this.menuIcons.length; i++) {
		if (i==this.galleryObject.getSelectedPicture()) {
			this.menuIcons[i].onmouseover=null;	
			this.menuIcons[i].onmouseout=null;	
			this.menuIcons[i].onclick=null;
			this.menuIcons[i].src=this.menuIconsDirectory+this.menuIconsImagesOver[i];	
		} else {
			this.menuIcons[i].onmouseover= function () {
				this.src=menuObject.menuIconsDirectory+menuObject.menuIconsImagesOver[this.num];
				this.style.cursor="pointer";
			}
			this.menuIcons[i].onmouseout= function () {
				this.src=menuObject.menuIconsDirectory+menuObject.menuIconsImages[this.num];
			}
			this.menuIcons[i].onclick= function () {				
				var prevSelectedNum=menuObject.galleryObject.getSelectedPicture();
				menuObject.menuIcons[prevSelectedNum].src=menuObject.menuIconsDirectory+menuObject.menuIconsImages[prevSelectedNum];
				menuObject.galleryObject.displayPicture(this.num);
				menuObject.initHandlers();
			}				
		}
	}
}
