var AJAX_Debug = false;

/**
 *
 */
/*
function submitPage(newPage, newTask, newSubTask) {
	document.frmPage.SitePage.value = newPage;
	document.frmPage.SiteTask.value = newTask;
	document.frmPage.SiteSubTask.value = newSubTask;
	document.frmPage.submit();
}
*/

function redirectPage(s,u,m,p,t,t1){
	urlString = '/learn/index.cfm?s=' + s + '&u=' + u + '&m=' + m + '&p=' + p + '&t=' + t + '&t1=' + t1;
	document.location = urlString;
}

function submitPage(argv) {
	/* KB May 26, 05: added formObj object reference, instead of hard-coded document.frmPage */
	var argOffset = 0;
	var formObj = null;
	if (typeof argv == "object") { argOffset = 1; formObj = argv; }
	formObj = (!formObj?(document.getElementById?document.getElementById("frmPage"):null):formObj);
	formObj = (!formObj?(document.getElementByName?document.getElementByName("frmPage"):null):formObj);
	formObj = (!formObj?(document.forms?document.forms["frmPage"]:null):formObj);
	if (formObj) {
		if (formObj.SitePage) formObj.SitePage.value = (arguments.length>=(1+argOffset)?arguments[(0+argOffset)]:"");
		if (formObj.SiteTask) formObj.SiteTask.value = (arguments.length>=(2+argOffset)?arguments[(1+argOffset)]:"");
		if (formObj.SiteSubTask) formObj.SiteSubTask.value = (arguments.length>=(3+argOffset)?arguments[(2+argOffset)]:"");
		if (formObj.ID1) formObj.ID1.value = (arguments.length>=(4+argOffset)?arguments[(3+argOffset)]:"");
		if (formObj.ID2) formObj.ID2.value = (arguments.length>=(5+argOffset)?arguments[(4+argOffset)]:"");
		if (formObj.ID3) formObj.ID3.value = (arguments.length>=(6+argOffset)?arguments[(5+argOffset)]:"");
		if (formObj.ID4) formObj.ID4.value = (arguments.length>=(7+argOffset)?arguments[(6+argOffset)]:"");
		if (formObj.ID5) formObj.ID5.value = (arguments.length>=(8+argOffset)?arguments[(7+argOffset)]:"");
		if (formObj.ID6) formObj.ID6.value = (arguments.length>=(9+argOffset)?arguments[(8+argOffset)]:"");
		if (formObj.ID7) formObj.ID7.value = (arguments.length>=(10+argOffset)?arguments[(9+argOffset)]:"");
		if (formObj.ID8) formObj.ID8.value = (arguments.length>=(11+argOffset)?arguments[(10+argOffset)]:"");
		formObj.submit();
	}
}

/*
if(navigator.appName == "Netscape")
{
  document.captureEvents(Event.KEYPRESS);
  document.onkeypress = CheckKey;
}
*/

/*
// tb, k did not write this!
function CheckKeyIE(e) 
{
	if (navigator.appName == "Netscape")
    	keyPressed = String.fromCharCode(e.which);
 	else
        keyPressed = String.fromCharCode(window.event.keyCode);

 	if (keyPressed == "\r" || keyPressed=="\n") 
  	{
		// NOTE - the next line is causing errors on MacIE - need to trim the whitespace from the arguments?
		submitPage(arguments[0].replace(/ /, ""),arguments[1].replace(/ /, ""),arguments[2].replace(/ /, ""));
  	}
}
*/


function checkAll(newField)	{
for (i = 0; i < newField.length; i++)
	newField[i].checked = true ;
}

function uncheckAll(newField) {
for (i = 0; i < newField.length; i++)
	newField[i].checked = false ;
}

/* login button capture script
	depreciated as of Serebra KeyCapture script (sbr-kcs) v6.3
	for login functionalities, in most cases, we use the main __CaptureKey() function now */
