//
// montage.js
//

var monBlock = null;
var monImg = null;
var monIdx = 0;
var monContainer= null;
var monTimeout = 7000;

var isCSS = false;
var isW3C = false;
var isIE4 = false;
var isNN4 = false;
var isIE6 = false;
var isIE7 = false;
var isGecko = false;
var isOpera = false;
var isDHTML = false;
var suppressMenus = false;
var legacyMode = false;
var timerID = null;
var subtimerID = null;
var m_anchorClicked = false;

function montage( href, src, caption, width, no )
{
	
	autoconfig();
// this is the case for browsers that don't support filters...
var cycle = Math.floor( Math.random() * href.length );

// switch off animation if we're not on broadband

var m_montage = ( typeof(animate) != "undefined" ? animate : hasBroadband() );

if( m_montage == false || src.length <= 1 || !( isIE4 || isW3C ) )
{

//montagePicker( href, src, caption, cycle );
//return;
}

// go build all of the nested DIVs out
monIdx = cycle;

document.writeln( "<div id=\"containerpic" + no + "\" style=\"width:" + width +"px;\">" );

for( i = 0; i < src.length; i++ )
{
// set up a placeholder
document.writeln( "\t<div id=\"montage" + no + "_" + i + "\" style=\"display:none\">" );
var tmp = no + "_" + i
montagePicker( href, src, caption, i , tmp);

document.writeln( "\t</div>" );
}

document.writeln( "</div>" );

// pull the images out
monBlock = new Array( src.length );
monImg = new Array( src.length );

for( i = 0; i < src.length; i++ )
{
monBlock[i] = document.getElementById( "montage" + no + "_" + i ).style;
monImg[i] = document.getElementById( "monimg" + no + "_" + i );

if( monImg[i] == null )
{
var tmp = no + "_" + i
montagePicker( href, src, caption, i , tmp);
return;
}
// alert( "foo" );
}

monContainer = document.getElementById("containerpic" + no);

montageEffects(no);
}

function montageEffects(no)
{
	
var nextImage = (monIdx + 1) % monImg.length;

// run the transition
if( readIEVer() >= 4.0 )
{
monContainer.style.filter = "blendTrans(duration=1.5) revealTrans(duration=1.0,transition=7)";

monContainer.filters(0).apply();
monContainer.filters(1).apply();

montageSelect( nextImage );

monContainer.filters(0).play();
monContainer.filters(1).play();
}
else
{
montageSelect( nextImage );
}

// asked to be called again a little later
setTimeout( "montageSwap(" + no +")", monTimeout );
}

function montageSelect( nextImage )
{
//alert( monImg[monIdx].style.visibility );
monBlock[monIdx].display = "none";
monIdx = nextImage;
monBlock[monIdx].display = "block";
} 

function montageSwap(no)
{
if( monImg[monIdx].complete )
{
// move the image index along
montageEffects(no);
}
else
{
// check again 3 seconds later
setTimeout( "montageSwap(" + no + ")", 4000 );
}
}

function montagePicker( href, src, caption, cycle, no)
{
	
if( href[cycle] != null ) 
{
	
document.writeln( "\t\t <IMG SRC=\"" + src[cycle] + "\" alt=\"" + caption[cycle] + "\" BORDER=\"0\" ID=\"monimg" + no + "\">" );
}
else
{
document.writeln( "\t\t<IMG SRC=\"" + src[cycle] + "\" ID=\"monimg" + no + "\">" );
}
}

function hasBroadband()
{
if( readIEVer() < 5.0 )
{
return false;
}

try
{
	
document.body.addBehavior ("#default#clientCaps");

return ( typeof(document.body.connectionType) != "undefined" && document.body.connectionType == "lan" );
}
catch( e )
{
return false;
}
}


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 autoconfig()
{
if( document && document.images )
{
isCSS = (document.body && document.body.style) ? true : false;
isW3C = (isCSS && document.getElementById) ? true : false;
isIE4 = (isCSS && document.all && readIEVer() >= 4.0) ? true : false;
isNN4 = (document.layers) ? true : false;
isGecko = (isCSS && navigator && navigator.product && navigator.product == "Gecko");
isOpera = (isCSS && navigator.userAgent.indexOf( "Opera") != -1 );
isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;

//isIE7CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
isIE6 = ( isIE6CSS && readIEVer() >= 6.0 );
isIE7 = ( isIE6CSS && readIEVer() >= 7.0 );
isDHTML = isCSS && ( isIE4 || isGecko || isOpera );
if( suppressMenus )
{
isDHTML = false;
}
else if( isOpera && readOperaVer() < 7 )
{
isDHTML = false;
}
else if( isGecko && navigator.productSub <= 20011022 )
{
isDHTML = false;
}
else if( isGecko && navigator.productSub == 20030107 )
{
var x = navigator.userAgent.indexOf( "AppleWebKit" );
if( x > -1 )
{
isDHTML = ( navigator.userAgent.substring( x + 12, x + 15 ) ) > 300;
}
else
{
isDHTML = false;
}
}
}
}
// -------------------------------------------------------------
// end of montage.js
// -------------------------------------------------------------

