function isIE()
{
	var nav = navigator.appVersion.indexOf("MSIE");
	return (nav>0) && (parseInt(navigator.appVersion.substring(nav+5, nav+6)) >= 4);
}

function isNS()
{
	return ((navigator.appName == "Netscape") &&
				(parseInt(navigator.appVersion.substring(0, 1)) >= 5) || navigator.appName == "Mozilla")
    var ns = navigator.appName
}


// GalleryImage

GalleryImage = function()
{
}


GalleryImage.prototype.m_sFileName = null;
GalleryImage.prototype.m_sCaption = null;
GalleryImage.prototype.m_sDescript = null;

GalleryImage.prototype.create = function(sName, sCapt, sDesc)
{
  this.m_sFileName = sName;
  this.m_sCaption = sCapt;
  this.m_sDescript = sDesc;

  return (this);
}


function addGalleryImage(imgList, sName, sCapt, sDesc)
{
  img = new GalleryImage();
  img.create(sName, sCapt, sDesc);
  imgList.push(img);
}


// PhotoGallery

PhotoGallery = function()
{
}


PhotoGallery.prototype.m_nImgsPerView = 5;
PhotoGallery.prototype.m_nImgWidth = 144;
PhotoGallery.prototype.m_nImgHeight = 168;
PhotoGallery.prototype.m_ImgList = null;

PhotoGallery.prototype.m_sThumbnails = null;
PhotoGallery.prototype.m_sImage = null;
PhotoGallery.prototype.m_sDescript = null;

PhotoGallery.prototype.m_sName = null;
PhotoGallery.prototype.m_nImgNo = 0;

PhotoGallery.prototype.init = function(imgInfo, sThumbDiv, sImgDiv, sImgDesc)
{
//alert("in PhotoGallery::init");

	this.m_ImgList = imgInfo;
	this.m_sThumbnails = sThumbDiv;
	this.m_sImage = sImgDiv;
	this.m_sDescript = sImgDesc;
}


PhotoGallery.prototype.setImagesPerView = function(num)
{
//alert("in PhotoGallery::setImagesPerView");

	this.m_nImgsPerView = num;
}


PhotoGallery.prototype.setImageSize = function(nWid, nHgt)
{
	this.m_nImgWidth = nWid;
	this.m_nImgHeight = nHgt;
}


PhotoGallery.prototype.setName = function(newName)
{
	this.m_sName = newName;
}


PhotoGallery.prototype.writeThumbTable = function(tableId)
{
	var newHtml = "";

	newHtml += "<table border='0' align='center'>";
	newHtml +=   "<tr>";
	newHtml +=     "<td>";
	newHtml +=     "<img border='0' align='middle' src='images/prevdis.gif' id='leftbtn' " +
                      "onclick='javascript:gal.scrollLeft()' width='25' height='29'/>";
	newHtml +=     "</td";
	newHtml +=     "<td>";

	var i =0;
	for (i = 0; i < this.m_nImgsPerView; i++)
	{
		newHtml += "<a id='image" + i + "' href='javascript:showImage(gal,0)'>";
		newHtml += "<img src='images/blank.gif' width='85' height='100' align='absmiddle'/>";
		newHtml += "</a>"
	}

	newHtml +=     "</td>";
	newHtml +=     "<td>";
	newHtml +=     "<img border='0' align='middle' src='images/next.gif' id='rightbtn' " +
					 "onclick='javascript:gal.scrollRight()' width='25' height='29'/>";
	newHtml +=     "</td>";
	newHtml +=   "</tr>";
	newHtml += "</table>";

	var tbl = getDocElement(tableId);
	tbl.innerHTML = newHtml;
}


PhotoGallery.prototype.galShowImage = function(imgId)
{
//alert("showImage(" + imgId + ")");
	imgId += this.m_nImgNo;
	var obj = null;
	obj = this.m_ImgList[imgId];
	var sPicName = "pictures/" + obj.m_sFileName + ".jpg";

	var x = document.getElementById("galimage");
	if (x)
	{
		// todo: use width/height from local properties
		img = '<img src="' + sPicName + '" width="' + this.m_nImgWidth +
			'" height="' + this.m_nImgHeight + '" title="' +
			obj.m_sCaption + '" align="absmiddle"/>';
		x.innerHTML = img;
//alert("adding inner html to item " + imgId + ": " + img);
	}
	else
	{
alert("PhotoGallery::showImage() galimage bad");
	}

	x = document.getElementById("galdesc");
	if (x)
	{
//alert("adding inner html to galdesc");
		var sNewHtml = null;
		sNewHtml = '<span class="hdr2">' + obj.m_sCaption + "</span><p/>" + obj.m_sDescript;
		x.innerHTML = sNewHtml;
	}
	else
	{
alert("PhotoGallery::showImage() galdesc bad");
	}
}


PhotoGallery.prototype.display = function()
{
//alert("in PhotoGallery::display");


	var nImgNo = 0;
	var nStartImg = this.m_nImgNo;
	var nEndImg = this.m_nImgNo + this.m_nImgsPerView;

	var n = 0;
	var obj = null;

	for (n = 0; n < this.m_nImgsPerView; n++)
	{
		var sName = "image" + (n + 1);
		obj = this.m_ImgList[n + nStartImg];
		var sPicName = "pictures/" + obj.m_sFileName + ".jpg";
//alert("setting item " + n + "'" + sName + "' to [" + sPicName + "]");

		var x = null;
		if (isNS())
		{
			// this mechanism works for Mozilla/Firefox
			x = document.getElementById(sName);
			if (x)
			{
				x.innerHTML = '<img src="' + sPicName + '" width="85" height="100" title="' +
					obj.m_sCaption + '" align="absmiddle"/>';
				x.innerText = obj.m_sCaption;
//				x.href = "javascript:showImage(gal, " + (n + nStartImg) + ");";
			}
			else
			{
//if (n == 1) alert("anchor bad " + x)
			}
		}
		else
		{
			// assume IE??
			x = document.all[sName];
			if (x)
			{
				x.innerHTML = '<img src="' + sPicName + '" width="85" height="100" title="' +
					obj.m_sCaption + '" align="absmiddle"/>';
				x.title = obj.m_sCaption;
//				x.href = "javascript.showImage(gal, " + (n + nStartmg) + ");";
			}
			else
			{
//if (n == 1) alert("anchor bad " + x)
			}
		}

		var capt = document.getElementById("capt" + (n + 1));
		if (capt)
		{
			capt.innerHTML = this.m_ImgList[n + nStartImg].m_sCaption;
		}
	}
}




PhotoGallery.prototype.scrollLeft = function()
{
//alert("scrolling gallery " + this.m_sName + " left");
	if (this.m_nImgNo > 0)
	{
		this.m_nImgNo--;
		var img = document.getElementById("leftbtn");
		if (this.m_nImgNo == 0)
			img.src = "images/prevdis.gif";
		else
			img.src = "images/prev.gif";
		document.getElementById("rightbtn").src = "images/next.gif";
	}

	this.display();
}


PhotoGallery.prototype.scrollRight = function()
{
//alert("scrolling gallery " + this.m_sName + " right");
	if (this.m_nImgNo + this.m_nImgsPerView < this.m_ImgList.length)
	{
		this.m_nImgNo++
		var img = document.getElementById("rightbtn");
		if (this.m_nImgNo + this.m_nImgsPerView == this.m_ImgList.length)
			img.src = "images/nextdis.gif";
		else
			img.src = "images/next.gif";
		document.getElementById("leftbtn").src = "images/prev.gif";
	}

	this.display();
}



function showImage(gal, id)
{
	gal.galShowImage(id);
}
