var MainImgHref;
var MainImgDescr;
var MainImgA = document.getElementById('MainPhotoHref');
var ImgDescr = document.getElementById('MainPhotoDescr');
var ImgDescr;
var FetchImg;

var count=0;
var ticks=10;
var delay=10;
var timerID = 0;
var MainImg1 = document.getElementById('MainPhoto1');
var MainImg2 = document.getElementById('MainPhoto2');
var Wait = document.getElementById('Wait');
var GalErrors=  document.getElementById('gal_errors');
var FadeOutImg;
var FadeInImg;
var ImgSrc;
var ImgId;
var PreviousPhoto=-1;
var NextPhoto=1;
var loaded = false;
var startTime=0;
var graphicsMeasured=false;
var tooSlowFade=false;
var tooSlowFadeTimeLimit = 3000;
var HilightThumbA;




var viewportwidth;
var viewportheight;



positionMainPhotos();
window.onresize=positionMainPhotos;


function positionMainPhotos(){
	ar=findPos(MainImg1);
	imgl=ar[0];
	imgt=ar[1];
	galArrows=document.getElementById('galArrows');

	galt=(parseInt(imgt)-38);
	galArrows.style.left=imgl+'px';
	galArrows.style.top=galt + 'px';
	galArrows.style.position='absolute';

	ImgDescr.style.left=imgl+'px';
	ImgDescr.style.top=imgt+'px';
	ImgDescr.style.position='absolute';

	ImgDescr.style.left=imgl+'px';
	ImgDescr.style.top=imgt+'px';
	ImgDescr.style.position='absolute';

	MainImg1.style.left=imgl+'px';
	MainImg1.style.top=imgt+'px';
	MainImg1.style.position='absolute';

	MainImg2.style.left=imgl+'px';
	MainImg2.style.top=imgt+'px';
	MainImg2.style.position='absolute';

	ImgDescr.style.left=imgl+'px';
	ImgDescr.style.top=imgt+'px';
	ImgDescr.style.position='absolute';

	GalErrors.style.left=(parseInt(imgl)-138)+'px';
	GalErrors.style.top=(parseInt(imgt)+480)+'px';
	GalErrors.style.position='absolute';


}



function findPos(obj) {
	var curleft = curtop = 0;


		thumbs=document.getElementById("galthumbs");
		curleft= thumbs.offsetLeft + thumbs.offsetWidth +24;

		curtop= thumbs.offsetTop  +50;
		return [curleft,curtop];


}

function hilightTab(elem)
{
idParts=elem.id.split('_');
num=idParts[1];
tgrp = document.getElementById('TagGroup_' + num);
ahrefs = tgrp.getElementsByTagName('a');
a=ahrefs[0];
a.onclick();
}

function highlightThumb(elem)
{
imgs=elem.getElementsByTagName('img');
img=imgs[0];

gal=document.getElementById("gallery");
imgs=gal.getElementsByTagName('img');
for (i=0;i<imgs.length;i++)
	{imgs[i].className="";}
img.className="activeImage";
}


function highlightThumbsTab(tag_id,tagroup_id)
{


gal=document.getElementById("gallery");
divs=gal.getElementsByTagName('div')
for (i=0;i<divs.length;i++)
	{div=divs[i];
	 if (div.id.substr(0,9)=='TagGroup_')
		 { if (div.id == tagroup_id)
			{//div.style.visibility="visible";
			div.style.display="block";
			}
		   else
		   	{//div.style.visibility="hidden";
		   	div.style.display="none";
		   	}
		 }
	}

alphas=gal.getElementsByTagName('a');
for (i=0;i<alphas.length;i++)
	{a=alphas[i];
	 if (a.id.substr(0,4)=='Tag_')
		 { if (a.id == tag_id)
			{a.className="gCaption";}
		   else
		   	{a.className="galtag";}
		 }
	}
tagGrpDiv=document.getElementById(tagroup_id);
tagGrpImgElems=tagGrpDiv.getElementsByTagName('img');

for (i=0;i<tagGrpImgElems.length;i++)
	{imgel=tagGrpImgElems[i];
	imsrc= imgel.getAttribute( 'src')
	if (! imsrc ){
		imgel.setAttribute('src', imgel.getAttribute('xsrc') ) ;
	}


	}

}


