var manageSelectedAnchor = true;
var lastSelectedAnchor = null;
var selectedAnchor = null;
var manager = null;

function rolloverImageManager(){
	this.handleAnchorClicked = null;
	
	this.clearSelectedAnchor = function(){
		if(manageSelectedAnchor){
			selectedAnchor = null;
			var i = 0;
			for(i = 0; i < document.anchors.length; i++)
				document.anchors[i].onmouseout();
		}
	}
	
	this.selectAnchor = function(id){
		var i = 0;
		for(i = 0; i < document.anchors.length; i++){
			if(document.anchors[i].id == id){
				document.anchors[i].onclick();
				break;
			}
		}
		return false;
	}
	
	this.onAnchorClicked=function(a){
		if(manageSelectedAnchor && selectedAnchor == a)
			return false;
		
		lastSelectedAnchor = selectedAnchor;
		selectedAnchor = a;
		
		var i = 0;
		for(i = 0; i < document.anchors.length; i++)
			document.anchors[i].onmouseout();
	
		if(this.handleAnchorClicked)
			this.handleAnchorClicked();
		return false;	
	}
	
	this.refreshImages=function(){
		var i = 0;
		for(i = 0; i < document.anchors.length; i++)
			document.anchors[i].onmouseout();
		return false;
	}
	
	return false;
}

manager = new rolloverImageManager();

//RolloverImage: This requires that an anchor's name/id
//be equal to its associated image's name.
function loadRolloverImage(a, selectedImage, unselectedImage, rolloverImage, onClickFunction, onMouseOverFunction, onMouseOutFunction){
	if(a == null || selectedImage == null || unselectedImage == null)
		return false;
		
	var si = new Image();
	si.src = selectedImage;
	
	var ui = new Image();
	ui.src = unselectedImage;
	
	var ri = new Image();
	if(rolloverImage != null)
		ri.src = rolloverImage;
	else
		ri.src = selectedImage;
	
	a.onmouseover = function(){
		if(document.images[a.id] != null){
			if(manageSelectedAnchor && selectedAnchor != a)
				document.images[a.id].src = ri.src;
			else if(!manageSelectedAnchor)
				document.images[a.id].src = ri.src;
		}
		if(onMouseOverFunction)
			onMouseOverFunction();
		return false;
	}
	
	a.onmouseout = function(){
		if(document.images[a.id] != null){
			if(manageSelectedAnchor && selectedAnchor != a)
				document.images[a.id].src = ui.src;
			else if(manageSelectedAnchor && selectedAnchor == a)
				document.images[a.id].src = si.src;
			else if(!manageSelectedAnchor)
				document.images[a.id].src = ui.src;
		}
		if(onMouseOutFunction)
			onMouseOutFunction();
		return false;
	}
	
	if(onClickFunction){
		a.onclick=onClickFunction;
		return false;
	}
	else{
		a.onclick=function(){
			if(manageSelectedAnchor && document.images[a.id] != null)
				document.images[a.id].src = si.src;
			manager.onAnchorClicked(a);
			return false;
		}
	}
	
	a.onfocus=function(){
		if(a.blur)
			a.blur();
		return false;
	}
	return false;
}