function __CaptureNN(eventObj) { if ((__EventSource(eventObj) && (__EventSource(eventObj) == "txtLogonPassword" || __EventSource(eventObj) == "txtLogonUserName")) && __EventValue(eventObj) == 13) submitPage(__ReturnObject("SitePage").value, "logon", ""); }/* sbr-kcs v5.0 */
function __CaptureIE(eventObj) { if ((__EventSource(eventObj) && (__EventSource(eventObj) == "txtLogonPassword" || __EventSource(eventObj) == "txtLogonUserName")) && __EventValue(eventObj) == 13) { submitPage(document.frmPage.SitePage.value, "logon", ""); return false; } else return true; }/* sbr-kcs v5.0 */

// unfortunately, due to browser differences, we need to compensate for different variables names
// thus, the following functions __EventButton(), __EventKey(), __EventSource() and __EventValue() needed to be created

/* return the numeric mouse button number */
function __EventButton(eventObj) {
	if (eventObj.button && parseInt(eventObj.button) > 0) return parseInt(eventObj.button); else if (eventObj.which && parseInt(eventObj.which) > 0) return parseInt(eventObj.which); else return null;
}/* sbr-kcs v6.3 */

/* return the object to which the event was initiated */
function __EventSource(eventObj) {
	if (eventObj.srcElement && eventObj.srcElement.name) return eventObj.srcElement.name; else if (eventObj.target && eventObj.target.name) return eventObj.target.name; else return null;
}/* sbr-kcs v5.0 */

/* return the numeric ASCII keycode */
function __EventKey(eventObj) {
	if (eventObj.keyCode && parseInt(eventObj.keyCode) > 0) return parseInt(eventObj.keyCode); else if (eventObj.which && parseInt(eventObj.which) > 0) return parseInt(eventObj.which); else return null;
}/* sbr-kcs v6.2 */

/* this function automatically tries to direct execution to the right function
	it's usually better to just use the functions __EventButton() and __EventKey() themselves, since some browsers do their event-handling differently */
function __EventValue(eventObj) {
	if (eventObj.type.toLowerCase().indexOf("key") >= 0) return __EventKey(eventObj);
	else if (eventObj.type.toLowerCase().indexOf("click") >= 0 || eventObj.type.toLowerCase().indexOf("mouse") >= 0) return __EventButton(eventObj);
	else return null;
}/* sbr-kcs v6.3 */

// old key capture functions
function CheckKey() { return null; }/* sbr-kcs v1.0 */
function CheckKeyIE() { return null; }/* sbr-kcs v1.0 */

/* generic key capture script */
function __CaptureKey(formObj, eventObj, keyCodeToCapture, submitOnCapture) {
	if (submitOnCapture) {
		focusOnCapture = false;
		/* declare/assign basic submitPage parameters */
		if (arguments.length >= 5) SitePage = arguments[4]; else if (__ReturnObject("SitePage")) SitePage = __ReturnObject("SitePage").value; else SitePage = "";
		if (arguments.length >= 6) SiteTask = arguments[5]; else if (__ReturnObject("SiteTask")) SiteTask = __ReturnObject("SiteTask").value; else SiteTask = "";
		if (arguments.length >= 7) SiteSubTask = arguments[6]; else if (__ReturnObject("SiteSubTask")) SiteSubTask = __ReturnObject("SiteSubTask").value; else SiteSubTask = "";
		/* declare/assign extended submitPage parameters */
		if (arguments.length >= 8) ID1 = arguments[7]; else if (__ReturnObject("ID1")) ID1 = __ReturnObject("ID1").value; else ID1 = "";
		if (arguments.length >= 9) ID2 = arguments[8]; else if (__ReturnObject("ID2")) ID2 = __ReturnObject("ID2").value; else ID2 = "";
		if (arguments.length >= 10) ID3 = arguments[9]; else if (__ReturnObject("ID3")) ID3 = __ReturnObject("ID3").value; else ID3 = "";
		if (arguments.length >= 11) ID4 = arguments[10]; else if (__ReturnObject("ID4")) ID4 = __ReturnObject("ID4").value; else ID4 = "";
		if (arguments.length >= 12) ID5 = arguments[11]; else if (__ReturnObject("ID5")) ID5 = __ReturnObject("ID5").value; else ID5 = "";
		if (arguments.length >= 13) ID6 = arguments[12]; else if (__ReturnObject("ID6")) ID6 = __ReturnObject("ID6").value; else ID6 = "";
		if (arguments.length >= 14) ID7 = arguments[13]; else if (__ReturnObject("ID7")) ID7 = __ReturnObject("ID7").value; else ID7 = "";
		if (arguments.length >= 15) ID8 = arguments[14]; else if (__ReturnObject("ID8")) ID8 = __ReturnObject("ID8").value; else ID8 = "";
	/* when submitOnCapture is false, but argument[4] is defined, use argument[4] for the object to set focus automagically */
	} else if (arguments.length >= 4) {
		focusOnCapture = true;
		focusObj = ((typeof arguments[4] == "object") ? arguments[4] : __ReturnObject(arguments[4]));
	}/* sbr-kcs v6.3 */
	/* submit form, return FALSE to prevent any abstract behaviors */
	if (__EventKey(eventObj) == keyCodeToCapture && submitOnCapture && !focusOnCapture) {
		submitPage(SitePage, SiteTask, SiteSubTask, ID1, ID2, ID3, ID4, ID5, ID6, ID7, ID8);
		return false;
	/* don't submit the form, but return boolean value for expression testing */
	} else if (!submitOnCapture && !focusOnCapture) return (__EventKey(eventObj) == keyCodeToCapture);/* sbr-kcs v6.4 (Febuary 16th, 2005 - K. Brandner) */
	/* don't submit the form, but focus on the specified object and return TRUE for expression testing */
	else if	(__EventKey(eventObj) == keyCodeToCapture && (focusOnCapture && focusObj)) { focusObj.focus(); return true; }/* sbr-kcs v6.3 */
	/* all other cases, return true and allow the event */
	else return true;
}/* sbr-kcs v5.0 */

