var UbiImageSwap = {

// ------------------------------------------------------

	initRollovers : function() {
		var all_links = document.getElementsByTagName('a');
		for(var i = 0; i < all_links.length; i++) {
			l = all_links[i];
			if(l.className && (' '+l.className+' ').indexOf(' rollover ') != -1) {
				if(l.childNodes && l.childNodes.length > 0) {
					for(var a = 0; a < l.childNodes.length; a++) {
						if(l.childNodes[a].nodeName.toLowerCase() == 'img') {
							UbiEvent.addEvent(l, 'mouseover', UbiImageSwap.doMouseOver, false);
							UbiEvent.addEvent(l, 'mouseout', UbiImageSwap.doMouseOut, false);
						}
					}
				}
			}
		}
	},

// ------------------------------------------------------

	doMouseOver : function(e) {
		var t = UbiEvent.getTarget(UbiEvent.getEvent(e));
		if(t.nodeName.toLowerCase() == 'img') t.src = t.src.replace(/(\.[^.]+)$/, '_over$1');
		else {
			while(t != document.body && t.nodeName.toLowerCase() != 'a') t = t.parentNode;
			for(var i = 0; i < t.childNodes.length; i++) {
				if(t.childNodes[i].nodeName.toLowerCase() == 'img') {
					img = t.childNodes[i];
					img.src = img.src.replace(/(\.[^.]+)$/, '_over$1');
				}
			}
		}
	},

// ------------------------------------------------------

	doMouseOut : function(e) {
		var t = UbiEvent.getTarget(UbiEvent.getEvent(e));
		if(t.nodeName.toLowerCase() == 'img') t.src = t.src.replace(/_over(\.[^.]+)$/, '$1');
		else {
			while(t != document.body && t.nodeName.toLowerCase() != 'a') t = t.parentNode;
			for(var i = 0; i < t.childNodes.length; i++) {
				if(t.childNodes[i].nodeName.toLowerCase() == 'img') {
					img = t.childNodes[i];
					img.src = img.src.replace(/_over(\.[^.]+)$/, '$1');
				}
			}
		}
	},

// ------------------------------------------------------

	addListeners : function() {
		if(!document.getElementById &&
		!document.getElementsByTagName) return false;
		
		UbiImageSwap.initRollovers();
	
	},

// ------------------------------------------------------

	init : function() {
		UbiImageSwap.addListeners();
	}

// ------------------------------------------------------	

};

var UbiEvent = {

// ------------------------------------------------------

	getEvent : function(e) {
		 e = window.event ? window.event : e;
		return e;
	},

// ------------------------------------------------------

	getTarget : function(e) {
		t = e.target ? e.target : e.srcElement;
		return t;
	},

// ------------------------------------------------------

	addEvent : function(elm, evType, fn, useCapture) {
		// originally written by scott andrew.
		if(elm.addEventListener) {
			elm.addEventListener(evType, fn, useCapture);
			return true;
		}
		else if(elm.attachEvent) {
			var r = elm.attachEvent('on'+evType, fn);
			return r;
		}
		else {
			element['on'+evType] = fn;
		}
	},

// ------------------------------------------------------

	removeEvent : function(elm, evType, fn, useCapture) {
		// based on addEvent which was originally written by scott andrew.
		if(elm.removeEventListener) {
			elm.removeEventListener(evType, fn, useCapture);
			return true;
		}
		else if(elm.detachEvent) {
			var r = elm.detachEvent('on'+evType, fn);
			return r;
		}
		else {
			element['on'+evType] = null;
		}
	}

// ------------------------------------------------------

};

UbiEvent.addEvent(window, 'load', UbiImageSwap.init, false);
