/**
	global.js defines common methods, performing basic functions. 
*/



/**
	Check whether the given element has the specified CSS class.
*/
function hasClass(el ,cls) {
    if (el && el.className){
        return el.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
    }    
	return false;
}

/**
	Add the specified CSS class to the given element.
*/
function addClass(el,cls) {
    if (el && !hasClass(el,cls)){ 
		el.className += " "+cls;
	}
}

/**
	Remove the specified CSS class from the given element.
*/
function removeClass(el,cls) {
    if (el && hasClass(el,cls)) {
        var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
        el.className=el.className.replace(reg,' ');
    }
}

/**
	Replaces old CSS class with the new one, for the given element.
*/
function replaceClass(el, oldClass, newClass) {
 if (el){
    removeClass(el, oldClass);
    addClass(el, newClass);
 }
}


/** 
	Show element with given id.
*/	
function show(el){
	if(!el) return;
	el.style.display="block";	
}


/** 
	Hide element with given id.
*/	
function hide(el){
	if(!el) return;
	el.style.display="none";	
}

/** 
	Fold/unfold expandable divs.
*/	
function toggle(id) {  
  var toggleOption = document.getElementById(id+'Option');
  var toggleDetails = document.getElementById(id+'Details');
  var boxTitle = document.getElementById(id+'Title');
  
  if(!toggleOption || !toggleDetails) return;
   
  if (toggleOption.className=="collapseDetails") {
	  // hide details
	  replaceClass(toggleDetails, "expanded", "collapsed");	  
	  //if(boxTitle)replaceClass(boxTitle, "visible", "hidden");	  	  
	  if(boxTitle) hide(boxTitle);
	  toggleOption.className="expandDetails";      	 
  } else {
	  // show options	 
	  replaceClass(toggleDetails, "collapsed", "expanded");
	  //if(boxTitle)replaceClass(boxTitle, "hidden", "visible");	
  	  if(boxTitle) show(boxTitle);
	  toggleOption.className="collapseDetails";      
  }
} 


