//
// Multi Rollover Class
//
MultiRollover = function(_listener)
{
	this.listener_id = _listener;
	this.triggers_id = "";
	this.sources = [];
	this.bRestore = true;
}
MultiRollover.prototype = {
	addTrigger: function(_triggers)
	{
		this.triggers_id = _triggers;
	},
	addSource: function()
	{
		for(var i=0; i<arguments.length; i++)
		{
			this.sources.push(arguments[i]);
		}
	},
	imageRestore: function(flg)
	{
		this.bRestore = flg;
	},
	create: function()
	{
		var listener = document.getElementById(this.listener_id);
		if(document.getElementById(this.triggers_id))
		{
			var out_target = document.getElementById(this.triggers_id);
			var over_targets = out_target.getElementsByTagName("a");
		}
		for(var i=0; i<over_targets.length; i++)
		{
			var over_target = over_targets[i];
			var src = this.sources[i];
			var callback = (function(_src)
			{
				return function()
				{
					this.src = _src;
				};
			})(src);
			
			this.observe(over_target, "mouseover", listener, callback);
			(new Image).src = src;
			
			if(this.bRestore)
			{
				src = this.sources[0];
				callback = function()
				{
					this.src = src;
				};
				this.observe(over_target, "mouseout", listener, callback);
			}
		}
	},
	observe: function(_el, _func, _listener, _callback)
	{
		if(_el.addEventListener)
		{
			_el.addEventListener(_func, function(e)
			{
				_callback.call(_listener, e);
			}, false);
		}
		else if(_el.attachEvent)
		{
			_el.attachEvent("on"+_func, function(e)
			{
				_callback.call(_listener, e);
			});
		}
	}
}