function scrollThumbs(img){
	gthumbs = document.getElementById('galthumbs');


	if (gthumbs){
	st=img.offsetTop -350;



	step = -1;
	if (st>gthumbs.scrollTop){step=1;}
		while ( gthumbs.scrollTop != st)
			{pst=gthumbs.scrollTop;
			gthumbs.scrollTop += step;
			if (gthumbs.scrollTop==pst)break;
			}

		}




}

function showPhoto(elem,tag_id,tagroup_id,href,src)
{
ImgId=elem.id;
highlightThumb(elem);

highlightThumbsTab(tag_id,tagroup_id);

MainImgHref = href ;
MainImgDescr = elem.title ;

ImgDescr = document.getElementById('MainPhotoDescr');
ImgDescr.innerHTML = "";
/* emulate a delayed response */
/*setTimeout("loadImage('" + src + "')",2000); */

ImgSrc=src;
loaded=false;
loadImage();
setTimeout("showWaitDiv()",150);
}




function showWaitDiv()
{
if (!loaded)
	{Wait.style.display="block";}
}





function loadImage()
{
FetchImg=new Image();
FetchImg.onload=imgLoad;
FetchImg.onerror=imgnotexists;
FetchImg.src = ImgSrc;
}



function imgnotexists(){
	galerrorsDiv=document.getElementById('gal_errors');
	galerrorsDiv.innerHTML = galerrorsDiv.innerHTML + "<a href='" + ImgSrc +"' target='_blank'>" + ImgSrc + "</a><br/>";
	
	

}

function imgLoad()
{
	loaded=true;
	Wait.style.display="none";
	if (MainImg1.style.opacity ==1.00)
		{
		MainImg2.src=ImgSrc;
		MainImg2.xOpacity=0.0;
		MainImg1.xOpacity=1.0;
		FadeOutImg = MainImg1;
		FadeInImg = MainImg2;
		}
	else
		{
		MainImg1.src=ImgSrc;
		MainImg1.xOpacity=0.0;
		MainImg2.xOpacity=1.0;
		FadeOutImg = MainImg2;
		FadeInImg = MainImg1;

		}

		slow_card=Get_Cookie('MadPyGaltooSlowFade');
		if (slow_card != null)
		{

		tooSlowFade=slow_card;
		graphicsMeasured=true;
		}
	if (!graphicsMeasured)
		{d=new Date();
    	 startTime=d.getTime();}
    if (tooSlowFade != 1)
		{fadeout_in();}
	else
		{swapImages();}
}




function swapImages()
	{
	setElemOpacity(FadeOutImg,0);
	//FadeOutImg.style.display="none";
	setElemOpacity(FadeInImg,1);
	//FadeInImg.style.display="block";
	showImageDetails();
	}




function fadeout_in()
{

	fo_Opacity = FadeOutImg.xOpacity;
	fi_Opacity = FadeInImg.xOpacity;

	fo_Opacity = parseFloat(fo_Opacity) - 0.05;
	fi_Opacity =parseFloat(fi_Opacity) + 0.05;

	//FadeInImg.style.display = "block";

	FadeOutImg.xOpacity=fo_Opacity;
	FadeInImg.xOpacity=fi_Opacity;

	setOpacity(FadeOutImg);
	setOpacity(FadeInImg);


	if(fo_Opacity<0) {
		//FadeOutImg.style.display = "none";
		if (!graphicsMeasured)
			{measureGraphics();}
		showImageDetails();
	} else {
		setTimeout("fadeout_in()",delay);
	}

}


