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 = "";
	if (obj.value != null) {
		v = obj.value;
	} else if (obj.innerText != null) {
		v = obj.innerText;
	} else {
		v = obj.textContent;
	}
	if (v.length > maxlength) {
		return false;
	} else {
		return true;
	}
}
function CheckBlank(obj) {
	var v = "";
	if (obj.value != null) {
		v = obj.value;
	} else if (obj.innerText != null) {
		v = obj.innerText;
	} else {
		v = obj.textContent;
	}
	if (v.length == 0) {
		return true;
	} else {
		return false;
	}
}
function ReportLength(obj, maxlength) {
	var v = "";
	if (obj.value != null) {
		v = obj.value;
	} else if (obj.innerText != null) {
		v = obj.innerText;
	} else {
		v = obj.textContent;
	}
	var used = v.length;
	var 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 CheckMultipleInput2(name,id) {
	var objs = document.getElementsByName(name);
	if (objs == null) return false;
	for (var i=0; i<objs.length; i++) {
		if (objs[i].id == id && objs[i].checked) return true;
	}
	return false;
}
function RenderMultipleInput(name,id,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++) {
		if (objs[i].id == id) {
			v1 = parseInt(objs[i].value);
			if (v1 & v2) objs[i].checked = true;
		}
	}
}
function RenderSingleInput(name,id,value) {
	var objs = document.getElementsByName(name);
	if (objs == null) return;
	for (var i=0; i<objs.length; i++) {
		if (objs[i].id == id && 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 = webroot + "/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);
	if (tr.nextSibling != null) {
		newtr = tr.parentNode.insertBefore(newtr, tr.nextSibling);
	} else {
		newtr = tr.parentNode.appendChild(newtr); 
	}
	var select = newtr.childNodes[0].childNodes[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.childNodes;
	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");
	if (obj) {
		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.childNodes;
	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.childNodes;
	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;
}
function CheckValidSelect(obj) {
	if (obj.selectedIndex == -1) return false;
	if (obj.options[obj.selectedIndex].value == "") return false;
	return true;
}
function ContactHelpDesk(pagetype, pageid) {
	popup(webroot + '/contacthelpdesk.asp?PageType=' + pagetype + '&PageID=' + pageid);
}
function PrintPage() {
	window.print();
}
function DoPasteData(formid, name) {
	var obj = document.getElementById(name + "_" + formid + "_Preview");
	obj.focus();
	var range = obj.createTextRange();
	range.execCommand("Paste");
	var text = obj.value;
	obj.blur();
	if (text == "") {
		window.alert("Sorry, nothing is pasted. Please check if you have correctly copied data from the source file.");
		document.forms['Form'+formid].elements[name].value = text;
		return;
	}
	while (text.indexOf("#")>=0) text = text.replaceAll("#","");
	while (text.indexOf("|")>=0) text = text.replace("|","");
	while (text.indexOf("\'")>=0) text = text.replace("\'","");
	while (text.indexOf("\"")>=0) text = text.replace("\"","");
	while (text.indexOf("\t")>=0) text = text.replace("\t","#");
	while (text.indexOf("\n")>=0) text = text.replace("\n","|");
	while (text.indexOf("\r")>=0) text = text.replace("\r","");
	document.forms['Form'+formid].elements[name].value = text;
}
function ClearPasteData(formid, name) {
	if (!window.confirm("Are you sure you want to clear the pasted data in the following text box?")) {
		return;
	}
	var obj = document.getElementById(name + "_" + formid + "_Preview");
	obj.value = "";
	document.forms['Form'+formid].elements[name].value = "";
}
function UpdateTimeHour(obj,value) {
	var v = document.getElementById(obj).value;
	v = value + v.substring(2);
	document.getElementById(obj).value = v;
}
function UpdateTimeMinute(obj,value) {
	var v = document.getElementById(obj).value;
	v = v.substring(0,3) + value;
	document.getElementById(obj).value = v;
}