///////////////////////////////////////////////////////////////////////
// tristate.js
// tm holt 10.24.98
//
// tristate image rotator
///////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////
// get what browser we're using
ie4 = (document.all) ? true : false;
ns4 = (document.layers) ? true : false;
ff1 = (document.implementation) ? true : false;

///////////////////////////////////////////////////////////////////////
// keep track of the currently selected menu item

var GCurSelMenuItem  = null;
var GPrevSelMenuItem = null;
var GCurUnhilited    = null;
var GCurImageIndex   = 0;
var GExtraPath       = "";

///////////////////////////////////////////////////////////////////////
// turn on highlight image
function HoverOn(imageIndex, newImageName) {
	
	GCurUnhilited = document.images[imageIndex].src;
	document.images[imageIndex].src = newImageName;
}

///////////////////////////////////////////////////////////////////////
// turn on normal image
function HoverOff(imageIndex, newImageName) {
	
	if ( GCurImageIndex == imageIndex ) {
		document.images[imageIndex].src = GCurSelMenuItem;
	}
	else {
		document.images[imageIndex].src = newImageName;
	}	
}

///////////////////////////////////////////////////////////////////////
// make a new image the active selected one
function Clicked(imageIndex, newImageName) {

	if ( GPrevSelMenuItem != null ) {
		document.images[GCurImageIndex].src = GPrevSelMenuItem;
	}

	GCurImageIndex = imageIndex;
	GPrevSelMenuItem = GCurUnhilited;
	document.images[imageIndex].src = newImageName;
	GCurSelMenuItem = document.images[imageIndex].src;
	window.focus();
}

///////////////////////////////////////////////////////////////////////
// call for selected menu item
function WriteSelected(imageName, name) {


	var iWidth  = 70;
	var iHeight = 18;
	
	var imageSelName = GExtraPath + '../images/mnu-' + imageName + '-sel.gif';
	
	var string =   '<img src="' + imageSelName + '"' +
				   ' name=' + imageName +
				   ' alt="' + name + '"' +
				   ' border=0 align="top"' +
				   ' width='  + iWidth  +
				   ' height=' + iHeight + '>';

	document.write(string);

}

///////////////////////////////////////////////////////////////////////
// call to set up tristate hovering
function WriteHover(imageName, hRef, name) {
	var imageSel;
	var imageSelName;
	var imageUnsel;
	var imageUnselName;
	var imageHilite;
	var imageHiliteName;

	var string;

	var iWidth  = 70;
	var iHeight = 18;

	// selected image pre-load
	imageSelName = GExtraPath + '../images/mnu-' + imageName + '-sel.gif';
	imageSel = new Image(iWidth, iHeight);
	imageSel.src = imageSelName;

	// unselected image pre-load
	imageUnselName = GExtraPath + '../images/mnu-' + imageName + '.gif';
	imageUnsel = new Image(iWidth, iHeight);
	imageUnsel.src = imageUnselName;

	// highlighted image pre-load
	imageHiliteName = GExtraPath + '../images/mnu-' + imageName + '-hl.gif';
	imageHilite = new Image(iWidth, iHeight);
	imageHilite.src = imageHiliteName;

	var imageIndex = document.images.length;
	var targt = "";
	
	if ( ie4 || ns4 || ff1 ) {
		string = '<a href="' + hRef + '"' +
				   ' onMouseOver=HoverOn(' + imageIndex + ',"' +  imageHilite.src + '")' +
				   ' onMouseOut =HoverOff(' + imageIndex + ',"' +  imageUnsel.src + '")' +
				   ' onClick =Clicked(' + imageIndex + ',"' +  imageSel.src + '")>' +
				   '<img src="' + imageUnselName + '"' +
				   ' name=' + imageName +
				   ' alt="' + name + '"' +
				   ' border=0 align="top"' +
				   ' width='  + iWidth  +
				   ' height=' + iHeight + '>' +
				   '</a>';
	}
	else {
		string = '<a href="' + hRef + '">' +
				   '<img src="' + imageUnselName + '"' +
				   ' name=' + imageName +
				   ' alt="' + name + '"' +
				   ' border=0 align="top"' +
				   ' width='  + iWidth  +
				   ' height=' + iHeight + '>' +
				   '</a>';
	}
	document.write(string);
}

