
// Galleries
//

var GLRY_WEDDINGS1 = 0;
var GLRY_WEDDINGS2 = 1;
var GLRY_FEATURED = 2;
var GLRY_COUPLES = 3;
var GLRY_FAMILIES = 4;

var iNumGalleries = 5;

var aGalleries = new Array(iNumGalleries);
aGalleries[GLRY_WEDDINGS1]  = new Array( "Gallery_mnu_weddings1",  "Weddings1", 20);		// Menu/Filename, Directory holding gallery images, and number of pictures
aGalleries[GLRY_WEDDINGS2]  = new Array( "Gallery_mnu_weddings2",  "Weddings2", 20);
aGalleries[GLRY_FEATURED]  = new Array( "Gallery_mnu_featuredwedding", "FeaturedWedding",  20);
aGalleries[GLRY_COUPLES] = new Array( "Gallery_mnu_couples", "Couples", 20);
aGalleries[GLRY_FAMILIES] = new Array( "Gallery_mnu_families", "Families", 20);


// Sub-galleries
//

//var aSubGalleries = new Array(iNumGalleries);
//aSubGalleries[GLRY_WEDDINGS] = new Array(			// Gallery folder, image name, # of pictures
//	"WedCandids", "Glry_Wed_Candids",	28,
//	"WedFormals", "Glry_Wed_Formals", 	21,
//	"WedSample1", "Glry_Wed_Sample1", 	20, 
//	"WedSample2", "Glry_Wed_Sample2", 	25);
//aSubGalleries[GLRY_FAMILIES] = new Array(
//	"FamSample",  "Glry_Fam_Samples", 	9, 
//	"FamFeatured", "Glry_Fam_Featured", 	10);
//aSubGalleries[GLRY_PORTRAITS] = new Array(
//	"PortSample", "Glry_Port_Samples", 	17, 
//	"PortFeatured", "Glry_Port_Featured", 	17);


var iCurrentGallery = GLRY_WEDDINGS1;
var iCurrentPicture = 1;

var iDirection = 1; 	// 0 = prev, 1 = next
var iNextGallery = 0;
var iNextPicture = 1;
var iCached = false;
var iOldPicture = -1;


function CalculateNext()
{
	if (iDirection == 1)
	{
		iNextPicture = iCurrentPicture + 1;
		if (iNextPicture > aGalleries[iCurrentGallery][2]) 
		{
			iNextGallery = iCurrentGallery + 1;
			if (iNextGallery == iNumGalleries) 
			{
				iNextGallery = 0;
			}
			iNextPicture = 1;
		}
	}
	else
	{
		iNextPicture = iCurrentPicture - 1;
		if (iNextPicture == 0) 
		{
			iNextGallery = iCurrentGallery - 1;
			if (iNextGallery < 0)
			{
				iNextGallery = iNumGalleries-1;
			}
			iNextPicture = aGalleries[iCurrentGallery][2];
		}
//alert(iNextSubGallery + " " + iNextPicture);
	}
}

function ChangeGallery( iGallery, bSetFirstSG)
{
	iCached = false;
	ChangeGallery2( iGallery, bSetFirstSG);
}

function ChangeGallery2( iGallery, bSetFirstSG)
{
	if (iCurrentGallery != iGallery)
	{
		iCurrentGallery = iGallery;
		for (var i=0; i<iNumGalleries; i++) 
		{
			if (i != iCurrentGallery) 
			{
				document[aGalleries[i][0]].src = "images/"+aGalleries[i][0]+".gif";
			}
			else 
			{
				document[aGalleries[i][0]].src = "images/"+aGalleries[i][0]+"-sel.gif";
			}
		}
		
		
		if (bSetFirstSG  == true)
		{
			iCurrentPicture = 1;
		}
		else
		{
			iCurrentPicture = aGalleries[iCurrentGallery][2];
		}
		
		// Set all of the thumbnail images
		iOldPicture = -1;
//		document["GalleryThumb" + iCurrentPicture].src = "Galleries/" + aGalleries[iCurrentGallery][1] + "/ThumbSel" + iCurrentPicture +".jpg?" + Math.random();
		for (var j=1; j<=aGalleries[iCurrentGallery][2]; j++)
		{
		    if (j != iCurrentPicture)
		    {
				document["GalleryThumb" + j].src = "Galleries/" + aGalleries[iCurrentGallery][1] + "/Thumb" + j +".jpg?" + Math.random();
			}
		}
    SetPicture();
	}
}


