var mbSecurityLoading = false
var msCR = String.fromCharCode(13)
var vbCR = String.fromCharCode(13)

function openWindow(asPage, asParms, asName, aiWidth, aiHeight, asOptions) {
	var sLeft = "", sTop = ""
	var iScreenLeft = 0, oWindow
	
	if(asOptions == "")
		asOptions = "location=0,scrollbars=1,resizable=1,menubar=0,status=1"
	if(asName == "")
		asName = "_blank"

	if(window.screenLeft > window.screen.availWidth)
		iScreenLeft = window.screen.availWidth + 1

	if(window.screen.width < aiWidth || window.screen.height < aiHeight) {
		sLeft = window.screenLeft
		sTop = window.screenTop
	}
	else {
		sLeft = parseInt(iScreenLeft) + parseInt((window.screen.width - aiWidth) / 2)
		sTop = (parseInt(window.screen.height) / 2) - (parseInt(aiHeight) / 2)
	}
	
	oWindow = window.open(asPage + asParms, asName, "height=" + aiHeight + ",width=" + aiWidth + "," + asOptions + ",top=" + sTop + ",left=" + sLeft)
	return oWindow
}

function openDialog(asPage, asParms, asArg, aiWidth, aiHeight) {
	var sLeft = "", sTop = ""
	var iScreenLeft = 0
	
	if(window.screenLeft > window.screen.availWidth)
		iScreenLeft = window.screen.availWidth

	if(window.screen.width < aiWidth || window.screen.height < aiHeight) {
		sLeft = window.screenLeft
		sTop = window.screenTop
	}
	else {	
		sLeft = parseInt(iScreenLeft) + parseInt((window.screen.width - aiWidth) / 2)
		sTop = 0 + parseInt((window.screen.height - aiHeight) / 2)
	}	
	window.showModalDialog(asPage + asParms, asArg, "dialogHeight:" + aiHeight + ";dialogWidth=" + aiWidth + ",center:no;DialogTop:" + sTop + ";DialogLeft:" + sLeft)
}

function addOption(aoSelect, asValue, asText, aiIndex) {

	if(aiIndex == undefined)
		aiIndex = aoSelect.length
		
	//oEntry = new Option(asText, asValue)
	//aoSelect.options[aiIndex] = oEntry
	
	var oOption = document.createElement("OPTION");
	aoSelect.options.add(oOption, aiIndex);
	oOption.text = asText;
	oOption.value = asValue;
}

function Right(asStr, aiPos) {
	var sRet
	
	if(aiPos <= asStr.length)
		sRet = asStr.substr(asStr.length - aiPos)
	else
		sRet = asStr

	return sRet
}

function rTrim(asValue) {
	var iCount = 0;
	
	for(iCount = asValue.length ; iCount > 0  ; iCount--) {
		if(asValue.substr(iCount - 1, 1) == " ") {
			asValue = asValue.substr(0, iCount - 1)
		}
		else
			break
	}
	
	return asValue
}

function Trim(asValue) {
	var bFound

	asValue = rTrim(asValue)
	do {
		bFound = false
		if(asValue.substr(0, 1) == " ") {
			bFound = true
			asValue = asValue.substr(1)
		}
	}
	while(bFound)
	
	return asValue
}

function isEmpty(asString)
{
  	return (asString == null || Trim(asString) == "") ? true : false
}
  
function isNumeric(evt)
{
  	evt = (evt) ? evt : window.event  
  	var charCode = (evt.which) ? evt.which : evt.keyCode
  	if (charCode > 31 && (charCode < 48 || charCode > 57))
  	{
  		status = "Field must be numeric.";
  		alert(status);
  		return false
  	}
  	status = ""
  	return true
}

function keysAllowed(asString) {
	var bFound = false

	for(var iCount=0;iCount<asString.length;iCount++) {
		if(String.fromCharCode(event.keyCode) == asString.substr(iCount, 1)) {
			bFound = true
			break
		}
	}
	
	if(!bFound) event.keyCode = 0
}

function uCase(asBlock) {
	if(asBlock == undefined) asBlock = ""
	
	if(event.keyCode >= 97 && event.keyCode <= 122)
		event.keyCode = event.keyCode - 32
	
	if(String.fromCharCode(event.keyCode) == asBlock)
		event.keyCode = 0
}

