
	// PERCEPTICON CORESPIN Application Framework
	// http://www.percepticon.com, contact@percepticon.com

	// CSS Class Functions
	ClassFX = {
		isClass:function(loElement, lsClass) {
			if (!loElement){return;}
			return(loElement.className==lsClass);
		},
		resetClass:function(loElement, lsClass) {
			if (!loElement){return;}
			loElement.className = lsClass;
			return(true);
		},
		setClass:function(loElement, lsClass) {
			if (!loElement){return;}
			if(!this.hasClass(loElement, lsClass)) {
				loElement.className = lsClass;
			}
			return(true);
		},
		addClass:function(loElement, lsClass) {
			if (!loElement){return;}
			if(!this.hasClass(loElement, lsClass)) {
				loElement.className += ' ' + lsClass;
			}
			return(true);
		},
		hasClass:function(loElement, lsClass) {
			if (!loElement){return;}
			var loRE = new RegExp('\\b'+lsClass+'\\b');
			return(loRE.test(loElement.className));
		},
		flipClass:function(loElement, lsClass) { //until toggleClass usage gets deprecated out....
			if (!loElement){return;}
			if(this.hasClass(loElement, lsClass)) {
				this.removeClass(loElement,lsClass);
			} else {
				this.addClass(loElement,lsClass);
			}
			return(true);
		},
		toggleClass:function(loElement, lsClass, lsAltClass) { // <- ACK this is misnamed. should be using tradeClass for this.
			if (!loElement){return;}
			if(this.hasClass(loElement, lsClass)) {
				loElement.className = lsAltClass;
			} else {
				loElement.className = lsClass;
			}
			return(true);
		},
		tradeClass:function(loElement, lsClass, lsAltClass) {
			if (!loElement){return;}
			if(this.hasClass(loElement, lsClass)) {
				this.removeClass(loElement, lsClass);
				this.addClass(loElement, lsAltClass);
			} else if(this.hasClass(loElement, lsAltClass)) {
				this.removeClass(loElement, lsAltClass);
				this.addClass(loElement, lsClass);
			}
			return(true);
		},
		removeSiblingClass:function(loElement, lsClass) {
			var aChildren = loElement.parentNode.childNodes;
			for (var i=0; i<aChildren.length; i++) {
				if (aChildren[i] != loElement && aChildren[i] != '[object Text]') {
					this.removeClass(aChildren[i], lsClass);
				}
			}
		},
		removeClass:function(loElement, lsClass) {
			var loRE = new RegExp('\\b'+lsClass+'\\b', 'g');
			if (!loElement){return(true);}
			loElement.className = loElement.className.replace(loRE, '');
			return(true);
		}
	}
	//*****************************************
