var logo = new Image;
var GalleryDiv;
var PictureDiv, MainImg;
var LoadingDiv;
var GalleryImages;
var oPrev2,oPrev,oNext,oNext2,oCur;
var oBig;

var imgPreloader;

function SetThumb(oLink,src)
{
var oImg = oLink.getElementsByTagName("img")[0];

if (oImg)
	oImg.src = src;
}

function CurrentRel(Offset)
{
Offset += CurrentImage;
if (Offset >= GalleryImages.length)
	Offset -= GalleryImages.length;
	
if (Offset < 0)
	Offset += GalleryImages.length;
return Offset;
}

function move(n)
{
CurrentImage += n;
while (CurrentImage < 0)
		CurrentImage += GalleryImages.length;
while (CurrentImage >= GalleryImages.length)
		CurrentImage -= GalleryImages.length;

ShowNew();

//SetThumbs();
return false;
}

function SetThumbs()
{
if (oPrev2)
	SetThumb(oPrev2,GalleryImages[CurrentRel(-2)].thumb);
if (oPrev)
	SetThumb(oPrev,GalleryImages[CurrentRel(-1)].thumb);
if (oCur)
	SetThumb(oCur, GalleryImages[CurrentImage].thumb);
if (oNext)
	SetThumb(oNext,GalleryImages[CurrentRel(+1)].thumb);
if (oNext2)
	SetThumb(oNext2,GalleryImages[CurrentRel(+2)].thumb);
}


function show()
{
var ok = 0;

for (j=0;j<GalleryImages.length;j++)
	{
	if (this == GalleryImages[j])
		{
		CurrentImage = j;
		ok = 1;
		}
	}

if (ok)
	{
	ShowNew();
	return false;
	}
return true;	
}

function ShowNew()
{	
imgPreloader = new Image();
		
// once image is preloaded, resize image container
imgPreloader.onload=function()
	{
	MainImg.src = GalleryImages[CurrentImage];
	PictureDiv.style.display="block";
	GalleryDiv.style.display="none";
	document.getElementById("caption").innerHTML = GalleryImages[CurrentImage].caption;
	SetThumbs();
	//alert("done"+imgPreloader.width +" "+ imgPreloader.height);
	if (LoadingDiv)
		LoadingDiv.style.display="none";
	if (oBig)
		{
		fred = 	"" +GalleryImages[CurrentImage];
		oBig.href = fred.replace("img","orig");
		}
// Can be used to correct IE 6 and before for relative div movement.
//	var o = document.getElementById("fixme");
//	if (o)
//		o.style.display = "block";
	}

//var o = document.getElementById("fixme");
//if (o)
//	o.style.display = "none";

imgPreloader.src = GalleryImages[CurrentImage];
if (LoadingDiv)
	{
	if (!imgPreloader.complete)
		LoadingDiv.style.display="block";
	if (imgPreloader.complete)	// In case changed (if multasking)
		LoadingDiv.style.display="none";
	}
}
	

function xShowImage()
{
	
	//MainImg.src = "";
	MainImg.src = this.href;

	PictureDiv.style.display="block";
	GalleryDiv.style.display="none";
	SetThumbs();
	return false;
	
	
//return true;	
}

function ShowGallery()
{
PictureDiv.style.display="none";
GalleryDiv.style.display="block";
return false;
}


function GetSearch(tag)
{
var s = location.search;
if (s.length < 1)
	{
	return null;
	}

s = s.substring(1, s.length);

var names = s.split("&");

for (var i=0; i < names.length; i++)
	{
	var k = names[i].split("=");
	if (k[0] == tag)
		return k[1];
	}
}



function GalleryInit()
{
var j;
var go = 0;


if (!document.getElementById)
	return;
	
GalleryDiv = document.getElementById("gallery");
PictureDiv =  document.getElementById('picture');
LoadingDiv =  document.getElementById('loading');
if (!GalleryDiv || !PictureDiv)
	return;

// Add onclick to all the links to take control of the links
ThumbsDiv = document.getElementById('thumbs');
if (!ThumbsDiv)
	ThumbsDiv = GalleryImages;
GalleryImages = ThumbsDiv.getElementsByTagName("a");
//alert(GalleryImages.length);

var s = location.hash;

var tag = GetSearch("show");

//alert("Search="+tag + " Hash="+s);

CurrentImage = -1;
for (j=0;j<GalleryImages.length;j++)	//*** Should check there is a img in the link
	{
	if (typeof s == "string" && s.indexOf(GalleryImages[j].id) == 1)
		{
		CurrentImage = j;
		go = 1;
		}
	if (typeof tag == "string" && GalleryImages[j].href.indexOf(tag) >= 0)
		{
		CurrentImage = j;
		go = 1;
		}

	GalleryImages[j].onclick = show;
	imgList = GalleryImages[j].getElementsByTagName("img");
	GalleryImages[j].caption = imgList[0].getAttribute('alt');

	GalleryImages[j].thumb = imgList[0].src;
	}

//MainImg = PictureDiv.getElementsByTagName("img")[0];	// *** Need to ID this as links will also be images
MainImg = document.getElementById("SinglePic");

MainImg.onclick = function() { move(1)};

PicLinks = PictureDiv.getElementsByTagName("a");
for (j=0;j<PicLinks.length;j++)
	{
	var oLoop = PicLinks[j];
	var s = oLoop.href;
	if (s.indexOf("#Next2") > -1)
		{
		oLoop.onclick = function () {return move(2)}
		if(oLoop.getElementsByTagName("img")[0])
			oNext2 = oLoop;
		}
	else if (s.indexOf("#Prev2") > -1)
		{
		oLoop.onclick = function (){return move(-2)};
		if(oLoop.getElementsByTagName("img")[0])
			oPrev2 = oLoop;
		}
	else if (s.indexOf("#Next") > -1)
		{
		oLoop.onclick = function (){return move(1)};
		if(oLoop.getElementsByTagName("img")[0])
			oNext = oLoop;
		}
	else if (s.indexOf("#Prev") > -1)
		{
		oLoop.onclick = function (){return move(-1)};
		if(oLoop.getElementsByTagName("img")[0])
			oPrev = oLoop;

		}
	else if (s.indexOf("#Gal") > -1)
		{
		oLoop.onclick = ShowGallery;
		if(oLoop.getElementsByTagName("img")[0])
			oCur = oLoop;
		}
	else if (s.indexOf("#big") > -1)
		{
		if(oLoop.getElementsByTagName("img")[0])
			oBig = oLoop;
		}
	
	}

if (go)
	ShowNew();

document.onkeydown = function(e)
	{
	var evt = e || window.event;
	//alert("Its:"+evt.keyCode);
	var key = evt.keyCode;
	switch(key)
		{
		case 39:
			move(1);
			break;

		case 37:
			move(-1);
			break;

		}

	}
}

