function resetAddrValidationFlags() {
	var contentFrame = Xrm.Page.ui.controls.get('WebResource_mileageDistanceCostCalculation_');
	contentFrame.getObject().contentWindow.document.getElementById('from_addr_cb_non_geo_code').checked = false;
	contentFrame.getObject().contentWindow.document.getElementById('to_addr_cb_non_geo_code').checked = false;
	contentFrame.getObject().contentWindow.document.getElementById('to_addr_cb_geo_code').checked = false;
}

function onLoad(econtext) {
	Xrm.Page.getAttribute("btsss_addresstomileage").addOnChange(resetAddrValidationFlags);
	Xrm.Page.getAttribute("btsss_address2tomileage").addOnChange(resetAddrValidationFlags);
	Xrm.Page.getAttribute("btsss_addresstocitymileage").addOnChange(resetAddrValidationFlags);
	Xrm.Page.getAttribute("btsss_addresstostatemileage").addOnChange(resetAddrValidationFlags);
	Xrm.Page.getAttribute("btsss_addresstozipmileage").addOnChange(resetAddrValidationFlags);
	Xrm.Page.getAttribute("btsss_addressfrommileage").addOnChange(resetAddrValidationFlags);
	Xrm.Page.getAttribute("btsss_address2frommileage").addOnChange(resetAddrValidationFlags);
	Xrm.Page.getAttribute("btsss_addressfromcitymileage").addOnChange(resetAddrValidationFlags);
	Xrm.Page.getAttribute("btsss_addressfromstatemileage").addOnChange(resetAddrValidationFlags);
	Xrm.Page.getAttribute("btsss_addressfromzipmileage").addOnChange(resetAddrValidationFlags);
}



function preventAutoSave(econtext) {
    Xrm.Page.ui.clearFormNotification('FROM_ADDR');
	Xrm.Page.ui.clearFormNotification('TO_ADDR');
    var eventArgs = econtext.getEventArgs();
	
    if (eventArgs.getSaveMode() == 1 || 
		eventArgs.getSaveMode() == 2 || 
		eventArgs.getSaveMode() == 59 || 
		eventArgs.getSaveMode() == 70) {
		
		var contentFrame = Xrm.Page.ui.controls.get('WebResource_mileageDistanceCostCalculation_');
		var b_from_addr_validated = (contentFrame.getObject().contentWindow.document.getElementById('from_addr_cb_non_geo_code').checked);
		var b_to_addr_validated = ((contentFrame.getObject().contentWindow.document.getElementById('to_addr_cb_non_geo_code').checked) 
									|| 
								  (contentFrame.getObject().contentWindow.document.getElementById('to_addr_cb_geo_code').checked));
		
		if ((!b_from_addr_validated) || (!b_to_addr_validated))
		{
			eventArgs.preventDefault();
		}
		
		if (!b_from_addr_validated)
		{
			Xrm.Page.ui.setFormNotification("FROM Address has not been validated yet. Please select the option for 'Calculate mileage'. ", "ERROR", 'FROM_ADDR');
		}
		
		if (!b_to_addr_validated)
		{
			Xrm.Page.ui.setFormNotification("TO Address has not been validated yet. Please select the option for 'Calculate mileage'. ", "ERROR", 'TO_ADDR');
		}
    }
}