

/*
	CLASSES
	
	Functions to handle elements with multiple class names.
*/

function getElementClassNames(node) {
	var classes = new Array();
	if( node.className != '' ) {
		classes = node.className.split(' ');
	}
	return classes;
}

function elementHasClassName(node,className) {
	var classes = getElementClassNames(node);
	for( k=0; k<classes.length; k++ ) {
		if( classes[k] == className ) return true;
	}
	return false;
}

function addClassName(node,className) {
	var classes = getElementClassNames(node);
	classes[classes.length] = className;
	node.className = classes.join(' ');
	return;
}

function removeClassName(node,className) {
	var classes = getElementClassNames(node);
	for( k=0; k<classes.length; k++ ) {
		if( classes[k] == className ) {
			classes[k] = '';
		}
	}
	node.className = classes.join(' ');
}

function findNumericClassName(node) {
	// Finds a single numeric classname.
	var classes = getElementClassNames(node);
	for( k=0; k<classes.length; k++ ) {
		if( classes[k].toString().match(/\d+/) ) {
			return classes[k];
		}
	}
	return null;
}

function getElementsByClassName(tagName,className) {
	var nodes = document.getElementsByTagName(tagName);
	var classNodes = new Array();
	for( i=0; i<nodes.length; i++ ) {
		if( elementHasClassName(nodes[i],className) ) 
			classNodes[classNodes.length] = nodes[i];
	}
	return classNodes;
}