function lCase() {
	if(event.keyCode >= 65 && event.keyCode <= 90) {
		event.keyCode = event.keyCode + 32
	}
}

function setDirty(asControl, asForm, abValue) {
	var sPropertyName = (window.event.propertyName != "") ? window.event.propertyName : "value"
	
	//MODULE VARIABLE THAT WILL NOT UPDATE STATUSES
	if(mbSecurityLoading) return

	if(sPropertyName != 'value' && sPropertyName != 'checked') return
	
	if(abValue == undefined) abValue = true

	if(asForm == undefined) asForm = 'frmInput'

	if(asControl == undefined) asControl = 'cmdSave'

	if(window.document[asForm][asControl] != null)
		window.document[asForm][asControl].disabled = abValue ? false : true
	else {
		if(this.setDirtyLocal) setDirtyLocal()
	}
}

function disableControl(aoControl, abValue) {
	if(aoControl.type == 'select-one' || aoControl.type == 'button' || aoControl.type == 'checkbox'){
		aoControl.disabled = abValue
		aoControl.style.backgroundColor = abValue ? 'silver' : 'white'
	}
	else {
		aoControl.readOnly = abValue
		aoControl.style.backgroundColor = abValue ? 'silver' : 'white'
		if(aoControl.src != '') aoControl.disabled = abValue
	}
}

function getComboPosByValue(aoControl, asValue, abAutoSelect) {
	var iRet = -1, iCount = -1
	
	if(abAutoSelect == undefined)
		abAutoSelect = true

	for(iCount=0;iCount<aoControl.length;iCount++) {
		if(aoControl[iCount].value == asValue) {
			iRet = iCount
			aoControl.selectedIndex = iRet
			break
		}
	}	
	return iRet
}

function textboxCounter(asTextObjectName, aiLength, asAlternateTextObjectName) {
	var sText = "", sLabelObjectName = "", oLabelObject
	var iPos = -1, sInnerHTML
	
	if(oRef[asTextObjectName])
		sText = oRef[asTextObjectName].value
	else
		return
	
	if(sText.length > aiLength) {
		sText = sText.substr(0, aiLength)
		oRef[asTextObjectName].value = sText
	}
	
	if(asTextObjectName.substr(0, 3) == "txt")
		if(asAlternateTextObjectName == undefined)
			sLabelObjectName = "lbl" + asTextObjectName.substr(3)
		else
			sLabelObjectName = "lbl" + asAlternateTextObjectName.substr(3)
	
	if(document.getElementById(sLabelObjectName)) {
		oLabelObject = document.getElementById(sLabelObjectName)
		sInnerHTML = oLabelObject.innerHTML
		iPos = sInnerHTML.indexOf("[")
		if(iPos == -1) iPos = sInnerHTML.length
		oLabelObject.innerHTML = sInnerHTML.substr(0, iPos) + " [" + sText.length + " / " + aiLength + "]"
	}
}

function setSortFlag(asSortFlag) {
	if(window.document.frmInput) {
		window.document.frmInput.hidSortFlag.value = asSortFlag
		window.document.frmInput.submit()
	}
}

function dateToLong(asDate, asHour, asMinute) {
	var sDate = "", sHour = "", sMinute = ""
	sDate = asDate.replace("/", "")
	sDate = sDate.replace("/", "")
	sDate = sDate.substr(4, 4) + sDate.substr(0, 2) + sDate.substr(2, 2)
	
	sHour = asHour == undefined ? "00" : asHour
	sMinute = asMinute == undefined ? "00" : asMinute
	
	if(sHour.length == 1) sHour = "0" + sHour
	if(sMinute.length == 1) sMinute = "0" + sMinute
	
	sDate += sHour + sMinute + "00"

	return sDate
}

function fillLeft(asValue, aiTotalLength, asFillWith) {
	var iCount=0, sFiller ="", sRet=""
	
	if(asValue.length < aiTotalLength) {
		for(iCount=0;iCount<aiTotalLength;iCount++)
			sFiller += asFillWith
		
		sRet = sFiller.substr(0, aiTotalLength - asValue.length) + asValue
	}
	else
		sRet = asValue
	
	return sRet
}

function iif(abCompare, avReturnIfTrue, avReturnIfFalse) {
	if(abCompare)
		return avReturnIfTrue
	else
		return avReturnIfFalse
}
