(function() {
	if (!document.getElementsByTagName) return;

	var addEvent, switchImage, init;
	addEvent = function(obj, type, func) {
		if (obj.addEventListener) {
			obj.addEventListener(type, func, false);
		}
		else if (obj.attachEvent) {
			obj.attachEvent('on' + type, func);
		}
	};
	switchImage = function(event) {
		var img = event.target || event.srcElement;
		img.src = (event.type == "mouseover") ? img.srcOn : img.srcOff;
	};
	init = function() {
		var imgs = document.getElementsByTagName('img');
		var loaded = {}, img;
		for (var i = 0, len = imgs.length; i < len; i++) {
			img = imgs[i];
			if ( !img.src.match(/^(.*_)off(\..*)$/) ) continue;
			img.srcOff = img.src;
			img.srcOn = RegExp.$1 + 'on' + RegExp.$2;
			addEvent(img, 'mouseover', switchImage);
			addEvent(img, 'mouseout', switchImage);
			if (loaded[img.srcOn]) continue;
			loaded[img.srcOn] = true;
			(new Image).src = img.srcOn;
		}
	};

	addEvent(window, 'load', init);
})();
