// rollover lib globals

var ROLLOVER_IMAGE_PATH   = "images/";
var ROLLOVER_IMAGE_EXT    = ".gif";
var ROLLOVER_HOVER_SUFFIX = "_hover";
var ROLLOVER_IMAGES = new Object();

function initRollovers()
{
	
	if ( document.images )
	{ 
		var objImageElement;
		var rgxFileName = /\/(\w+)\.(\w+)$/
		
		for ( var intCount = 0; ( objImageElement = document.images[intCount] ); intCount++ )
		{
			if ( /\brolloverButton\b/.exec(objImageElement.className) )
			{
				var strImageID = objImageElement.id;
				var strImageSource = objImageElement.src;
								
				ROLLOVER_IMAGES[strImageID] = new Object();
				ROLLOVER_IMAGES[strImageID]["off"] = new Image();
				ROLLOVER_IMAGES[strImageID]["off"].src = strImageSource;
				ROLLOVER_IMAGES[strImageID]["on"] = new Image();
				ROLLOVER_IMAGES[strImageID]["on"].src = strImageSource.replace( rgxFileName, "/$1" + ROLLOVER_HOVER_SUFFIX + ".$2" );

				eval("addEvent( objImageElement, 'mouseover', function () { return toggleRollovers('" + strImageID + "', 'on'); } )");
				eval("addEvent( objImageElement, 'mouseout', function () { return toggleRollovers('" + strImageID + "', 'off'); } )");
			}
			
		}
		
	}
}

function toggleRollovers( strImageID, strSwitchType )
{
	if ( strSwitchType == 'on' )
	{
		document.images[strImageID].src = ROLLOVER_IMAGES[strImageID]["on"].src;
	}
	if ( strSwitchType == 'off' )
	{
		document.images[strImageID].src = ROLLOVER_IMAGES[strImageID]["off"].src;
	}
}
    
// cross-browser addEventListener function
function addEvent( objElement, strEventType, objCallback )
{
	if (objElement.addEventListener)
	{ 
	    objElement.addEventListener(strEventType, objCallback, true); 
	    return true; 
	} 
	else if (objElement.attachEvent)
	{
	    strEventType = "on" + strEventType;
	    var blnSuccess = objElement.attachEvent(strEventType, objCallback); 
	    return blnSuccess; 
	} 
	else 
	{
	    strEventType = "on" + strEventType;
	    eval("var objOldCallback = objElement." + strEventType );
	    if ( typeof objOldCallback != 'function' ) {
	        eval("objElement." + strEventType + " = objCallback");
	    }
	    else {
	        eval("objElement." + strEventType + " = function() { objOldCallback(); objCallback(); }")
	    }
	    return true;
	} 
}

addEvent( window, 'load', initRollovers );
