<!--
var ns4 = (document.layers)? true:false;
var ie4 = (document.all)? true:false;
var _formVars;
var bInitInProgress = true;
var bUnloaded = false;

function _StorePage() {
	if (bInitInProgress || bUnloaded) return true;
	var obj;
	_form = document.buyer;
	for (var i in _formVars) {
		if (_formVars[i].ObjectType == "fill") {
			obj = _form[i];
			obj.value = _formVars[i].Value;
		}
	}
	bUnloaded = true;
	return true;
}

function _GetObject(name) {
	var obj;
	obj = _form[name];
	return(obj);
}
////
////
////
////
////
////
////
function _Vars(object) {
////
	this.Balance = new _ObjInfo();
	this.Balance.Type = "Currency";
	this.Balance.Format = _Format_C2S;
	this.Balance.Update = Balance_Update;
	this.Balance.bCanBeFilled = false;
	this.Balance.bOverride = true;
////
	this.AppraisalFee = new _ObjInfo();
	this.AppraisalFee.Type = "Currency";
	this.AppraisalFee.Format = _Format_C2S;
	this.AppraisalFee.Update = AppraisalFee_Update;
	this.AppraisalFee.bOverride = true;
////
	this.CreditReportFee = new _ObjInfo();
	this.CreditReportFee.Type = "Currency";
	this.CreditReportFee.Format = _Format_C2S;
	this.CreditReportFee.Update = CreditReportFee_Update;
	this.CreditReportFee.bOverride = true;
////
	this.DocPrepFee = new _ObjInfo();
	this.DocPrepFee.Type = "Currency";
	this.DocPrepFee.Format = _Format_C2S;
	this.DocPrepFee.Update = DocPrepFee_Update;
	this.DocPrepFee.bOverride = true;
////
	this.UnderwritingFee = new _ObjInfo();
	this.UnderwritingFee.Type = "Currency";
	this.UnderwritingFee.Format = _Format_C2S;
	this.UnderwritingFee.Update = UnderwritingFee_Update;
	this.UnderwritingFee.bOverride = true;
////
	this.TaxServiceFee = new _ObjInfo();
	this.TaxServiceFee.Type = "Currency";
	this.TaxServiceFee.Format = _Format_C2S;
	this.TaxServiceFee.Update = TaxServiceFee_Update;
	this.TaxServiceFee.bOverride = true;
////
	this.FloodFee = new _ObjInfo();
	this.FloodFee.Type = "Currency";
	this.FloodFee.Format = _Format_C2S;
	this.FloodFee.Update = FloodFee_Update;
	this.FloodFee.bOverride = true;
////
	this.ProcessingFee = new _ObjInfo();
	this.ProcessingFee.Type = "Currency";
	this.ProcessingFee.Format = _Format_C2S;
	this.ProcessingFee.Update = ProcessingFee_Update;
	this.ProcessingFee.bOverride = true;
////
	this.CourierFee = new _ObjInfo();
	this.CourierFee.Type = "Currency";
	this.CourierFee.Format = _Format_C2S;
	this.CourierFee.Update = CourierFee_Update;
	this.CourierFee.bOverride = true;
//// 
	this.AdministrativeFee = new _ObjInfo();
	this.AdministrativeFee.Type = "Currency";
	this.AdministrativeFee.Format = _Format_C2S;
	this.AdministrativeFee.Update = AdministrativeFee_Update;
	this.AdministrativeFee.bOverride = true;
////
	this.ClosingFee = new _ObjInfo();
	this.ClosingFee.Type = "Currency";
	this.ClosingFee.Format = _Format_C2S;
	this.ClosingFee.Update = ClosingFee_Update;
	this.ClosingFee.bOverride = true;
////
	this.LendTitlePolicy = new _ObjInfo();
	this.LendTitlePolicy.Type = "Currency";
	this.LendTitlePolicy.Format = _Format_C2S;
	this.LendTitlePolicy.Update = LendTitlePolicy_Update;
	this.LendTitlePolicy.bOverride = true;
////
	this.TitleEndorse = new _ObjInfo();
	this.TitleEndorse.Type = "Currency";
	this.TitleEndorse.Format = _Format_C2S;
	this.TitleEndorse.Update = TitleEndorse_Update;
	this.TitleEndorse.bOverride = true;
////
	this.ShipHand = new _ObjInfo();
	this.ShipHand.Type = "Currency";
	this.ShipHand.Format = _Format_C2S;
	this.ShipHand.Update = ShipHand_Update;
	this.ShipHand.bOverride = true;
////
	this.WireFee = new _ObjInfo();
	this.WireFee.Type = "Currency";
	this.WireFee.Format = _Format_C2S;
	this.WireFee.Update = WireFee_Update;
	this.WireFee.bOverride = true;
////
	this.RecordDeed = new _ObjInfo();
	this.RecordDeed.Type = "Currency";
	this.RecordDeed.Format = _Format_C2S;
	this.RecordDeed.Update = RecordDeed_Update;
	this.RecordDeed.bOverride = true;
////
	this.SurveyFee = new _ObjInfo();
	this.SurveyFee.Type = "Currency";
	this.SurveyFee.Format = _Format_C2S;
	this.SurveyFee.Update = SurveyFee_Update;
	this.SurveyFee.bOverride = true;
////
	this.TermiteInsp = new _ObjInfo();
	this.TermiteInsp.Type = "Currency";
	this.TermiteInsp.Format = _Format_C2S;
	this.TermiteInsp.Update = TermiteInsp_Update;
	this.TermiteInsp.bOverride = true;
////
//	this.ScanFee = new _ObjInfo();
//	this.ScanFee.Type = "Currency";
//	this.ScanFee.Format = _Format_C2S;
//	this.ScanFee.Update = ScanFee_Update;
//	this.ScanFee.bOverride = true;
////
	this.SalesPrice = new _ObjInfo();
	this.SalesPrice.Type = "Currency";
	this.SalesPrice.Format = _Format_C2S;
	this.SalesPrice.Update = SalesPrice_Update;
	this.SalesPrice.bOverride = true;
////
	this.LoanAmt = new _ObjInfo();
	this.LoanAmt.Type = "Currency";
	this.LoanAmt.Format = _Format_C2S;
	this.LoanAmt.Update = LoanAmt_Update;
	this.LoanAmt.bOverride = true;
////
	this.IntRate = new _ObjInfo();
	this.IntRate.Type = "Number";
	this.IntRate.Format = _Format_N2;
	this.IntRate.Update = IntRate_Update;
	this.IntRate.bOverride = true;
////
	this.AnnualTaxBill = new _ObjInfo();
	this.AnnualTaxBill.Type = "Currency";
	this.AnnualTaxBill.Format = _Format_C2S;
	this.AnnualTaxBill.Update = AnnualTaxBill_Update;
	this.AnnualTaxBill.bOverride = true;
////
//	this.TransFee = new _ObjInfo();
//	this.TransFee.Type = "Currency";
//	this.TransFee.Format = _Format_C2S;
//	this.TransFee.Update = TransFee_Update;
//	this.TransFee.bOverride = true;
////
	this.InsPrem = new _ObjInfo();
	this.InsPrem.Type = "Currency";
	this.InsPrem.Format = _Format_C2S;
	this.InsPrem.Update = InsPrem_Update;
	this.InsPrem.bOverride = true;
////
	this.HOAInitFee = new _ObjInfo();
	this.HOAInitFee.Type = "Currency";
	this.HOAInitFee.Format = _Format_C2S;
	this.HOAInitFee.Update = HOAInitFee_Update;
	this.HOAInitFee.bOverride = true;
////
	this.HOADues = new _ObjInfo();
	this.HOADues.Type = "Currency";
	this.HOADues.Format = _Format_C2S;
	this.HOADues.Update = HOADues_Update;
	this.HOADues.bOverride = true;
////
	this.MiscFees = new _ObjInfo();
	this.MiscFees.Type = "Currency";
	this.MiscFees.Format = _Format_C2S;
	this.MiscFees.Update = MiscFees_Update;
	this.MiscFees.bOverride = true;
////
	this.DeedRecFee = new _ObjInfo();
	this.DeedRecFee.Type = "Currency";
	this.DeedRecFee.Format = _Format_C2S;
	this.DeedRecFee.Update = DeedRecFee_Update;
	this.DeedRecFee.bOverride = true;
////
	this.MortgageRecFee = new _ObjInfo();
	this.MortgageRecFee.Type = "Currency";
	this.MortgageRecFee.Format = _Format_C2S;
	this.MortgageRecFee.Update = MortgageRecFee_Update;
	this.MortgageRecFee.bOverride = true;
////
	this.OriginFee = new _ObjInfo();
	this.OriginFee.Type = "Currency";
	this.OriginFee.Format = _Format_C2S;
	this.OriginFee.Update = OriginFee_Update;
	this.OriginFee.bOverride = true;
////
	this.OriginFeePct = new _ObjInfo();
	this.OriginFeePct.Type = "Number";
	this.OriginFeePct.Format = _Format_N2;
	this.OriginFeePct.Update = OriginFeePct_Update;
	this.OriginFeePct.bOverride = true;
////
	this.LoanDiscount = new _ObjInfo();
	this.LoanDiscount.Type = "Currency";
	this.LoanDiscount.Format = _Format_C2S;
	this.LoanDiscount.Update = LoanDiscount_Update;
	this.LoanDiscount.bOverride = true;
////
	this.LoanDiscountPct = new _ObjInfo();
	this.LoanDiscountPct.Type = "Number";
	this.LoanDiscountPct.Format = _Format_N2;
	this.LoanDiscountPct.Update = LoanDiscountPct_Update;
	this.LoanDiscountPct.bOverride = true;
////
	this.DaysRemaining = new _ObjInfo();
	this.DaysRemaining.Type = "Number";
	this.DaysRemaining.Format = _Format_N2;
	this.DaysRemaining.Update = DaysRemaining_Update;
	this.DaysRemaining.bOverride = true;
////
	this.PPInt = new _ObjInfo();
	this.PPInt.Type = "Currency";
	this.PPInt.Format = _Format_C2S;
	this.PPInt.Update = PPInt_Update;
	this.PPInt.bOverride = true;
////
	this.InsEscrowFee = new _ObjInfo();
	this.InsEscrowFee.Type = "Currency";
	this.InsEscrowFee.Format = _Format_C2S;
	this.InsEscrowFee.Update = InsEscrowFee_Update;
	this.InsEscrowFee.bCanBeFilled = false;
	this.InsEscrowFee.bOverride = true;
////
	this.TaxEscrow = new _ObjInfo();
	this.TaxEscrow.Type = "Currency";
	this.TaxEscrow.Format = _Format_C2S;
	this.TaxEscrow.Update = TaxEscrow_Update;
	this.TaxEscrow.bCanBeFilled = false;
	this.TaxEscrow.bOverride = true;
////
	this.MailAwayYES = new _ObjInfo();
	this.MailAwayYES.Update = MailAwayYES_Update;
	this.MailAwayYES.OnValue = "Yes";
	this.MailAwayYES.OffValue = "No";
	this.MailAwayYES.bOverride = true;
	this.MailAwayYES.ObjectType = "checkbox";
////
	this.MailaWayExpress = new _ObjInfo();
	this.MailaWayExpress.Type = "Currency";
	this.MailaWayExpress.Format = _Format_C2S;
	this.MailaWayExpress.Update = MailaWayExpress_Update;
	this.MailaWayExpress.bCanBeFilled = false;
	this.MailaWayExpress.bOverride = true;
////
	this.HOAtransFeeYES = new _ObjInfo();
	this.HOAtransFeeYES.Update = HOAtransFeeYES_Update;
	this.HOAtransFeeYES.OnValue = "Yes";
	this.HOAtransFeeYES.OffValue = "0";
	this.HOAtransFeeYES.bOverride = true;
	this.HOAtransFeeYES.ObjectType = "checkbox";
////
	this.HOATransFee = new _ObjInfo();
	this.HOATransFee.Type = "Currency";
	this.HOATransFee.Format = _Format_C2S;
	this.HOATransFee.Update = HOATransFee_Update;
	this.HOATransFee.bCanBeFilled = false;
	this.HOATransFee.bOverride = true;
////
	this.DocStamps = new _ObjInfo();
	this.DocStamps.Type = "Currency";
	this.DocStamps.Format = _Format_C2S;
	this.DocStamps.Update = DocStamps_Update;
	this.DocStamps.bCanBeFilled = false;
	this.DocStamps.bOverride = true;
////
	this.IntangibleTax = new _ObjInfo();
	this.IntangibleTax.Type = "Currency";
	this.IntangibleTax.Format = _Format_C2S;
	this.IntangibleTax.Update = IntangibleTax_Update;
	this.IntangibleTax.bCanBeFilled = false;
	this.IntangibleTax.bOverride = true;
////
	this.SellerPaidCosts = new _ObjInfo();
	this.SellerPaidCosts.Type = "Currency";
	this.SellerPaidCosts.Format = _Format_C2S;
	this.SellerPaidCosts.Update = SellerPaidCosts_Update;
	this.SellerPaidCosts.bOverride = true;
////
	this.EarnestMoneyDeposit = new _ObjInfo();
	this.EarnestMoneyDeposit.Type = "Currency";
	this.EarnestMoneyDeposit.Format = _Format_C2S;
	this.EarnestMoneyDeposit.Update = EarnestMoneyDeposit_Update;
	this.EarnestMoneyDeposit.bOverride = true;
	
	this.ClosingDate = new _ObjInfo();
	this.ClosingDate.Type = "Date";
	//this.ClosingDate.Format = _Format_DS;
	this.ClosingDate.Update = ClosingDate_Update;
	this.ClosingDate.bOverride = true;
////
////
////
////
////
////
}

