With over thirty years experience of software development in C, Visual Basic, Assembler, Javascript, ASP.NET, HTML and CSS, I've had many projects. Currently, most of my software development time is spent working on Film Free Projection (78,000 lines of Visual Basic) which runs under Windows. Recently, I've started developing applications for Android and generating eBooks in the ePub format using Help & Manual.

function SlideShow()
{
if (TimerRunning == 0)
{
if(SelectedFileName==lastImage)
{
selectFirstImage();
}
SlideShowTimer = setTimeout("nextSlideShowImage()", 2000);
TimerRunning = 1;
sortOutControls();
}
else
{
clearTimeout(SlideShowTimer);
TimerRunning = 0;
sortOutControls();
}
}

function stopShow()
{
clearTimeout(SlideShowTimer);
TimerRunning = 0;
sortOutControls();
}
function nextSlideShowImage()
{
TimerRunning = selectNextImage();
if (TimerRunning == 1)
{
SlideShowTimer = setTimeout("nextSlideShowImage()", 2000);
}
else
{
sortOutControls();
}
}

function toggleInformation()
{
showInformation = !showInformation;
if (!showInformation)
{
document["InformationBtn"].title = "Show Image Information";
hideInfo();
}
else
{
document["InformationBtn"].title = "Hide Image Information";
showInfo();
}
}
function selectPreviousImage()
{
var sindex=SelectedFileName.indexOf('[',0);
var eindex=SelectedFileName.indexOf(']',0);
if(sindex==-1 || eindex==-1)
{
/* things have gone really wrong! */
return;
}
var imageNo=parseInt(SelectedFileName.substring(sindex+1,eindex));
if(imageNo==0)
{
return;
}
imageNo--;
var newFile=SelectedFileName.substr(0,sindex+1)+imageNo+"].jpg";
selectImage(newFile);
}

function selectNextImage()
{
var sindex = SelectedFileName.indexOf('[', 0);
var eindex = SelectedFileName.indexOf(']', 0);
if (sindex == -1 || eindex == -1)
{ /* things have gone really wrong! */
return 0;
}
var imageNo = parseInt(SelectedFileName.substring(sindex + 1, eindex));
imageNo += 1;
var newFile = SelectedFileName.substr(0, sindex + 1) + imageNo + "].jpg";
/*
check we have such an image...
*/
var inst;
var index;
var FileName;
var Found = 0;
for (inst = 0; inst < document.images.length; inst++)
{
index = document.images[inst].src.indexOf('Thumbnails/');
if (index == -1)
{
continue;
} /* candidate image */
FileName = document.images[inst].src.substr(index + 11);
index = newFile.indexOf('images/');
if (FileName == newFile.substr(index + 7))
{
Found = 1;
break;
}
}
if (Found == 1)
{
DisplayedShootingInfo = ShootingInfo[imageNo];
selectImage(newFile);
return 1;
}
sortOutControls();
return 0;
}

function moveToPrevious(amount)
{
if (Offset > 0)
{
new Effect.Move('ImageInside', {
x: amount,
y: 0,
transition: Effect.Transitions.sinoidal
});
Offset -= amount;
if (Offset < amount && Offset >= 0)
{
new Effect.Move('ImageInside', {
x: 0,
y: 0,
mode: 'absolute',
transition: Effect.Transitions.sinoidal
});
Offset = 0;
}
if (Offset <= 0)
{
new Effect.Opacity('Left', {
from: 1,
to: 0
});
}
MakeRightVisible(1);
}
}