function openWindow(name, theLink, width, height)
{
	var params = "resizable=yes,toolbar=no,menubar=no,scrollbars=yes,width=" + width + ",height=" + height;
	var newwin = window.open(theLink, name , params);
	if (newwin)
		newwin.focus();
	return newwin;
}

function windowWidget(w,varName,lnk,windowName,windowWidth,windowHeight)
{
	var prefix = (lnk.indexOf("?") >= 0) ? "&" : "?";
	var rurl = "SubmitFormVariable=" + w.form.name + "." + varName;
	lnk = 
		lnk + prefix
		+ "Title=" + escape(windowName) 
		+ "&RedirectURL=" + escape(rurl);
	return openWindow(varName, lnk, windowWidth, windowHeight);
}

function forgotPassword()
{
	openWindow('register', 'http://www.bioexpertise.com/register/pass.cfm', 480, 420);
}

function MatchName(name, elementName)
{
	if (elementName.charAt(0) == '$') {
		elementName = elementName.substring(1);
		return (name.indexOf(elementName) == 0) ? true : false;
	} else {
		return (name == elementName) ? true : false;
	}
}

function SetChecked(checkForm, elementName, val) {
	len = checkForm.elements.length;
	var i=0;
	for( i=0 ; i<len ; i++) {
		if (MatchName(checkForm.elements[i].name, elementName)) {
			checkForm.elements[i].checked=val;
		}
	}
}
function CountChecked(checkForm, elementName) {
	len = checkForm.elements.length;
	var i=0;
	var count=0;
	for( i=0 ; i<len ; i++) {
		if (MatchName(checkForm.elements[i].name, elementName) && checkForm.elements[i].checked)
			count++;
	}
	return count;
}
function ToggleChecked(checkForm, elementName) {
	len = document.forms[checkForm].elements.length;
	var i=0;
	for( i=0 ; i<len ; i++) {
		if (MatchName(document.forms[checkForm].elements[i].name, elementName)) {
			SetChecked(document.forms[checkForm], elementName, !document.forms[checkForm].elements[i].checked);
			break;
		}
	}
	return false;
}

function aPrefix(word)
{
	var firstChar = word.charAt(0);
	var vowels = "aeiou";
	if (vowels.indexOf(firstChar) < 0)
		return "a " + word;
	return "an " + word;
}
 
function ConfirmMultiple(verb, checkForm, elementName, objectName, objectsName, message) {
	var ignoreNoneChecked = arguments[1] || false;
	var theCount = CountChecked(checkForm, elementName);
	if (theCount == 0) {
		if (ignoreNoneChecked) {
			return true;
		}
		else {
			alert("You need to check " + aPrefix(objectName) + " to " + verb + ".");
			return false;
		}
	}
	confirmMessage = "Are you sure you want to " + verb + " ";
	if (theCount == 1) {
		confirmMessage += "this " + objectName;
	} else {
		confirmMessage += "these " + theCount + " " + objectsName;
	}
	confirmMessage += "?";
	if (message.length != 0) {
		confirmMessage += " " + message;
	}
	if (confirm(confirmMessage)) {
		checkForm.submit();
		return true;
	} else {
		return false;
	}
}

function ConfirmMultipleAlt(verb, checkForm, elementName, objectName, objectsName, message) {
	var ignoreNoneChecked = arguments[1] || false;
	var theCount = CountChecked(checkForm, elementName);
	if (theCount == 0) {
		if (ignoreNoneChecked) {
			return true;
		}
		else {
			alert("You need to check " + aPrefix(objectName) + " to " + verb + ".");
			return false;
		}
	}
	confirmMessage = "Are you sure you want to " + verb + " ";
	if (theCount == 1) {
		confirmMessage += "this " + objectName;
	} else {
		confirmMessage += "these " + theCount + " " + objectsName;
	}
	confirmMessage += "?";
	if (message.length != 0) {
		confirmMessage += " " + message;
	}

	return confirm(confirmMessage);
}

function ConfirmDeleteAlt(checkForm, elementName, objectName, objectsName, message) {
	return ConfirmMultipleAlt('delete',checkForm, elementName, objectName, objectsName, message);
}

function ConfirmDelete(checkForm, elementName, objectName, objectsName, message) {
	return ConfirmMultiple('delete',checkForm, elementName, objectName, objectsName, message);
}

function ConfirmAction(checkForm, message) {
	if (confirm(message)) {
		checkForm.submit();
		return true;
	} else {
		return false;
	}
}

function selectJump(selectItem, scriptName, queryName, queryExtras)
{
	if (selectItem.selectedIndex == 0) 
		return;
	else {
		queryString = queryName + "=" + selectItem.options[selectItem.selectedIndex].value;
		window.location.href = scriptName + "?" + queryString + queryExtras;
	}
}

function chooseFolderPopup(selectItem, link)
{
	var fid = selectItem.options[selectItem.selectedIndex].value;
	if (fid == "" || fid == 0) {
		alert("Please select a folder from the list.")
		return;
	}
	var u = 'content.cfm?ID=' + selectItem.options[selectItem.selectedIndex].value;
	u += link;
	openWindow('content', u, 400, 600)
}

function CharCount(text, theChar)
{
	var n = 0;
	var i = 0;
	while ((i = text.indexOf(theChar, i)) >= 0) {
		++n;
		i += theChar.length;
	}
	return n;
}

function WordCountUpdate(widget, display, maximum)
{
	var c = WordCount(widget.value);
	var v = maximum - c;
	if (v < 0) {
		display.value = "Exceed";
	} else {
		display.value = v;
	}
	return false;
}
function WordCount(text)
{
	text = text.replace(/\s+/g, '~');
	if (text == "")
		return 0;
	return CharCount(text, '~') + 1;
}

function showhidden(nameuse, parentId, listloop) {
	var valueArray = listloop.split(",");
	for(var i=0; i<valueArray.length; i++){
		myParentHide = document.getElementById(nameuse + valueArray[i]);
		myParentHide.style.display="none";
	}
	myParent = document.getElementById(nameuse + parentId);
	//if (myParent.style.display=="none") {
		myParent.style.display="block"; //}
	/*else {
		myParent.style.display="none"; }*/
}
