var ImgOverlay=null; var TMOverlay=null; var TMBGOverlay=null; var TMImgOverlay=null; var TMImg=null;
var Artworks=new Array(); var ChosenImage=-1; var GalleryNav='';
var ImgOverlayHeight=0; var WindowWidth=0; var WindowHeight=0; var ImageMaxWidth=0; var ImageMaxHeight=0;

function UpdateDimensions() {
	ImgOverlayHeight=document.body.offsetHeight;

	WindowWidth=document.documentElement.clientWidth;
	WindowHeight=document.documentElement.clientHeight;
/*
	if (typeof(window.innerWidth)=='number') {	//Non-IE
		WindowWidth=window.innerWidth;
		WindowHeight=window.innerHeight;
	} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {	//IE 6+ in 'standards compliant mode'
		WindowWidth=document.documentElement.clientWidth;
		WindowHeight=document.documentElement.clientHeight;
	} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {	//IE 4 compatible
		WindowWidth=document.body.clientWidth;
		WindowHeight=document.body.clientHeight;
	};
*/
	ImageMaxWidth=Math.round(WindowWidth*0.9);
	ImageMaxHeight=WindowHeight-200;
	if (ImageMaxHeight<300)
		ImageMaxHeight=300;
	ImgOverlay.style.height=ImgOverlayHeight+'px';
}

var TMArtwork0=null; var TMArtwork1=null; var TMArtwork2=null; var TMArtwork3=null; var TMArtwork4=null; var TMArtwork5=null; var TMArtwork6=null; var TMArtwork7=null;
var CurrentPage=1; var MaxPage=1; var ShowPerRow=4; var ShowMax=8;
function InitGallery() {
	if (TMOverlay==null) {
		ImgOverlay=document.createElement('DIV');
		TMOverlay=TM.AddOBJ(ImgOverlay);
		UpdateDimensions();
		ImgOverlay.className='ImagePopup';
		ImgOverlay.onclick=HideOverlay;
		ImgOverlay.innerHTML='<div class="BG FL"></div><div class="FL" style="z-index:51;"></div>';
		TMBGOverlay=TM.AddOBJ(ImgOverlay.firstChild);
		TMImgOverlay=TM.AddOBJ(ImgOverlay.lastChild);
		TMOverlay.Hide();
		TMBGOverlay.SetOpacity(0);
		TMImgOverlay.SetOpacity(0);
		document.getElementById('Stage').appendChild(ImgOverlay);
	};
	var ArtworksDisplayDIV=document.getElementById('ArtWorksDisplay');
	if (Artworks.length) {
		PrepGalleryNav();
	};
	if (ArtworksDisplayDIV) {
		for (var i=0; i<ShowMax && i<Artworks.length; i++) {
			eval('TMArtwork'+i+'=TM.AddOBJ(ArtworksDisplayDIV.childNodes['+i+']);');
		};
		MaxPage=Math.ceil(Artworks.length/ShowMax);
		for (var i=0; i<ShowMax && i<Artworks.length; i++) {
			eval('Artworks[i].compcache.onload=function () { HideArtworkLoading('+i+'); };');
			Artworks[i].compcache.src='/images/artworks/small/'+Artworks[i].filename;
		};
	};
/*	var AWs=GetElementsByClassName('a', 'ArtWork');
	for (var i=0; i<AWs.length; i++) {
		var Details=AWs[i].title.split('||');
		AWs[i].onclick=new Function("event", "ShowImage("+Artworks.length+"); if (event && event.preventDefault) event.preventDefault(); return false;");
		var Path=AWs[i].firstChild.src.split('/');
		GalleryNav+='<a href="#" onclick="ShowArtwork('+Artworks.length+'); return false;"><img src="/_uploaded/Thumbnail/'+Path[Path.length-1]+'" title="'+Details[0]+'" /></a>';
		Artworks.push({img: AWs[i].href, title: Details[0], medium: Details[1], size: Details[2]});
	};*/
//	Artworks.push({img: '/images/loader.gif', title: 'Loading...', medium: '', size: ''});
//	CacheImage(Artworks.length-1);
	window.onresize=WindowResized;
};
function PrepGalleryNav() {
	GalleryNav='';
	for (var i=0; i<Artworks.length; i++) {
//		Artworks[i].cache=new Image();
		Artworks[i].compcache=new Image();
		GalleryNav+='<a href="#" onclick="ShowArtwork('+i+'); return false;"><img src="/images/artworks/thumbs/'+(Artworks[i].thumb!=undefined?Artworks[i].thumb:Artworks[i].filename)+'" title="'+Artworks[i].title+'" /></a>';
	};
};

