var imgList = new Object();
var imgsLoaded = false;
var nRe = /(.+)_ro_/;

function addEvent(o, f, e) {
	if(o.addEventListener) {
		o.addEventListener(e, f, false);
	}
	else if(o.attachEvent) {
		o.attachEvent('on' + e, f);
	}
}

function rollover() {

	if(document.images.length) {

		var sRe = /[\/]{2}[^\/]+[\/]{1}(.+)[\/]{1}(.+)([\.]{1}[\w]{3})$/;
		for(var x=0; x<document.images.length; x++) {

			if(document.images[x].id && nRe.test(document.images[x].id)) {
				var iD = '/' + sRe.exec(document.images[x].src)[1] + '/';
				var iN = nRe.exec(document.images[x].id)[1];
				var iS = sRe.exec(document.images[x].src)[2];
				var iX = sRe.exec(document.images[x].src)[3];

				imgList[iN] = new Image();
				imgList[iN].src = iD + iS + iX;

				imgList[iN + '_on'] = new Image();
				imgList[iN + '_on'].src = iD + iS + '_on' + iX;
			}
		}

		imgsLoaded = true;

		addEvent(document, mOver, 'mouseover');
		addEvent(document, mOut, 'mouseout');
	}
}

function mOver(e) {
	if(e.target) var se = e.target;
	else if(event.srcElement) var se = event.srcElement;

	if(imgsLoaded && se.id && nRe.test(se.id)) {
		var img = nRe.exec(se.id)[1];
		se.src = imgList[img + '_on'].src;
	}
}

function mOut(e) {
	if(e.target) var se = e.target;
	else if(event.srcElement) var se = event.srcElement;

	if(imgsLoaded && se.id && nRe.test(se.id)) {
		var img = nRe.exec(se.id)[1];
		se.src = imgList[img].src;
	}
}

addEvent(window, rollover, 'load');
