/******************************************

	name: ImageRollover.js
	by: Jason DeCarteret, http://www.decarteretconsulting.com/
	current version: 1.1.2
	last edited: 2004-01-05 22:48

	----------------------
	new for version 1.1
	----------------------
	added code for "rolloverOther"

******************************************/
var _isMozilla = ImageRollover_IsMozilla() ;

if( _isMozilla ) {

	window.addEventListener( 'load', ImageRollover_Window_OnLoad, false ) ;
	window.addEventListener( 'unload', ImageRollover_Window_OnUnload, false ) ;

} else {

	window.attachEvent( "onload", ImageRollover_Window_OnLoad ) ;
	window.attachEvent( "onunload", ImageRollover_Window_OnUnload ) ;

} // if( _isMozilla )



function ImageRollover_Window_OnLoad() {

	var images = document.getElementsByTagName( "img" ) ;
	
	for( var imageIndex = 0; imageIndex < images.length; imageIndex++ ) {
	
		var image = images[ imageIndex ] ;
		var rolloverSrc = image.getAttribute( "rolloverSrc", 2 ) ;
		
		if( rolloverSrc != null ) {

			// Preload the image so it loads quickly when we mouseover.
			var preloadImage = new Image() ;
			preloadImage.src = rolloverSrc ;

			if( _isMozilla ) {

				if( image.parentElement.tagName == "A" ) {

					image.addEventListener( "focus", ImageRollover_Anchor_OnMouseOver, false ) ;
					image.addEventListener( "blur", ImageRollover_Anchor_OnMouseOut, false ) ;

				} else {
				
					image.addEventListener( "focus", ImageRollover_Image_OnMouseOver, false ) ;
					image.addEventListener( "blur", ImageRollover_Image_OnMouseOut, false ) ;

				} // if( image.parentElement.tagName == "A" )

				image.addEventListener( "mouseover", ImageRollover_Image_OnMouseOver, false ) ;
				image.addEventListener( "mouseout", ImageRollover_Image_OnMouseOut, false ) ;

			} else {

				if( image.parentElement.tagName == "A" ) {

					image.parentElement.attachEvent( "onfocus", ImageRollover_Anchor_OnMouseOver ) ;
					image.parentElement.attachEvent( "onblur", ImageRollover_Anchor_OnMouseOut ) ;

				} else {

					image.attachEvent( "onfocus", ImageRollover_Image_OnMouseOver ) ;
					image.attachEvent( "onblur", ImageRollover_Image_OnMouseOut ) ;

				} // if( image.parentElement.tagName == "A" )

				image.attachEvent( "onmouseover", ImageRollover_Image_OnMouseOver ) ;
				image.attachEvent( "onmouseout", ImageRollover_Image_OnMouseOut ) ;

			} // if( _isMozilla )

		} // if( rolloverSrc != null )

	} // for( imageIndex )

} // ImageRollover_Window_OnLoad



function ImageRollover_Window_OnUnload() {

	var images = document.getElementsByTagName( "img" ) ;
	
	for( var imageIndex = 0 ; imageIndex < images.length ; imageIndex++ ) {
	
		var image = images[ imageIndex ] ;
		var rolloverSrc = image.getAttribute( "rolloverSrc", 2 ) ;
		
		if( rolloverSrc != null ) {

			if( _isMozilla ) {

				if( image.parentElement.tagName == "A" ) {

					image.removeEventListener( "focus", ImageRollover_Anchor_OnMouseOver, false ) ;
					image.removeEventListener( "blur", ImageRollover_Anchor_OnMouseOut, false ) ;

				} else {

					image.removeEventListener( "focus", ImageRollover_Image_OnMouseOver, false ) ;
					image.removeEventListener( "blur", ImageRollover_Image_OnMouseOut, false ) ;

				} // if( image.parentElement.tagName == "A" )

				image.removeEventListener( "mouseover", ImageRollover_Image_OnMouseOver, false ) ;
				image.removeEventListener( "mouseout", ImageRollover_Image_OnMouseOut, false ) ;
				
			} else {

				if( image.parentElement.tagName == "A" ) {

					image.parentElement.detachEvent( "onfocus", ImageRollover_Anchor_OnMouseOver ) ;
					image.parentElement.detachEvent( "onblur", ImageRollover_Anchor_OnMouseOut ) ;

				} else {

					image.detachEvent( "onfocus", ImageRollover_Image_OnMouseOver ) ;
					image.detachEvent( "onblur", ImageRollover_Image_OnMouseOut ) ;

				} // if( image.parentElement.tagName == "A" )

				image.detachEvent( "onmouseover", ImageRollover_Image_OnMouseOver ) ;
				image.detachEvent( "onmouseout", ImageRollover_Image_OnMouseOut ) ;
				
			} // if( _isMozilla )

		} // if( rolloverSrc != null )

	} // for( imageIndex )

} // ImageRollover_Window_OnUnload