/* generic form object return */
function __ReturnObject(id) {
	if (document.getElementById) { // DOM-compliant browsers (MSIE5+, NSN6+, O5+)
		return document.getElementById(id);
	} else if (document.all) { // MSIE4
		return document.all[id];
	} else { // NSN4
		for (var i=0;i<document.forms.length;i++)
		{
			if (document.forms[i].elements[id])
				return document.forms[i].elements[id];
		}
		return eval("document."+id); // If all else fails...
	}
}/* sbr-kcs v5.0 */

function __ReturnLayerObject(id) {
	if (document.getElementById) {
		return document.getElementById(id);
	} else if (document.layers) {
		return document.layers[id];
	} else {
		return null;
	}
}

/* checkbox-processing functions */
/* KB Jun 28, 05 */
function __ReturnCheckboxFromChecklist ( ChkListID, ChkBoxIndex ) {
	var __ReturnCheckbox = new Function("idx", "return document.frmPage."+ChkListID+"[idx];");
	return (__ReturnCheckbox(ChkBoxIndex)?__ReturnCheckbox(ChkBoxIndex):__ReturnObject(ChkListID));
}
/* KB Jun 28, 05 */
function __SetDisabledState(State,ChkListObj){ 
	if (ChkListObj && (ChkListObj.length && ChkListObj.length > 1)) {
		for (i=0 ; i<ChkListObj.length ; i++) { ChkListObj[i].disabled = State; if (arguments.length >= 3) ChkListObj[i].checked = arguments[2]; };
	} else {
		ChkListObj.disabled = State;
		if (arguments.length >= 3) ChkListObj.checked = arguments[2]; 
	}
}
function __SetOptionSelectedByVal ( ChkObj, Val ) {
	if (typeof ChkObj=="object"?ChkObj:__ReturnObject(ChkObj));
	if (ChkObj && ChkObj.options) 
		for (i=0 ; i<ChkObj.options.length ; i++) ChkObj.options[i].selected = (ChkObj.options[i].value.toLowerCase()==Val.toLowerCase()?true:false);
}
function __SynchronizeCheckList(ChkAllObj,ChkListObj){ 
	/* 
		Febuary 16th, 2005 - K. Brandner
			- Compensate in the case that only one checkbox exists in ChkListObj
			- Add handling for optional third BOOLEAN parameter to override the use of ChkAllObj.checked
		Jun 28th, 2005 - K. Brandner
			- Handling for (Checkbox).disabled
	*/
	if (ChkListObj && (ChkListObj.length && ChkListObj.length > 1)) {
		var NumChanged = 0;
		for (i=0 ; i<ChkListObj.length ; i++) { 
			if (!ChkListObj[i].disabled) {
				ChkListObj[i].checked = (arguments.length>=3?arguments[2]:ChkAllObj.checked); NumChanged += 1;
			}
		};
		if (NumChanged == 0) ChkAllObj.checked = false;
	} else if (!ChkListObj.disabled) ChkListObj.checked = (arguments.length>=3?arguments[2]:ChkAllObj.checked);
}
function __VerifyChecked ( ChkAllObj, ChkListObj ) {
	/*
		Jun 28th, 2005 - K. Brandner
			- Handling for (Checkbox).disabled
			- Compensate in the case that only one checkbox exists in ChkListObj
	*/
	NumChecked = 0; NumDisabled = 0; NumCheckboxes = ChkListObj.length;
	if (ChkListObj && ChkListObj.length) {
		for (i=0 ; i<NumCheckboxes ; i++) { 
			if (ChkListObj[i].checked || ChkListObj[i].disabled) NumChecked = NumChecked + 1;
			if (ChkListObj[i].disabled) NumDisabled = NumDisabled + 1;
		}
	} else if (ChkListObj) {
		NumCheckboxes = 1;
		if (ChkListObj.checked || ChkListObj.disabled) NumChecked = NumChecked + 1;
		if (ChkListObj.disabled) NumDisabled = NumDisabled + 1;	
	}
	if (ChkAllObj) ChkAllObj.checked = ((NumChecked == NumCheckboxes && NumDisabled < NumCheckboxes) ? true : false);
}
/* KB Jun 28, 05 */
function __VerifyLinkedCheckbox ( ChkObj, LinkedChkObj, ChkIndex ) {
	ChildChkObj = __ReturnCheckboxFromChecklist(LinkedChkObj, ChkIndex);
	ChildChkObj.checked = ChkObj.checked;
	ChildChkObj.disabled = (ChkObj.checked?false:true);
}

