function togglePanel(panel) {
	if (isPanelExpanded(panel)) {
		collapsePanel(panel);
	} else {
		expandPanel(panel);
	}
}

function isPanelExpanded(panel) {
	return hasClass(panel,'expanded');
}

function hasClass(element,_className) {
	if (!element) {
		return false;
	}
	var upperClass=_className.toUpperCase();
	if (element.className) {
		var classes=element.className.split(' ');
		for (var i=0;i<classes.length;i++) {
			if (classes[i].toUpperCase()==upperClass) {
				return true;
			}
		}
	}
	return false;
}

function expandPanel(panel) {
	if (!isPanelExpanded(panel)) {
		addClass(panel,'expanded');
	}
}

function collapsePanel(panel) {
	if (isPanelExpanded(panel)) {
		removeClass(panel,'expanded');
	}
}

function addClass(element,_class) {
	if (!hasClass(element,_class)) {
		element.className+=element.className?(" "+_class):_class;
	}
}

function removeClass(element,_class) {
	var upperClass=_class.toUpperCase();
	var remainingClasses=[];
	if (element.className) {
		var classes=element.className.split(' ');
		for (var i=0;i<classes.length;i++) {
		if (classes[i].toUpperCase()!=upperClass) {
			remainingClasses[remainingClasses.length]=classes[i];
		}
	}
	element.className=remainingClasses.join(' ');
	}
}
