
var Common = {
	
	DOM : {
		 addClass: function(el, className) {
			if (this.hasClass(el, className)) { return; }
			
			el['className'] = [el['className'], className].join(' ');
		  },
		
		removeClass : function(el, className) {
         var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', 'g');

			if (!this.hasClass(el, className)) { return; } 


			var c = el['className'];
			el['className'] = c.replace(re, ' ');
			
			if ( this.hasClass(el, className) ) {
			   this.removeClass(el, className);
			}

         },
	  
		hasClass: function(el, className) {
			 var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');

			 return re.test(el['className']);
		}

	}
	
}


function Highlight(elmID, mode, className){

	var elm = document.getElementById(elmID);
	
	var className = className || 'highlight';
	
	switch(mode){
		case 'off':
			Common.DOM.removeClass(elm, className); break;
		
		case 'on':
		default:
			Common.DOM.addClass(elm, className);
	}
}