function ImageRollover_Anchor_OnMouseOver() {
// An image won't ever get the tabbed focus while it's within an anchor.  Capture the anchor's event and pass the action to the underlying images.

	var anchor = null ;

	if( _isMozilla )
		anchor = this ;
	else
		anchor = event.srcElement ;


	var images = anchor.getElementsByTagName( "img" ) ;
	
	for( var imageIndex = 0 ; imageIndex < images.length ; imageIndex++ ) {

		var image = images[ imageIndex ] ;

		ImageRollover_MakeHot( image ) ;

	} // for( imageIndex )

} // ImageRollover_Anchor_OnMouseOver



function ImageRollover_Anchor_OnMouseOut() {
// An image won't ever get the tabbed focus while it's within an anchor.  Capture the anchor's event and pass the action to the underlying images.

	var anchor = null ;

	if( _isMozilla )
		anchor = this ;
	else
		anchor = event.srcElement ;


	var images = anchor.getElementsByTagName( "img" ) ;
	
	for( var imageIndex = 0 ; imageIndex < images.length ; imageIndex++ ) {

		var image = images[ imageIndex ] ;

		ImageRollover_MakeCold( image ) ;

	} // for( imageIndex )

} // ImageRollover_Anchor_OnMouseOut



function ImageRollover_Image_OnMouseOver() {

	var image = null ;
	
	if( _isMozilla )
		image = this ;
	else
		image = event.srcElement ;

	ImageRollover_MakeHot( image ) ;

} // ImageRollover_Image_OnMouseOver



function ImageRollover_Image_OnMouseOut() {

	var image = null ;
	
	if( _isMozilla )
		image = this ;
	else
		image = event.srcElement ;

	ImageRollover_MakeCold( image ) ;

} // ImageRollover_Image_OnMouseOut



function ImageRollover_MakeHot( image ) {

	var swapped = image.getAttribute( "Swapped", 2 ) ;
	if( ( swapped != null ) && ( swapped == "true" ) ) return ;

	ImageRollover_SwapBase( image ) ;

	// Set the flag showing we swapped the image.
	image.setAttribute( "Swapped", "true", 0 ) ;

} // ImageRollover_MakeHot



function ImageRollover_MakeCold( image ) {

	var swapped = image.getAttribute( "Swapped", 2 ) ;
	if( ( swapped == null ) || ( swapped == "false" ) ) return ;

	ImageRollover_SwapBase( image ) ;

	image.setAttribute( "Swapped", "false", 0 ) ;

} // ImageRollover_MakeCold



function ImageRollover_SwapBase( image ) {

	var source = image.src ;
	image.src = image.getAttribute( "rolloverSrc", 2 ) ;
	image.setAttribute( "rolloverSrc", source, 0 ) ;

	var otherIndex = -1 ;		// We want to be able to search for a bunch of attributes: rolloverOther, rolloverOther[0-x].  As we proceed through the list, stop as soon as we don't find an attribute.
	var nullCount = 0 ;

	do {

		var otherAttributeName = "rolloverOtherSrc" ;
		
		if( otherIndex != -1 )
			otherAttributeName = otherAttributeName + otherIndex ;
			
		// Change the "other rollover".
		var rolloverOther = image.getAttribute( otherAttributeName, 2 ) ;

		if( rolloverOther == null ) {
			nullCount++ ;
		} else {

			var separator = rolloverOther.indexOf( "," ) ;
			
			if( separator > 0 ) {

				var otherImageID = rolloverOther.substring( 0, separator ) ;
				var otherImageRolloverSource = rolloverOther.substring( separator + 1 ) ;

				var otherImage = document.all[ otherImageID ] ;

				if( otherImage != null ) {

					var otherSource = otherImage.src ;
					otherImage.src = otherImageRolloverSource ;
					image.setAttribute( otherAttributeName, otherImageID + "," + otherSource, 0 ) ;		// Store the attribute on the initial image.

				} // if( otherImage != null )

			} // if( separator > 0 )

		} // if( rolloverOther == null )

		otherIndex++ ;

	} while( nullCount <= 2 ) ;

} // ImageRollover_SwapBase



function ImageRollover_IsMozilla() {

	var userAgent = navigator.userAgent.toLowerCase() ;
	
	return ( ( userAgent.indexOf( 'mozilla' ) != -1 ) && ( userAgent.indexOf( 'compatible' ) == -1 ) ) ;
	
} // ImageRollover_IsMozilla