function ChangePage(RelativePage) {
	CurrentPage+=RelativePage;
	if (CurrentPage<1) {
		CurrentPage=1;
		return;
	} else if (CurrentPage>MaxPage) {
		CurrentPage=MaxPage;
		return;
	};
	document.getElementById('CurrentPage').innerHTML=CurrentPage;
	var iStart=(CurrentPage-1)*ShowMax;
	for (var i=0; i<ShowMax; i++) {
		eval('var thisTM=TMArtwork'+i+';');
		thisTM.StartFade(0, 0.1);
		if ((iStart+i)<Artworks.length) {
			RemoveClassFromElement(thisTM.OBJ, 'Hidden');
			if (Artworks[iStart+i].compcache.src=='') {
				setTimeout('TMArtwork'+i+".OBJ.firstChild.innerHTML='<img src=\"/images/loading.gif\" class=\"Loading\" />';", 150);
				eval('Artworks[iStart+i].compcache.onload=function () { HideArtworkLoading('+(iStart+i)+'); };');
				Artworks[iStart+i].compcache.src='/images/artworks/small/'+Artworks[iStart+i].filename;
			} else {
				setTimeout('ShowArtworkClipped('+(iStart+i)+');', 150);
			};
		} else
			AddClassToElement(thisTM.OBJ, 'Hidden');
	};
	if (CurrentPage+1<MaxPage)
		setTimeout('CacheNextPage('+(CurrentPage+1)+');', 5000);
};
function CacheNextPage(ThisPage) {
	if (ThisPage==CurrentPage)
		return;
	var iStart=ThisPage*ShowMax;
	for (var i=0; i<ShowMax; i++) {
		Artworks[iStart+i].compcache.src='/images/artworks/small/'+Artworks[iStart+i].filename;
	};
};

function HideArtworkLoading(thisImage) {
	eval('var thisTM=TMArtwork'+(thisImage%ShowMax)+';');
	thisTM.StartFade(0, 0.3);
	setTimeout('ShowArtworkClipped('+thisImage+');', 300);
};
function ShowArtworkClipped(Index) {
	eval('var thisTM=TMArtwork'+(Index%ShowMax)+';');
/*	var Width=Artworks[Index].compcache.width; var Height=Artworks[Index].compcache.height;
	if (Height<172) {
		var Ratio=172/Height;
		Width=Math.round(Width*Ratio);
		Height=172;
	};
	if (Width<230) {
		var Ratio=230/Width;
		Height=Math.round(Height*Ratio);
		Width=230;
	};*/
	thisTM.OBJ.firstChild.innerHTML='<img src="/images/artworks/small/'+Artworks[Index].filename+'" height="100%" width="100%" onclick="ShowImage('+Index+');" />';
	thisTM.OBJ.childNodes[1].innerHTML=Artworks[Index].title;
	var Details=Artworks[Index].medium+', '+Artworks[Index].size;
	thisTM.OBJ.lastChild.innerHTML=Details.replace(/^,\s*|\s*,\s*$/, '');
	thisTM.StartFade(1, 0.3);
};

function CacheImage(Index, Callback) {
	if (Artworks[Index].cache==undefined) {
		Artworks[Index].cache=new Image();
		if (Callback!=undefined)
			Artworks[Index].cache.onload=DisplayArtwork;
		Artworks[Index].cache.src='/images/artworks/bigr/'+Artworks[Index].filename;
	};
};

