var curIdx=0;
var inImage=false;
var thumbsBothSide=0;

function getBasePath(imgIdx)
{
	if (shooters.length>0)
	{
		//alert(basePath+shooters[imgIdx]+"/");
		return basePath+shooters[imgIdx]+"/"
	}
	else
	{
		return basePath;
	}
}

function changeSelImage(imgIdx) {
	var im=document.getElementById("mainImage");
	var dtd=document.getElementById("dumbTD");
	var ttd=document.getElementById("thumbLeftTD");
	var mtd=document.getElementById("mainTD");
	im.src="images/loading.png";
	im.src=getBasePath(imgIdx)+images[imgIdx];
	//im.src="maxWidthImage.php?maxW=800&img="+getBasePath(imgIdx)+images[imgIdx];
	if (!thumbsBothSide)
	{
		dtd.innerHTML="&nbsp;";
	//var mw=1200;
		var tw=thumbsBothSide?24:140;
	//mtd.width=mw-tw*2;
	//dtd.width=ttd.width=tw;
		dtd.width=ttd.width=tw;
	}
	bigIndex=imgIdx;
	var lab=document.getElementById("labelDiv");
//	lab.innerHTML="<table width=\"400\"><tr><td><p><strong>"+imageTexts[imgIdx]+"</strong></p><em>"+imageInfos[imgIdx]+"</em></td></tr></table>";

//gj070802 - debut
	//lab.innerHTML="<table align=\"center\"><tr><td align=\"left\"><h2>"+imageTexts[imgIdx]+"</h2>"+imageInfos[imgIdx]+"</td></tr></table>";
      lab.innerHTML="<table align=\"center\"><tr><td height=\"20\" width=\"100%\" colspan=\"3\">&nbsp;</td></tr><tr><td width=\"15%\">&nbsp;</td><td width=\"70%\" align=\"left\"><h4>"+imageTexts[imgIdx]+"</h4>"+imageInfos[imgIdx]+"</td><td width=\"15%\">&nbsp;</td></tr></table>";
//gj070802 - fin

//	im.className="thumbImage";
}

function changeBackground(elem,color)
{
	elem.style.borderColor=color;
//	elem.style.borderWidth=10;
	//alert("changing "+elem+" to "+color);
}

function setImgBorderAttr(im,w,st,inC,outC,noc)
{
		im.onmouseover=new Function("changeBackground(this,\""+inC+"\")");
		im.onmouseout=new Function("changeBackground(this,\""+outC+"\")");
		im.style.borderWidth=w+"px";
		im.style.borderStyle=st;
		im.style.borderColor=outC;
		if (!noc) im.className="cursorImage";
}

function setVisibility(elem,visible)
{
	if (elem)
	{
		elem.style.visibility=visible;
		if (elem.childNodes && elem.childNodes.length>0)
		{
		alert("here");
			for (var i=0;i<elem.childNodes.length;i++)
			{
			alert("there");
				child=elem.childNodes[i];
				setVisibility(child,visible);
			}
		}
	}
}

function showBigImage()
{
	var main=document.getElementById("mainDiv");
	var big=document.getElementById("bigDiv");
	main.style.display="none";
//	setVisibility(main,"hidden");
	im=document.getElementById("bigImage");
	big.removeChild(im);
	im=getBigImage();
	im.src=getBasePath(bigIndex)+bigImages[bigIndex];
	big.appendChild(im);

	big.style.display="inline";
}

function hideBigImage()
{
	var main=document.getElementById("mainDiv");
	var big=document.getElementById("bigDiv");
	var im=document.getElementById("bigImage");
	big.style.display="none";
	im.src="images/loading.png";
	main.style.display="inline";
}

function getBigImage()
{
	var im=document.createElement("img");
	im.id="bigImage";
	im.onclick=hideBigImage;
	im.title="Click on image to go back";
	im.lowSrc="images/loading.png";
	return im;
}

function initBigDiv()
{
	var big=document.getElementById("bigDiv");
	big.style.display="none";
	var im=getBigImage();
	im.src="images/loading.png";
	// im.id="bigImage";
	// im.src="loading.png";
	// im.onclick=hideBigImage;
	// im.title="Click on image to go back";
	big.appendChild(im);
}

function getMousePos(e)
{
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY)
 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	//alert("x="+posx+" y="+posy);
	return new Array(posx,posy);
}

function imageClick(e)
{
	var posx=getMousePos(e)[0];
	if (posx<517) curIdx=(thumbs.length+curIdx-1)%thumbs.length;
	else curIdx=(curIdx+1)%thumbs.length;
	changeThumb(document.getElementById("thumb"+curIdx),curIdx,"#336633","#000000");
}

function handleImageWheel(delta)
{
	curIdx=(thumbs.length+curIdx-delta)%thumbs.length;
	changeThumb(document.getElementById("thumb"+curIdx),curIdx,"#336633","#000000");
}

