function addClass(target, classValue){
	var pattern = new RegExp("(^| )" + classValue + "( |$)");
	if(!pattern.test(target.className)){
		if(target.className == ""){
		target.className = classValue;
		}else{
		target.className += " " + classValue;
		}
	}
	return true;
} // end addClass

function removeClass(target, classValue){
	var removedClass = target.className;
	var pattern = new RegExp("(^| )" + classValue + "( |$)");
	removedClass = removedClass.replace(pattern, "$1");
	removedClass = removedClass.replace(/ $/, "");
	target.className = removedClass;
	return true;
} // end removeClass

addEvent(window, 'load', common_initialise, false);

function common_initialise(){
	var elementArray = new Array();
	elementArray = document.getElementsByTagName('a');
	for(var i = 0; i < elementArray.length; i++){

		// Check for class
		var pattern = new RegExp("(^| )" + "MoreInfoButton" + "( |$)");
		if(pattern.test(elementArray[i].className)){

			// Work out the two image states and store them now!
			var imageArray = elementArray[i].getElementsByTagName('img');

			// Off Image
			imageArray[0].imageOff = imageArray[0].src;
			// On Image
			imageArray[0].imageOn = getHoverImage(imageArray[0].src);
	
			// Add Event Handlers
			addEvent(elementArray[i],"mouseover",Link_Hover,false);
			addEvent(elementArray[i],"mouseout",Link_MouseOut,false);
		}

	} // end loop through items
	
} // end common_initialise

function Link_Hover(e){
	if(!e) var e = window.event;
	if(e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;

	// Get image state stored earlier and display
	targ.src = targ.imageOn;

} // end Link_Hover

function Link_MouseOut(e){
	if(!e) var e = window.event;
	if(e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;

	targ.src = targ.imageOff;
} // end Link_MouseOut

function getHoverImage(myString){
//	alert(myString);
	var myBits = myString.split(".");
	var extension = myBits.pop();

	// Check if this is already the hover version (for sites doing current page highlighting).
	if(myBits[myBits.length - 1].match(/_On$/)){
		return myString;
	}else{
		return myBits.join(".") + "_On." + extension;
	}
} // end getHoverImage
