/*************************************************************************
 * Son of Suckerfish Dropdowns
 * Original: http://www.htmldog.com/articles/suckerfish/dropdowns/
 * For IE/Mac Fixes: http://carroll.org.uk/sandbox/suckerfish/bones2.html
 *************************************************************************/
function sfHover(tagName, className, hoverClass) {
	if (!document.all) return false;
	var sfEls = getElementsByClassName(className, tagName);
	for (var i = 0; i < sfEls.length; i++) {
		sfEls[i].onmouseover = function() {addClass(this, hoverClass)};
		sfEls[i].onmouseout = function() {removeClass(this, hoverClass)};
	}
}

function getElementsByClassName(className, tag) {
	var elms = ((!tag || tag == "*") && document.all)? document.all : document.getElementsByTagName(tag || "*");
	var returnElms = [];
	var className = className.replace(/\-/g, "\\-");
	var regExp = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var elm;
	for(var i=0; i<elms.length; i++){
		elm = elms[i];		
		if(regExp.test(elm.className)){
			returnElms.push(elm);
		}
	}
	return (returnElms);
}

function addClass(elm, className){
	var currentClass = elm.className;
	if(!new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i").test(currentClass)){
		elm.className = currentClass + ((currentClass.length > 0)? " " : "") + className;
	}
	return elm.className;
}

function removeClass(elm, className){
	var classToRemove = new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i");
	elm.className = elm.className.replace(classToRemove, "").replace(/^\s+|\s+$/g, "");
	return elm.className;
}
