// show and hide Divs
function showDiv(showDiv) {
	showDiv = document.getElementById(showDiv);
	if (showDiv) {
		if (showDiv.style.display == "none") {
			showDiv.style.display = "block";
		} else {
			showDiv.style.display = "block";
		}
	}
}		
function hideDiv(hideDiv) {
	hideDiv = document.getElementById(hideDiv);
	if (hideDiv) {
		if (hideDiv.style.display == "block") {
			hideDiv.style.display = "none";
		} else {
			hideDiv.style.display = "none";
		}
	}
}	
// show and hide table rows (table rows should be, and are, handled differently than divs)
// this function checks the browser to determine if it needs to be called
function showTr(id) {
	id = document.getElementById(id);
	if ((navigator.appName).indexOf("Microsoft")!=-1) {
			if (id.style.display == "none") {
				id.style.display = "block";
			} else {
				id.style.display = "block";
			}
	 } else {
			if (id.style.display == "none") {
				id.style.display = "table-row";
			} else {
				id.style.display = "table-row";
			}
	 }
}		
function hideTr(id) {
	id = document.getElementById(id);
	if ((navigator.appName).indexOf("Microsoft")!=-1) {
			if (id.style.display == "block") {
				id.style.display = "none";
			} else {
				id.style.display = "none";
			}
	 } else {
			if (id.style.display == "table-row") {
				id.style.display = "none";
			} else {
				id.style.display = "none";
			}
	 }
}		
// showAll Divs by className
function showAllDivs(cls){
	elements = document.getElementsByClassName(cls);
	for(var i = 0; i < elements.length; i++) {
		if(elements[i].style.display == 'none')
			elements[i].style.display = 'block';
	}
}
// hideAll Divs by className
function hideAllDivs(cls){
	elements = document.getElementsByClassName(cls);
	for(var i = 0; i < elements.length; i++) {
		if(elements[i].style.display == 'block')
			elements[i].style.display = 'none';
	}
}
// hide all tr's by class name
function hideAllTrs(cls){
	elements = document.getElementsByClassName(cls);
	for(var i = 0; i < elements.length; i++) {
		if ((navigator.appName).indexOf("Microsoft")!=-1) {
			if (elements[i].style.display == "block") {
				elements[i].style.display = "none";
			} else {
				elements[i].style.display = "none";
			}
	 	} else {
			if (elements[i].style.display == "table-row") {
				elements[i].style.display = "none";
			} else {
				elements[i].style.display = "none";
			}
	 	}
	}
}
// show all tr's by class name
function showAllTrs(cls){
	elements = document.getElementsByClassName(cls);
	for(var i = 0; i < elements.length; i++) {
		if ((navigator.appName).indexOf("Microsoft")!=-1) {
			if (elements[i].style.display == "none") {
				elements[i].style.display = "block";
			} else {
				elements[i].style.display = "block";
			}
	 	} else {
			if (elements[i].style.display == "none") {
				elements[i].style.display = "table-row";
			} else {
				elements[i].style.display = "table-row";
			}
	 	}
	}
}
// toggles a div on and off based on state of checkbox input
toggleCheckedElement = function(id,isVisible) {
    var divElement = getByID(id);
    if(divElement!=null) {
        if(isVisible) {
            divElement.style.display = ""; // show
        }
        else {
            divElement.style.display = "none"; // hide
        }
    }
}
// this disables all the form fields on a given page
function DisableEnableForm(xForm,xHow){
  objElems = xForm.elements;
  for(i=0;i<objElems.length;i++){
    objElems[i].disabled = xHow;
  }
}
// centered popup
function newWindow(a_str_windowURL, a_str_windowName, a_int_windowWidth, a_int_windowHeight, a_bool_scrollbars, a_bool_resizable, a_bool_menubar, a_bool_toolbar, a_bool_addressbar, a_bool_statusbar, a_bool_fullscreen) {
  var int_windowLeft = (screen.width - a_int_windowWidth) / 2;
  var int_windowTop = (screen.height - a_int_windowHeight) / 2;
  var str_windowProperties = 'height=' + a_int_windowHeight + ',width=' + a_int_windowWidth + ',top=' + int_windowTop + ',left=' + int_windowLeft + ',scrollbars=' + a_bool_scrollbars + ',resizable=' + a_bool_resizable + ',menubar=' + a_bool_menubar + ',toolbar=' + a_bool_toolbar + ',location=' + a_bool_addressbar + ',statusbar=' + a_bool_statusbar + ',fullscreen=' + a_bool_fullscreen + '';
  var obj_window = window.open(a_str_windowURL, a_str_windowName, str_windowProperties)
    if (parseInt(navigator.appVersion) >= 4) {
      obj_window.window.focus();
    }
}
function cssjs(a,o,c1,c2) {
switch (a){
	case 'swap':
		o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
		break;
	case 'add':
		if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
		break;
	case 'remove':
		var rep=o.className.match(' '+c1)?' '+c1:c1;
		o.className=o.className.replace(rep,'');
		break;
	case 'check':
		return new RegExp('\\b'+c1+'\\b').test(o.className)
		break;
    }
}
function disableGroup (name) {
	var inputs = document.getElementsByTagName('input');
	for ( var i=0; i<inputs.length; i++ ) {
		var o = inputs.item(i);
		var n = o.name;
		var v = o.value ? encodeURIComponent(o.value) : '';
		var t = o.type;
		if (t == 'radio' && n == name) {
			o.disabled = true;
		}
	}
}
function enableGroup (name) {
	var inputs = document.getElementsByTagName('input');
	for ( var i=0; i<inputs.length; i++ ) {
		var o = inputs.item(i);
		var n = o.name;
		var v = o.value ? encodeURIComponent(o.value) : '';
		var t = o.type;
		if (t == 'radio' && n == name) {
			o.disabled = false;
		}
	}
}
function toggleClass(id, classA, classB) {
 	if ($(id).hasClassName(classA) == true) {
 		$(id).className = classB;
 	} else {
 		$(id).className = classA;
 	}
 }