/* usability functions */
function __ChangeLayerState (layerObj, pivotal, stateFlag) {
	layerObj = (typeof layerObj=="object"?layerObj:__ReturnLayerObject(layerObj));
	if (layerObj && layerObj.style) {
		currentState = (layerObj.style.display=="block"||layerObj.style.display=="inline"?true:false);
		layerObj.style.display = ((pivotal?(currentState?false:true):stateFlag)?"inline":"none");
	}
}
function __InsertFieldText (fieldObj, str) {
	fieldObj = (typeof fieldObj=="object"?fieldObj:__ReturnObject(fieldObj));
	if (fieldObj) {
		fieldObj.focus();
		if (document.selection) {
			if (document.selection.type.toLowerCase() == "none")
				fieldObj.value += str;
			else {
				selection = document.selection.createRange();
				originalLen = selection.text.length;
				selection.text = str;
				if (str.length) selection.moveStart("character", (-str.length + originalLen));
				else {
					selection.moveStart("character", str.length);
					selection.moveEnd("character", str.length);
				}
				selection.select();
			}
		}
		else if (typeof fieldObj.selectionStart == "number" && fieldObj.selectionStart >= 0) {
			originalPos = fieldObj.selectionStart;
			fieldObj.value = (fieldObj.value.substring(0, fieldObj.selectionStart) + str + fieldObj.value.substring(fieldObj.selectionEnd, fieldObj.value.length));
			fieldObj.selectionStart = (originalPos + str.length); 
			fieldObj.selectionEnd = (originalPos + str.length);
		} else fieldObj.value += str;
	}
	return false;
}
function __SetDate ( iY, iM, iD ) {
	oY = __ReturnObject((arguments.length >= 4?arguments[3]:"sYear")); if (oY) __SetOptionSelectedByVal(oY, iY);
	oM = __ReturnObject((arguments.length >= 5?arguments[4]:"sMonth")); if (oM) __SetOptionSelectedByVal(oM, iM);
	oD = __ReturnObject((arguments.length >= 6?arguments[5]:"sDay")); if (oD) __SetOptionSelectedByVal(oD, iD);
	return false;
}

