function hasClass(element,_className){
	if(!element){
		return;
	}
	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 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(' ');
	}
}

function isPanelExpanded(panel){
	return hasClass(panel,'expanded');
}

function expandPanel(panel){
	if(!isPanelExpanded(panel)){
		addClass(panel,'expanded');
		fireInlineEvent(panel,'expanded');
	}
}

function collapsePanel(panel){
	if(isPanelExpanded(panel)){
		removeClass(panel,'expanded');
		fireInlineEvent(panel,'collapsed');
	}
}

function togglePanel(panel){
	if(isPanelExpanded(panel)){
		collapsePanel(panel);
	}else{
		expandPanel(panel);
	}
}
