function chk_frm() {
	if(!hasCharacter(frm.Name.value)) {
		alert("Contact Name cannot be blank.")
		frm.Name.focus()
		frm.Name.select()
		return false;
	}
	if(frm.selType.value == "0" || frm.selType.value == "") {
		alert("You must select the contact Type.")
		frm.selType.focus()
		return false;
	}
	if(frm.selCompany.value == "0" || frm.selCompany.value == "") {
		alert("You must select the company this contact is associated with.\n\rIf you do not know, then select UNKNOWN.")
		frm.selCompany.focus()
		return false;
	}
	if(hasCharacter(frm.Email.value) && !emailCheck(frm.Email.value)) {
		frm.Email.focus()
		frm.Email.select()
		return false;
	}
	return true;

} // end chk_frm()
function f_modProperties(){
	
}
function f_modContact(o_source,o_target){
	document.getElementById(o_target).value = document.getElementById(o_source).options[document.getElementById(o_source).selectedIndex].text;
}
function f_showNotes(){
	document.getElementById("note").style.display = ( document.getElementById("note").style.display == 'none' ) ? 'inline' : 'none';
	document.getElementById("btnNote").value = ( document.getElementById("btnNote").value == 'View' ) ? 'Hide' : 'View';
}
function f_setFocus(){
	var b_found = false;
	for( f=0; f < document.forms.length; f++ ){
		for( i=0; i < document.forms[f].length; i++ ){
			if( document.forms[f][i].type == "text" ){
				if( document.forms[f][i].parentNode.style.display != "none" ){
					if( document.forms[f][i].disabled != true ){
						document.forms[f][i].focus();
						b_found = true;
					}
				}
			}
			if( b_found == true ) break;
		}
		if( b_found == true ) break;
	}
}
function f_nextField(o_element,o_value){
	if( o_value.length==o_element.maxLength ){
		i_nextField = f_getFormIndexByName(o_element.name)+1;
		document.forms[0].elements[i_nextField].focus();
		document.forms[0].elements[i_nextField].select();
	}
}
function f_getFormIndexByName(s_fieldName){
	var b_found = false;
	for( var i = 0; i<document.forms[0].elements.length; i++ ){
		if( b_found = document.forms[0].elements[i].name==s_fieldName ){
			break;
		}
	}
	return b_found ? i : -1;
}
function f_confirmDelete(){
	if( confirm("Are you sure you want to delete this propery?\n\rIt will also delete all offers and notes associated\n\rwith this property. PLEASE NOTE: This data\n\rCAN be restored but will require 4 to 6 hours of billable\n\rtime according to you contract with Web-Pros, Inc.") ){
		document.forms[0].onsubmit = "";
		return true;
	}
	return false;
}
function f_confirmDelete2(pid,searchterm){
	if( confirm("Are you sure you want to delete this record?") ){
		alert("HI")
		return true;
	}
	return false;
}
function f_removeApostrophes(o_form){
	for( var i = 0; i < o_form.elements.length; i++ ){
		o_form.elements[i].value = o_form.elements[i].value.replace(/'/g,"`");
	}
}
function f_isValidEmail(s_email){
	i_atPos = s_email.indexOf("@")
	i_dotPos = s_email.lastIndexOf(".")
	if( i_atPos<1 || i_dotPos-i_atPos<2 ){
		return true;
	}
	return false;
}
function f_switchByTag(s_tagName){
	var a_formSpanCollection = document.forms[0].getElementsByTagName(s_tagName);
	for( var i = 0; i < a_formSpanCollection.length; i++ ){
		a_formSpanCollection[i].style.display = ( a_formSpanCollection[i].style.display == 'inline' ) ? 'none' : 'inline';
	}
}
function f_switchView(s_type){
	var o_tblHead = document.getElementById('head');
	f_switchByTag('span');
	switch( s_type ){
		case 'view':
			o_tblHead.innerHTML = o_tblHead.innerHTML.replace(/Edit/g,'View');
			break;
		case 'edit':
			o_tblHead.innerHTML = o_tblHead.innerHTML.replace(/View/g,'Edit');
			f_setFocus();
			break;
	}
}
function f_resetForm(){
	document.forms[0].reset();
	//if( document.getElementById(o_targetElement) ) f_resetContacts();
	f_switchView('view');
}
function f_resetContacts(){
	var s_test = o_targetElement + "Orig"
	var o_selectOrig = document.getElementById(s_test);
	var i_selectedOrig = parseInt(document.getElementById(s_test).selectedIndex);
	if ( !i_selectedOrig ) return;
	var o_select = document.getElementById(o_targetElement);
	o_select.options.length = 0;
	for( i=0;i<o_selectOrig.length;i++ ){
		o_select.options[i] = new Option(o_selectOrig.options[i].text,o_selectOrig.options[i].value);
	}
	o_select.selectedIndex = i_selectedOrig;
}
function f_gotoPage(s_targetFile,s_selectSource,s_type){
	var i_selectedValue;
	if( s_selectSource != '' ) i_selectedValue = document.getElementById(s_selectSource).value;
	if( s_type != '' ){
		if( i_selectedValue ){
			s_url = s_targetFile + '?s=' + s_type + '&i=' + i_selectedValue;
		}else{
			s_url = s_targetFile + '?s=' + s_type;
		}
	}else{
		s_url = s_targetFile;
	}
	document.location.href = s_url;
}
function decimalOK(inputVal) {
	oneDash = false
	inputStr = inputVal.toString()

	if(inputStr.length < 1) { // return false if null string
		return false
	}
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i)
		if(oneChar == "." && !oneDash) {  // this verifies there is only one decimal in the string
			oneDash = true				 // all looks good so continue
			continue
		}
		if(oneChar < "0" || oneChar > "9") { // return false if any of the characters are
			return false					 // non-numeric
		}
	}
	return true // yes, it is a true number.
} // END function isZipCode(inputVal)
function percent_financed(j_form) {
//	alert("Gotta fix the decimal points at 2. this is done somewhere in the shopping cart stuff.")
	var amt_AmountFinanced = 0;
	var amt_purchaseprice = 0;
	var amt_earnestMoney = 0;
	var amt_percentFinanced;
	var amt_DownPayment = 0;
	var amt_deposit = 0;
//	alert(decimalOK(document.getElementById("PurchasePrice").value))
	if(decimalOK(document.getElementById("PurchasePrice").value) && decimalOK(document.getElementById("EarnestMoney").value) && decimalOK(document.getElementById("PercentFinanced").value)) {
		amt_purchaseprice = eval(document.getElementById("PurchasePrice").value);
//		amt_earnestMoney = eval(document.getElementById("EarnestMoney").value);
amt_earnestMoney = 0;
//		alert(amt_purchaseprice+'='+amt_earnestMoney)
		amt_percentFinanced = eval(document.getElementById("PercentFinanced").value)*.01;
		amt_DownPayment = eval(eval(amt_purchaseprice)-eval(amt_earnestMoney))*amt_percentFinanced;
		amt_AmountFinanced = eval(amt_purchaseprice)-eval(amt_earnestMoney)-eval(amt_DownPayment)
	}
	document.getElementById("AmountFinanced").value = formatDecimal(amt_DownPayment,2);
	document.getElementById("DownPayment").value = formatDecimal(amt_AmountFinanced,2);
	
} // end function percent_financed(j_form)
function seller_net() {
	var amt_SellerNet = 0;
	var amt_OtherSellerConcessionAmt2 = 0;
	var amt_OtherSellerConcessionAmt = 0;
	var amt_SurveyLocationReportAmt = 0;
	var amt_LimitedHomeWarrantyAmt = 0;
	var amt_BuyersCostsPaidSeller = 0;
	var amt_PurchasePrice = 0;
	if(decimalOK(document.getElementById("OtherSellerConcessionAmt2").value)) {
		amt_OtherSellerConcessionAmt2 = eval(document.getElementById("OtherSellerConcessionAmt2").value);
	}
	if(decimalOK(document.getElementById("OtherSellerConcessionAmt").value)) {
		amt_OtherSellerConcessionAmt = eval(document.getElementById("OtherSellerConcessionAmt").value);
	}
	if(decimalOK(document.getElementById("SurveyLocationReportAmt").value)) {
		amt_SurveyLocationReportAmt = eval(document.getElementById("SurveyLocationReportAmt").value);
	}
	if(decimalOK(document.getElementById("LimitedHomeWarrantyAmt").value)) {
		amt_LimitedHomeWarrantyAmt = eval(document.getElementById("LimitedHomeWarrantyAmt").value);
	}
	if(decimalOK(document.getElementById("BuyersCostsPaidSeller").value)) {
		amt_BuyersCostsPaidSeller = eval(document.getElementById("BuyersCostsPaidSeller").value);
	}
	if(decimalOK(document.getElementById("PurchasePrice").value)) {
		amt_PurchasePrice = eval(document.getElementById("PurchasePrice").value);
	}
	amt_SellerNet = eval(amt_PurchasePrice-amt_BuyersCostsPaidSeller-amt_LimitedHomeWarrantyAmt-amt_SurveyLocationReportAmt-amt_OtherSellerConcessionAmt-amt_OtherSellerConcessionAmt2);
	document.getElementById("SellerNet").value = formatDecimal(amt_SellerNet,2);



}
// ========================================================================================
// ========================================================================================
function f_validateOfferForm(o_form) {

	f_removeApostrophes(o_form)
	for( var i = 0; i<o_form.elements.length; i++ ){
		if(o_form.elements[i].getAttribute('validate')!=null ){
			switch( o_form.elements[i].getAttribute('validate') ){
				case 'bcn':
					if( !decimalOK(o_form.elements[i].value) || !hasCharacter(o_form.elements[i].value) ){
						alert("Number must be a dollar amount, not a percentage.\n\rDo not enter the dollar sign or any commas.\n\rEnter a zero for 'none'.");
						o_form.elements[i].focus();
						return false;
					} 
					break;
				case 'dec':
					if( !decimalOK(o_form.elements[i].value) || !hasCharacter(o_form.elements[i].value) ){
						alert("Number must not be blank.\n\rDo not include commas, percentage sign or dollar sign.\n\rEnter a zero for 'none'.");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'dollar':
					if( !decimalOK(o_form.elements[i].value) || !hasCharacter(o_form.elements[i].value) ){
						alert("Number must be a dollar amount.\n\rDo not enter the dollar sign or any commas.\n\rEnter a zero for 'none'.");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'whol':
					if( !isNumberNoDecimal(o_form.elements[i].value) || !hasCharacter(o_form.elements[i].value) ){
						alert("Number must be a whole number.\n\rDo not enter a decimal point or any commas.\n\rEnter a zero for 'none'.");
						o_form.elements[i].focus();
						return false;
					}
					break;
					
				case 'req':
					if(!hasCharacter(o_form.elements[i].value) || o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must enter all required information!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'req2':
					 if(o_form.selStatus.value == "Active" && !decimalOK(o_form.ListPrice.value) ) {
						alert("The property is set to Active but no list price is set.")
						o_form.ListPrice.focus();
						o_form.ListPrice.select();
						return false;
					} 
					else if(o_form.selStatus.value == "Active" && !_CF_checkdate(o_form.hidListingDate.value) ) {
						alert("The property is set to Active but no list date is set.")
						o_form.ListingDateMon.focus();
						o_form.ListingDateMon.select();
						return false;
					} 
					break;
				case 'remail':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must enter your Email Address!");
						o_form.elements[i].focus();
						return false;
					}
					if( f_isValidEmail(o_form.elements[i].value) ) {
						alert("You must enter a valid Email Address!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'email':
					if( o_form.elements[i].value ) {
						if( f_isValidEmail(o_form.elements[i].value) ) {
							alert("You must enter a valid Email Address!");
							o_form.elements[i].focus();
							return false;
						}
					}
					break;
				case 'cemail':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must confirm your Email Address!");
						o_form.elements[i].focus();
						return false;
					}
					if( f_isValidEmail(o_form.elements[i].value) ) {
						alert("You must enter a valid Confirm Email Address!");
						o_form.elements[i].focus();
						return false;
					}
					if( o_form.elements[i-1].value!=o_form.elements[i].value ){
						alert("Your Email Address and Confirm Email Address do not match!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'pass':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must enter a Password!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'cpass':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must confirm your Password!");
						o_form.elements[i].focus();
						return false;
					}
					if( o_form.elements[i-1].value!=o_form.elements[i].value ){
						alert("Your Password and Confirm Password do not match!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'zip':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must enter a Zip Code!");
						o_form.elements[i].focus();
						return false;
					}
					if( isNaN(o_form.elements[i].value) ){
						alert("You must enter a number for a Zip Code!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'phone':
					
					return false;
					break;
				case 'date':
					
					return false;
					break;
				case 'select':
					
					return false;
					break;
				case 'file':
					
					return false;
					break;
				case 'radio':
					
					return false;
					break;
			}
		}
	}
	return true;
} // end function f_validateOfferForm

// ========================================================================================


function f_validateForm(o_form) {

	f_removeApostrophes(o_form)
	for( var i = 0; i<o_form.elements.length; i++ ){
		if(o_form.elements[i].getAttribute('validate')!=null ){
			switch( o_form.elements[i].getAttribute('validate') ){
				case 'bcn':
					if( !decimalOK(o_form.elements[i].value) || !hasCharacter(o_form.elements[i].value) ){
						alert("Number must be a dollar amount, not a percentage.\n\rDo not enter the dollar sign or any commas.\n\rEnter a zero for 'none'.");
						o_form.elements[i].focus();
						return false;
					} 
					break;
				case 'dec':
					if( !decimalOK(o_form.elements[i].value) || !hasCharacter(o_form.elements[i].value) ){
						alert("Number must not be blank.\n\rDo not include commas, percentage sign or dollar sign.\n\rEnter a zero for 'none'.");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'dollar':
					if( !decimalOK(o_form.elements[i].value) || !hasCharacter(o_form.elements[i].value) ){
						alert("Number must be a dollar amount.\n\rDo not enter the dollar sign or any commas.\n\rEnter a zero for 'none'.");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'whol':
					if( !isNumberNoDecimal(o_form.elements[i].value) || !hasCharacter(o_form.elements[i].value) ){
						alert("Number must be a whole number.\n\rDo not enter a decimal point or any commas.\n\rEnter a zero for 'none'.");
						o_form.elements[i].focus();
						return false;
					}
					break;
					
				case 'req':
					if(!hasCharacter(o_form.elements[i].value) || o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must enter all required information!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'req2':
					if(!hasCharacter(o_form.elements[i].value) || o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must enter all required information!");
						o_form.elements[i].focus();
						return false;
					}
					//  && (!decimalOK(o_form.ListPrice.value) || o_form.ListPrice.value == "")
					else if(o_form.elements[i].value == "Active" && !decimalOK(o_form.ListPrice.value) ) {
						alert("The property is set to Active but no list price is set.")
						o_form.ListPrice.focus();
						o_form.ListPrice.select();
						return false;
					} 
					else if(o_form.elements[i].value == "Active" && !_CF_checkdate(o_form.hidListingDate.value) ) {
						alert("The property is set to Active but no list date is set.")
						o_form.ListingDateMon.focus();
						o_form.ListingDateMon.select();
						return false;
					} 
					break;
				case 'remail':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must enter your Email Address!");
						o_form.elements[i].focus();
						return false;
					}
					if( f_isValidEmail(o_form.elements[i].value) ) {
						alert("You must enter a valid Email Address!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'email':
					if( o_form.elements[i].value ) {
						if( f_isValidEmail(o_form.elements[i].value) ) {
							alert("You must enter a valid Email Address!");
							o_form.elements[i].focus();
							return false;
						}
					}
					break;
				case 'cemail':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must confirm your Email Address!");
						o_form.elements[i].focus();
						return false;
					}
					if( f_isValidEmail(o_form.elements[i].value) ) {
						alert("You must enter a valid Confirm Email Address!");
						o_form.elements[i].focus();
						return false;
					}
					if( o_form.elements[i-1].value!=o_form.elements[i].value ){
						alert("Your Email Address and Confirm Email Address do not match!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'pass':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must enter a Password!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'cpass':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must confirm your Password!");
						o_form.elements[i].focus();
						return false;
					}
					if( o_form.elements[i-1].value!=o_form.elements[i].value ){
						alert("Your Password and Confirm Password do not match!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'zip':
					if( o_form.elements[i].value=='' || o_form.elements[i].value==null ){
						alert("You must enter a Zip Code!");
						o_form.elements[i].focus();
						return false;
					}
					if( isNaN(o_form.elements[i].value) ){
						alert("You must enter a number for a Zip Code!");
						o_form.elements[i].focus();
						return false;
					}
					break;
				case 'phone':
					
					return false;
					break;
				case 'date':
					
					return false;
					break;
				case 'select':
					
					return false;
					break;
				case 'file':
					
					return false;
					break;
				case 'radio':
					
					return false;
					break;
			}
		}
	}
	
	return true;
}

function formatDecimal(amt,places){
	var tmpString = new String(amt);
	var useDecimal = true;
	var useThousands = false;
	var strBegin = 0;
	var strEnd = 0;
	var endVal = 0;
	var defaultPlaces = 2;
	if(!Number(amt)){
		if(useDecimal){
			return '0.00';
		} else {
			return '0';
		}
	}
	if(tmpString.indexOf(',') != -1){
		tmpString = tmpString.split(',');
		tmpNum    = '';
		for(t = 0; t < tmpString.length; t++){
			tmpNum += String(tmpString[t]);
		}
		tmpString = tmpNum;
	}
	if(places == '' || places == null || !Number(places)){
		places = defaultPlaces;
	}
	if(tmpString.indexOf('.') != -1){
		strBegin = tmpString.substring(0, tmpString.indexOf('.'));
		if(strBegin == ''){ strBegin = 0; }
		strEnd = tmpString.substring(tmpString.indexOf('.')+1, tmpString.length);
		if(strEnd.length > places){
			keeper = Number('.' + strEnd.substring(0,places));;
			rounder = strEnd.charAt(places);
			if(rounder >= 5){
				adder = '';
				for(inc = 0; inc < places -1; inc ++){
					adder += '0';
				}
				adder = Number('.' + adder + '1');
				strEnd = Number(keeper) + adder;
				tmpString = new String(Number(strBegin) + Number(strEnd));
			}
		}
	}
	if(tmpString.indexOf('.') != -1){
		clipper = tmpString.indexOf('.') + 1;
		strBegin = tmpString.substring(0, clipper);
		if(strBegin.charAt(0) == '.'){ strBegin = '0.'; }
		strEnd = tmpString.substring(clipper, clipper+places);
		if(strEnd.length == 1){ strEnd += '0'; }
		tmpString = strBegin + strEnd;
	} else {
		var zeros = '.'
		for(plcCount = 0; plcCount < places; plcCount++){
			zeros += '0';
		}
		tmpString += zeros;
	}
	if(!useDecimal){
		tmpNum = tmpString.split('.');
		if(tmpNum.length > 1){
			tmpNum1 = tmpNum[0];
			tmpNum2 = tmpNum[1];
			tmpString = (Number(tmpNum2))? String(tmpNum1) + String(tmpNum2) : String(tmpNum1);
		}
	}
	if(useThousands && tmpString.length > 3){
		tmpNum  = '';
		tmpNum1 = '';
		if(useDecimal){
			tmpString = tmpString.split('.');
			tmpNum1   = tmpString[1];
			tmpString = tmpString[0];
		}
		while(tmpString.length > 0){
			if(tmpString.length > 3){
				tmpNum    = ',' + String(tmpString.substring(tmpString.length - 3,tmpString.length)) + tmpNum;
				tmpString = tmpString.substring(0,tmpString.length-3);
			} else {
				tmpNum    = String(tmpString) + String(tmpNum);
				tmpString = '';
			}
		}
		tmpString = tmpNum;
		if(useDecimal){
			tmpString = String(tmpString) + '.' + String(tmpNum1);
		}
	}
	return tmpString;
}

	function hasCharacter(inputVal) {
		var hasChar = 0
		oneDecimal = false
		inputStr = inputVal.toString()
		if(inputStr.length == 0) { // return false if null string
			return false
		}
		for (var i = 0; i < inputStr.length; i++) {
			var oneChar = inputStr.charAt(i)
			if(oneChar == String.fromCharCode(39) || (oneChar >= String.fromCharCode(97) && oneChar <= String.fromCharCode(122)) || (oneChar >= String.fromCharCode(65) && oneChar <= String.fromCharCode(90)) || (oneChar >=String.fromCharCode(48) && oneChar <= String.fromCharCode(57))) {
				hasChar = 1	
			}
		}
		if(hasChar == 0) return false;
		return true // yes, it is has a char.
	} // END function hasCharacter(inputVal)
	