function ShowImage(Index) {
	ChosenImage=Index;
	TMOverlay.Show();
	TMBGOverlay.StartFade(0.6, 0.3);
	TMImgOverlay.StartFade(1, 0.5);
	PositionTop=Math.round(WindowHeight/2+document.body.offsetTop+(window.pageYOffset?window.pageYOffset:(document.body.parentElement?document.body.parentElement.scrollTop:0)));
	ImgOverlay.lastChild.innerHTML='<img src="/images/loader.gif" style="margin-top:'+PositionTop+'px;margin-left:'+Math.round((WindowWidth-91)/2)+'px;border:30px white solid;"/>';
	if (Artworks[Index].cache==undefined) {
		CacheImage(Index, DisplayArtwork);
/*		Artworks[Index].cache=new Image();
		Artworks[Index].cache.onload=DisplayArtwork;
		Artworks[Index].cache.src='/images/artworks/bigr/'+Artworks[Index].filename;*/
	} else ShowArtwork();
//	ImgOverlay.innerHTML+='<img src="/images/loader.gif" style="margin-top:'+PositionTop+'px;" />';
};

function HideOverlay() {
	TMImgOverlay.StartFade(0, 0.3);
	TMBGOverlay.StartFade(0, 0.3);
	setTimeout('TMOverlay.Hide();', 400);
	ChosenImage=-1;
};

function DisplayArtwork() {
	TMImgOverlay.StartFade(0, 0.3);
	setTimeout('ShowArtwork();', 350);
};

