<!--

function CaretPosition(control) {
    var position = new Object();
    if (!IsEmpty(control.selectionStart) && !IsEmpty(control.selectionEnd)) {
        position.start = control.selectionStart;
        position.end = control.selectionEnd;
    } else {
        var range = document.selection.createRange();
        position.start = (range.offsetLeft - 1) / 7;
        position.end = position.start + (range.text.length);
    }
    position.length = position.end - position.start;
    return position;
}

function ForceInteger(e) {
	var keyCode;
	var keyCharacter;
	if(window.event) keyCode = e.keyCode;
	else if(e.which) keyCode = e.which
	keyCharacter = String.fromCharCode(keyCode);
	return IsInt(keyCharacter,false);
}

function ForceMoney(obj,e) {
	var keyCode;
	var keyCharacter;
	var canAdd = false
	if(window.event) keyCode = e.keyCode;
	else if(e.which) keyCode = e.which
	keyCharacter = String.fromCharCode(keyCode);
	var canAdd = false;
	var at = Math.ceil(CaretPosition(obj).start);
	if (isNaN(keyCharacter)) {
		if (keyCharacter=='.') {
			var val = obj.value;
			canAdd = true;
			for (var i=0; i<val.length; i++) {
				if (val.charAt(i)=='.') {
					canAdd = false;
					break;
				}
			}
		} else canAdd = false;
	} else {
		var passedDot = 0;
		var foundDot = false;
		var val = obj.value;
		var dotLocation = -1;
		var newval = '';
		canAdd = true;
		for (var i=0; i<at; i++) {
			if (foundDot) passedDot++;
			if (passedDot==2) {
				canAdd = false;
				break;
			}
			if (val.charAt(i)=='.') {
				foundDot = true;
				dotLocation = i;
			}
		}
	}
	return canAdd;
}

function IsIntField(obj) {
	if (isNaN(obj.value)) obj.value = StripCharacters(obj.value,false,false);
}

function IsNumberField(obj) {
	if (isNaN(obj.value)) obj.value = StripCharacters(obj.value,false,false);
}

function IsFloatField(obj) {
	if (isNaN(obj.value)) obj.value = StripCharacters(obj.value,true,false);
}

function IsMoneyField(obj) {
	if (obj.value.indexOf('.')>-1) {
		var vals = obj.value.split('.');
		if (vals.length>2) obj.value = StripCharacters(obj.value,true,true);
		else {
			if (vals.length==2) {
				if (vals[1].length>2) obj.value = StripCharacters(obj.value,true,true); 
				else {
					if (isNaN(vals[0])||isNaN(vals[1])) obj.value = StripCharacters(obj.value,true,true); 
				}
			} else {
				for (var i=0; i<vals.length; i++) {
					if (isNaN(vals[i])) {
						obj.value = StripCharacters(obj.value,true,true); 
						break;
					}
				}
			}
		}
	} else {
		if (isNaN(obj.value)) obj.value = StripCharacters(obj.value,true,true);
	}
}

function StripCharacters(val,allowPoint,isMoney) {
	var toReturn = "";
	var foundPoint = false;
	var afterPoint = 0;
	for (var i=0; i<val.length; i++) {
		if (isMoney&&afterPoint==2) break;
		if (!isNaN(val.charAt(i))) {
			toReturn += val.charAt(i);
			if (foundPoint) afterPoint++;
		} else {
			if (allowPoint&&!foundPoint&&val.charAt(i)=='\.') {
				toReturn += val.charAt(i);
				foundPoint = true;
			}
		}
	}
	return toReturn;
}

function IsType(obj,type) {
	if (obj.tagName==type) return true;
	return false;
}

function IsFieldSelected(id) {
	if (document.getElementById(id)!=null) {
		return document.getElementById(id).checked;
	}
	return false;
}

function IsSelectedValue(id,val) {
	if (document.getElementById(id)!=null) {
		var obj = document.getElementById(id);
		return obj.options[obj.selectedIndex].value==val;	
	}
	return false;
}

function IsEmptyField(id) {
	if (document.getElementById(id)!=null) return IsEmpty(document.getElementById(id).value);
	return true;
}

function IsEmpty(val) {
	return (val==''||val==null||val=='undefined');
}

function IsChecked(obj) {
	return obj.checked;
}

function IsValue(val,isVal) {
	return isVal==val;
}

function IsValueIgnoreCase(val,isVal) {
	return isVal.toLowerCase()==isVal.toLowerCase();
}

function IsMoney(val) {
	if (IsEmpty(val)) return false;
	var usedPeriod = false;
	var pastPeriod = 0;
	for (var i=0; i<val.length; i++) {
		if (pastPeriod>=2) return false;
		if (usedPeriod) pastPeriod++;
		if (val.charCodeAt(i)==46) {
			if (usedPeriod) return false;
			else usedPeriod = true;
		} else {
			if (val.charCodeAt(i)>57||val.charCodeAt(i)<48) return false;
		}
	}
	return true;	
}

function IsNumber(val,allowEmpty) {
	var allow = ((IsEmpty(allowEmpty))?false:allowEmpty);
	if (IsEmpty(val)) return allow;
	var usedPeriod = false;
	for (var i=0; i<val.length; i++) {
		if (val.charCodeAt(i)==46) {
			if (usedPeriod) return false;
			else usedPeriod = true;
		} else {
			if (val.charCodeAt(i)>57||val.charCodeAt(i)<48) return false;
		}
	}
	return true;	
}

function IsInt(val,allowEmpty) {
	var allow = ((IsEmpty(allowEmpty))?false:allowEmpty);
	if (IsEmpty(val)) return allow;
	for (var i=0; i<val.length; i++) {
		if (val.charCodeAt(i)>57||val.charCodeAt(i)<48) return false;
	}
	return true;
}

function IsInArray(val,array,allowEmpty) {
	var allow = ((IsEmpty(allowEmpty))?false:allowEmpty);
	if (IsEmpty(val)) return allow;
	for (var i=0; i<array.length; i++) {
		if (val==array[i]) return true;
	}
	return false;
}

function IsOutsideArray(val,array,allowEmpty) {
	var allow = ((IsEmpty(allowEmpty))?false:allowEmpty);
	if (IsEmpty(val)) return allow;
	for (var i=0; i<val.length; i++) {
		if (!IsInArray(val[i],array)) return false;
	}
	return true;
}

function IsValid(obj,validateAs,allowEmpty) {
	var toValidate = '';
	if (IsType('INPUT')) toValidate = obj.value;
	else if (IsType('SELECT')) toValidate = obj.options[obj.selectedIndex].value;
	else toValidate = obj;
	if (validateAs=='Int') {
		return IsInt(toValidate,allowEmpty);
	} else if (validateAs=='Number') {
		return IsNumber(toValidate,allowEmpty);
	} else if (validateAs=='NotEmpty') {
		return !IsEmpty(toValidate);
	} else if (validateAs=='Checked') {
		return IsChecked(obj);
	}
}

function IsInList(val,list) {
	for (var i=0; i<list.length; i++) {
		if (list.options[i].value==val) return true;
	}
	return false;
}

function IsWindows() {
	return (navigator.appVersion.indexOf("Win")!=-1);
}

function IsMac() {
	return (navigator.appVersion.indexOf("Mac")!=-1);
}

function IsIE() {
	return (navigator.appName=='Microsoft Internet Explorer');
}

function IsNetscape() {
	return (navigator.appName=='Netscape');
}

//-->