function wheelRolled(e)
{
//	alert("wheel "+inImage);
	if (inImage)
	{
		var delta=0;
		if (!e) e=window.event;
		if (e.wheelDelta)
		{
			delta=e.wheelDelta/120; 
			if (window.opera) delta=-delta;
		} else if (e.detail)
		{
			delta=-e.detail/3;
		}
		if (delta) handleImageWheel(delta);
        	if (e.preventDefault) e.preventDefault();
        	e.returnValue=false;
	}
	else e.returnValue=true;
}

function imageMove(e)
{
	var posx=getMousePos(e)[0];
	var im=document.getElementById("mainImage");
	if (posx<517) im.title="View Previous Image"
	else im.title="View Next Image"
}


function getMainImageCell()
{
	var mainTD=document.createElement("td");
	mainTD.id="mainTD";
	mainTD.className="imageCell";
	var im=document.createElement("img");
	im.id="mainImage";
	//im.onclick=new Function("showBigImage()");
	im.onmouseover=new Function("inImage=true");
	im.onmouseout=new Function("inImage=false");
	im.onclick=imageClick;
	im.onmousemove=imageMove;
	//im.title="Click on image to view it full-size";
	//setImgBorderAttr(im,2,"solid","#003300","#000000",true);
	im.className="cursorImage";
	mainTD.appendChild(im);
	mainTD.appendChild(document.createElement("br"));
	var d=document.createElement("div");
	d.id="labelDiv";
	mainTD.appendChild(d);

	return mainTD;
}

function changeThumb(im,idx,inC,outC)
{
	changeBackground(im,inC);
	changeSelImage(idx);
	for(var i=0;i<thumbs.length;i++)
	{
		if (i!=idx)
		{
			var th=document.getElementById("thumb"+i);
			changeBackground(th,outC);
		}
	}
	curIdx=idx;
}

function buildThumbs(lBody,rBody)
{
	for(var i=0;i<thumbs.length;i++)
	{
		var tBody=i%2==0 || rBody==null?lBody:rBody;
		var tr=document.createElement("tr");
		var td=document.createElement("td");
		var im=document.createElement("img");
		setImgBorderAttr(im,2,"solid","#336633","#000000",false);
		if (i==curIdx) changeBackground(im,"#336633");
		im.id="thumb"+i;
		im.onmouseover=new Function("changeThumb(this,"+i+",\"#336633\",\"#000000\")");
		im.onmouseout=null;
		im.src=getBasePath(i)+thumbs[i];
		im.onclick=new Function("changeSelImage("+i+")");
		im.title=imageTexts[i];
		
		td.appendChild(im);
		tr.appendChild(td);
		tBody.appendChild(tr);
	}
}

function setInitialImages()
{
	thumbsBothSide=nCols==2; //Hard-coded for specific gallery for now
	var thumbClass="thumb"+(thumbs.length>8 && !thumbsBothSide?"Crowded":"");
	var loadim=new Image();
	loadim.src="images/loading.png";
	var d=document.getElementById("mainDiv");
	var topTable=document.createElement("table");
	topTable.width=1200;
	topTable.id="topTable";
	//topTable.border=1;
	var topBody=document.createElement("tbody");
	var topTR=document.createElement("tr");

	var dumbTD=document.createElement("td");
	dumbTD.id="dumbTD"

	var thumbLeftTD=document.createElement("td");
	thumbLeftTD.id="thumbLeftTD";
	var thumbTableLeft=document.createElement("table");
	thumbTableLeft.className=thumbClass;
	var thumbBodyLeft=document.createElement("tbody");

	var thumbBodyRight=null;
	var thumbRightTD;
	var thumbTableRight;
	if (thumbsBothSide)
	{
		thumbRightTD=document.createElement("td");
		thumbRightTD.id="thumbRightTD";
		thumbRightTD.align="right";

		thumbTableRight=document.createElement("table");
		thumbTableRight.className=thumbClass;
		thumbBodyRight=document.createElement("tbody");
	}

	var mainTD=getMainImageCell();
	
	buildThumbs(thumbBodyLeft,thumbBodyRight);
	thumbTableLeft.appendChild(thumbBodyLeft);
	if (thumbsBothSide)
	{
		mainTD.width="100%";
		thumbTableRight.appendChild(thumbBodyRight);
		thumbRightTD.appendChild(thumbTableRight);
	}
	thumbLeftTD.appendChild(thumbTableLeft);
	//thumbTD.width=160;
	topTR.appendChild(thumbLeftTD);
	topTR.appendChild(mainTD);
	if (!thumbsBothSide) topTR.appendChild(dumbTD);
	if (thumbsBothSide)
		topTR.appendChild(thumbRightTD);
	topBody.appendChild(topTR);
	topTable.appendChild(topBody);
	d.appendChild(topTable);
	initBigDiv();
	changeSelImage(curIdx);
	if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheelRolled, false);
	window.onmousewheel=document.onmousewheel=wheelRolled;
}




