/* dropdown navigation */
DropdownNav=function(id){
	this.DOMObject=document.getElementById(id);
	var children=this.DOMObject.childNodes;
	for(var i=0;i<children.length;i++){
		if(children[i].tagName!="LI") continue;
		children[i].onmouseover=function(e){cancelBubble(e);addClass(this,"hover");}
		children[i].onmouseout=function(e){cancelBubble(e);removeClass(this,"hover");}
		var ul=children[i].getElementsByTagName("ul");
	}
}
DropdownNav.prototype.destroy=function(){
	var children=this.DOMObject.childNodes;
	for(var i=0;i<children.length;i++){
		children[i].onmouseover=children[i].onmouseout=null;
	}
}

// add or remove classes
function addClass(obj,cName) { 
	removeClass(obj,cName); 
	return obj.className+=(obj.className.length>0?' ':'')+cName; 
}

function removeClass(obj,cName) {
	return obj.className=obj.className.replace(new RegExp("^"+cName+"\\b\\s*|\\s*\\b"+cName+"\\b",'g'),''); 
}

// cancel event propagation
function cancelBubble(e){
	if(window.event){
		window.event.cancelBubble=true;
		window.event.returnValue=true;
	}
	if(e && e.stopPropagation && e.preventDefault){
		e.stopPropagation();
		e.preventDefault();
	}
}

// retrieve elements of certain class
function getElementsByClassName(cName,baseElement){
	var results=new Array;
	var objs=document.getElementsByTagName("*").length>0 ? baseElement.getElementsByTagName("*") : baseElement.all;
	if(!objs) objs=baseElement.all;
	for(var i=0;i<objs.length;i++){
		if(objs[i].className.match(cName)) results[results.length]=objs[i]
	}
	return results;
}