//
// Smart Rollover Class
//

(function()
{
	var 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);
			});
		}
	};
	observe(window, "load", this, function()
	{
		var tags = ["img","input"];
		for(var i=0; i<tags.length; i++)
		{
			var nl = document.getElementsByTagName(tags[i]);
			for(var j=0; j<nl.length; j++)
			{
				var el = nl[j];
				if (!el.src.match(/^(.*_)out(\..*)$/)) continue;
				var out = el.src, over = RegExp.$1+"over"+RegExp.$2;
				var rewrite = (function(_out, _over)
				{
					return function(e)
					{
						var img = e.target || window.event.srcElement;
						img.src = (img.src == _out) ? _over : _out;
					}
				})(out, over);
				observe(el, "mouseover", el, rewrite);
				observe(el, "mouseout", el, rewrite);
				(new Image).src = over;
			}
		}
	});
})();