///////////////////////////////////////////////////////////////////////
// similar call - no href
function WriteNoHov(imageName, hRef, name) {

	var imageUnsel;
	var imageUnselName;
	
	var iWidth  = 85;
	var iHeight = 18;
	

	// unselected image pre-load
	imageUnselName = GExtraPath + '../images/mnu-' + imageName + '.gif';
	imageUnsel = new Image(iWidth, iHeight);
	imageUnsel.src = imageUnselName;

	var string =   '<img src="' + imageUnselName + '"' +
				   ' name=' + imageName +
				   ' alt="' + name + '"' +
				   ' border=0 align="top"' +
				   ' width='  + iWidth  +
				   ' height=' + iHeight + '>' +
				   '<br>';
	document.write(string);
}

///////////////////////////////////////////////////////////////////////
//
// Write menubar functions
//
///////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////
// About menubar
function WriteMenubar(sSelected) {

	if ( sSelected == "reviews" ) {
		WriteSelected('reviews', 'Reviews');
	}
	else {
		WriteHover('reviews',   'Articles.aspx?REFTYPE=5', 'Reviews');
	}
	
	if ( sSelected == "columns" ) {
		WriteSelected('columns', 'Columns');
	}
	else {
		WriteHover('columns',   'Articles.aspx?REFTYPE=2', 'Columns');
	}
	
	if ( sSelected == "guides" ) {
		WriteSelected('guides', 'Buyers Guides');
	}
	else {
		WriteHover('guides',   'Articles.aspx?REFTYPE=11', 'Buyers Guides');
	}
	
	
// NOTE - I'm going to probably have to resize all these menu items when
// this goes back in...
//
//	if ( sSelected == "versus" ) {
//		WriteSelected('versus', 'Comparison Reviews');
//	}
//	else {
//		WriteHover('versus',   'Articles.aspx?REFTYPE=9', 'Comparison Reviews');
//	}

	
	if ( sSelected == "search" ) {
		WriteSelected('search', 'Search Reviews and Columns');
	}
	else {
		WriteHover('search',   'Products.aspx', 'Search Reviews and Columns');
	}	

//	if ( sSelected == "gear" ) {
//		WriteSelected('gear', 'Gear and Products');
//	}
//	else {
//		WriteHover('gear',   'Gear.aspx?SORTMODE=2', 'Gear and Products');
//	}		
	
	//if ( sSelected == "routes" ) {
	//	WriteSelected('routes', 'Routes and Races');
	//}
	//else {
	//	WriteHover('routes',   'Articles.aspx?REFTYPE=3', 'Routes and Races');
	//}
	
	if ( sSelected == "about" ) {
		WriteSelected('about', 'About Tri-Gear-Review');
	}
	else {
		WriteHover('about',    'About.aspx', 'About Tri-Gear-Review');
	}
	
	if ( sSelected == "store" ) {
		WriteSelected('store', 'Buy TgR Merchandise');
	}
	else {
		WriteHover('store',   'Store.aspx', 'Buy TgR Merchandise');
	}	
	
	//if ( sSelected == "forum" ) {
	//	WriteSelected('forum', 'Online Forum - Discussions and QNA');
	//}
	//else {
	//	WriteHover('forum',   '../bb/index.php', 'Online Forum - Discussions and QNA');
	//}	
	
	

	//if ( sSelected == "contact" ) {
	//	WriteSelected('contact', 'Contact');
	//}
	//else {
	//	WriteHover('contact',   'Contact.aspx', 'Contact');
	//}
	
	if ( sSelected == "extras" ) {
		WriteSelected('extras', 'Extras');
	}
	else {
		WriteHover('extras',   'Extras.aspx', 'Extras');
	}
	
		
}



