var isCSS = false;
var isW3C = false;
var isIE4 = false;
var isNN4 = false;
var isIE6 = 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 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;
		isIE6 = ( isIE6CSS && readIEVer() >= 6.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;
			}
		}
	}
}

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 readOperaVer() {
	var agent = navigator.userAgent;
	var offset = agent.indexOf( "Opera" );
	if( offset < 0 ) {
		return 0;
	}
	return parseFloat( agent.substring( offset + 6 ) );
}



var monBlock	= null;
var monImg		= null;
var monIdx		= 0;
var monContainer= null;
var monTimeout	= 7000;
var monEffect	= 2;
var monHref;
var monSrc;
var monCaption;

function montage( href, src, caption, width, height, animate ) {
	
	if( monBlock ) {
		return;
	}
		
	monHref		= href;
	monSrc		= src;
	monCaption	= caption;
	
	var cycle	= Math.floor( Math.random() * href.length );

	var m_montage	= ( typeof(animate) != "undefined" ? animate : hasBroadband() );				
	if( m_montage == false || src.length <= 1 || !isDHTML ) {
		document.writeln( montagePicker( cycle ) );
		return;
	}
	
	monIdx		= cycle;
	var nextImage	= (monIdx + 1) % src.length;

	if( height > 0 ) {
		document.writeln( "<div id=\"container\" style=\"width:" + width +"px;height:" + height + "px\">" );
	} else {
		document.writeln( "<div id=\"container\" style=\"width:" + width +"px\">" );
	}

	for( i = 0; i < src.length; i++ ) {
		document.write( "<div id=\"montage" + i + "\" style=\"display:none\">" );
		if( i == nextImage ) {
			document.write(montagePicker(i));
		}
		document.write("</div>");
	}

	document.writeln("</div>");

	monBlock	= new Array(src.length);
	monImg		= new Array(src.length);

	for(i=0; i < src.length; i++) {
		monBlock[i]	= document.getElementById("montage" + i);
		if(i == nextImage) {
			monImg[i] = document.getElementById("monimg" + i );
		} else {
			monImg[i] = null;
		}
	}

	monContainer = document.getElementById("container");
	
	montageEffects();
}

function montageEffects() {
	
	var nextImage	= (monIdx + 1) % monImg.length;
	
	if( readIEVer() >= 4.0 && monEffect > 0 ) {
		try {
			if (monEffect == 1 ) {
				monContainer.style.filter = "blendTrans(duration=0.6)";
				monContainer.filters(0).apply();
 				montageSelect( nextImage );
				monContainer.filters(0).play();
			} else {
				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();
			}
		}
		catch(e) { montageSelect( nextImage ); }
	} else {
		montageSelect(nextImage);
	}

	setTimeout("montagePrep()", monTimeout - 1500);
	setTimeout("montageSwap()", monTimeout);
}

function montageSelect( nextImage ) {
	monBlock[monIdx].style.display = "none";
	monIdx = nextImage;
	monBlock[monIdx].style.display = "block";
}		

function montagePrep() {
	var nextImage	= (monIdx + 1) % monImg.length;
	if(!monImg[nextImage]) {
		monBlock[nextImage].innerHTML = montagePicker( nextImage );
		monImg[nextImage] = document.getElementById( "monimg" + nextImage );
	}
}

function montageSwap() {
	if (monImg[monIdx].complete) {
		montageEffects();
	} else {
		setTimeout("montageSwap()", 3000);
	}
}

function montagePicker(cycle) {
	var divHtml;
	if (monHref[cycle] != null) {
		divHtml = "<a href=\"" + monHref[cycle] + "\"><img src=\"" + monSrc[cycle] + "\" alt=\"" + monCaption[cycle] + "\" id=\"monimg" + cycle + "\" /></a>";
	} else {
		divHtml = "<img src=\"" + monSrc[cycle] + "\" id=\"monimg" + cycle + "\" alt=\"\" />";
	}
	return divHtml;
}

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;
	}
}