function expandForm(elm,openForm)
{
	if (openForm == 1) {
		document.getElementById(elm).style.display="block";
	}	
	else {
		document.getElementById(elm).style.display="none";
	}
}

/* KB May 18th, 2005 */
function DescriptiveLayer ( ID, Caption, Description ) {
	this.caption = Caption;
	this.description = Description;
	this.hideCaption = (arguments.length >= 4?arguments[3]:"");
	this.id = ID;
	this.object = null;
	this.state = 0;
	this.construct = function () {
		document.write("<div id='" + this.id + "' style='background:transparent;color:#333333;font:12px verdana, Arial, sans-serif;width:600px;'><a href='##' onclick='" + this.id + ".describe(); return false;'><strong>" + this.caption + "</strong></a></div>");
		this.object = __ReturnObject(this.id);
	}
	this.describe = function () {
		if (this.state == 0) {
			if (this.object) {
				this.object.innerHTML = (this.hideCaption.toLowerCase()!="none"?"<a href='##' onclick='" + this.id + ".describe(); return false;'><strong>" + (this.hideCaption.length>0?this.hideCaption:this.caption) + "</strong></a><br />":"") + this.description;
				this.state = 1;
			}
		} else {
			if (this.object) {
				this.object.innerHTML = "<a href='##' onclick='" + this.id + ".describe(); return false;'><strong>" + this.caption + "</strong></a>";
				this.state = 0;
			}
		}
	}
}