function _InitVars(object) {
	bInitInProgress = true;
	_form = document.buyer;
	_formVars = new _Vars();
	
	var obj;
	for (var i in _formVars) {
		if (_formVars[i].ObjectType == "fill" || _formVars[i].ObjectType == "checkbox" || _formVars[i].ObjectType == "select") {
		
			obj = _GetObject(i);
			if (_formVars[i].ObjectType == "fill") {
				_formVars[i].Value = obj.value;
				_SetObjectNumber(_formVars[i]);					
			}
			else if (_formVars[i].ObjectType == "select") {
				if (obj.options.selectedIndex == -1) _formVars[i].Value = ""
				else _formVars[i].Value = obj.options[obj.options.selectedIndex].text;
				_SetObjectNumber(_formVars[i]);
			}
			else if (_formVars[i].ObjectType == "checkbox") {
				if (obj.checked) _formVars[i].Value = _formVars[i].OnValue;
				else _formVars[i].Value = _formVars[i].OffValue;
				_SetObjectNumber(_formVars[i]);
				if (obj.checked) {
					if (_formVars[i].Group != "") {
						var group = _formVars[i].Group;
						_formVars[group].Value = _formVars[i].Value;
						_formVars[group].Number = _formVars[i].Number;
						_formVars[group].bNumber = _formVars[i].bNumber;
					}
				}
			}
			
			if (_formVars[i].ObjectType == "fill" &&  _formVars[i].Value != "") {
				
				
				_formVars[i].bHasData = true;
				_UpdateField(i);				
			}
		}
	}
	
	for (var i in _formVars) {		
		_formVars[i].Update();
		
	}
	
	bInitInProgress = false;
	
	return true;
}

