
function toggleDetails(buttonOnId,buttonOffId,detailsId)
{
	buttonOn=document.getElementById(buttonOnId);
	if (document.getElementById(detailsId).style.display!="none")
	{
		if (buttonOn!=null)
			document.getElementById(buttonOnId).style.display="";
		document.getElementById(buttonOffId).style.display="none";
		document.getElementById(detailsId).style.display="none";
	} else {
		if (buttonOn!=null)
			document.getElementById(buttonOnId).style.display="none";
		document.getElementById(buttonOffId).style.display="";
		document.getElementById(detailsId).style.display="";
	}
}

function hideElement(detailsId) {
	if (document.getElementById(detailsId).style.display!="none")
	{
		document.getElementById(detailsId).style.display="none";
	}
}

function toggleDisplay(detailsId)
{
	if (document.getElementById(detailsId).style.display!="none")
	{
		document.getElementById(detailsId).style.display="none";
	} else {
		document.getElementById(detailsId).style.display="";
	}
}

function preloadImage(imageUrl) {
	if (imageUrl && document.images)
	{
	  icon = new Image();
	  icon.src=imageUrl;
	}
}

function showLoadingWithText(imageUrl,elemId,show,text) {
	if (show) {
		Element.update(elemId,"<img border='0' src='"+imageUrl+"' alt='Loading' style='cursor:pointer'>"+((text=='')?"":"&nbsp;"+text));
	} else {
		Element.update(elemId,"");
	}
}

function showLoading(imageUrl,elemId) {
	showLoadingWithText(imageUrl,elemId,true,false);
}

function hideLoading(elemId) {
	showLoadingWithText(false,elemId,false,false);
}

function getChosenRadioValue(radioElem)
{
	value=null;
	if (radioElem.length) {
		for (i=0;i<radioElem.length;i++) {
			if (radioElem[i].checked==true) {
				value=radioElem[i].value;
			}
		}
	} else {
		if (radioElem.checked)
			value=radioElem.value;
	}
	return value;
}

function updateRadioDecisionSubmitButton(radioElem,buttonName) {
	if (radioElem!=null) {
		var action=getChosenRadioValue(radioElem);
		document.getElementById(buttonName).disabled=(action==null || action=="");
	}
}
function validateRadioDecisionForm(radioElem) {
	var action=getChosenRadioValue(radioElem);
	if (action==null || action=="") {
		alert("Please make a decision");
		return false;
	} else
		return true;
}

// select list

function list_add(list,id,text)
{
	var node=document.createElement("OPTION");
	node.id=id;
	node.text=text;
	node.value=id;
	list.options[list.length]=node;
}

function list_fill(list,data) {
	list_clear(list);
	if (data!=null) for (i=0;i<data.length;i++) {
		elem = data[i];
		list_add(list,elem['id'],elem['val']);
	}
}

function list_fill_master(list,data,masterKey) {
	list_clear(list);
	spacer=false;
	if (data!=null) for (i=0;i<data.length;i++) {
		elem = data[i];
		if (elem['spacer']) {
			spacer = elem;
		} else if (elem['master_key']==masterKey) {
			if (spacer!=false) {
				list_add(list,spacer['id'],spacer['val']);
				spacer=false;
			}
			list_add(list,elem['id'],elem['val']);
		}
	}

}

function list_clear(list)
{
	while (list.options.length>0)
	{
		list.remove(0);
	}
}
function list_select(list,value)
{
	for (i=0;i<list.options.length;i++)
	{
		if (list.options[i].value==value) {
			list.selectedIndex=i;
			break;
		}
	}
}

function check_all_elements(checked, regExpString) {
	var re=(regExpString!=null)?new RegExp(regExpString):null;
	if (re==null) {
		return;
	}
	inputs = document.getElementsByTagName("input");	
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].type=='checkbox' && inputs[i].name!=null && (re==null || inputs[i].name.match(re))) {
			inputs[i].checked = checked;
		}
	}	
}

function set_element_visibility(tagName,idRegExpString,visible) {
	var re=(idRegExpString!=null)?new RegExp(idRegExpString):null;
	elems = document.getElementsByTagName(tagName);	
	for (var i = 0; i < elems.length; i++) {
		if (elems[i].id!=null && (re==null || elems[i].id.match(re))) {
			elems[i].style.display = visible?'':'none';
		}
	}	
}

function toggle_element_visibility(tagName,idRegExpString) {
	var re=(idRegExpString!=null)?new RegExp(idRegExpString):null;
	elems = document.getElementsByTagName(tagName);	
	for (var i = 0; i < elems.length; i++) {
		if (elems[i].id!=null && (re==null || elems[i].id.match(re))) {
			elems[i].style.display = (elems[i].style.display=='none')?'':'none';
		}
	}	
}

function walk_through(tagName,idRegExpString, func) {
	var re=(idRegExpString!=null)?new RegExp(idRegExpString):null;
	elems = document.getElementsByTagName(tagName);	
	for (var i = 0; i < elems.length; i++) {
		if (re==null || (elems[i].id!=null && (re==null || elems[i].id.match(re)))) {
			func(elems[i]);
		}
	}	
}

// tab controlling
function show_new_tab(selectedTabId,selectedClassName) {
	document.getElementById(selectedTabId+	'_div').style.display='';
	document.getElementById(selectedTabId).style.cursor='hand';
	document.getElementById(selectedTabId).className=selectedClassName;
}
function update_tabs(tabIds,selectedTabId,selectedClassName,normalClassName) {
		for (var i=0;i<tabIds.length;i++) {
			if (tabIds[i]!=selectedTabId) {
				var elem=document.getElementById(tabIds[i]);
				elem.style.cursor='';
				elem.className=normalClassName;
				var divElem=document.getElementById(tabIds[i]+	'_div');
				divElem.style.display='none';
			}
		}
	if (document.getElementById(selectedTabId+	'_div').style.display=='none') {
		setTimeout("show_new_tab('"+selectedTabId+"','"+selectedClassName+"')", 50);
	}
}

