// <![CDATA[

var mouse_outs = new Array();
var mouse_overs = new Array();

/*
* Find all image tags with the class "over" and create mouse over effects
*/
function initMouseOvers() {
	if (!document.createElement && document.getElementsByTagName) {
		return;
	}
	
	// Find all images
	var all_imgs = document.getElementsByTagName('img');
	var imgs = new Array();
	
	// Find images that needs mouse over
	for (var i = 0; i < all_imgs.length; i++) {
		if (hasClassName(all_imgs[i], 'over')) {
			imgs[imgs.length] = all_imgs[i];
		}
	}
	
	// Create image objects with mouse handlers
	for (var j = 0; j < imgs.length; j++) {
		var sel = false;
		
		imgs[j].onmouseover = mouseOver;
		
		// No mouse out for selected elements
		if (!hasClassName(imgs[j], 'sel')) {
			imgs[j].onmouseout = mouseOut;
		}
		else {
			sel = true;
		}
		
		var suffix = imgs[j].src.substring(imgs[j].src.lastIndexOf('.'));
		mouse_outs[j] = new Image();
		mouse_outs[j].src = imgs[j].src;
		mouse_overs[j] = new Image();
		mouse_overs[j].src = imgs[j].src.substring(0,imgs[j].src.lastIndexOf('.')) + "_over" + suffix;
		imgs[j].number = j;
		
		if (sel) {
			imgs[j].src = mouse_overs[j].src;
		}
	}
}

/*
* Mouse over on an image
*/
function mouseOver() {
	this.src = mouse_overs[this.number].src;
}

/*
* Mouse out on an image
*/
function mouseOut() {
	this.src = mouse_outs[this.number].src;
}

/*
* Test for a css classname
*/
function hasClassName(obj, name) {
	var class_name = obj.className;
	
	if (class_name.length > 0 && (class_name == name || class_name.match(new RegExp("(^|\\s)" + name + "(\\s|$)")))) {
		return true;
	}
	
	return false;
}

window.onload = function() {
	initMouseOvers();
}

// ]]>