function _OnSubmit(object) {
	if (bInitInProgress) return true;
	var obj;
	for (var i in _formVars) {
		if (_formVars[i].Group == "") {
			if (_formVars[i].ObjectType == "group" || _formVars[i].ObjectType == "hidden") {
				if (!_CheckValidations(i)) return false;
				object[i].value = _formVars[i].Value;
			}
			else {
				obj = _GetObject(i);
				if (!_CheckValidations(i)) return false;
				if (_formVars[i].ObjectType == "checkbox") {
					if (obj.checked) object[i].value = obj.value;
					else object[i].value = "";
				}
				else if (_formVars[i].ObjectType == "select") {
					if (obj.options.selectedIndex == -1) object[i].value = ""
					else object[i].value = obj.options[obj.options.selectedIndex].text;
				}
				else object[i].value = obj.value;
			}
		}
	}
	return true;
}

function _OnReset(object) {
	if (bInitInProgress) return true;
	_formVars = new _Vars();
	var obj;
	for (var i in _formVars) {
		if (_formVars[i].ObjectType == "fill" || _formVars[i].ObjectType == "checkbox" || _formVars[i].ObjectType == "select") {
			obj = _GetObject(i);
			if (_formVars[i].ObjectType == "fill") {
				obj.value = "";
				_formVars[i].Value = ""
			}
			else if (_formVars[i].ObjectType == "select") {
				obj.options.selectedIndex = 0;
				_formVars[i].Value = obj.options[0].text;
			}
			else if (_formVars[i].ObjectType == "checkbox") {
				obj.checked = false;
				_formVars[i].Value = _formVars[i].OffValue;
			}
			_SetObjectNumber(_formVars[i]);
		}
	}
	for (var i in _formVars) {
		_formVars[i].Update();
	}
	return false;
}

