if (!window.ClassName) window.ClassName = new _ClassName();

function _ClassName() {
}
_ClassName.prototype.swap = function (o, oldClass, newClass) {
	var classRE = new RegExp("\\b" + oldClass + "\\b");
	if (classRE.test(o.className)) {
		o.className = o.className.replace(classRE, newClass);
	} else {
		classRE = new RegExp("\\b" + newClass + "\\b");
		o.className = o.className.replace(classRE, oldClass);
	}
}
_ClassName.prototype.add = function (o, newClass) {
	if (!this.contains(o, newClass)) o.className += o.className ? " "+newClass : newClass;
}
_ClassName.prototype.remove = function (o, oldClass) {
	if (o.className) {
		var classRE = new RegExp(" ?\\b" + oldClass + "\\b");
		//var section = o.className.match(" "+oldClass) ? " "+oldClass : oldClass;
		o.className = o.className.replace(classRE, "");
	}
}
_ClassName.prototype.contains = function (o, aClass) {
	return new RegExp('\\b'+aClass+'\\b').test(o.className);
}