function SetPicture()
{
	if (iCached)
	{
		iCurrentPicture = iNextPicture;
		iCurrentGallery = iNextGallery;
		document.Picture.src = hidden.src

		// calculate what the next one will be

		CalculateNext();
	   	if (iNextPicture < 10)
	   	{
	       hidden.src = "Galleries/" + aGalleries[iCurrentGallery][1] + "/Picture0" + iNextPicture + ".jpg?" + Math.random();		
	   	}
	   	else
	   	{
	       hidden.src = "Galleries/" + aGalleries[iCurrentGallery][1] + "/Picture" + iNextPicture + ".jpg?" + Math.random();		
	   	}	
	}
	else
	{
		document.Picture.src = "galleries/loading.jpg"

	   if (iCurrentPicture < 10)
	   {
	       hidden.src = "Galleries/" + aGalleries[iCurrentGallery][1] + "/Picture0" + iCurrentPicture + ".jpg?" + Math.random();		
	   }
	   else
	   {
	       hidden.src = "Galleries/" + aGalleries[iCurrentGallery][1] + "/Picture" + iCurrentPicture + ".jpg?" + Math.random();		
	   }	
	}

	// Change the new thumbnail to the 'selected' version
	document["GalleryThumb" + iCurrentPicture].src = "Galleries/" + aGalleries[iCurrentGallery][1] + "/ThumbSel" + iCurrentPicture +".jpg?" + Math.random();
	if (iOldPicture >= 0)
	{
		document["GalleryThumb" + iOldPicture].src = "Galleries/" + aGalleries[iCurrentGallery][1] + "/Thumb" + iOldPicture +".jpg?" + Math.random();
	}
	iOldPicture = iCurrentPicture;
}


//function SetPicture()
//{
//	Picture.src = "Gallery" + (iCurrentGallery) + (iCurrentSubGallery) + "/Picture" + iCurrentPicture + ".jpg";
//}


function GotoPicture( iPicture)
{
	if (iCurrentPicture != iPicture)
	{
	    iCached = false;
		iCurrentPicture = iPicture;
		SetPicture();
	}
}


function NextPicture()
{
	if (iDirection == 1)
	{
		if (iNextGallery != iCurrentGallery)
		{
			ChangeGallery(iNextGallery, true);
		}
		else
		{
			SetPicture();
		}
	}
	else
	{
		iCached = false;
		iDirection = 1;

		iCurrentPicture = iCurrentPicture + 1;
		if (iCurrentPicture > aGalleries[iCurrentGallery][2]) 
		{
			// go to the next gallery
			var iNewGallery;
			iNewGallery = iCurrentGallery + 1;
			if (iNewGallery == iNumGalleries) 
			{
				iNewGallery = 0;
			}
			ChangeGallery2(iNewGallery, true);
		}
		else
		{
			SetPicture();
		}
	}
}

function PrevPicture()
{
	if (iDirection == 0)
	{
		if (iNextGallery != iCurrentGallery)
		{
			ChangeGallery(iNextGallery, false);
		}
		else
		{
			SetPicture();
		}
	}
	else
	{
		iCached = false;
		iDirection = 0;

		iCurrentPicture = iCurrentPicture - 1;
		if (iCurrentPicture == 0) 
		{
			// go to a previous gallery
			var iNewGallery;
			iNewGallery = iCurrentGallery - 1;
			if (iNewGallery < 0)
			{
				iNewGallery = iNumGalleries-1;
			}
			ChangeGallery2(iNewGallery, false);
		}
		else
		{
			// gallery and subgallery haven't changed - just display the new pic
			SetPicture();
		}
	}
}


var timer_expired = true;
var image_loaded = false;

function PictureLoaded() 
{
	if (timer_expired) 
    {
    	image_loaded = false;
  		timer_expired = false;
  		setTimeout('timeout()',100);

		if (!iCached)
		{
	   		document.Picture.src = document.hidden.src;

			iCached = true;
			iNextPicture = iCurrentPicture;
			iNextGallery = iCurrentGallery;
			CalculateNext();
	
			if (iNextPicture < 10)
		    {
				hidden.src = "Galleries/" + aGalleries[iNextGallery][1] + "/Picture0" + iNextPicture + ".jpg?" + Math.random();		
			}
			else
			{
				hidden.src = "Galleries/" + aGalleries[iNextGallery][1] + "/Picture" + iNextPicture + ".jpg?" + Math.random();				
			}	
		}
    }
    else 
	{
    	image_loaded = true;
    }
}

function timeout() 
{
  	timer_expired = true;
  	if (image_loaded) 
	{
    		PictureLoaded();
  	}
}