function SalesPrice_Update() {
	MortgageRecFee_Update();
	DeedRecFee_Update();
	DaysRemaining_Update();
	PPInt_Update();
	LoanAmt_Update();
	AppraisalFee_Update();
	CreditReportFee_Update();
	DocPrepFee_Update();
	UnderwritingFee_Update();
	//ScanFee_Update();
	//TransFee_Update();
	OriginFee_Update();
	LoanDiscount_Update();
	InsEscrowFee_Update();
	TaxEscrow_Update();
	DocStamps_Update();
	IntangibleTax_Update();
	//SellerPaidCosts_Update();
	//EarnestMoneyDeposit_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}

function DocStamps_Update() {
	if(!_formVars.DocStamps.bHasBeenFilled) {
		_formVars.DocStamps.Number = (Math.ceil(_formVars.LoanAmt.Number/100))*0.35;
		_formVars.DocStamps.bNumber = true;
		if (_formVars.DocStamps.Number != 0) {
			_formVars.DocStamps.Value = _Format_C2S(_formVars.DocStamps);
			_formVars.DocStamps.bHasData = true;
		}
		else {
			_formVars.DocStamps.Value = "";
			_formVars.DocStamps.bHasData = false;
		}
	}
	_UpdateField("DocStamps");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
////
function IntangibleTax_Update() {
	if(!_formVars.IntangibleTax.bHasBeenFilled) {
		_formVars.IntangibleTax.Number = _formVars.LoanAmt.Number*.002;
		_formVars.IntangibleTax.bNumber = true;
		if (_formVars.IntangibleTax.Number != 0) {
			_formVars.IntangibleTax.Value = _Format_C2S(_formVars.IntangibleTax);
			_formVars.IntangibleTax.bHasData = true;
		}
		else {
			_formVars.IntangibleTax.Value = "";
			_formVars.IntangibleTax.bHasData = false;
		}
	}
	_UpdateField("IntangibleTax");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
////
function AppraisalFee_Update() {
	if(!_formVars.AppraisalFee.bHasBeenFilled) {
		_formVars.AppraisalFee.Value = 350;
		_SetObjectNumber(_formVars.AppraisalFee);
		if (_formVars.AppraisalFee.Value != "") _formVars.AppraisalFee.bHasData = true;
		else _formVars.AppraisalFee.bHasData = false;
	}
	_UpdateField("AppraisalFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function CreditReportFee_Update() {
	if(!_formVars.CreditReportFee.bHasBeenFilled) {
		_formVars.CreditReportFee.Value = 50;
		_SetObjectNumber(_formVars.CreditReportFee);
		if (_formVars.CreditReportFee.Value != "") _formVars.CreditReportFee.bHasData = true;
		else _formVars.CreditReportFee.bHasData = false;
	}
	_UpdateField("CreditReportFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function DocPrepFee_Update() {
	if(!_formVars.DocPrepFee.bHasBeenFilled) {
		_formVars.DocPrepFee.Value = 250;
		_SetObjectNumber(_formVars.DocPrepFee);
		if (_formVars.DocPrepFee.Value != "") _formVars.DocPrepFee.bHasData = true;
		else _formVars.DocPrepFee.bHasData = false;
	}
	_UpdateField("DocPrepFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function UnderwritingFee_Update() {
	if(!_formVars.UnderwritingFee.bHasBeenFilled) {
		_formVars.UnderwritingFee.Value = 300;
		_SetObjectNumber(_formVars.UnderwritingFee);
		if (_formVars.UnderwritingFee.Value != "") _formVars.UnderwritingFee.bHasData = true;
		else _formVars.UnderwritingFee.bHasData = false;
	}
	_UpdateField("UnderwritingFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function TaxServiceFee_Update() {
	if(!_formVars.TaxServiceFee.bHasBeenFilled) {
		_formVars.TaxServiceFee.Value = 80;
		_SetObjectNumber(_formVars.TaxServiceFee);
		if (_formVars.TaxServiceFee.Value != "") _formVars.TaxServiceFee.bHasData = true;
		else _formVars.TaxServiceFee.bHasData = false;
	}
	_UpdateField("TaxServiceFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function FloodFee_Update() {
	if(!_formVars.FloodFee.bHasBeenFilled) {
		_formVars.FloodFee.Value = 20;
		_SetObjectNumber(_formVars.FloodFee);
		if (_formVars.FloodFee.Value != "") _formVars.FloodFee.bHasData = true;
		else _formVars.FloodFee.bHasData = false;
	}
	_UpdateField("FloodFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function ProcessingFee_Update() {
	if(!_formVars.ProcessingFee.bHasBeenFilled) {
		_formVars.ProcessingFee.Value = 350;
		_SetObjectNumber(_formVars.ProcessingFee);
		if (_formVars.ProcessingFee.Value != "") _formVars.ProcessingFee.bHasData = true;
		else _formVars.ProcessingFee.bHasData = false;
	}
	_UpdateField("ProcessingFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function CourierFee_Update() {
	if(!_formVars.CourierFee.bHasBeenFilled) {
		_formVars.CourierFee.Value = 30;
		_SetObjectNumber(_formVars.CourierFee);
		if (_formVars.CourierFee.Value != "") _formVars.CourierFee.bHasData = true;
		else _formVars.CourierFee.bHasData = false;
	}
	_UpdateField("CourierFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function AdministrativeFee_Update() {
	if(!_formVars.AdministrativeFee.bHasBeenFilled) {
		_formVars.AdministrativeFee.Value = 475;
		_SetObjectNumber(_formVars.AdministrativeFee);
		if (_formVars.AdministrativeFee.Value != "") _formVars.AdministrativeFee.bHasData = true;
		else _formVars.AdministrativeFee.bHasData = false;
	}
	_UpdateField("AdministrativeFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function ClosingFee_Update() {
	if(!_formVars.ClosingFee.bHasBeenFilled) {
		_formVars.ClosingFee.Value = 750;
		_SetObjectNumber(_formVars.ClosingFee);
		if (_formVars.ClosingFee.Value != "") _formVars.ClosingFee.bHasData = true;
		else _formVars.ClosingFee.bHasData = false;
	}
	_UpdateField("ClosingFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function LendTitlePolicy_Update() {
	if(!_formVars.LendTitlePolicy.bHasBeenFilled) {
		_formVars.LendTitlePolicy.Value = 25;
		_SetObjectNumber(_formVars.LendTitlePolicy);
		if (_formVars.LendTitlePolicy.Value != "") _formVars.LendTitlePolicy.bHasData = true;
		else _formVars.LendTitlePolicy.bHasData = false;
	}
	_UpdateField("LendTitlePolicy");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function TitleEndorse_Update() {
	if(!_formVars.TitleEndorse.bHasBeenFilled) {
		_formVars.TitleEndorse.Value = 300;
		_SetObjectNumber(_formVars.TitleEndorse);
		if (_formVars.TitleEndorse.Value != "") _formVars.TitleEndorse.bHasData = true;
		else _formVars.TitleEndorse.bHasData = false;
	}
	_UpdateField("TitleEndorse");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function ShipHand_Update() {
	if(!_formVars.ShipHand.bHasBeenFilled) {
		_formVars.ShipHand.Value = 0;
		_SetObjectNumber(_formVars.ShipHand);
		if (_formVars.ShipHand.Value != "") _formVars.ShipHand.bHasData = true;
		else _formVars.ShipHand.bHasData = false;
	}
	_UpdateField("ShipHand");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function WireFee_Update() {
	if(!_formVars.WireFee.bHasBeenFilled) {
		_formVars.WireFee.Value = 0;
		_SetObjectNumber(_formVars.WireFee);
		if (_formVars.WireFee.Value != "") _formVars.WireFee.bHasData = true;
		else _formVars.WireFee.bHasData = false;
	}
	_UpdateField("WireFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function RecordDeed_Update() {
	if(!_formVars.RecordDeed.bHasBeenFilled) {
		_formVars.RecordDeed.Value = 0.0;
		_SetObjectNumber(_formVars.RecordDeed);
		if (_formVars.RecordDeed.Value != "") _formVars.RecordDeed.bHasData = true;
		else _formVars.RecordDeed.bHasData = false;
	}
	_UpdateField("RecordDeed");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function SurveyFee_Update() {
	if(!_formVars.SurveyFee.bHasBeenFilled) {
		_formVars.SurveyFee.Value = 235;
		_SetObjectNumber(_formVars.SurveyFee);
		if (_formVars.SurveyFee.Value != "") _formVars.SurveyFee.bHasData = true;
		else _formVars.SurveyFee.bHasData = false;
	}
	_UpdateField("SurveyFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function TermiteInsp_Update() {
	if(!_formVars.TermiteInsp.bHasBeenFilled) {
		_formVars.TermiteInsp.Value = 95;
		_SetObjectNumber(_formVars.TermiteInsp);
		if (_formVars.TermiteInsp.Value != "") _formVars.TermiteInsp.bHasData = true;
		else _formVars.TermiteInsp.bHasData = false;
	}
	_UpdateField("TermiteInsp");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function ScanFee_Update() {
	if(!_formVars.ScanFee.bHasBeenFilled) {
		_formVars.ScanFee.Value = 0;
		_SetObjectNumber(_formVars.ScanFee);
		if (_formVars.ScanFee.Value != "") _formVars.ScanFee.bHasData = true;
		else _formVars.ScanFee.bHasData = false;
	}
	_UpdateField("ScanFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function LoanAmt_Update() {
	if(!_formVars.LoanAmt.bHasBeenFilled) {
		_formVars.LoanAmt.Value = "";
		_SetObjectNumber(_formVars.LoanAmt);
		if (_formVars.LoanAmt.Value != "") _formVars.LoanAmt.bHasData = true;
		else _formVars.LoanAmt.bHasData = false;
	}
	PPInt_Update();
	DocStamps_Update();
	IntangibleTax_Update();
	_UpdateField("LoanAmt");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function IntRate_Update() {	
	if(!_formVars.IntRate.bHasBeenFilled) {
		_formVars.IntRate.Value = "";
		_SetObjectNumber(_formVars.IntRate);
		if (_formVars.IntRate.Value != "") _formVars.IntRate.bHasData = true;
		else _formVars.IntRate.bHasData = false;
	}
	PPInt_Update();
	_UpdateField("IntRate");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function AnnualTaxBill_Update() {
	if(!_formVars.AnnualTaxBill.bHasBeenFilled) {
		_formVars.AnnualTaxBill.Value = "";
		_SetObjectNumber(_formVars.AnnualTaxBill);
		if (_formVars.AnnualTaxBill.Value != "") _formVars.AnnualTaxBill.bHasData = true;
		else _formVars.AnnualTaxBill.bHasData = false;
	}
	_UpdateField("AnnualTaxBill");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
//function TransFee_Update() {
//	if(!_formVars.TransFee.bHasBeenFilled) {
//		_formVars.TransFee.Value = 250;
//		_SetObjectNumber(_formVars.TransFee);
//		if (_formVars.TransFee.Value != "") _formVars.TransFee.bHasData = true;
//		else _formVars.TransFee.bHasData = false;
//	}
//	_UpdateField("TransFee");
//	Balance_Update();
//	Balance_Update();
//	Balance_Update();
//	Balance_Update();
//	//((_formVars.SalesPrice.Number < 75000)? 100 : 150 )
//}
function InsPrem_Update() {
	if(!_formVars.InsPrem.bHasBeenFilled) {
		_formVars.InsPrem.Value = "";
		_SetObjectNumber(_formVars.InsPrem);
		if (_formVars.InsPrem.Value != "") _formVars.InsPrem.bHasData = true;
		else _formVars.InsPrem.bHasData = false;
	}
	InsEscrowFee_Update();
	TaxEscrow_Update();
	_UpdateField("InsPrem");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function HOAInitFee_Update() {
	if(!_formVars.HOAInitFee.bHasBeenFilled) {
		_formVars.HOAInitFee.Value = "";
		_SetObjectNumber(_formVars.HOAInitFee);
		if (_formVars.HOAInitFee.Value != "") _formVars.HOAInitFee.bHasData = true;
		else _formVars.HOAInitFee.bHasData = false;
	}
	_UpdateField("HOAInitFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function HOADues_Update() {
	if(!_formVars.HOADues.bHasBeenFilled) {
		_formVars.HOADues.Value = "";
		_SetObjectNumber(_formVars.HOADues);
		if (_formVars.HOADues.Value != "") _formVars.HOADues.bHasData = true;
		else _formVars.HOADues.bHasData = false;
	}
	_UpdateField("HOADues");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function MiscFees_Update() {
	if(!_formVars.MiscFees.bHasBeenFilled) {
		_formVars.MiscFees.Value = "";
		_SetObjectNumber(_formVars.MiscFees);
		if (_formVars.MiscFees.Value != "") _formVars.MiscFees.bHasData = true;
		else _formVars.MiscFees.bHasData = false;
	}
	_UpdateField("MiscFees");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function DeedRecFee_Update() {
	if(!_formVars.DeedRecFee.bHasBeenFilled) {
		_formVars.DeedRecFee.Value = 18.5;
		_SetObjectNumber(_formVars.DeedRecFee);
		if (_formVars.DeedRecFee.Value != "") _formVars.DeedRecFee.bHasData = true;
		else _formVars.DeedRecFee.bHasData = false;
	}
	_UpdateField("DeedRecFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function MortgageRecFee_Update() {
	if(!_formVars.MortgageRecFee.bHasBeenFilled) {
		_formVars.MortgageRecFee.Value = 188.5;
		_SetObjectNumber(_formVars.MortgageRecFee);
		if (_formVars.MortgageRecFee.Value != "") _formVars.MortgageRecFee.bHasData = true;
		else _formVars.MortgageRecFee.bHasData = false;
	}
	_UpdateField("MortgageRecFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
////
function SellerPaidCosts_Update() {
	if(!_formVars.SellerPaidCosts.bHasBeenFilled) {
		_formVars.SellerPaidCosts.Value = "";
		_SetObjectNumber(_formVars.SellerPaidCosts);
		if (_formVars.SellerPaidCosts.Value != "") _formVars.SellerPaidCosts.bHasData = true;
		else _formVars.SellerPaidCosts.bHasData = false;
	}
	_UpdateField("SellerPaidCosts");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
////
function OriginFee_Update() {
	if(!_formVars.OriginFee.bHasBeenFilled) {
		_formVars.OriginFee.Number = ((_formVars.LoanAmt.Number*_formVars.OriginFeePct.Number)/100);
		_formVars.OriginFee.bNumber = true;
		if (_formVars.OriginFee.Number != 0) {
			_formVars.OriginFee.Value = _Format_C2S(_formVars.OriginFee);
			_formVars.OriginFee.bHasData = true;
		}
		else {
			_formVars.OriginFee.Value = "";
			_formVars.OriginFee.bHasData = false;
		}
	}
	_UpdateField("OriginFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}

function OriginFeePct_Update() {
	OriginFee_Update();
}
function LoanDiscount_Update() {
	if(!_formVars.LoanDiscount.bHasBeenFilled) {
		_formVars.LoanDiscount.Number = ((_formVars.LoanAmt.Number*_formVars.LoanDiscountPct.Number)/100);
		_formVars.LoanDiscount.bNumber = true;
		if (_formVars.LoanDiscount.Number != 0) {
			_formVars.LoanDiscount.Value = _Format_C2S(_formVars.LoanDiscount);
			_formVars.LoanDiscount.bHasData = true;
		}
		else {
			_formVars.LoanDiscount.Value = "";
			_formVars.LoanDiscount.bHasData = false;
		}
	}
	_UpdateField("LoanDiscount");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function LoanDiscountPct_Update() {
	LoanDiscount_Update();
}
////
function DaysRemaining_Update() {
	PPInt_Update()
}
////
function PPInt_Update() {	
	if(!_formVars.PPInt.bHasBeenFilled) {

		var dateObj = new Date(Date.parse(_formVars.ClosingDate.Value));
		if(!isNaN(dateObj)){
				
		var monthDays = new _MonthDaysArray(dateObj.getYear());		
		var day = dateObj.getDate();
		var daysInMonth = monthDays[dateObj.getMonth()];
		var daysToEndOfMonth = daysInMonth - day + 1;
					
		//_formVars.PPInt.Number = (((_formVars.LoanAmt.Number*((_formVars.IntRate.Number/100)+1))/365)*30);
		_formVars.PPInt.Number = ((_formVars.LoanAmt.Number*_formVars.IntRate.Number*daysToEndOfMonth)/36500);
		_formVars.PPInt.bNumber = true;
		if (_formVars.PPInt.Number != 0) {
			_formVars.PPInt.Value = _Format_C2S(_formVars.PPInt);
			_formVars.PPInt.bHasData = true;
		}
		else {
			_formVars.PPInt.Value = "";
			_formVars.PPInt.bHasData = false;
		}
		}
	}
	_UpdateField("PPInt");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
	
}
////
function InsEscrowFee_Update() {
	if(!_formVars.InsEscrowFee.bHasBeenFilled) {
		_formVars.InsEscrowFee.Number = (_formVars.InsPrem.Number/12)*2;
		_formVars.InsEscrowFee.bNumber = true;
		if (_formVars.InsEscrowFee.Number != 0) {
			_formVars.InsEscrowFee.Value = _Format_C2S(_formVars.InsEscrowFee);
			_formVars.InsEscrowFee.bHasData = true;
		}
		else {
			_formVars.InsEscrowFee.Value = "";
			_formVars.InsEscrowFee.bHasData = false;
		}
	}
	_UpdateField("InsEscrowFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
////
function TaxEscrow_Update() {
	if(!_formVars.TaxEscrow.bHasBeenFilled) {
		_formVars.TaxEscrow.Number = (_formVars.AnnualTaxBill.Number/12)*4;
		_formVars.TaxEscrow.bNumber = true;
		if (_formVars.TaxEscrow.Number != 0) {
			_formVars.TaxEscrow.Value = _Format_C2S(_formVars.TaxEscrow);
			_formVars.TaxEscrow.bHasData = true;
		}
		else {
			_formVars.TaxEscrow.Value = "";
			_formVars.TaxEscrow.bHasData = false;
		}
	}
	_UpdateField("TaxEscrow");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
function MailAwayYES_Update() {
	MailaWayExpress_Update();
}

function MailaWayExpress_Update() {
	if(!_formVars.MailaWayExpress.bHasBeenFilled) {
		_formVars.MailaWayExpress.Value = ""+((_formVars.MailAwayYES.Value=="Yes")?50:0);
		_SetObjectNumber(_formVars.MailaWayExpress);
		if (_formVars.MailaWayExpress.Value != "") _formVars.MailaWayExpress.bHasData = true;
		else _formVars.MailaWayExpress.bHasData = false;
	}
	_UpdateField("MailaWayExpress");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
////
function HOAtransFeeYES_Update() {
	HOATransFee_Update();
}

function HOATransFee_Update() {
	if(!_formVars.HOATransFee.bHasBeenFilled) {
		_formVars.HOATransFee.Value = ""+((_formVars.HOAtransFeeYES.Value=="Yes")?50:0);
		_SetObjectNumber(_formVars.HOATransFee);
		if (_formVars.HOATransFee.Value != "") _formVars.HOATransFee.bHasData = true;
		else _formVars.HOATransFee.bHasData = false;
	}
	_UpdateField("HOATransFee");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
////
function EarnestMoneyDeposit_Update() {
	if(!_formVars.EarnestMoneyDeposit.bHasBeenFilled) {
		_formVars.EarnestMoneyDeposit.Value = "";
		_SetObjectNumber(_formVars.EarnestMoneyDeposit);
		if (_formVars.EarnestMoneyDeposit.Value != "") _formVars.EarnestMoneyDeposit.bHasData = true;
		else _formVars.EarnestMoneyDeposit.bHasData = false;
	}
	_UpdateField("EarnestMoneyDeposit");
	Balance_Update();
	Balance_Update();
	Balance_Update();
	Balance_Update();
}
////
////
////
////
////
////
////

function Balance_Update() {
	if(!_formVars.Balance.bHasBeenFilled) {
		_formVars.Balance.Number =((_formVars.SalesPrice.Number-_formVars.LoanAmt.Number)+
		((((((((((((((((((((((((((((((((_formVars.OriginFee.Number
		+_formVars.IntangibleTax.Number)
		+_formVars.DocStamps.Number)
		+_formVars.LoanDiscount.Number)
		+_formVars.CreditReportFee.Number)
		+_formVars.DocPrepFee.Number)
		+_formVars.UnderwritingFee.Number)
		+_formVars.AppraisalFee.Number)
		+_formVars.FloodFee.Number)
		+_formVars.TaxServiceFee.Number)
		+_formVars.ProcessingFee.Number)
		+_formVars.CourierFee.Number)
		+_formVars.AdministrativeFee.Number)
		+_formVars.PPInt.Number)
		+_formVars.InsPrem.Number) 
		+_formVars.InsEscrowFee.Number)
		+_formVars.TaxEscrow.Number)		
		+_formVars.ClosingFee.Number)
		+_formVars.LendTitlePolicy.Number)
		+_formVars.TitleEndorse.Number)
		+_formVars.ShipHand.Number)
		+_formVars.WireFee.Number)		
		+_formVars.MailaWayExpress.Number)
		+_formVars.SurveyFee.Number)
		+_formVars.TermiteInsp.Number)
		+_formVars.HOATransFee.Number)
		+_formVars.HOAInitFee.Number)
		+_formVars.HOADues.Number)
		+_formVars.DeedRecFee.Number)
		+_formVars.MiscFees.Number)
		+_formVars.MortgageRecFee.Number)
		//+_formVars.TransFee.Number)
		-_formVars.SellerPaidCosts.Number)
		-_formVars.EarnestMoneyDeposit.Number)

		//+_formVars.ScanFee.Number)

		//PPInt
		//InsEscrowFee
		//TaxEscrow
		//IntangibleTax
	);
		_formVars.Balance.bNumber = true;
		if (_formVars.Balance.Number != 0) {
			_formVars.Balance.Value = _Format_C2S(_formVars.Balance);
			_formVars.Balance.bHasData = true;
		}
		else {
			_formVars.Balance.Value = "";
			_formVars.Balance.bHasData = false;
		}
	}
	_UpdateField("Balance");
}
////
function TaxProration_Update() {
	if(!_formVars.TaxProration.bHasBeenFilled) {
		_formVars.TaxProration.Number = ((_formVars.LastYearTaxes.Number/365)*_DayOfYear(_GetString((_formVars.ClosingDate.Number-1))));
		_formVars.TaxProration.bNumber = true;
		if (_formVars.TaxProration.Number != 0) {
			_formVars.TaxProration.Value = _Format_C2S(_formVars.TaxProration);
			_formVars.TaxProration.bHasData = true;
		}
		else {
			_formVars.TaxProration.Value = "";
			_formVars.TaxProration.bHasData = false;
		}
	}
	_UpdateField("TaxProration");
	Balance_Update();
}

function ClosingDate_Update() {
	
	if(!_formVars.ClosingDate.bHasBeenFilled) {
		//_formVars.ClosingDate.Value = _Date();
		_SetObjectNumber(_formVars.ClosingDate);
		if (_formVars.ClosingDate.Value != "") _formVars.ClosingDate.bHasData = true;
		else _formVars.ClosingDate.bHasData = false;
	}
	
	//_UpdateField("ClosingDate");
	//TaxProration_Update();
	PPInt_Update();	
}

function LastYearTaxes_Update() {
	TaxProration_Update();
	TaxProration_Update();
}

function OtherSellerFees_Update() {
	Balance_Update();
}

function _ComputeForm(object) {
	
	if (bInitInProgress) return true;
	var name = object.name;
	var field = name;	
	if(_formVars[name].bCanBeFilled) {
	
		if (object.type == "checkbox") {
			if (object.checked == true) _formVars[name].Value=object.value;
			else _formVars[name].Value=_formVars[name].OffValue;
			_SetObjectNumber(_formVars[name]);
			if (_formVars[name].Group != "") {
				var group = _formVars[name].Group;
				_formVars[group].Value = _formVars[name].Value;
				_formVars[group].Number = _formVars[name].Number;
				_formVars[group].bNumber = _formVars[name].bNumber;
				_UpdateField(group);
				field = group;
			}
		}else if (object.type == "select-one") {
			_formVars[name].Value = object.options[object.options.selectedIndex].text;
			_SetObjectNumber(_formVars[name]);
		}else{
			_formVars[name].Value = object.value;
			_SetObjectNumber(_formVars[name]);
			_formVars[name].bSaved = true;
		}
		_formVars[field].bHasBeenFilled = true;
		if(_formVars[field].Value != "") {
			_formVars[field].bHasData = true;
		}
		else {
			_formVars[field].bHasData = false;
		}		
		
		_formVars[field].Update();
		_formVars[field].bHasBeenFilled = false;
				
	}
	return true;
}

function _UpdateField(name) {
	var obj;
	if (_formVars[name].ObjectType == "fill" || _formVars[name].ObjectType == "checkbox" || _formVars[name].ObjectType == "select") {
		obj = _GetObject(name);
		if (_formVars[name].ObjectType == "fill") {
			if (!_formVars[name].bHasData) obj.value = "";
			else if (_formVars[name].bNumber) obj.value = _formVars[name].Format(_formVars[name]);
			else obj.value = _formVars[name].Value;
		}
		else if (_formVars[name].ObjectType == "select") {
			var index = -1;
			for (var i=0; i<obj.length; i++) {
				if (obj.options[i].text == _formVars[name].Value) index = i;
			}
			obj.selectedIndex = index;
		}
		else if (_formVars[name].ObjectType == "checkbox") {
			if (_formVars[name].Value == _formVars[name].OnValue) obj.checked = true;
			else  obj.checked = false;
		}
	}
	else if (_formVars[name].ObjectType == "group") {
		for (var i in _formVars) {
			if (_formVars[i].Group == name) {
				obj = _GetObject(i);
				if (_formVars[i].OnValue == _formVars[name].Value) obj.checked = true;
				else obj.checked = false;
			}
		}
	}
}

function _GetNumber(string) {
	var temp=_ConvertNumber(string);
	if (typeof(temp) != "number") return(0);
	else return(temp);
}
function _SetObjectNumber(object) {
	var temp=_ConvertNumber(object.Value);
	if (typeof(temp) != "number") {
		object.Number = 0;
		object.bNumber = false;
	}
	else {
		object.Number = temp;
		object.bNumber = true;
	}
}
function _ConvertNumber(string) {
	string1=""+string;
	if (string1 == "") return(0);
	var stringPart = new Array();
	_MakeStringParts(string1, stringPart);
	if (_MatchDateString(stringPart)) return(stringPart.Value);
	else if (_MatchTimeString(stringPart)) return(stringPart.Value);
	else if (_MatchNumberString(stringPart)) return(stringPart.Value);
	else return("");
}
function _StringPart() {
	this.RawType = "";
	this.LogType = "";
	this.Offset = "";
	this.Length = "";
	this.Value = "";
}
function _MakeStringParts(string, stringPart) {
	var count=0;
	var parts=0;
	while (count<string.length) {
		stringPart[parts] = new _StringPart();
		stringPart[parts].Offset = count;
		var length = 0;
		var rawType = "";
		var logType = "";
		while (count<string.length) {
			if (_IsNumericChar(string.charAt(count))) {
				if (rawType == "") rawType = "num";
				else if (rawType == "alpha") break;
			}
			else if (_IsAlphaChar(string.charAt(count))) {
				if (rawType == "") rawType = "alpha";
				else if (rawType == "num") break;
			}
			else break;
			count++;
			length++;
		}
		if (length>0) {
			var value = string.substring(stringPart[parts].Offset,count);
			if (rawType == "alpha") {
				if (_IsMonthName(value) != -1) logType = "month";
			}
			stringPart[parts].Value = value;
			stringPart[parts].Length = length;
			stringPart[parts].RawType = rawType;
		}
		else {
			stringPart[parts].Value = string.charAt(count);
			stringPart[parts].Length = 1;
			stringPart[parts].RawType = string.charAt(count);
			if (string.charAt(count) == "$") logType = "cur";
			count++;
		}
		stringPart[parts].LogType = logType;
		parts++;
	}
	stringPart.Length = parts;
	stringPart.Value = "";
}
function _MatchDateString(stringPart) {
	var month = 0;
	var day = 0;
	var year = 0;
	var bFound = false;
	if (stringPart.Length == 5 && stringPart[1].Value == stringPart[3].Value && (stringPart[1].Value == '/' || stringPart[1].Value == '-' || stringPart[1].Value == '.') && stringPart[2].Length <= 2) {
		if (stringPart[0].RawType == "num" && stringPart[2].RawType == "num" && stringPart[4].RawType == "num") {
			month = stringPart[0].Value;
			day = stringPart[2].Value;
			year = stringPart[4].Value;
			bFound = true;
		}		
	}
	else if (stringPart.Length == 3 && (stringPart[1].Value == '/' || stringPart[1].Value == '-')) {
		if (stringPart[0].RawType == "num" && stringPart[2].RawType == "num") {
			month = stringPart[0].Value;
			day = 1;
			year = stringPart[2].Value;
			bFound = true;
		}
	}
	else {
		var count=0;
		while (count<stringPart.Length && !bFound) {
			if (stringPart[count].LogType == "month") {
				bFound = true;
				month = _IsMonthName(stringPart[count].Value) + 1;
			}
			count++;
		}
		if (bFound) {
			bFound = false;
			count=0;
			while (count<stringPart.Length && !bFound) {
				if (stringPart[count].RawType == "num") {day = stringPart[count].Value; bFound = true;}
				count++;
			}
			if (bFound) {
				bFound = false;
				while (count<stringPart.Length && !bFound) {
					if (stringPart[count].RawType == "num") {year = stringPart[count].Value; bFound = true;}
					count++;
				}
				if (!bFound && day > 31) {year = day; day = 1; bFound = true;}
			}
		}
	}
	if (bFound) {
		if (month*1 < 1 || month*1 > 12 || day*1 < 1 || day*1 > 31) return false;
		if (year*1 < 30) year = year*1 + 2000;
		else if (year*1 < 100) year = year*1 + 1900;
		stringPart.Value = (Date.parse(month + "/" + day + "/" + year)/86400000);
		return true;
	}
	return false;
}
function _MonthNamesArray() {
	this[0]="January";
	this[1]="February";
	this[2]="March";
	this[3]="April";
	this[4]="May";
	this[5]="June";
	this[6]="July";
	this[7]="August";
	this[8]="September";
	this[9]="October";
	this[10]="November";
	this[11]="December";
}
function _MatchNumberString(stringPart) {
	var dash = -1;
	var lparen = -1;
	var rparen = -1;
	var dec = -1;
	var preDec = -1;
	var postDec = -1;
	var percent = -1;
	var length = stringPart.Length;
	for (var count=0; count<length; count++) {
		if (stringPart[count].RawType == "-") {if (dash != -1) return false; dash = count;}
		else if (stringPart[count].RawType == "(") {if (lparen != -1) return false; lparen = count;}
		else if (stringPart[count].RawType == ")") {if (rparen != -1 || lparen == -1) return false; rparen = count;}
		else if (stringPart[count].RawType == ".") {dec = count;}
		else if (stringPart[count].RawType == "num") {
			if (preDec == -1 && dec == -1) preDec = count;
			else if (postDec == -1 && dec != -1) postDec = count;
		}
		else if (stringPart[count].RawType == "%") {if (percent != -1) return false; percent = count;}
		else if (stringPart[count].RawType != "," && stringPart[count].RawType != " " && stringPart[count].LogType != "cur") return false;
	}
	if (preDec != -1 || postDec != -1) {
		var preDecNum = "";
		var postDecNum = "";
		if (preDec != -1) {
			if (dec == -1) dec = length;
			preDecNum = stringPart[preDec].Value;
			for (count=preDec+1; count<dec; count++) {
				if (stringPart[count].RawType == "num") preDecNum = "" + preDecNum + stringPart[count].Value;
			}
		}
		if (postDec != -1) {
			for (count=postDec; count<length; count++) {
				if (stringPart[count].RawType == "num") postDecNum = "" + postDecNum + stringPart[count].Value;
			}
		}
		var num;
		if (preDec != -1) num = preDecNum;
		else num = "0";
		if (postDec != -1) num = num + "." + postDecNum;
		if (dash != -1 || (lparen != -1 && rparen != -1)) num = "-" + num;
		if (percent != -1) num /= 100;
		stringPart.Value = num*1;
		return true;
	}
}
function _MatchTimeString(stringPart) {
	var string;
	var AmPm = "";
	var hour;
	var minute = 0;
	var second = 0;
	var length = stringPart.Length;
	if (stringPart[0].RawType != "num") return false;
	if (length >= 2) {
		string = stringPart[length-1].Value.toLowerCase();
		if (string == "am" || string == "pm") {AmPm = string; length -= 1;}
		else if (length >= 5 && string == "." && stringPart[length-2].Value.toLowerCase() == "m" && stringPart[length-3].Value.toLowerCase() == ".") {
			if (stringPart[length-4].Value.toLowerCase() == "a") {AmPm = "am"; length -= 4;}
			else if (stringPart[length-4].Value.toLowerCase() == "p") {AmPm = "pm"; length -= 4;}
		}
	}
	hour = stringPart[0].Value*1;
	if (hour == 12 && AmPm == "am") hour = 0;
	else if (hour != 12 && AmPm == "pm") hour += 12;
	if (hour < 0 || hour >= 24) return false;
	if ((length == 1 || (length == 2 && stringPart[1].Value == " ")) && AmPm != "") {}
	else if (length >= 3 && stringPart[1].Value == ":" && stringPart[2].RawType == "num") {
		if (length == 4 && stringPart[3].Value != " ") return false;
		if (length >= 5 && (stringPart[3].Value != ":" || stringPart[4].RawType != "num")) return false;
		if (length == 6 && stringPart[5].Value != " ") return false;
		minute = stringPart[2].Value*1;
		if (minute < 0 || minute >= 60) return false;
		if (length >= 5) {
			second = stringPart[4].Value*1;
			if (second < 0 || second >= 60) return false;
		}
	}
	else return false;
	stringPart.Value = (((((hour*60)+minute)*60)+second)/86400);
	return true;
}
function _IsNumericChar(string) {
	if (string.charAt(0) >= '0' && string.charAt(0) <= '9') return true;
	return false;
}
function _IsAlphaChar(string) {
	var char1 = string.charAt(0);
	if ((char1 >= 'A' && char1 <= 'Z')||(char1 >= 'a' && char1 <= 'z')) return true;
	else if (char1 == 'ƒ' || char1 == 'Š' || char1 == 'Œ' || char1 == 'š' || char1 == 'œ' || char1 == 'Ÿ') return true;
	else if (char1 > 'À' && char1 != '×' && char1 != '÷') return true;
	return false;
}
function _IsMonthName(string) {
	var string1 = string.toLowerCase();
	var month = -1;
	var monthNames = new _MonthNamesArray();
	for (var count=0; count<12 && month==-1; count++) {
		if (monthNames[count].toLowerCase() == string1) month = count;
	}
	return(month);
}
function _GetString(number) {
	return(""+number);
}
function _ObjInfo() {
	this.bHasData = false;
	this.Number = 0;
	this.Value = "";
	this.Type = "G";
	this.Format = _Format_Gen;
	this.bHasCalc = false;
	this.Help = "";
	this.bMustFill = false;
	this.bMatchType = false;
	this.MinValue = "";
	this.MaxValue = "";
	this.OnValue = "";
	this.OffValue = "";
	this.bCanBeFilled = true;
	this.bOverride = false;
	this.bOverridden = false;
	this.bSaved = true;
	this.bNumber = false;
	this.ObjectType = "fill";
	this.Group = "";
	this.bHasBeenFilled = false;
	this.Update = _General_Update;
	this.NextTab = "";
	this.PrevTab = "";
}
function _General_Update() {
	return;
}
function _CheckValidations(name) {
	return true;
}
function _onFocus(object) {
	if (bInitInProgress) return true;
	if(_formVars[object.name].bSaved && _formVars[object.name].ObjectType == "fill" && _formVars[object.name].bHasData) {
		object.value = _formVars[object.name].Value;
	}
	_formVars[object.name].bSaved = false;
	self.status=_formVars[object.name].Help;
	return true;
}
function _onBlur(object) {
	
	if (bInitInProgress || bUnloaded) return true;
	if (object.value == _formVars[object.name].Value || _formVars[object.name].bSaved == true) {
		if(_formVars[object.name].ObjectType == "fill" && _formVars[object.name].bHasData) {
			if (_formVars[object.name].bNumber) object.value = _formVars[object.name].Format(_formVars[object.name]);
		}
		_formVars[object.name].bSaved = true;
	}
	if (_formVars[object.name].Help != "") self.status="";
	return true;
}
function _Date() {
	var tempDate = new Date();
	var result = "";
	var temp = tempDate.getMonth()+1;
	if (temp < 10) result += "0";
	result += (temp + "/");
	temp = tempDate.getDate();
	if (temp < 10) result += "0";
	result += (temp + "/");
	temp = tempDate.getYear();
	if (temp >= 1000) temp = (""+temp).substr(2,2);
	result += temp;
	return(result);
}
function _DayOfYear(dateString) {
	var tempDate = new Date();
	tempDate.setTime(_GetNumber(dateString) * 86400000);
	var month = tempDate.getMonth();
	var monthDays = new _MonthDaysArray(tempDate.getYear());
	days = 0;
	for (var count=0; count<month; count++) {
		days += monthDays[count];
	}
	days += tempDate.getDate();
	return(days);
}
function _MonthDaysArray(year) {
	this[0]=31;
	if ((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)))
		this[1]=29;
	else
		this[1]=28;
	this[2]=31;
	this[3]=30;
	this[4]=31;
	this[5]=30;
	this[6]=31;
	this[7]=31;
	this[8]=30;
	this[9]=31;
	this[10]=30;
	this[11]=31;
}
function _Round(number, places) {
	if (places < 1 || places > 8) return(0);
	var factor = Math.pow(10, Math.round(places));
	return(Math.round(number*factor)/factor);
}
function _Format_Gen(object) {
	return(object.Value);
}
function _Format_NG(object) {
	return("" + object.Number);
}
function _Format_N2(object) {
	var string = "" + (Math.round(object.Number*100)/100);
	if (string.indexOf(".") == -1) string += ".00";
	else string += "0";
	if (string.substring(0, 1) == ".")
		string = "0" + string;
	else if (string.substring(0, 2) == "-.")
		string = "-0" + string.substring(1, string.length);
	string = string.substring(0, string.indexOf(".")+3);
	return(string);
}
function _Format_N2S(object) {
	var string = "" + (Math.round(object.Number*100)/100);
	if (string.indexOf(".") == -1) string += ".00";
	else string += "0";
	if (string.substring(0, 1) == ".")
		string = "0" + string;
	else if (string.substring(0, 2) == "-.")
		string = "-0" + string.substring(1, string.length);
	string = string.substring(0, string.indexOf(".")+3);
	var end = string.length - 3;
	var index = ((end-1) % 3) + 1;
	if (string.charAt(0) == "-" && index == 1) index += 3;
	var result = string.substring(0, index);
	while (index < end) {
		result += ",";
		result += string.substring(index, index+3);
		index += 3;
	}
	result += string.substring(end, end+3);
	return(result);
}
function _Format_C2S(object) {
	var result = _Format_N2S(object);
	if (result.charAt(0) == "-") {
		result = "-$" + result.substring(1,result.length);
	}
	else result = "$" + result;
	return(result);
}
function _Format_DS(object) {
	var tempDate = new Date(2000,1,1);
	var offset = 1900;
	if (tempDate.getYear() == 2000) offset = 0;
	tempDate.setTime(object.Number * 86400000);
	var year = tempDate.getYear();
	if (year < 100 || offset == 1900) year += 1900;
	var month = tempDate.getMonth()+1;
	var day = tempDate.getDate();
	year = year % 100;
	if (year <= 9) year = "0" + year;
	return(month + "/" + day + "/" + year);
}
// -->