function getElementsByClassName(element, className){
	var elements = element.getElementsByTagName("*");
	var returnElements = [];
	var current;
	var length = elements.length;
	
	for(var i=0; i<length; i++){
		current = elements[i];
		if(hasClass(current, className)) { returnElements.push(current); }
	}
	 
	return returnElements;
}

function hasClass(ele,cls) {
	if (ele.className != undefined)
	{ return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)')); }
}

function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
 
function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className = ele.className.replace(reg,' ');
	}
}

function toggleClass(element, property)
{
	if (element.className.indexOf(property) == -1) { addClass(element, property); }
	else { removeClass(element, property); }
}