function setOpacity(obj) {
		if(parseFloat(obj.xOpacity) >= 1.00) {
			obj.xOpacity =1.00;
			 
		}
		if(parseFloat(obj.xOpacity) <= 0.00) {
			obj.xOpacity =0.00;
			 
		}
		obj.style.opacity = obj.xOpacity;
		obj.style.MozOpacity = obj.xOpacity;
		obj.style.filter = "alpha(opacity=" + (parseFloat(obj.xOpacity)*100) + ")";
		 
	}

function setElemOpacity(obj,value) {
	
		obj.style.opacity =value;
		obj.style.MozOpacity = value;
		obj.style.filter = "alpha(opacity=" + (value*100) + ")";
	}


function measureGraphics()
{
/* Some pc's have weaker graphic cards
so it's better to shut down fadeout   */
d=new Date();
timespan=d.getTime()-startTime;
if (timespan >  tooSlowFadeTimeLimit)
	{tooSlowFade=true;

	Set_Cookie('MadPyGaltooSlowFade',1,60,'/');}
	else
	{tooSlowFade=false;

	Set_Cookie('MadPyGaltooSlowFade',0,60,'/');
	}
graphicsMeasured=true;

}

function showImageDetails()
{

MainImgA.setAttribute('href', MainImgHref);

ImgDescr.innerHTML = MainImgDescr;
setArrowsLinks();


}

function setArrowsLinks()
{

idParts=ImgId.split('_');
num=parseInt(idParts[1]);
fnum=num+1;bnum=num-1;
fstr=fnum.toString();
bstr=bnum.toString();
forw=document.getElementById('Img_' + fstr);
back=document.getElementById('Img_' + bstr);

if (forw)
	{NextPhoto=fnum;
	enableArrow('forw',true);}
else
	{NextPhoto=-1;
	 enableArrow('forw',false);}
if (back)
	{PreviousPhoto=bnum;
	 enableArrow('back',true);}
else
	{PreviousPhoto=-1;
	 enableArrow('back',false);}

}

function showNextPhoto()
{

if (NextPhoto != -1)
 {
	img=document.getElementById('Img_' + NextPhoto);
	if (img)
		{img.onclick();
		scrollThumbs(img); }
 }

}

function showPreviousPhoto()
{
if (PreviousPhoto != -1)
 {img=document.getElementById('Img_' + PreviousPhoto);
	if (img)
	{img.onclick();
	scrollThumbs(img); }

 }

}
function enableArrow(prefix,enable)
{
En=document.getElementById(prefix + '_en');
Dis=document.getElementById( prefix + '_dis');
	if (enable)
	{
	En.style.display="inline";
	Dis.style.display="none";
	}
	else
	{
	En.style.display="none";
	Dis.style.display="inline";
	}
}
var timerId;
function startStopSlideShow(){

	el=document.getElementById('slide');
	eli=document.getElementById('slideimg');
	if (el.title==StartSlide){
		el.title=StopSlide;
		el.innerHTML= StopSlide;
		document.getElementById('refresh').style.display='inline';


		nextSlide();
	}else{
		el.title=StartSlide;
		el.innerHTML= StartSlide;
		document.getElementById('refresh').style.display='none';
		stopSlide();

	}



}

function stopSlide()
{


		  clearTimeout(timerId);



}

function nextSlide()
{


	if (NextPhoto != -1)
	 {
		  clearTimeout(timerId);
		    showNextPhoto();
		    var sel = document.getElementById("slide_interval");
		    inde=sel.options[sel.selectedIndex].value;
		    timerId = setTimeout("nextSlide()",parseInt(inde)*1000);
	 }
	else{
		el=document.getElementById('slide');
		eli=document.getElementById('slideimg');
		el.title=StartSlide;

		el.innerHTML='slideshow';
		document.getElementById('refresh').style.display='none';
		NextPhoto=0;
	}


}

