/* function to manage css classes

Note: this is to be used for presentation only. do not use to invoke behavior !!

*/


/* Replace class if either is present */
function classSwitch(element, class1, class2) {
	var classes = element.getAttribute("class");

	classes = !classExists(element, class1)?classes.replace(class2, class1):classes.replace(class1, class2);

	element.setAttribute("class", classes);
}

/* Check if class is assigned to element */
function classExists(element, class) {
	var classes = element.getAttribute("class")
	if (classes) {
		return new RegExp('\\b'+class+'\\b').test(classes);
	} else {
		return false;
	}
}

/* Add class to element */
function classAdd(element, class) {
	if(!classExists(element, class)){
		var classes = element.getAttribute("class");

		classes = classes?classes + ' ' + class:class;
		element.setAttribute("class", classes);
	}
	return true;
}

/* Remove class from element */
function classRemove(element, class) {

	var classes = element.getAttribute("class");
	if (classes) {
		var classFound = classes.match(' '+class)?' '+class:class;
		var newClasses = classes.replace(classFound, '');
		element.setAttribute("class", newClasses);
	}
	return true;
}


function getElementsByTagAndClass(element, tag_name, class_name) {
	var elements = element.getElementByTagName(tag_name);
	var found = new Array();
	for (var i=0; i < elements.length ; i++) {
		if ((elements[i].class) && (classExists(elements[i], class_name))) {
			found.push(elements[i]);
		}
	}
	return found;
}