var ImagePopupSize=640;
var NavPerRow=10;
var EachNavTotalWidth=48+10+2;
var GalleryNavDIV=null; var TMGalleryNavDIV=null;
var NoPostcard=false;
function ShowArtwork(Index) {
	if (Index==undefined)
		Index=ChosenImage;
	else if (Index==ChosenImage)
		return;
	else if (Artworks[Index].cache==undefined || !Artworks[Index].cache.complete) {
		if (Artworks[Index].cache==undefined)
			CacheImage(Index);
		setTimeout('ShowArtwork('+Index+');', 200);
		return;
	};
	if (Index>0) {
		CacheImage(Index-1);
	};
	if (Index<Artworks.length-2) {
		CacheImage(Index+1);
	};
	var ArtworkDetails=Artworks[Index].medium;
	if (Artworks[Index].size)
		ArtworkDetails+=(ArtworkDetails?', ':'')+Artworks[Index].size;
	ArtworkDetails=ArtworkDetails.replace(/^,\s*|,\s*$/g, '');
	var Width=Artworks[Index].cache.width; var Height=Artworks[Index].cache.height;
	if (Height>ImageMaxHeight) {
		var Ratio=ImageMaxHeight/Height;
		Width=Math.round(Width*Ratio);
		Height=ImageMaxHeight;
	};
	if (Width>ImageMaxWidth) {
		var Ratio=ImageMaxWidth/Width;
		Height=Math.round(Height*Ratio);
		Width=ImageMaxWidth;
	};
//	var MarginLeft=Math.round((WindowWidth-Width)/2);
	var MarginLeft=Math.round((WindowWidth-ImagePopupSize-30)/2);
	if (ImgOverlay.lastChild.childNodes.length==0 || ImgOverlay.lastChild.firstChild.tagName.toUpperCase()=='IMG') {
		var ScrollTop=window.pageYOffset?window.pageYOffset:(document.body.parentElement?document.body.parentElement.scrollTop:0);
		ImgOverlay.lastChild.innerHTML='<div class="Image" style="width:'+ImagePopupSize+'px;margin-top:'+(ScrollTop+15)+'px;margin-left:'+MarginLeft+'px;" onclick="event.cancelBubble=true;"><div id="Close" onclick="HideOverlay();"><img src="/images/close.png" /></div><img src="'+Artworks[Index].cache.src+'" height="'+Height+'" width="'+Width+'" /><div class="ImageDetails"><div class="RightLinks"'+(NoPostcard?' style="display:none;"':'')+'><a href="/postcard.php/'+Artworks[Index].ID+'">Send an E-Postcard</a></div><h3>'+Artworks[Index].title+'</h3>'+ArtworkDetails+'<br/>'+Artworks[Index].description+'</div><div class="GalleryNav"><div style="width:'+(Artworks.length*EachNavTotalWidth)+'px;">'+GalleryNav+'</div></div></div>';
		TMImg=TM.AddOBJ(ImgOverlay.lastChild.firstChild.childNodes[1]);
		TMImgOverlay.StartFade(1, 0.3);
		GalleryNavDIV=ImgOverlay.lastChild.firstChild.lastChild.firstChild;
		TMGalleryNavDIV=TM.AddOBJ(GalleryNavDIV.parentNode);
	} else {
		TMImg.StartFade(0, 0.3);
		GalleryNavDIV.childNodes[ChosenImage].className='';
		setTimeout('TMImg.OBJ.style.height=\''+Height+'px\'; TMImg.OBJ.style.width=\''+Width+'px\';  TMImg.OBJ.src=\''+Artworks[Index].cache.src+'\'; TMImg.StartFade(1, 0.3); ImgOverlay.lastChild.firstChild.style.marginLeft=\''+MarginLeft+'px\';  ImgOverlay.lastChild.firstChild.childNodes[2].innerHTML=\'<div class="RightLinks"'+(NoPostcard?' style="display:none;"':'')+'><a href="/postcard.php/'+Artworks[Index].ID+'">Send an E-Postcard</a></div><h3>'+Artworks[Index].title.replace(/'/g, "\\'")+'</h3>'+ArtworkDetails+'<br/>'+Artworks[Index].description+'\';', 400);
	};
	ChosenImage=Index;
	FocusGalleryNav();
};

function WindowResized() {
	UpdateDimensions();
	if (ChosenImage!=-1) {
		var Width=Artworks[ChosenImage].cache.width; var Height=Artworks[ChosenImage].cache.height;
		if (Height>ImageMaxHeight) {
			var Ratio=ImageMaxHeight/Height;
			Width=Math.round(Width*Ratio);
			Height=ImageMaxHeight;
		};
		if (Width>ImageMaxWidth) {
			var Ratio=ImageMaxWidth/Width;
			Height=Math.round(Height*Ratio);
			Width=ImageMaxWidth;
		};
		TMImg.OBJ.style.height=Height+'px';
		TMImg.OBJ.style.width=Width+'px';
//		ImgOverlay.lastChild.firstChild.style.width=Width+'px';
		var MarginLeft=Math.round((WindowWidth-ImagePopupSize-30)/2);
		ImgOverlay.lastChild.firstChild.style.marginLeft=MarginLeft+'px';
	};
};

function FocusGalleryNav() {
	GalleryNavDIV.childNodes[ChosenImage].className='Active';
	var SL=0;
	if (ChosenImage>Artworks.length-7)
		SL=parseInt(GalleryNavDIV.style.width)-ImagePopupSize;
	else if (ChosenImage>4)
		SL=(ChosenImage-4)*EachNavTotalWidth;
	TMGalleryNavDIV.StartScroll(SL, -1, 0.5);
//	GalleryNavDIV.parentNode.scrollLeft=SL;
/*	var MarginLeft=0;
	if (ChosenImage>Artworks.length-7)
		MarginLeft=(parseInt(GalleryNavDIV.style.width)-ImagePopupSize)/EachNavTotalWidth*-1;
	else if (ChosenImage>4)
		MarginLeft=4-ChosenImage;
	MarginLeft*=EachNavTotalWidth;
	GalleryNavDIV.style.marginLeft=MarginLeft+'px';
*/
//		GalleryNavDIV.scrollTo(0, 0);
//	else	GalleryNavDIV.scrollTo((Index-5)*EachNavTotalWidth, 0);
};