/* Cortex AJAX */
function AJAX_Bridge (SendParam, ReceiveParam, SubmitParam, ParseIndex) {
	if (AJAX_Debug) window.alert("A call was made to AJAX_Bridge\n\nSendParam="+SendParam+"\nReceiveParam="+ReceiveParam+"\nSubmitParam="+SubmitParam+"\nParseIndex="+ParseIndex);
	if (SendParam.indexOf("&origin=") <= 0) SendParam = (SendParam+"&origin="+(__ReturnObject("AJAX_Verify_String")?__ReturnObject("AJAX_Verify_String").value:""));
	if (AJAX_Check()) AJAX_Obj = new XMLHttpRequestObject(SendParam, ReceiveParam, (arguments.length>=5?arguments[4]:"GET"), (arguments.length>=6?arguments[5]:false)); else AJAX_Obj = { XMLHttpRequestObject : null };
	if (typeof SubmitParam=="object" && !AJAX_Obj.XMLHttpRequestObject) {
		if (AJAX_Debug) window.alert("Could not instantiate XMLHttpRequestObject()");
		if (__ReturnLayerObject("AJAX_Alternative_Message")) {
			with (__ReturnLayerObject("AJAX_Alternative_Message")) {
				style.display="block";
				style.height=window.outerHeight;
				//style.width=(screen.width+"px");
			}
		}
		SubmitObj = new Array();
		for (i=ParseIndex ; i<SubmitParam.length ; i++) SubmitObj[(SubmitObj.length?SubmitObj.length:0)] = SubmitParam[i];
		submitPage((SubmitObj.length>=1?SubmitObj[0]:""),(SubmitObj.length>=2?SubmitObj[1]:""),(SubmitObj.length>=3?SubmitObj[2]:""),(SubmitObj.length>=4?SubmitObj[3]:""),(SubmitObj.length>=5?SubmitObj[4]:""),(SubmitObj.length>=6?SubmitObj[5]:""),(SubmitObj.length>=7?SubmitObj[6]:""),(SubmitObj.length>=8?SubmitObj[7]:""),(SubmitObj.length>=9?SubmitObj[8]:""),(SubmitObj.length>=10?SubmitObj[9]:""),(SubmitObj.length>=11?SubmitObj[10]:""));
	}
}
function AJAX_Check () {
	var TestObject = null;
	try{ 
		TestObject = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){ 
		try{ TestObject = new ActiveXObject("Microsoft.XMLHTTP"); }catch(sc){ TestObject = null }
	}
	if (!TestObject && typeof TestObject != "undefined") if (typeof(XMLHttpRequest)!="undefined") TestObject = new XMLHttpRequest();
	return (TestObject?true:false);
}
function AJAX_DebugOn () {
	if (arguments.length >= 1) AJAX_Debug = arguments[0];
}
function AJAX_DisplayMessage (layerID, message) {
	if (AJAX_Debug) window.alert("A call was made to AJAX_DisplayMessage\n\nLayerID="+layerID+"\nMessage="+message);
	if (__ReturnLayerObject(layerID)) {
		__ReturnLayerObject(layerID).innerHTML=message;
		window.setTimeout("__ReturnLayerObject('"+layerID+"').innerHTML='';", (arguments.length>=3?arguments[2]:5000));
	} else if (AJAX_Debug) window.alert("Could not locate layer '" + LayerID + "' with __ReturnLayerObject()");
}
function AJAX_SetCompletionStatus (lID, pID, ssID) {
	if (AJAX_Debug) window.alert("A call was made to AJAX_SetCompletionStatus\n\nLicenseID="+lID+"\nProductID="+pID+"\nStatusID="+ssID);
	AJAX_Bridge("http://campus.serebra.net/system/ajax/updateCompletion.cfm?licenseID="+lID+"&productID="+pID+"&statusID="+ssID,"if (!this.ExternalCommand) { AJAX_DisplayMessage('l"+lID+"','Your settings have been updated.'); AJAX_ToggleFinalTestDialog("+lID+", 'finalTest_layer'); };",arguments,3,"GET",true);
}
function AJAX_ToggleFinalTestDialog (lID, layerID) {
	if (AJAX_Debug) window.alert("A call was made to AJAX_ToggleFinalTestDialog\n\nLicenseID="+lID+"\nLayerID="+layerID);
	AJAX_Bridge("http://campus.serebra.net/system/ajax/finalTestDialog.cfm?licenseID="+lID,"if (!this.ExternalCommand) if (__ReturnLayerObject('"+layerID+"')) __ReturnLayerObject('"+layerID+"').innerHTML=value;",null,null);
}
/* KB Oct 20, 05 - Implemented version 2.7 of the XMLHttpRequestObject */
function XMLHttpRequestObject (URL, Commands) {
	this.AcceptExternalCommand = (arguments.length>=4&&(typeof arguments[3]=="boolean"&&arguments[2])?true:false);
	this.Commands = Commands;
	this.DataIsReady = function(value) {
		//if (this.AcceptExternalCommand && (this.value && this.value.substring(0,8).toUpperCase() == (String.fromCharCode(60)+"SCRIPT"+String.fromCharCode(62))))  
		//this.ExternalCommand = new Function(this.value.replace((String.fromCharCode(60)+"SCRIPT"+String.fromCharCode(62)), "").replace((String.fromCharCode(60)+"/SCRIPT"+String.fromCharCode(62)), "")); else this.ExternalCommand = null;
		if (this.AcceptExternalCommand && this.value) {
			externalCommandString = "";
			startIndex = value.toUpperCase().indexOf(String.fromCharCode(60)+"SCRIPT");
			while (startIndex >= 0) {
				endIndex = value.toUpperCase().indexOf(String.fromCharCode(60)+"/SCRIPT"+String.fromCharCode(62),startIndex);
				if (endIndex < 0) endIndex = value.length;
				midIndex = value.indexOf(String.fromCharCode(62), startIndex);
				if (midIndex < endIndex) {
					externalCommandString += value.substring(midIndex+1, endIndex).replace("<!--","").replace("//-->");
					value = (startIndex>0?value.substring(0,startIndex):"")+value.substring(endIndex+9,value.length);
				}
				startIndex = value.toUpperCase().indexOf(String.fromCharCode(60)+"SCRIPT", startIndex);
			}
			if (externalCommandString.length>>0) this.ExternalCommand = new Function(externalCommandString);
		}
		this.ExecuteCommand(value);
		if (this.ExternalCommand && typeof this.ExternalCommand == "function") this.ExternalCommand();
	}
	this.ExecuteCommand = new Function("value", this.Commands);
	this.ExternalCommand = null;
	this.Method = (arguments.length>=3?arguments[2]:"GET"); this.Method = this.Method.toUpperCase();
	this.Parameters = { form : (arguments.length>=5&&typeof arguments[4]=="object"?arguments[4]:null), value : "" };
	this.SendInitialPost = (arguments.length>=6&&typeof arguments[5]=="boolean"?arguments[5]:true);
	this.URL = URL;
	this.XMLHttpRequestObject = null;
	try{ 
		this.XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){ 
		try{ this.XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP"); }catch(sc){ this.XMLHttpRequestObject = null }
	}
	if (!this.XMLHttpRequestObject && typeof this.XMLHttpRequestObject != "undefined") this.XMLHttpRequestObject = new XMLHttpRequest();
	if (!window.HttpRequestObject) window.HttpRequestObject = new Array();
	this.RefPos = (window.HttpRequestObject.length?window.HttpRequestObject.length:0);
	this.value = null;
	window.HttpRequestObject[this.RefPos] = this;
	if (this.XMLHttpRequestObject) {
		if (this.XMLHttpRequestObject && this.XMLHttpRequestObject.readyState != 0) this.XMLHttpRequestObject.abort();
		if (this.Parameters.form) {
			for (i=0 ; i<this.Parameters.form.elements.length ; i++) this.Parameters.value += ((this.Parameters.value.length>0?"&":"")+this.Parameters.form.elements[i].name+"="+this.Parameters.form.elements[i].value);
		}
		if (this.Parameters.value.length>>0) this.URL = (this.Method=="GET"?this.URL+(this.URL.indexOf("?")>0?(this.URL.substring(this.URL.length-1,this.URL.length)=="&"?"":"&"):"?")+this.Parameters.value:this.URL);
		this.Refresh = function() {
			this.ExecuteCommand = new Function("value", ((arguments.length>=1&&arguments[0])?arguments[0]:this.Commands));
			this.XMLHttpRequestObject.open(this.Method, this.URL);
			this.XMLHttpRequestObject.onreadystatechange = new Function("window.HttpRequestObject["+this.RefPos+"].value = ((window.HttpRequestObject["+this.RefPos+"].XMLHttpRequestObject.readyState == 4 && window.HttpRequestObject["+this.RefPos+"].XMLHttpRequestObject.responseText)?window.HttpRequestObject["+this.RefPos+"].XMLHttpRequestObject.responseText:null); if (window.HttpRequestObject["+this.RefPos+"].value && window.HttpRequestObject["+this.RefPos+"].value.length>0) window.HttpRequestObject["+this.RefPos+"].DataIsReady(window.HttpRequestObject["+this.RefPos+"].value);");
			this.XMLHttpRequestObject.send((this.Parameters.value.length>0&&this.Method=="POST"?this.Parameters.value:null));
		}
		if (this.SendInitialPost) this.Refresh();
	}
}

function DateAdd ( sDatePart, intValue, dDate ) {
	var bReverse=(arguments.length>=4&&arguments[3]); var dReturnDate = new Date(dDate.getFullYear(),dDate.getMonth(),dDate.getDate());
	switch(sDatePart.toLowerCase()){
		case "d":
			dReturnDate.setDate((bReverse?dReturnDate.getDate()-intValue:dReturnDate.getDate()+intValue)); break;
		case "m":
			dReturnDate.setMonth((bReverse?dReturnDate.getMonth()-intValue:dReturnDate.getMonth()+intValue)); break;
		case "w":
			dReturnDate.setDate((bReverse?dReturnDate.getDate()-(intValue*7):dReturnDate.getDate()+(intValue*7))); break;
		case "y":
			dReturnDate.setFullYear((bReverse?dReturnDate.getFullYear()-intValue:dReturnDate.getFullYear()+intValue)); break;
	}
	return dReturnDate;
}

function SearchKeywordCheck ( keywordFormObj ) {
	var keywordMessage = null;
	if (keywordFormObj) {
		keywordFormObj.value=keywordFormObj.value.replace(/\s*((\S+\s*)*)/, "$1").replace(/((\s*\S+)*)\s*/, "$1");
		if (keywordFormObj.value.length == 0) keywordMessage = "Please enter keyword to search.";
		else if (keywordFormObj.value.length < 3) keywordMessage = "Please enter a keyword with at least 3 or more characters.";
		if (keywordMessage) {
			window.alert(keywordMessage);
			return false;
		}
	}
	return true;
}

/* KB Mar 22 07 */
function ClearSelectFields ( ) {
	for(var a=0;a<arguments.length;a++) 
		for(var b=0;b<__ReturnObject(arguments[a]).options.length;b++) 
			__ReturnObject(arguments[a]).options[b].selected=(__ReturnObject(arguments[a]).options[b].value=="");
	return false;
}
/* /KB */

/* KB may 4 07 */
CheckUniqueSelectSeries = function ( series, caller, indexList ) {
	var return_value = true;
	for (var index in indexList.split(",")) {
		obj = caller.form.elements[(series+indexList.split(",")[index])];
		if (obj.value == caller.value && obj.id != caller.id) SetSelectValue(obj, GetDefaultSelectValue(caller), true);
	}
	SetDefaultSelectValue(caller, caller.value);
}
GetDefaultSelectValue = function ( selectObj ) {
	for (var i=0; i<selectObj.options.length ; i++) if (selectObj.options[i].defaultSelected) return selectObj.options[i].value;
	return null;
}
SetDefaultSelectValue = function ( selectObj, value ) {
	for (var i=0; i<selectObj.options.length ; i++) selectObj.options[i].defaultSelected = (selectObj.options[i].value == value);
}
GetSelectValue = function ( SelectObj ) {
	if (SelectObj.value) return SelectObj.value;
	else if (SelectObj.options && SelectObj.options.length) 
		for (o=0; o<SelectObj.options.length; o++) if (SelectObj.options[o] && (SelectObj.options[o].selected && SelectObj.options[o].value)) return SelectObj.options[o].value;
	else return null;
}
SetSelectValue = function ( SelectObj, SearchValue ) {
	// try to set the value manually
	if (SelectObj.options && SelectObj.options.length) 
		for (o=0; o<SelectObj.options.length; o++) {
			if (SelectObj.options[o]) {
				SelectObj.options[o].selected = ((SelectObj.options[o].value == SearchValue) ? true : false);
				if (arguments.length >= 3 && arguments[2]) SelectObj.options[o].defaultSelected = SelectObj.options[o].selected;
			}
		}
	else SelectObj.value = SearchValue;
}
/* /KB */
		
/* enable login keyCapture for Netscape and related browsers */
/* if (window.captureEvents) {
	window.captureEvents(Event.KEYPRESS); */
/* KB Feb 27 07 - Removed CaptureEvents() reference, normalized case/wrapped in IF for onKeyPress */
if (window.onkeypress) window.onkeypress = __CaptureNN;
/* } sbr-kcs v5.0 */

/* KB Nov 8 06 */
if (!window.print) {
	window.print = function () {
		if (document.all&&navigator.userAgent.indexOf("Mac")>=0) {
			vbPrintPage();
			with (document) {
				writeln("<OBJECT ID=\"WB\" WIDTH=\"0\" HEIGHT=\"0\" CLASSID=\"clsid:8856F961-340A-11D0-A96B-00C04FD705A2\"></OBJECT>");
				writeln("<"+"SCRIPT LANGUAGE=\"VBScript\">");
				writeln("	Sub window_onunload");
				writeln("		On Error Resume Next");
				writeln("		Set WB = nothing");
				writeln("	End Sub");
				writeln("	Sub vbPrintPage");
				writeln("		OLECMDID_PRINT = 6");
				writeln("		OLECMDEXECOPT_DONTPROMPTUSER = 2");
				writeln("		OLECMDEXECOPT_PROMPTUSER = 1");
				writeln("		On Error Resume Next");
				writeln("		WB.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER");
				writeln("	End Sub");
				writeln("<"+"/SCRIPT>");
			}
		}
	}
}
