function readIEVer()
{
	var agent	= navigator.userAgent;
	var offset	= agent.indexOf( "MSIE" );
	if( offset < 0 )
	{
		return 0;
	}
	return parseFloat( agent.substring( offset + 5, agent.indexOf( ";", offset ) ) );
}

function PreloadImages()
{ 
  var args = PreloadImages.arguments;
  document.imageArray = new Array(args.length);
  for(var i=0; i<args.length; i++)
  {
    document.imageArray[i] = new Image;
    document.imageArray[i].src = args[i];
  }
}


function switchImage(imgName, imgSrc, delay) 
{
  if (document.images)
  {
    if (imgSrc != "none")
    {
		if ((readIEVer() >= 4.0)&&(delay!=0)) {
			document.images[imgName].style.filter="blendTrans(duration=transDuration) revealTrans(duration=1.0,transition=7)";
			document.images[imgName].filters.blendTrans.Apply();
			document.images[imgName].src = imgSrc;
			document.images[imgName].filters.blendTrans.Play();
		}
		else {
			document.images[imgName].src = imgSrc;
		}
    }
  }
}

function SlideShow(slideList, image, speedList, transDuration, name)          
{
  this.slideList = slideList;
  this.image = image;
  this.speedList = speedList;
  this.transitionDuration = transDuration;
  this.name = name;
  this.current = 0;
  this.timer = 0;
}
SlideShow.prototype.play = SlideShow_play;  

function SlideShow_play()       
{
  with(this)
  {
    if(current++ == slideList.length-1) current = 0;
    switchImage(image, slideList[current], transitionDuration);
    clearTimeout(timer);
    timer = setTimeout(name+'.play()', speedList[current]);
  }
}

function FindObject(nameSought, docToSearch) {
	var delimiterPos,i,objectFound;
	
	// If no document passed, use current
	if (!docToSearch) docToSearch=document;
	
	// Does the name sought contain a '?' - if so, the text following the '?' is the frame name
	if ((delimiterPos=nameSought.indexOf("?"))>0 && parent.frames.length) {
		docToSearch=parent.frames[nameSought.substring(delimiterPos+1)].document;
		nameSought=nameSought.substring(0,delimiterPos);
	}
	
	// Search HTML tags
	if (!(objectFound=docToSearch[nameSought]) && docToSearch.all) objectFound=docToSearch.all[nameSought];
	
	// Not found - search form elements
	for (i=0; !objectFound && i<docToSearch.forms.length; i++) objectFound=docToSearch.forms[i][nameSought];
	
	// Still not found - search layers
	for (i=0; !objectFound && docToSearch.layers && i<docToSearch.layers.length; i++) x=findObject(nameSought,docToSearch.layers[i].document);
	
	// Finally, if still not found, use getElementByID
	if (!objectFound && document.getElementById) objectFound=document.getElementById(nameSought);
	
	// Return the object sought
	return objectFound;
}

function DisplayLayers() {
	var currentLayer,currentLayerStyle,iArg,iLayer,layerFound,argList=DisplayLayers.arguments;

	// Create an array to store the list of divisions currently visible
	if(!document.visibleListCreated) {
		visibleLayerList=new Array();
		document.visibleListCreated=true;
	}

	// Hide previously displayed layers
	for (iLayer=0; iLayer<visibleLayerList.length; iLayer++) {

		// Find the object
		if ((currentLayer=FindObject(visibleLayerList[iLayer]))!=null) {
	
			// Hide it
			currentLayerStyle=(document.layers)?currentLayer:currentLayer.style;
			currentLayerStyle.visibility="hidden";
		}
	}

	// Clear list of displayed layers
	visibleLayerList=new Array();

	// Display all named layers
	for (iArg=0; iArg<argList.length; iArg++) {

		// Find the layer
		if ((currentLayer=FindObject(argList[iArg])) != null) {
	
			// Make it visible
			currentLayerStyle=(document.layers)?currentLayer:currentLayer.style;
			currentLayerStyle.visibility="visible";
		
			// Add to list of displayed layers
			layerFound=false;
			for (iLayer=0; iLayer<visibleLayerList.length; iLayer++) {
			if (argList[iArg]==visibleLayerList[iLayer]) {layerFound=true;}
			}
			if (!layerFound) {visibleLayerList[visibleLayerList.length++]=argList[iArg];}
		}
	}
}