var ReturnCode = 0;
function ToggleTR(v) {
	switch (v.className) {
	case "t":
		v.className = "t2";
		break;
	case "t2":
		v.className = "t";
		break;
	case "t3":
		v.className = "";
		break;
	default:
		v.className = "t3";
	}
}
function CloseWindow(return_url) {
	if (return_url) {
		window.opener.document.location.href = return_url;
	} else {
		var url = window.opener.document.location.href;
		if (url.indexOf("#") >= 0) {
			window.opener.document.location.href = url.substring(0,url.indexOf("#"));
			window.opener.document.location.hash = url.substring(url.indexOf("#"));
		} else {
			window.opener.document.location.href = url;
		}
	}
	window.close();
}
function CheckLength(obj, maxlength) {
	var v = obj.innerText;
	if (v.length > maxlength) {
		return false;
	} else {
		return true;
	}
}
function ReportLength(obj, maxlength) {
	var used=0, left=0;
	var v = obj.value;
	used = v.length;
	left = maxlength - used;
	if (left>0) {
		window.alert("You have typed "+used+" characters. You can type an additional "+left+" characters into this field.");
	} else if (left==0) {
		window.alert("You have reached the maximum number of chracters allowed for this field.");
	} else {
		left = 0-left;
		window.alert("You have exceeded the maximum number of characters allowed for this field by " + left+" characters. You should remove some words to shorten the text.");
	}
}
function popup(url) {
	var w = Math.floor(screen.width * 0.8);
	var h = Math.floor(screen.height * 0.65);
	var l = (screen.width - w) / 2;
	var t = (screen.height - h) / 2 - 30;
	window.open(url, "_blank", "toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, left="+l.toString()+", top="+t.toString()+", width="+w.toString()+", height="+h.toString());
}
function popup2(url) {
	var w = 380;
	var h = 280;
	var l = (screen.width - w) / 2;
	var t = (screen.height - h) / 2 - 30;
	window.open(url, "_blank", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, left="+l.toString()+", top="+t.toString()+", width="+w.toString()+", height="+h.toString());
}
function popup3(url) {
	var w = Math.floor(screen.width * 0.5);
	var h = Math.floor(screen.height * 0.5);
	var l = (screen.width - w) / 2;
	var t = (screen.height - h) / 2 - 30;
	window.open(url, "_blank", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, left="+l.toString()+", top="+t.toString()+", width="+w.toString()+", height="+h.toString());
}
function CheckMultipleInput(name) {
	var objs = document.getElementsByName(name);
	if (objs == null) return false;
	for (var i=0; i<objs.length; i++) {
		if (objs[i].checked) return true;
	}
	return false;
}
function RenderMultipleInput(name,value) {
	var objs = document.getElementsByName(name);
	if (objs == null) return;
	var v1=0, v2=0;
	v2 = parseInt(value);
	for (var i=0; i<objs.length; i++) {
		v1 = parseInt(objs[i].value);
		if (v1 & v2) objs[i].checked = true;
	}
}
function RenderSingleInput(name,value) {
	var objs = document.getElementsByName(name);
	if (objs == null) return;
	for (var i=0; i<objs.length; i++) {
		if (objs[i].value == value) {
			objs[i].checked = true;
			return;
		}
	}
}
function SetSelectValue(obj, value) {
	if (obj == null) return;
	var opts = obj.options;
	var length = opts.length;
	for (var i=0; i<length; i++) {
		if (opts[i].value == value) {
			obj.selectedIndex = opts[i].index;
			return;
		}
	}
}
function RemoveMultipleSelectItem(table, id) {
	if (window.confirm("Are you sure you want to remove the selected item from the list?")) {
		var row = document.getElementById(table + "_" + id);
		GetElementByIDTagName(table, "TABLE").deleteRow(row.rowIndex);
		var preclusions = "," + document.getElementById(table+"_Preclusions").value + ",";
		preclusions = preclusions.replace(","+id+",", ",");
		SaveMultipleSelectPreclusions(table, preclusions);
	}
}
function SaveMultipleSelectPreclusions(table, preclusions) {
	var str = "" + preclusions;
	if (str != "") {
		if (str.charAt(0) == ',') str = str.substring(1);
		if (str.charAt(str.length-1) == ',') str = str.substring(0, str.length-1);
	}
	document.getElementById(table+"_Preclusions").value = str;
}
function AddMultipleSelectItem(table, id, name) {
	if (document.getElementById(table + "_" + id)) return false;
	var tr = GetElementByIDTagName(table, "TABLE").insertRow(-1);
	tr.id = table + "_" + id;
	var td = tr.insertCell(-1);
	td.className = "form3";
	td.innerHTML = '<input type="hidden" name="' + table + '" value="' + id + '" />' + name;
	td = tr.insertCell(-1);
	td.className = "form3";
	td.innerHTML = '<a href="javascript:RemoveMultipleSelectItem(\'' + table + '\','+ id + ')" class="smallFont">Remove</a>';

	var preclusions = document.getElementById(table+"_Preclusions").value;
	if (preclusions == "") {
		preclusions = id;
	} else {
		preclusions += "," + id;
	}
	SaveMultipleSelectPreclusions(table, preclusions);
	return true;
}
function CheckMultipleSelectTable(table) {
	var len = GetElementByIDTagName(table, "TABLE").rows.length;
	return (len < 2) ? false : true;
}
function ShowMultipleSelectTableWindow(table, url) {
	var preclusions = document.getElementById(table+"_Preclusions").value;
	if (url.indexOf("?")==-1) {
		popup3(url + "?Table=" + table + "&Preclusion=" + preclusions);
	} else {
		popup3(url + "&Table=" + table + "&Preclusion=" + preclusions);
	}
}
function ReloadPage() {
	var url = location.href;
	location.href = url;
}
function CascadeUpdate(formindex, formid, id, src, level) {
	var objs = CascadeUpdate_Objs[formindex][level];
	if (objs == "") return;
	if (!objs) return;
	var obj, td;
	for (var i=0; i<objs.length; i++) {
		obj = CascadeFindObject(formid, objs[i]);
		td = obj.parentNode;
		obj.style.display = "none";
		document.getElementById("CascadeLoading_" + formid + "_" + objs[i]).style.display = "block";
		document.getElementById("CascadeUpdate_" + formid + "_" + objs[i]).src = "/cascadeupdate.asp?FormIndex=" + formindex + "&FormID=" + formid + "&Obj=" + objs[i] + "&ID=" + id + "&CascadeID=" + src.options[src.selectedIndex].value + "&Level=" + level;
	}
	var f = document.forms['Form'+formid];
	f.elements['submitform'].disabled=true;
}
function CascadeFindObject(formid, objname) {
	var f = document.forms['Form'+formid];
	for (var i=0; i<f.elements.length; i++) {
		if (f.elements[i].id == objname) return f.elements[i];
	}
	return null;
}
function HideFormDate(name) {
	document.getElementById(name).disabled = true;
}
function ShowFormDate(name) {
	document.getElementById(name).disabled = false;
}
function UserSearch_AddField() {
	var table = document.getElementById("UserSearch");
	var tr = table.rows[table.rows.length-3];
	var newtr = tr.cloneNode(true);
	newtr = tr.insertAdjacentElement("afterEnd", newtr);
	var select = newtr.children[0].children[0];
	select.selectedIndex = 0;
	UserSearch_UpdateField(select);
	document.getElementById("UserSearch_Delete").style.visibility = "visible";
}
function UserSearch_DeleteField() {
	var table = document.getElementById("UserSearch");
	table.deleteRow(table.rows.length-3);
	if (table.rows.length==3) document.getElementById("UserSearch_Delete").style.visibility = "hidden";
}
function UserSearch_UpdateField(obj) {
	var td = obj.parentNode.nextSibling;
	var selected = "v_" + obj.options[obj.selectedIndex].value;
	var objs = td.children;
	for (var i=0; i<objs.length; i++) {
		if (objs[i].id == selected) {
			objs[i].style.display = "block";
		} else {
			objs[i].style.display = "none";
		}
	}
}
function UserSearch_Search() {
	var button = document.getElementById("UserSearch_SearchButton");
	button.value = "Processing...";
	button.disabled = true;
	var table = document.getElementById("UserSearch");
	var form = document.getElementById("UserSearchForm");
	var fields = ",";
	var field = "";
	var value = "";
	var objs = document.getElementsByName("UserSearch_Field");
	for (var i=0; i<objs.length; i++) {
		field = objs[i].options[objs[i].selectedIndex].value;
		value = UserSearch_GetField(objs[i], field);
		if (value != "" && fields.indexOf(','+field+',')==-1) {
			fields += field + ',';
			UserSearch_AddCriterium(form, field, value);
			UserSearch_AddCriterium(form, "F", field);
		}
	}
	if (fields == ",") {
		window.alert("Please specify at search criteria.");
		button.disabled = false;
		return;
	}
	var obj = document.getElementById("UserSearch_Order");
	UserSearch_AddCriterium(form, "Order", obj.options[obj.selectedIndex].value);
	UserSearch_AddCriterium(form, "RowCount", document.getElementById("UserSearch_RowCount").value);
	obj = document.getElementById("UserSearch_Inactive");
	if (obj != null) UserSearch_AddCriterium(form, "Inactive", ((obj.checked) ? "1" : "0"));
	form.submit();
}
function UserSearch_GetField(obj, field) {
	var objs = obj.parentNode.nextSibling.children;
	for (var i=0; i<objs.length; i++) {
		if (objs[i].id == 'v_'+field) {
			if (objs[i].tagName == "SELECT") {
				return objs[i].options[objs[i].selectedIndex].value;
			} else {
				return objs[i].value;
			}
		}
	}
}
function UserSearch_SetField(obj, value) {
	var field = obj.options[obj.selectedIndex].value;
	var objs = obj.parentNode.nextSibling.children;
	for (var i=0; i<objs.length; i++) {
		if (objs[i].id == 'v_'+field) {
			if (objs[i].tagName == "SELECT") {
				SetSelectValue(objs[i], value);
			} else {
				objs[i].value = value;
			}
		}
	}
}
function UserSearch_AddCriterium(form, field, value) {
	var item = document.createElement("INPUT");
	item.type = "hidden";
	item.name = field;
	item.value = value;
	form.appendChild(item);
}
function UserSearch_Ini() {
	var length = parseInt(arguments[0]);
	var i = 0;
	for (i=1; i<length; i++) UserSearch_AddField();
	var objs = document.getElementsByName("UserSearch_Field");
	for (i=0; i<objs.length; i++) {
		SetSelectValue(objs[i], arguments[i+1]);
		UserSearch_UpdateField(objs[i]);
		UserSearch_SetField(objs[i], arguments[i+length+1]);
	}
}
function UserSearch_ListCG(cg) {
	var form = document.getElementById("UserSearchForm");
	UserSearch_AddCriterium(form, "F", "cg");
	UserSearch_AddCriterium(form, "cg", cg);
	var obj = document.getElementById("UserSearch_Order");
	UserSearch_AddCriterium(form, "Order", obj.options[obj.selectedIndex].value);
	UserSearch_AddCriterium(form, "RowCount", document.getElementById("UserSearch_RowCount").value);
	var obj = document.getElementById("UserSearch_Inactive");
	if (obj != null) UserSearch_AddCriterium(form, "Inactive", ((obj.checked) ? "1" : "0"));
	form.submit();
}
function UserSearch_ListDept(dept) {
	var form = document.getElementById("UserSearchForm");
	UserSearch_AddCriterium(form, "F", "dept");
	UserSearch_AddCriterium(form, "dept", dept);
	var obj = document.getElementById("UserSearch_Order");
	UserSearch_AddCriterium(form, "Order", obj.options[obj.selectedIndex].value);
	UserSearch_AddCriterium(form, "RowCount", document.getElementById("UserSearch_RowCount").value);
	var obj = document.getElementById("UserSearch_Inactive");
	if (obj != null) UserSearch_AddCriterium(form, "Inactive", ((obj.checked) ? "1" : "0"));
	form.submit();
}
function UserSearch_Order(order) {
	SetSelectValue(document.getElementById("UserSearch_Order"), order);
	UserSearch_Search();
}
function UserSearch_OneClickAccess(obj, id) {
	if (obj.value != "") {
		var url = obj.value;
		obj.selectedIndex = 0;
		if (url.indexOf("open:")>=0) {
			url = url.replace("open:","");
			window.open(url);
			return;
		}
		if (url.indexOf("$ID$") >= 0) {
			url = url.replace("$ID$", id);
			location.href = url;
			return;
		}
		if (url.indexOf("?") == -1) {
			popup(url + "?ID=" + id);
			return;
		}
		if (url.indexOf("?ID=")==-1 && url.indexOf("&ID=")==-1) {
			popup(url + "&ID=" + id);
		} else {
			popup(url + "&UserID=" + id);
		}
	}
}
function ToggleSelect(obj) {
	var objs = document.getElementsByName("ID");
	for (var i=0; i<objs.length; i++) {
		objs[i].checked = obj.checked;
	}
}
function GetElementByIDTagName(id, tagName) {
	var objs = document.getElementsByTagName(tagName);
	for (var i=0; i<objs.length; i++) {
		if (objs[i].id == id) return objs[i];
	}
	return null;
}
function CheckPasswordStrength(password, minlength) {
	if (password == "") return true;
	if (password.length < minlength) return false;
	if (password.match(/\d/g) != null && password.match(/\d/g).length >= 1 && password.match(/[a-z]/gi) != null && password.match(/[a-z]/gi).length >= 1) return true;
	return false;
}