
//__________________________________________________________________________________________________
//
//	Copyright 2005-2006 by AccuData America, Inc.
//__________________________________________________________________________________________________

//Global Recalc Validation Flag
GlobalRecalcValidation = true;
function DeleteRadiusOption(formName) {
    var form = 'max:' + formName + ':0:DelRadiusSelection';
    if (form != null) {
        var hiddenBox = document.getElementById(form);
        if (hiddenBox != null) {
            var answer = confirm('Radius is not compatible with other geography options in the same count. If you continue to the Radius page, your current geography selections will be cleared.');
            if (answer) {
                hiddenBox.value = "2";
                _doPostBack(document.getElementById("RadiusHiddenLink"));
            }
        }
    }
}

function DeleteRadiusOnEdit(formName) {
    var form = 'max:' + formName + ':0:DelRadiusSelection';
    if (form != null) {
        var hiddenBox = document.getElementById(form);
        if (hiddenBox != null) {
            var answer = confirm('Your count contains a mixture of radius and non-radius geography selections.  Radius is no longer compatible with other geography options in the same count.  Please click OK to clear the Radius selection, or cancel to clear the other geography selections.');
            if (answer) {
                hiddenBox.value = "3";
                _doPostBack(document.getElementById("RadiusHiddenLink2"));
            }
            else {
                hiddenBox.value = "1";
                _doPostBack(document.getElementById("RadiusHiddenLink2"));
            }
        }
    }
}
            

function AdvoAlert()
{
	alert('Important Note Regarding New Postal Regulations:  On May 14, 2007, there will be a significant change to USPS postal regulations and rates.  The mail date used in your count determines whether your data will be processed using the new or old rates and regulations. If your count mail date is Friday 5/11/07 or before, your AccuLeads order will come with reporting that reflects current rates and regulations must be mailed PRIOR to May 14th.  If your count mail date if Saturday 5/12/07 or greater, your AccuLeads order will come with reporting that reflects the new rates and regulations and can not be mailed until AFTER May 14th.');
}
	
function DeselectItem (obj)
{
	var splitName = obj.id.split(':');
	var box = document.getElementById("max:" + splitName[1] + ":0:RemoveItems");
	if(!obj.checked)
	{
		box.value = box.value + obj.value + ':';
	}
	else
	{
		box.value = box.value.replace(obj.value + ':', "");								
	}
}

// Global key capture.
document.onkeyup = KeyCheck;       
function KeyCheck(e)
{
	//var KeyID = event.keyCode;
	var btnLookup;
	var sPath;
	var sPage;
	var keyId = ( window.event ) ? event.keyCode : e.keyCode;
	switch ( keyId )
	{
		case 13:
			btnLookup = document.getElementById('lookup');
			if (btnLookup !== null)
			{
				sPath = window.location.pathname;
				sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
				switch(sPage)
				{
					case "CountSuppressionLookup.max":
						doPostBack(btnLookup);
						break;
					
					case "CowGeoAllAreacodeLookup.max":
						validateAreaCodeLookup(btnLookup);
						break;
					
					case "CowGeoAllAreacodeOmitLookup.max":
						validateAreaCodeLookup(btnLookup);
						break;
					
					case "CowGeoAllCensusTractLookup.max":
						validateCensusTractLookup(btnLookup);
						break;
						
					case "CowGeoAllDMALookup.max":
						validateDMALookup(btnLookup);
						break;
						
					case "CowGeoAllMSALookup.max":
						validateMSALookup(btnLookup);
						break;
						
					case "CowGeoAllCountyLookup.max":
						validateCountyLookup(btnLookup);
						break;
					
					case "CowGeoAllCountyOmitLookup.max":
						validateCountyLookup(btnLookup);
						break;
					
					case "CowGeoAllCRRTLookup.max":
						_doPostBack(btnLookup);
						break;
						
					case "CowGeoAllCRRTOmitLookup.max":
						_doPostBack(btnLookup);
						break;
					
					case "CowGeoAllZip5Lookup.max":
						validateZip5Lookup(btnLookup);
						break;
						
					case "CowGeoAllZip5OmitLookup.max":
						validateZip5Lookup(btnLookup);
						break;
					
					case "CowGeoAllZip4Lookup.max":
						validateZip9Lookup(btnLookup);
						break;
					
					case "CowGeoAllZip4OmitLookup.max":
						validateZip9Lookup(btnLookup);
						break;
					
					case "CowGeoAllZipSCFLookup.max":
						validateSCFLookup(btnLookup);
						break;
					
					case "CowGeoAllSCFOmitLookup.max":
						validateSCFLookup(btnLookup);
						break;
					
					case "CowGeoRadiusZipLookup.max":
						_doPostBack(btnLookup);
						break;
					
					case "CowBusinessTypeDDMMRCCodesLookup.max":
						validateMRCCodeLookup('max:AccuData_CTL_Form:0:keyword',btnLookup);
						break;
						
					case "CowGeoAllRadius.max":
						validateRadius(btnLookup);
						break;
						
					case "CowBusinessTypeSICLookup.max":
						sicLookup(btnLookup);
						break;

					// 10/22/07 - jwh - #3594
					case "CowVehicleSelectionsLookup.max":
						vehSelLookup( btnLookup );
					break;

					default:
						_doPostBack(btnLookup);
						break;
				}
			}
			else if (document.getElementById('btnLogin') !== null)
			{
				_doPostBack(obj);
			}
	}
}

function validateSearchBox (obj, formName)
{
	var box = document.getElementById("max:" + formName + ":0:SearchTerm");
	var re = /^[a-zA-Z0-9 ]*$/;
	if (box.value !== '' && !re.test(box.value))
	{
		alert("Please enter a valid search term.");
		setTextFieldAlert(box);
		return false;
	}	
	_doPostBack(obj);
	return true;
}
//************************************************
//COMBINE COUNTS
//************************************************
function _MoveElement(direction, formName)
{
	var availableCNT = document.getElementById("max:AccuData_CTL_" + formName + ":0:AvailableCounts");
	var selectedCNT = document.getElementById("max:AccuData_CTL_" + formName + ":0:SelectedCounts");
	switch(direction)
	{
		case "RR":
			if (availableCNT !== null && availableCNT.options !== null) 
			{ 
				for (var i=0; i < availableCNT.options.length; i++) 
				{
					availableCNT.options[i].selected = true;
				}
			}
			moveSelectedOptions(availableCNT, selectedCNT);
		break;
		case "R":
			moveSelectedOptions(availableCNT, selectedCNT);
		break;
		case "L":
			moveSelectedOptions(selectedCNT, availableCNT);
		break;
		case "LL":
			if (selectedCNT !== null && selectedCNT.options !== null) 
			{ 
				for (var j=0; j < selectedCNT.options.length; j++) 
				{
					selectedCNT.options[j].selected = true;
				}
			}	
			moveSelectedOptions(selectedCNT, availableCNT);
		break;	
		case "U":
			moveOptionUp(selectedCNT);
		break;
		case "D":
			moveOptionDown(selectedCNT);
		break;		
	}
}

function moveOptionUp(obj) 
{
	if (obj !== null && obj.options !== null) 
	{ 
		for (j=0; j < obj.options.length; j++) 
		{
			if (obj.options[j].selected) 
			{
				if (j !== 0 && !obj.options[j-1].selected) 
				{
					swapOptions(obj,j,j-1);
					obj.options[j-1].selected = true;
				}
			}
		}
	}
}

function moveOptionDown(obj) 
{
	if (obj !== null && obj.options !== null) 
	{ 
		for (j=obj.options.length-1; j >=0; j--) 
		{
			if (obj.options[j].selected) 
			{
				if (j !== (obj.options.length-1) && ! obj.options[j+1].selected) 
				{
					swapOptions(obj,j,j+1);
					obj.options[j+1].selected = true;
				}
			}
		}
	}
}

function swapOptions(obj,i,j) 
{
	var o = obj.options;
	var i_selected = o[i].selected;
	var j_selected = o[j].selected;
	var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
	o[i] = temp2;
	o[j] = temp;
	o[i].selected = j_selected;
	o[j].selected = i_selected;
}

function moveSelectedOptions(from, to) 
{
    var index;
    var o;
	if (from !== null && from.options !== null) 
	{ 
		//Add items from "from" to "to"
		for (var i=0; i < from.options.length; i++) 
		{
			o = from.options[i];
			if (o.selected) 
			{
				if (to !== null && to.options !== null) 
				{
					index=to.options.length;
				}
				else
				{ 
					index = 0;
				}

				to.options[index] = new Option( o.text, o.value, false, false);
			}
		}
		
		//Remove items from "from"
		for (var j=(from.options.length-1); j >= 0; j--) 
		{
			o = from.options[j];
			if (o.selected) 
			{
				from.options[j] = null;
			}
		}

		from.selectedIndex = -1;
		to.selectedIndex = -1;
		return true;
	}
	return false;
}

function _GetSelectedCounts (obj, formName)
{
	var selectedCNT = document.getElementById("max:AccuData_CTL_" + formName + ":0:SelectedCounts");
	var selected = false;
	if (selectedCNT !== null && selectedCNT.options !== null) 
	{ 
		if(selectedCNT.options.length < 2)
		{
			selected = false;
		}
		else
		{
			for (var i=0; i < selectedCNT.options.length; i++)
			{ 
				selectedCNT.options[i].selected = true;
				selected = true;
			}
		}
	}
	if(selected === true)
	{
		_doPostBack(obj);
		return true;
	}
	else
	{
		alert('Please select 2 or more counts to combine before continuing');
	}
}
//************************************************
//COMBINE COUNTS (END)
//************************************************

function updateSearchTerms (obj, formName, term, state)
{
	var box = document.getElementById("max:" + formName + ":0:SearchTerm");
	var stateDD = document.getElementById("max:" + formName + ":0:State");
	box.value = term;
	for(var k=0; k < stateDD.options.length; k++) 
    {
		if(stateDD.options[k].value === state)
		{
			stateDD.options[k].selected = true;
		}
		else
		{
			stateDD.options[k].selected = false;
		}		
	}
	_doPostBack(obj);
	return true;
}

//________________________________________________________________________
//
//	Store SIC codes for SIC lookup page.
//________________________________________________________________________
UnCheckedSICCodes =  new Array();

function addUnCheckedSICCode(code)
{
	UnCheckedSICCodes.push(code);
}

function populateUnCheckedSICField(obj)
{
	var frm = document.getElementById('max:AccuData_CTL_Form:0:UnCheckedValues');
	for (var i=0; i < UnCheckedSICCodes.length; i++)
	{
		if (i===0)
		{
			frm.value = UnCheckedSICCodes[i];
		}
		else
		{
			frm.value += "," + UnCheckedSICCodes[i];
		}
	}
	_doPostBack(obj);
}

// 10/22/07 - jwh - #3594
uncheckedVehSelCodes = new Array();

// 10/22/07 - jwh - #3594
function addUncheckedVehSelCode(code)
{
	uncheckedVehSelCodes.push( code );
}

// 10/22/07 - jwh - #3594
function populateUncheckedVehSelField(obj)
{
	var uncheckedValues = document.getElementById( 'max:AccuData_CTL_VehicleSelectionsLookup:0:UnCheckedValues' );
	for ( var idx = 0; idx < uncheckedVehSelCodes.length; idx++ )
	{
		if ( idx > 0 )
			uncheckedValues.value += ",";

		uncheckedValues.value += uncheckedVehSelCodes[idx];
	}

	_doPostBack( obj );
}

// 04/22/08 - jwh - #4413
uncheckedCodes = new Array();

// 04/22/08 - jwh - #4413
function addUncheckedCode(cde)
{
	uncheckedCodes.push( cde );

	return true;
}

// 04/22/08 - jwh - #4413
function fillUncheckedCodesInput(frmNme, obj)
{
	var idx; // index
	var uncCde; // unchecked codes

	if ( uncheckedCodes.length > 0 )
	{
		uncCde = document.getElementById( frmNme + ':0:UncheckedCodes' );
		if ( ! uncCde )
			return false;

		for ( idx = 0; idx < uncheckedCodes.length; idx++ )
		{
			if ( idx > 0 )
				uncCde.value += ",";

			uncCde.value += uncheckedCodes[idx];
		}
	}

	_doPostBack( obj );
}

// 04/22/08 - jwh - #4413
function validateLookup(frmNme, obj)
{
	var keyWrd; // keyword
	var keyWrdTyp; // keyword type
	var rgx; // regex

	keyWrd = document.getElementById( frmNme + ':0:Keyword' );
	keyWrdTyp = document.getElementById( frmNme + ':0:KeywordType' );

	if ( ( ! keyWrd ) || ( ! keyWrdTyp ) )
		return false;

	switch ( keyWrdTyp.value.toLowerCase() )
	{

		case 'keyword':
			rgx = new RegExp( /^\w+$/ );
		break;

	}

	if ( ! rgx )
		return false;

	if ( ! rgx.test( keyWrd.value ) )
	{
		setTextFieldAlert( keyWrd );

		alert( 'Please enter a valid search term.' );

		return false;
	}

	resetTextFieldAlert( keyWrd );

	_doPostBack( obj );
}

function setZip4Default()
{
	var inputs = document.getElementsByTagName('input');
	var input;
	for(var k=0; k < inputs.length; k++) 
	{ 		
    	input = inputs[k];	
    	if (input.name.indexOf(':0:ZipPlus4') >= 0)
    	{
		    input.disabled = true;
		    break;
    	}
	}
}


function MyPageNavigation(page)
{
	var CurrentPath = window.location.pathname;
	var CurrentPage = CurrentPath.substring(CurrentPath.lastIndexOf('/') + 1);
	var NavPath = "";
	switch(page)
	{
		case "MyCounts":
			NavPath = "MyCounts.max";
			break;
		case "MySubscriptions":
			NavPath = "MySubscriptions.max";
			break;	
		case "MyArchivedCounts":
			NavPath = "MyArchivedCounts.max";
			break;	
		case "AccudataDataServices":
			NavPath = "AccudataDataServices.max";
			break;			
		case "MyAccount":
			NavPath = "MyAccount.max";
			break;
		case "MyOrders":
			NavPath = "DownloadOrder.max";
			break;
		case "Admin":
			NavPath = "Administration.max";
			break;
	}

	if(CurrentPage.substring(0,2).toLowerCase() !== "my" &&
		CurrentPage.toLowerCase() !== "loadsavedcount.max" &&
		CurrentPage.toLowerCase() !== "countdetail.max" &&
		CurrentPage.toLowerCase() !== "archivedreport.max" &&
		CurrentPage.toLowerCase() !== "legacyreport.max" &&
		CurrentPage.toLowerCase() !== "downloadorder.max" &&
		CurrentPage.toLowerCase() !== "accudatadataservices.max" &&
		CurrentPage.toLowerCase() !== "administration.max")
	{ 
		if (confirm("You are about to leave the count and order workflow.\nAll selections will be lost.\nDo you wish to continue?"))
		{
			window.location= NavPath + "?Page=" + page;
		}
		else
		{
			return false;
		}
	}
	else
	{
		window.location= NavPath + "?Page=" + page;
	}
}

function DeleteCount (obj)
{
	if (confirm('This count will be permanently deleted.  Do you wish to continue?'))
	{
		_doPostBack(obj);
	}
}

function DeleteService (obj)
{
	if (confirm('This service will be permanently deleted.  Do you wish to continue?'))
		_doPostBack(obj);
}
//________________________________________________________
//
//	Submit on enter key press.
//________________________________________________________
function handleEnterSubmit(obj, keycode)
{
	if (keycode == 13)
	{
		_doPostBack(obj);
	}
	else
	{
		return false;
	}
}

//_______________________________________________________
//
//	Common
//_______________________________________________________
function check_usphone(phonenumber) 
{
	if (phonenumber.match(/[0-9]{3,3}[-]{1,1}[0-9]{3,3}[-]{1,1}[0-9]{4,4}[ ]*$/) === null) 
	{
		return false; 
	}
	return true; 
} 


function Replace(str,replaceTxt,withTxt) 
{
	if (str === null || str.length === 0 || replaceTxt === null || replaceTxt.length === 0)
	{
		return str;
	}
	
	var i = str.indexOf(replaceTxt);
	if (i < 0)
	{
		return str;
	}
	var newstr = str.substring(0,i) + withTxt;

	if (i + replaceTxt.length < str.length)
	{
        newstr += Replace(str.substring(i + replaceTxt.length,str.length),replaceTxt,withTxt);
	}

	return newstr;
}
function IsValidCreditCardNo(type, ccNo) 
{
	ccNo = Replace(ccNo," ",""); 
	var re;
	switch (+type)
	{
		case 2: //mastercard
			re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
			break;
		case 3: //amex
			re = /^3[4,7]\d{13}$/;
			break;
		default: //visa
			re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
			break;
	}
	if (!re.test(ccNo))
	{
		return false;
	}
	ccNo = ccNo.split("-").join("");
	
	var checksum = 0;
	for (var i=(2-(ccNo.length % 2)); i<=ccNo.length; i+=2)
	{ 
		checksum += parseInt(ccNo.charAt(i-1));
	}
	
	var digit;
	for (var r=(ccNo.length % 2) + 1; r<ccNo.length; r+=2) 
	{
  		digit = parseInt(ccNo.charAt(r-1)) * 2;
  		if (digit < 10) 
  		{ 
  		    checksum += digit; 
  		} 
  		else 
  		{ 
  		    checksum += (digit-9); 
  		}
	}
	if ((checksum % 10) === 0) 
	{
		return true;
	} 
	else 
	{
		return false;
	}
}
function IsValidZip(str)
{
	return new RegExp("^\\d{5}(-\\d{4})?$").test(str);
}
function IsValidEmail(str)
{
	return new RegExp(".+@.+\\.[a-z]+").test(str);
}
function OrderDisabled()
{
	var recalc = document.getElementById('RecalcToggle');
	if (recalc === null || recalc.style.display === "none")
	{
		alert("Please make a selection before using this feature.");
		return true;
	}
	return false;
}
function Trim(str)
{
	return (str === null ? "" : str.replace(/^\s*|\s*$/g,""));
}

//_______________________________________________________
//
//	My Credit Cards
//_______________________________________________________
function MyCCInit()
{
	var currentMonth = new Date().getMonth();
	var currentYear = new Date().getYear();
	currentMonth++;
	if (currentMonth > 12)
	{
		currentMonth = 1;
		currentYear++;
	} 
	document.getElementById("max:AccuData_CTL_MyCreditCards:0:CCExpMonth").value = currentMonth;
	document.getElementById("max:AccuData_CTL_MyCreditCards:0:CCExpYr").value = currentYear;
}

function MyCreditCardsSubmit(obj)
{
	var firstName = document.getElementById("max:AccuData_CTL_MyPages:0:FirstName");
	var lastName = document.getElementById("max:AccuData_CTL_MyPages:0:LastName");
	var address1 = document.getElementById("max:AccuData_CTL_MyPages:0:Address1");
	var city = document.getElementById("max:AccuData_CTL_MyPages:0:City");
	var zip = document.getElementById("max:AccuData_CTL_MyPages:0:Zip");
	var ccNo = document.getElementById("max:AccuData_CTL_MyPages:0:CCNo");
	var expMo = document.getElementById("max:AccuData_CTL_MyPages:0:CCExpMonth");
	var expYr = document.getElementById("max:AccuData_CTL_MyPages:0:CCExpyr");
	var ccpCode = document.getElementById("max:AccuData_CTL_MyPages:0:CCPCode");
	var ccType = document.getElementById("max:AccuData_CTL_MyPages:0:CCType");
	var email = document.getElementById("max:AccuData_CTL_MyPages:0:Email");
	if (Trim(firstName.value) === "")
	{
		alert("First name is required.");
		setTextFieldAlert(firstName);
		return false;
	}
	else if (Trim(lastName.value) === "")
	{
		alert("Last name is required.");
		setTextFieldAlert(lastName);
		return false;
	}
	else if (Trim(address1.value) === "")
	{
		alert("Address is required.");
		setTextFieldAlert(address1);
		return false;
	}
	else if (Trim(city.value) === "")
	{
		alert("City is required.");
		setTextFieldAlert(city);
		return false;
	}
	else if (Trim(zip.value) === "")
	{
		alert("Postal Code is required.");
		setTextFieldAlert(zip);
		return false;
	}
	else if (!IsValidZip(zip.value))
	{
		alert("Invalid Postal Code.");
		setTextFieldAlert(zip);
		return false;
	}
	else if (Trim(ccNo.value) === "")
	{
		alert("Credit card number is required.");
		setTextFieldAlert(ccNo);
		return false;
	}
	else if (!IsValidCreditCardNo(ccType.value,ccNo.value))
	{
		alert("Invalid credit card number.");
		setTextFieldAlert(ccNo);
		return false;
	}		
	else if (Trim(email.value) === "")
	{
		alert("Email is required.");
		setTextFieldAlert(email);
		return false;
	}
	else if (!IsValidEmail(email.value))
	{
		alert("Invalid Email.");
		setTextFieldAlert(email);
		return false;
	}
							
	_doPostBack(obj);
	return true;
}


//_______________________________________________________
//
//	Loops through SIC grid textboxes and validates 
//	their form.
//_______________________________________________________
function validateSICGrid(obj)
{
	var inputs = document.getElementsByTagName('input');
	var valid  = true;
	
	var re1 = new RegExp(/\d\d$/);
	var re2 = new RegExp(/\d\d\d\d$/);
	var re3 = new RegExp(/\d\d\d\d\d\d$/);
	var re4 = new RegExp(/\d\d\d\d\d\d\d\d$/);
	
	var input;
	// For each input elemenet.
	for(var k=0; k < inputs.length; k++) 
    {   
        input = inputs[k];
        
        // Skip if not a textbox.
        if (input.type !== 'text')
	    { 
		    continue; 
	    }
        
        // If textbox contains anything, validate.
        if (input.value.length > 0)
        {
			if ((input.value.length === 2 && re1.test(input.value)) || (input.value.length === 4 && re2.test(input.value)) || (input.value.length === 6 && re3.test(input.value)) || (input.value.length === 8 && re4.test(input.value)))
			{
				resetTextFieldAlert(input);
			}
			else
			{
				valid = false;
				setTextFieldAlert(input);
			}
        }
    }
    if (valid)
    {
		 _doPostBack(obj);
    }
    else 
    {
		alert('Some fields are not in the correct format. Please verify all values.');
		GlobalRecalcValidation = false;
		return false;
    }
}

function sicLookup(obj)
{
	frm = document.getElementById('max:AccuData_CTL_Form:0:Keyword');
	frmType = document.getElementById('max:AccuData_CTL_Form:0:KeywordType');
	var re;
	if (frm.value === '' || frm.value.indexOf("'") >= 0)
	{
		alert('Please enter a valid search term.');
		setTextFieldAlert(frm);
		return false;
	}
	else if (frmType.options[frmType.selectedIndex].value === 'phone')
	{
		re = new RegExp(/\d\d\d\d\d\d\d\d\d\d$/);
		if (!re.test(frm.value))
		{
			alert('Phone number must be in the form XXXXXXXXXX.');
			setTextFieldAlert(frm);
			return false;
		}
		else
		{
			_doPostBack(obj);
		}
	}
	else
	{
		_doPostBack(obj);
	}
}

// 10/22/07 - jwh - #3594
function vehSelLookup(obj)
{
	var keyword = document.getElementById( 'max:AccuData_CTL_VehicleSelections:0:Keyword' );
//	var keywordType = document.getElementById( 'max:AccuData_CTL_VehicleSelections:0:KeywordType' );
	var rgx = new RegExp( /^\w+$/ );

	if ( ! rgx.test( keyword ) )
	{
		alert( 'Please enter a valid search term.' );
		setTextFieldAlert( keyword );

		return false;
	}

	_doPostBack( obj );
}

function validateSICRangeGrid(obj)
{
	var inputs = document.getElementsByTagName('input');
	var valid  = true;
	       
	var from = '';
	var to = '';
	var invalidInput;
	var re1 = new RegExp(/\d\d$/);
	var re2 = new RegExp(/\d\d\d\d$/);
	var re3 = new RegExp(/\d\d\d\d\d\d$/);
	var re4 = new RegExp(/\d\d\d\d\d\d\d\d$/);	
	
	var input;
	// For each input elemenet.
	for(var k=0; k < inputs.length; k++) 
	{ 		
    	input = inputs[k];
    
    	// Skip if not a textbox.
    	if (input.type !== 'text')
		{
			continue;
		} 
        
        // If textbox has value and it's a "from" field
        // Validate it and it's "to" value.
        if (input.value.length > 0 && input.name.indexOf('From') > 0)
        {        
			// Test "from" field.
			if ((input.value.length === 2 && re1.test(input.value)) || (input.value.length === 4 && re2.test(input.value)) || (input.value.length === 6 && re3.test(input.value)) || (input.value.length === 8 && re4.test(input.value)))
			{
				from = input.value;
				resetTextFieldAlert(input);
			}
			else
			{
				valid = false;
				setTextFieldAlert(input);
			}
			
			// Test "to" field.
			input = inputs[k+1];
			if ((input.value.length === 2 && re1.test(input.value)) || (input.value.length === 4 && re2.test(input.value)) || (input.value.length === 6 && re3.test(input.value)) || (input.value.length === 8 && re4.test(input.value)))
			{
			    	to = input.value;
				resetTextFieldAlert(input);
			}
			else
			{
				valid = false;
				setTextFieldAlert(input);
			}
        }
        else if (input.value.length > 0 && input.name.indexOf('To') > 0)
        {
			// Test "to" field.
			if ((input.value.length === 2 && re1.test(input.value)) || (input.value.length === 4 && re2.test(input.value)) || (input.value.length === 6 && re3.test(input.value)) || (input.value.length === 8 && re4.test(input.value)))
			{
				to = input.value;
				resetTextFieldAlert(input);
			}
			else
			{
				valid = false;
				setTextFieldAlert(input);
			}
			
			// Test "from" field.
			input = inputs[k-1];
			if ((input.value.length === 2 && re1.test(input.value)) || (input.value.length === 4 && re2.test(input.value)) || (input.value.length === 6 && re3.test(input.value)) || (input.value.length === 8 && re4.test(input.value)))
			{
				from = input.value;
				resetTextFieldAlert(input);				
			}
			else
			{
				valid = false;
				setTextFieldAlert(input);
			}
        }   
        if (from !== '' && to !== '' && input.value.length > 0)
        {    
			if(from > to)
			{	
				valid = false;
				setTextFieldAlert(input);
			}
        }
    }
    
    if (valid)
    {
		 _doPostBack(obj);
    }
    else 
    {
		alert('Some fields are not in the correct format. Please verify all values.');
		GlobalRecalcValidation = false;
		return false;
    }
}

//_______________________________________________________
//
//	Loops through textboxes and validates their format.
//_______________________________________________________
function validateTextFieldGrid(obj, type)
{
	var elm; // element
	var idx; // index
	var inp; // input
	var rgx; // regex
	var suc; // success?
	var vld = true; // valid?

	if ( ! type )
		return false;

	switch ( type.toLowerCase() )
	{

		case 'areacode':
		case 'dma':
		case 'scf':
			rgx = new RegExp( /^\d{3}$/ );
		break;

		// 04/04/08 - jwh - #4502
		case 'cacounty':
			rgx = new RegExp( /^\d{6}$/i );
		break;

		// 04/04/08 - jwh - #4502
		case 'cafsa':
			rgx = new RegExp( /^[a-z]\d[a-z]$/i );
		break;

		// 04/04/08 - jwh - #4502
		case 'capostalcode':
			rgx = new RegExp( /^[a-z]\d[a-z] \d[a-z]\d$/i );
		break;

		case 'censustract':
			rgx = new RegExp( /^\d{11}$/ );
		break;

		// 05/07/08 - jwh - #4557
		case 'congressional':
			rgx = new RegExp( /^([a-z]|\d){2}\d{2}$/i );
		break;

		case 'county':
			rgx = new RegExp( /^[a-z0-9]{5}$/i );
		break;

		case 'crrt':
			rgx = new RegExp( /^\d{5}[bcghr]\d{3}$/i );
		break;

		case 'franchise':
			rgx = new RegExp( /^\d{8}$/ );
		break;

		case 'lender1':
		case 'lender1omit':
		case 'lender2':
		case 'lender2omit':
		case 'lender3':
		case 'lender3omit':
		case 'lenderscan':
		case 'lenderscanomit':
			rgx = new RegExp( /^\d+$/ );
		break;

		case 'msa':
			rgx = new RegExp( /^\d{4}$/ );
		break;

		// 04/22/08 - jwh - #4413
		case 'naics':
			rgx = new RegExp( /^\d{2,6}$/ );
		break;

		case 'sic':
			rgx = new RegExp( /^(\d{2}|\d{4}|\d{6}|\d{8})$/ );
		break;

		// 10/22/07 - jwh - #3594
		case 'vehsel':
			rgx = new RegExp( /^(\d{2}|\d{4})$/ );
		break;

		case 'zip5':
			rgx = new RegExp( /^\d{5}$/ );
		break;

		case 'zip9':
			rgx = new RegExp( /^\d{9}$/ );
		break;

	}

	if ( rgx )
	{
		inp = document.getElementsByTagName( 'input' );
		if ( ! inp )
			return false;

		for ( idx = 0; idx < inp.length; idx++ )
		{
			elm = inp[idx];
			if ( ( ! elm ) ||
				( elm.type !== 'text' ) || // skip if not a textbox.
				( elm.value.length < 1 ) ) // skip if empty.
				continue;

			suc = rgx.test( elm.value );
			if ( suc )
				resetTextFieldAlert( elm );
			else
			{
				vld = false;

				setTextFieldAlert( elm );
			}
		}
	}

	if ( ! vld )
	{
		GlobalRecalcValidation = false;

		alert( 'Some fields are not in the correct format. Please verify all values.' );

		return false;
	}

	_doPostBack( obj );
}

function OnSelectChangeEnable()
{
	_doPostBack(document.getElementById("HiddenLink"));
}

function validateCountSuppression(obj)
{
	var inputs = document.getElementsByTagName('input');
	var valid  = true;
	
	var input;
	var re;
	// For each input elemenet.
	for(var k=0; k < inputs.length; k++) 
    {   
        input = inputs[k];
        
        // Skip if not a textbox.
        if (input.type !== 'text') 
	    {
		    continue; 
	    }
        
        // If textbox contains anything, validate.
        if (input.value.length > 0)
        {
			re	= new RegExp(/^(([a-zA-Z0-9_]*\-)+[0-9]+)?$/);
			if (!re.test(input.value))
			{
				valid = false;
				setTextFieldAlert(input);
			}
			else
			{
				resetTextFieldAlert(input);
			}
        }
    }
    if (valid)
    {
		 _doPostBack(obj);
    }
    else 
    {
		alert('Some fields are not in the correct format (e.g. UserName-1). Please verify all values.');
		GlobalRecalcValidation = false;
		return false;
    }
}

//_______________________________________________________
//
//	Loops through textboxes and validates their form.
//_______________________________________________________
function validateTextFieldGridRanges(obj,type)
{
	var inputs = document.getElementsByTagName('input');
	var valid  = true;
	       
	var from = '';
	var to = '';
	var invalidInput;
	var re;
	switch (type)
	{			
		case "scf":
			re = new RegExp(/\d\d\d/);
			break;
				
		case "zip5":
			re = new RegExp(/\d\d\d\d\d/);
			break;

		case "zip4":
		case "zip9":
			re = new RegExp(/\d\d\d\d\d\d\d\d\d/);
			break;
	}	
	
	var input;
	// For each input elemenet.
	for(var k=0; k < inputs.length; k++) 
    { 		
        input = inputs[k];
        
        // Skip if not a textbox.
        if (input.type !== 'text') 
	    {
		    continue; 
        }
	
        // If textbox has value and it's a "from" field
        // Validate it and it's "to" value.
        if (input.value.length > 0 && input.name.indexOf('From') > 0)
        {        
			// Test "from" field.
			if (!re.test(input.value))
			{
				valid = false;
				setTextFieldAlert(input);
			}
			else
			{
				from = input.value;
				resetTextFieldAlert(input);
			}
			
			// Test "to" field.
			input = inputs[k+1];
			if (input.value === '' || !re.test(input.value))
			{
				valid = false;
				setTextFieldAlert(input);
			}
			else
			{
			    to = input.value;
				resetTextFieldAlert(input);
			}
        }
        else if (input.value.length > 0 && input.name.indexOf('To') > 0)
        {
			// Test "to" field.
			if (!re.test(input.value))
			{
				valid = false;
				setTextFieldAlert(input);
			}
			else
			{
				to = input.value;
				resetTextFieldAlert(input);
			}
			
			// Test "from" field.
			input = inputs[k-1];
			if (input.value === '' || !re.test(input.value))
			{
				valid = false;
				setTextFieldAlert(input);
			}
			else
			{
				from = input.value;
				resetTextFieldAlert(input);
			}
        }   
        if (from !== '' && to !== '' && input.value.length > 0)
        {    
			if(from > to)
			{	
				valid = false;
				setTextFieldAlert(input);
			}
        }
    }
    
    if (valid)
    {
		 _doPostBack(obj);
    }
    else 
    {
		alert('Some fields are not in the correct format. Please verify all values.');
		GlobalRecalcValidation = false;
		return false;
    }
}


//_______________________________________________________
//
//	Set textbox to alert mode.
//_______________________________________________________
function setTextFieldAlert(inputField)
{
	inputField.style.backgroundColor = '#F8CBBE';
	inputField.style.color = '#000000';
}


//_______________________________________________________
//
//	Reset textbox to regular mode.
//_______________________________________________________
function resetTextFieldAlert(inputField)
{
	inputField.style.backgroundColor = '#FFFFFF';
	inputField.style.color = '#000000';
	GlobalRecalcValidation = true;
}


//_______________________________________________________
//
//	Clear gird of textboxes before submitting.
//_______________________________________________________
function clearTextFieldGrid(obj)
{
	var inputs = document.getElementsByTagName('input');
	var input;
	// Clear each input text elemenet.
	for(var k=0; k < inputs.length; k++) 
    {   
        input = inputs[k];
        
        // Skip if not a textbox.
        if (input.type !== 'text')
	    { 
	    	continue; 
	    }

		input.value = '';
	}
	 _doPostBack(obj);        
}


//_______________________________________________________
//
//	Validate all sign-up information.
//_______________________________________________________
function validateSignUp(obj, formName)
{
	var elm1; // element 1
	var elm2; // element 2
	var elmBse; // element base
	var errMsg = "Please fill out the following fields in their correct format:\n\n"; // error message
	var fstNme = ''; // first name
	var idx; // index
	var lstNme = ''; // last name
	var pwdVld = true; // passwords valid?
	var rgx; // regex
	var vld = true; // valid?

	elmBse = 'max:AccuData_CTL_';
	if ( formName === 'SignUp' ) elmBse += 'SignUp';
	else if ( formName === 'MyPages' ) elmBse += 'MyPages';
	else elmBse += 'CowSignUp';
	elmBse += ':0:';

	// userid.
	elm1 = document.getElementById( elmBse + 'userid' );
	if ( ( elm1 ) && ( elm1.value.length < 1 ) )
	{
		vld = false;
		errMsg += "* Create User ID\n";
	}

	// password.
	// password2.
	elm1 = document.getElementById( elmBse + 'password' );
	elm2 = document.getElementById( elmBse + 'password2' );
	if ( ( elm1 ) && ( elm2 ) )
	{
		if ( elm1.value.length < 1 )
		{
			vld = false;
			pwdVld = false;
			errMsg += "* Create Password\n";
		}

		if ( elm2.value.length < 1 )
		{
			vld = false;
			pwdVld = false;
			errMsg += "* Confirm Password\n";
		}

		if ( ( pwdVld ) && ( elm1.value != elm2.value ) )
		{
			alert( 'Passwords must match.' );

			return false;
		}
	}

	// verificationanswer.
	elm1 = document.getElementById( elmBse + 'verificationanswer' );
	if ( ( elm1 ) && ( elm1.value.length < 1 ) )
	{
		vld = false;
		errMsg += "* Secret Answer\n";
	}

	// firstname.
	elm1 = document.getElementById( elmBse + 'firstname' );
	if ( elm1 )
	{
		if ( elm1.value.length > 0 )
			fstNme = elm1.value;
		else
		{
			vld = false;
			errMsg += "* First Name\n";
		}
	}

	// lastname.
	elm1 = document.getElementById( elmBse + 'lastname' );
	if ( elm1 )
	{
		if ( elm1.value.length > 0 )
			lstNme = elm1.value;
		else
		{
			vld = false;
			errMsg += "* Last Name\n";
		}
	}

	// company.
	elm1 = document.getElementById( elmBse + 'company' );
	if ( ( elm1 ) && ( elm1.value.length < 1 ) )
		elm1.value = fstNme + lstNme;

	// address.
	elm1 = document.getElementById( elmBse + 'address' );
	if ( ( elm1 ) && ( elm1.value.length < 1 ) )
	{
		vld = false;
		errMsg += "* Address 1\n";
	}

	// city.
	elm1 = document.getElementById( elmBse + 'city' );
	if ( ( elm1 ) && ( elm1.value.length < 1 ) )
	{
		vld = false;
		errMsg += "* City\n";
	}

	// districtid.
	// province.
	// 10/11/07 - jwh - #3943
	elm1 = document.getElementById( elmBse + 'districtid' );
	elm2 = document.getElementById( elmBse + 'Province' );
	if ( ( elm1 ) && ( ! elm1.disabled ) && ( elm1.value.length < 1 ) )
	{
		vld = false;
		errMsg += "* State/Province\n";
	}
	else if ( ( elm2 ) && ( ! elm2.disabled ) && ( elm2.value.length < 1 ) )
	{
		vld = false;
		errMsg += "* State/Province\n";
	}

	// country.
	elm1 = document.getElementById( elmBse + 'country' );
	if ( ( elm1 ) && ( elm1.value.length < 1 ) )
	{
		vld = false;
		errMsg += "* Country\n";
	}

	// zipcode.
	elm1 = document.getElementById( elmBse + 'zipcode' );
	if ( ( elm1 ) && ( elm1.value.length < 1 ) )
	{
		vld = false;
		errMsg += "* ZIP/Postal Code\n";
	}

	// phone.
	elm1 = document.getElementById( elmBse + 'phone' );
	if ( elm1 )
	{
		if ( ( elm1.value.length < 1 ) || ( ! check_usphone( elm1.value ) ) )
		{
			vld = false;
			errMsg += "* Phone\n";
		}
	}

	// email.
	elm1 = document.getElementById( elmBse + 'email' );
	rgx = new RegExp( /^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i );
	if ( ( elm1 ) && ( rgx ) )
	{
		if ( ( elm1.value.length < 1 ) || ( ! rgx.test( elm1.value ) ) )
		{
			vld = false;
			errMsg += "* Email Address\n";
		}
	}

	// marketingx.
	// 04/04/08 - jwh - #4512
	for ( idx = 1; idx <= 10; idx++ )
	{
		elm1 = document.getElementById( elmBse + 'marketing' + idx );
		if ( ( elm1 ) && ( elm1.title ) && ( elm1.value.length < 1 ) )
		{
			vld = false;
			errMsg += '* ' + elm1.title + "\n";
		}
	}

	if ( ! vld )
	{
		alert( errMsg );

		return false;
	}

	_doPostBack( obj );
}


function validateFindCount(obj)
{
	var valid = true;
	var errorMsg = "";
	var frmProduct		=	document.getElementById('max:AccuData_CTL_MyPages:0:ProductID');
	var frmTerm			=	document.getElementById('max:AccuData_CTL_MyCounts:0:Term');
	var frmCountNumber	=	document.getElementById('max:AccuData_CTL_MyCounts:0:CountNumber');
	var frmFrom			=	document.getElementById('max:AccuData_CTL_MyCounts:0:From');
	var frmTo			=	document.getElementById('max:AccuData_CTL_MyCounts:0:To');
	var re;
	
	re = new RegExp(/^(([a-zA-Z0-9_]*\-)?[0-9]+)?$/);	
	if (!re.test(frmCountNumber.value))
	{
		errorMsg += "* Invalid Count Number \n";
		valid = false;
	}	
	
	re = new RegExp(/\d\d\/\d\d\/\d\d\d\d/);	
	if (frmFrom.value.length !== 0 && !re.test(frmFrom.value))
	{
		errorMsg += "* Invalid From date \n";
		valid = false;
	}
	
	re = new RegExp(/\d\d\/\d\d\/\d\d\d\d/);	
	if (frmTo.value.length !== 0 && !re.test(frmTo.value))
	{
		errorMsg += "* Invalid To date \n";
		valid = false;
	}
	if((frmTo.value.length === 0 && frmFrom.value.length !== 0) || (frmTo.value.length !== 0 && frmFrom.value.length === 0))
	{
		errorMsg += "* A From and a To date is required \n";
		valid = false;
	}
	
	if(frmProduct.value.length === 0 && frmTerm.value.length === 0 && frmCountNumber.value.length === 0 && frmTo.value.length === 0 && frmFrom.value.length === 0)
	{
		errorMsg += "* Please provide atleast one item to filter by \n";
		valid = false;
	}
	
	if (valid)
	{
		_doPostBack(obj);
	}
	else
	{
		alert(errorMsg);
		return false;
	}
}


function validateDate(obj)
{
	var valid = true;
	var errorMsg = "";
	var frmFrom			=	document.getElementById('max:AccuData_CTL_OrderSuppressionLookup:0:StartDate');
	var frmTo			=	document.getElementById('max:AccuData_CTL_OrderSuppressionLookup:0:EndDate');
	var re;
	
	re = new RegExp(/\d\d\/\d\d\/\d\d\d\d/);	
	if (frmFrom.value.length !== 0 && !re.test(frmFrom.value))
	{
		errorMsg += "* Invalid From date \n";
		valid = false;
	}
	
	re = new RegExp(/\d\d\/\d\d\/\d\d\d\d/);	
	if (frmTo.value.length !== 0 && !re.test(frmTo.value))
	{
		errorMsg += "* Invalid To date \n";
		valid = false;
	}
	
	if (valid)
	{
		_doPostBack(obj);
	}
	else
	{
		alert(errorMsg);
		return false;
	}
}

function validateFindOrder(obj)
{
	var valid = true;
	var errorMsg = "";
	var frmOrderDescription	=	document.getElementById('max:AccuData_CTL_MyPages:0:OrderDescription');
	var frmOrderName		=	document.getElementById('max:AccuData_CTL_MyPages:0:OrderName');
	var frmOrderID		=	document.getElementById('max:AccuData_CTL_MyPages:0:OrderID');
	var frmStatus		=	document.getElementById('Status');
	var frmFrom			=	document.getElementById('max:AccuData_CTL_MyPages:0:From');
	var frmTo			=	document.getElementById('max:AccuData_CTL_MyPages:0:To');
	var frmPONumber		=	document.getElementById('max:AccuData_CTL_MyPages:0:PONumber');
	var re;
	
	re = new RegExp(/\d*/);	
	if (!re.test(frmOrderID.value))
	{
		errorMsg += "* Invalid Order ID \n";
		valid = false;
	}	
	
	re = new RegExp(/\d\d\/\d\d\/\d\d\d\d/);	
	if (frmFrom.value.length !== 0 && !re.test(frmFrom.value))
	{
		errorMsg += "* Invalid From date \n";
		valid = false;
	}
	
	re = new RegExp(/\d\d\/\d\d\/\d\d\d\d/);	
	if (frmTo.value.length !== 0 && !re.test(frmTo.value))
	{
		errorMsg += "* Invalid To date \n";
		valid = false;
	}
	if((frmTo.value.length === 0 && frmFrom.value.length !== 0) || (frmTo.value.length !== 0 && frmFrom.value.length === 0))
	{
		errorMsg += "* A From and a To date is required \n";
		valid = false;
	}

	if((frmPONumber != null && frmPONumber.value.length === 0) && frmOrderDescription.value.length === 0 && frmOrderName.value.length === 0 && frmOrderID.value.length === 0 && frmTo.value.length === 0 && frmFrom.value.length === 0 && (frmStatus === null || frmStatus != null && frmStatus.options[frmStatus.selectedIndex].value.length === 0))
	{
		errorMsg += "* Please provide atleast one item to filter by \n";
		valid = false;
	}
	
	if (valid)
	{
		_doPostBack(obj);
	}
	else
	{
		alert(errorMsg);
		return false;
	}
}

function validateLoadSavedCount(obj)
{	
	var valid = true;
	var errorMsg = "Please enter the following fields in their correct format: \n\n";
	var frmUserName = document.getElementById('max:AccuData_CTL_MyPages:0:UserName');
	var frmNumber   = document.getElementById('max:AccuData_CTL_MyPages:0:CountNumber');
		
	if (frmUserName.value.length === 0)
	{
		errorMsg += "* User Name \n";
		valid = false;
	}	
	
	var reg = new RegExp(/^[0-9]*$/);	
	if (frmNumber.value.length === 0 || !reg.test(frmNumber.value))
	{
		errorMsg += "* Count Number \n";
		valid = false;
	}
	
	if (valid)
	{
		_doPostBack(obj);
	}
	else
	{
		alert(errorMsg);
		return false;
	}
}

//_______________________________________________________
//
//	Validate all account information.
//_______________________________________________________
function validateAccountInfo(obj)
{	
	var valid = true;
	var errorMsg = "Please enter the following fields in their correct format: \n\n";	
	var frmFirstName = document.getElementById('max:AccuData_CTL_MyPages:0:firstname');
	if (frmFirstName.value.length === 0)
	{
		errorMsg += "* First Name \n";
		valid = false;
	}
	
	var frmLastName = document.getElementById('max:AccuData_CTL_MyPages:0:lastname');
	if (frmLastName.value.length === 0)
	{
		errorMsg += "* Last Name \n";
		valid = false;
	}
	var frmAddress = document.getElementById('max:AccuData_CTL_MyPages:0:address');
	if (frmAddress.value.length === 0)
	{
		errorMsg += "* Address \n";
		valid = false;
	}
	
	var frmCity = document.getElementById('max:AccuData_CTL_MyPages:0:city');
	if (frmCity.value.length === 0)
	{
		errorMsg += "* City \n";
		valid = false;
	}
	
	var frmState = document.getElementById('max:AccuData_CTL_MyPages:0:districtid');
	var frmState2 = document.getElementById('max:AccuData_CTL_MyPages:0:Province');
	if (frmState !== null && frmState.value.length === 0)
	{
		errorMsg += "* State \n";
		valid = false;
	}	
	else if (frmState2 !== null && frmState2.value.length === 0)
	{
		errorMsg += "* State \n";
		valid = false;
	}	
	
	var frmCountry = document.getElementById('max:AccuData_CTL_MyPages:0:country');
	if (frmCountry.value.length === 0)
	{
		errorMsg += "* Country \n";
		valid = false;
	}
	
	var frmZip = document.getElementById('max:AccuData_CTL_MyPages:0:zipcode');
	if (frmZip.value.length === 0)
	{
		errorMsg += "* Zip Code \n";
		valid = false;
	}
	
	var frmPhone = document.getElementById('max:AccuData_CTL_MyPages:0:phone');
	if (frmPhone.value.length === 0)
	{
		errorMsg += "* Phone \n";
		valid = false;
	}
	
	var re2 = new RegExp(/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i);
	var frmEmail = document.getElementById('max:AccuData_CTL_MyPages:0:email');
	if (frmEmail.value.length === 0 || !re2.test(frmEmail.value))
	{
		errorMsg += "* Email \n";
		valid = false;
	}
	
	if (valid)
	{
		_doPostBack(obj);
	}
	else
	{
		alert(errorMsg);
		return false;
	}
}

//_______________________________________________________
//
//	Verify user has entered username and password.
//_______________________________________________________
function validateSignIn()
{
	var frmUsername = document.getElementById('max:AccuData_CTL_OrderRecordsAndUsage:0:username');
	if (frmUsername.value.length === 0)
	{
		alert('Please enter your username.');
		return false;
	}
	var frmPassword = document.getElementById('max:AccuData_CTL_OrderRecordsAndUsage:0:password');
	if (frmPassword.value.length === 0)
	{
		alert('Please enter your password.');
		return false;
	}
	return true;	
}


//_______________________________________________________
//
//     Verify user has entered username and password.
//_______________________________________________________

function validateLogon(obj)
{
       var frmUsername = document.getElementById('max:AccuData_CTL_Logon:0:username');
       if (frmUsername.value.length === 0)

       {
          alert('Please enter your username.');
          return false;
       }
       var frmPassword = document.getElementById('max:AccuData_CTL_Logon:0:password');
       if (frmPassword.value.length === 0)
       {
           alert('Please enter your password.');
           return false;
       }
       _doPostBack(obj);
}

function validateLogon2(obj)
{
       var frmUsername = document.getElementById('max:AccuData_CTL_MyPages:0:username');
       if (frmUsername.value.length === 0)
       {
          alert('Please enter your username.');
          return false;
       }
       var frmPassword = document.getElementById('max:AccuData_CTL_MyPages:0:password');
       if (frmPassword.value.length === 0)
       {
          alert('Please enter your password.');
          return false;
       }
       _doPostBack(obj);
}

//_______________________________________________________
//
//	Verify user has entered city and state.
//_______________________________________________________
function validateSCFLookup(obj)
{
	var frmCity  = document.getElementById('max:AccuData_CTL_CowGeoAllZipSCFLookup:0:city');
	var frmState = document.getElementById('max:AccuData_CTL_CowGeoAllZipSCFLookup:0:state');
	if (frmState.value.length === 0 && frmCity.value.length === 0)
	{
		alert('Please provide a city or state to search by');
		return false;
	}
	_doPostBack(obj);
}


//_______________________________________________________
//
//	Verify user has entered city and state.
//_______________________________________________________
function validateZip5Lookup(obj)
{
	var frmCity  = document.getElementById('max:AccuData_CTL_CowGeoAllZip5Lookup:0:city');
	var frmState = document.getElementById('max:AccuData_CTL_CowGeoAllZip5Lookup:0:state');
	if (frmState.value.length === 0 && frmCity.value.length === 0)
	{
		alert('Please provide a city or state to search by');
		return false;
	}
	_doPostBack(obj);
}


//_______________________________________________________
//
//	Verify user has entered zip9
//_______________________________________________________
function validateZip9Lookup(obj)
{
	var frmUsername = document.getElementById('max:AccuData_CTL_CowGeoAllZip4Lookup:0:Zip5');
	if (frmUsername.value.length === 0)
	{
		alert('Please enter a zip code.');
		return false;
	}
	_doPostBack(obj);
}


function validateLabels(obj, formName)
{
	var frmName = document.getElementById('max:AccuData_CTL_' + formName + ':0:LabelName');
	var frmColor = document.getElementById('max:AccuData_CTL_' + formName + ':0:LabelColor');
	
	if (frmName.value.length === 0)
	{
		alert('Please enter a category name.');
		return false;
	}
	if (frmColor.value.length === 0)
	{
		alert('Please select a category color.');
		return false;
	}	
	
	_doPostBack(obj);
	alert('Category created.');
}

function validateLenderLookup(obj, index)
{
	var name = document.getElementById('max:AccuData_CTL_CowLender' + index + 'Lookup:0:Name');
	if (name.value.length === 0)
	{
		alert('Please enter a description to search by.');
		return false;
	}
	_doPostBack(obj);
}

function validateLenderOmitLookup(obj, index)
{
	var name = document.getElementById('max:AccuData_CTL_CowLender' + index + 'OmitLookup:0:Name');
	if (name.value.length === 0)
	{
		alert('Please enter a description to search by.');
		return false;
	}
	_doPostBack(obj);
}

function validateMSALookup(obj)
{
	var CountyField = document.getElementById('max:AccuData_CTL_CowGeoMSALookup:0:CountyName');
	if (CountyField.value.length === 0)
	{
		alert('Please enter a county name to search by.');
		return false;
	}
	_doPostBack(obj);
}

function validateDMALookup(obj)
{
	var desc = document.getElementById('max:AccuData_CTL_CowGeoDMALookup:0:Description');
	if (desc.value.length === 0)
	{
		alert('Please enter a description to search by.');
		return false;
	}
	_doPostBack(obj);
}

function validateCensusTractLookup(obj)
{
	var CountyField = document.getElementById('max:AccuData_CTL_CowGeoCensusTractLookup:0:CountyName');
	var FipsCode = document.getElementById('max:AccuData_CTL_CowGeoCensusTractLookup:0:FIPS');
	if (CountyField.value.length === 0 && FipsCode.value.length === 0)
	{
		alert('Please enter a county name or fips code to search by.');
		return false;
	}
	_doPostBack(obj);
}
//_______________________________________________________
//
//	Verify user has entered state.
//_______________________________________________________
function validateAreaCodeLookup(obj)
{	
	var frmState = document.getElementById('max:AccuData_CTL_CowGeoAllAreacodeLookup:0:state');
	if (frmState.value.length === 0)
	{
		alert('Please select a state.');
		return false;
	}
	_doPostBack(obj);
}

//_______________________________________________________
//
//	Finds first textbox and sets focus.
//_______________________________________________________
function setFocus()
{
	var inputs = document.getElementsByTagName('input');
	
	var bDemographics = false;
	var forms = document.getElementsByTagName('form');
	var input;
	for (var i=0; i < forms.length; i++)
	{
		if (forms[i].name.indexOf('Demographics') >= 0)
		{
			bDemographics = true;
			break;
		}
	}
	
	if (!bDemographics)
	{
		for(var k=0; k < inputs.length; k++)
		{
			input = inputs[k];
			
			if (bDemographics && input.type != 'hidden' && input.type != 'button' && input.type != 'submit')
			{
				input.focus();
				break;
			}
			else
			{
				if (input.type == 'text' && input.style.visibility != 'hidden' && input.style.display != 'none')
				{
					input.focus();
					break;
				}
			}
		}
	}
}

 function SetFocusCRRT(sVar)
 {
	var inputs = document.getElementsByTagName('input');
	var input;
	for(var k=0; k < inputs.length; k++)
	{
		input = inputs[k];
		if(input.type == 'radio' && input.value == sVar)
		{
			input.checked = true;
		}
	}
 }
 

//_______________________________________________________
//
//	Confirms user wants to lose state of COW.
//_______________________________________________________
function confirmStateLoss(obj)
{
	if (confirm('You will lose all presently selected information. \n\n Do you wish to continue?'))
	{
		_doPostBack(obj);
	}
	else
	{
		return false;
	}
}

//_______________________________________________________
//
//	Toggles 'Recalc'
//_______________________________________________________
function toggleRecalc()
{
	hideElement( 'RecordCountToggle', true );
	hideElement( 'RecalcToggle', false );
}
function RecalcCalculating()
{
	if(GlobalRecalcValidation === true)
	{
		hideElement( 'RecalcToggle', true );
		hideElement( 'RecalcUpdatingToggle', false );
	}
}
//_______________________________________________________
//
//	Toggles 'learn more' display on registration page.
//_______________________________________________________
learnMoreDisplay = false;
function toggleLearnMoreDisplay()
{
	if (learnMoreDisplay)
	{
		learnMoreDisplay = false;
		document.getElementById('learnMore').style.display = 'none';
		document.getElementById('IMGopenClose').src = 'Images/plus.gif';
	}
	else
	{
		learnMoreDisplay = true;
		document.getElementById('learnMore').style.display = '';
		document.getElementById('IMGopenClose').src = 'Images/minus.gif';
	}
}

//_______________________________________________________
//
//	Verify forgot password elements.
//_______________________________________________________
function validateForgotPassword(obj,formName)
{	
	var frmUserID= document.getElementById('max:AccuData_CTL_' + formName + ':0:username');
	if (frmUserID.value.length === 0)
	{
		alert('Please enter your user ID.');
		return false;
	}
	
	var frmAnswer = document.getElementById('max:AccuData_CTL_' + formName + ':0:answer');
	if (frmAnswer.value.length === 0)
	{
		alert('Please enter your secret answer.');
		return false;
	}
	
	var re2 = new RegExp(/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i);
	var frmEmail = document.getElementById('max:AccuData_CTL_' + formName + ':0:email');
	if (frmEmail.value.length === 0 || !re2.test(frmEmail.value))
	{
		alert('Please enter your valid email address.');
		return false;
	}
	
	_doPostBack(obj);
}

//________________________________________________________
//
//	Validate Order records and Usage
//________________________________________________________
function validateChangePassword(obj)
{
	var frmOldPass = document.getElementById('max:AccuData_CTL_MyPages:0:OldPassword');
	if (frmOldPass.value.length === 0)
	{
		alert('Please enter your old password.');
		return false;
	}
	
	var frmPassword = document.getElementById('max:AccuData_CTL_MyPages:0:NewPassword');
	var frmPassword2 = document.getElementById('max:AccuData_CTL_MyPages:0:ConfirmPassword');
	if (!(frmPassword.value.length > 0 && frmPassword2.value.length > 0) || (frmPassword.value != frmPassword.value))
	{
		alert('Passwords must match.');
		return false;		
	}
	
	if (frmPassword.value.length < 5)
	{
		alert('Passwords must be at least 5 characters long');
		return false;		
	}
	_doPostBack(obj);	
}


//________________________________________________________
//
//	Validate county lookup page.
//________________________________________________________
function validateCountyLookup(obj)
{
	var frmCounty = document.getElementById('max:AccuData_CTL_CowGeoAllCountyLookup:0:county');
	var frmCity = document.getElementById('max:AccuData_CTL_CowGeoAllCountyLookup:0:city');
	var frmState = document.getElementById('max:AccuData_CTL_CowGeoAllCountyLookup:0:state');
	
	if (frmState.value.length === 0 && frmCity.value.length === 0 && frmCounty.value.length === 0)
	{
		alert('Please choose a county, city or state to do your search on.');
		return false;
	}
	
	_doPostBack(obj);	
}

//________________________________________________________
//
//	Business Type - Validate keyword field.
//________________________________________________________
function validateMRCCodeLookup(formFieldID,obj)
{
	var frmField = document.getElementById(formFieldID);
	
	if (frmField.value === "")
	{
		alert('Please enter a keyword for your search.');
		return false;
	}
	_doPostBack(obj);
}


//________________________________________________________
//
//	Business Type - validate DDM page.
//________________________________________________________
function validateDDM(obj)
{
	var inputs = document.getElementsByTagName('input');
	var valid  = true;
	
	var reGC = new RegExp(/\d\d\d/);
	var reMRC = new RegExp(/\w{4}/);
	
	// For each input elemenet.
	for(var k=0; k < inputs.length; k++) 
    {   
        var input = inputs[k];
        
        // Skip if not a textbox.
        if (input.type != 'text') 
	    {
		    continue; 
	    }
        
        // If textbox contains anything, validate.
        if (input.value.length > 0)
        {
			if (input.name.indexOf('MRC') > -1)
			{				
				if (!reMRC.test(input.value))
				{
					valid = false;
					setTextFieldAlert(input);
					alert('mrc');
				}
				else
				{
					resetTextFieldAlert(input);
				}
			}
			else
			{
				if (!reGC.test(input.value))
				{
					valid = false;
					setTextFieldAlert(input);
					alert('gc');
				}
				else
				{
					resetTextFieldAlert(input);
				}
			}
        }
    }
    
    if (valid)
    {
		 _doPostBack(obj);
    }
    else 
    {
		alert('Some fields are not in the correct format. Please verify all values.');
		return false;
    }
}


function clearZip4Flag(obj,frmName)
{
	var frmField = document.getElementById('max:AccuData_CTL_' + frmName + ':0:ZipPlus4');
	if (frmField !== null)
	{
		frmField.checked=false;
	}
	_doPostBack(obj);
}

// 01/22/08 - jwh - #4405
function clearVehicle1Only(obj, frm)
{
	var chk = document.getElementById( 'max:AccuData_CTL_' + frm + ':0:Vehicle1Only' );
	if ( chk !== null )
		chk.checked = false;

	_doPostBack( obj );
}

// 08/27/07 - jwh - #4021
function hideElement(elem, hide)
{
	if ( hide === undefined )
		hide = true;

	try
	{
		document.getElementById( elem ).style.display = ( ( hide ) ? 'none' : '' );
	}
	catch ( e ) {}
}

// 08/27/07 - jwh - #4021
function toggleLongHelp()
{
	var hideLong = false;
	var hideShort = true;

	// if we're currently showing the "hide long instructions" link
	if ( document.getElementById( 'div_instrhidelong' ).style.display == '' )
	{
		hideLong = true;
		hideShort = false;
	}

	hideElement( 'tr_instrtitle', hideLong );
	hideElement( 'tr_instrlong', hideLong );
	hideElement( 'div_instrhidelong', hideLong );

	hideElement( 'div_instrshort', hideShort );
	hideElement( 'div_instrshowlong', hideShort );

	if ( hideLong )
		_createCookie( "showlonghelp", 0, 365 * 10 );
	else
		_eraseCookie( "showlonghelp" );
}

function validatePwd(obj)
{
	var p1 = document.getElementById('password1');
	var p2 = document.getElementById('password2');
	if (p1.value.length == 0 || p2.value.length == 0)
	{
		alert('Please enter and confirm the new password.');
		return false;
	}
	_doPostBack(obj);
}

function validateCBSALookup(obj)
{
	var CountyField = document.getElementById('max:AccuData_CTL_CowGeoCBSALookup:0:CountyName');
	if (CountyField.value.length === 0)
	{
		alert('Please enter a county name to search by.');
		return false;
	}
	_doPostBack(obj);
}

//_______________________________________________________
//
//	ValidateRangeSelections
//_______________________________________________________
function validateRangeSelections(obj)
{
	var inputs = document.getElementsByTagName('input');
	_doPostBack(obj);

}

// 09/14/07 - jwh - #3976
function franchiseLookup(obj)
{
	elm = document.getElementById( 'max:AccuData_CTL_Form:0:keyword' );
	if ( elm == null )
		return false;

	if ( elm.value === '' || elm.value.indexOf( "'" ) >= 0 )
	{
		alert( 'Please enter a valid search term.' );
		setTextFieldAlert( elm );
		return false;
	}
	else
		_doPostBack( obj );
}

// 10/28/07 - jwh - #2379
function validateCompanyPreferences(obj)
{
	var element = null;
	var errorMsg = "Please enter the following fields in their correct format:\n\n";
	var re = null;
	var valid = true;

	re = new RegExp( /^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i );
	element = document.getElementById( 'max:AccuData_CTL_CompanyPreferences:0:CompPref_BCCEmail' );
	if ( element.value.length != 0 && ! re.test( element.value ) )
	{
		valid = false;
		errorMsg += "* BCC Email\n";
	}

	if ( valid )
		_doPostBack( obj );
	else
	{
		alert( errorMsg );
		return false;
	}
}

function toggleItem (obj, id)
{
	var item = document.getElementById(id);
	if (item != null)
	{
		if (item.style.display == 'none')
		{
			item.style.display = 'block';
			obj.innerHTML = 'Hide Description';
		}
		else
		{
			item.style.display = 'none';
			obj.innerHTML = 'Show Description';
		}
	}
}

function toggleItem (obj, id, description)
{
	var item = document.getElementById(id);
	if (item != null)
	{
		if (item.style.display == 'none')
		{
			item.style.display = 'block';
			obj.innerHTML = 'Hide ' + description;
		}
		else
		{
			item.style.display = 'none';
			obj.innerHTML = 'Show ' + description;
		}
	}
}

// 06/10/08 - jwh - #2330
function showBackApplyTop()
{
	var bckAplTop; // back apply top
	var sclHgt = 0; // scroll height
	var wndHgt = 0; // window height

	if ( document.body && document.body.scrollHeight ) // dom compliant.
		sclHgt = document.body.scrollHeight;
	else if ( document.documentElement && document.documentElement.scrollHeight ) // ie6.
		sclHgt = document.documentElement.scrollHeight;

	if ( typeof( window.innerHeight ) == 'number' ) // not ie.
		wndHgt = window.innerHeight;
	else if ( document.documentElement && document.documentElement.clientHeight ) // ie6+.
		wndHgt = document.documentElement.clientHeight;
	else if ( document.body && document.body.clientHeight ) // ie4.
		wndHgt = document.body.clientHeight;

	//alert( 'scroll = ' + sclHgt + '; window = ' + wndHgt );

	if ( wndHgt < sclHgt )
	{
		bckAplTop = document.getElementById( 'backApplyTop' );
		if ( bckAplTop )
			bckAplTop.style.display = '';
	}
}

function mustLogIn()
{
	var elm; // element

	elm = document.getElementById( 'loginPanel' );
	if ( elm && elm.style )
		elm.style.backgroundColor = '#d92626'; //'#6395b0'; //'#ffffcc';

	alert( 'Please log in to access locked features.' );

	if ( elm && elm.style )
		elm.style.backgroundColor = '';

	return false;
}

function ReportOptionEnable_MyPages (obj)
{
	var value = obj.value;
	_doPostBack(document.getElementById("HiddenLink"));
}

function UpdateAllMultiRadius(obj) {
    var s = obj.id.substring(9)

    if (isNaN(document.getElementById("Update" + s).value)) {
        alert("To update " + s + " you must first enter a number in the blank below.");
        return;
    }

    if (document.getElementById("Update" + s).value != '' && document.getElementById("Update" + s).value * 1 < 1) {
        alert(document.getElementById("Update" + s).value + " is an invalid " + s);
        return;
    }

    if (confirm("You are " 
         + ((document.getElementById("Update" + s).value == '') ? "deleting" : "updating")
         + " the " + s + " for all radii.  Continue?")) 
    {
        for (var a = 0; a<=200; a++) {
            if (document.getElementById('max:AccuData_CTL_RadiusList:0:MultiKeyCd_' + a) != null) {
                var x = document.getElementById('max:AccuData_CTL_RadiusList:0:Multi' + s + '_' + a);
                if (x!=null) {x.value = document.getElementById("Update" + s).value;}
                }
        }
    }
}

function clearRadiusFormElements() {
    var Address = document.getElementById('max:AccuData_CTL_RadiusList:0:ADDRESS');
    var City = document.getElementById('max:AccuData_CTL_RadiusList:0:CITY');
    var State = document.getElementById('max:AccuData_CTL_RadiusList:0:REGION');
    var Zip = document.getElementById('max:AccuData_CTL_RadiusList:0:POSTALCODE');

    Address.value = '';
    City.value = '';
    State.value = 'NONE';
    Zip.value = '';
} 

function RadiusSetConditionalFields() {
    var MaxRadiusPrecisionDistance_ROOFTOP = document.getElementById('max:AccuData_CTL_RadiusList:0:MaxRadiusPrecisionDistance_ROOFTOP');
    var MaxRadiusPrecisionDistance_ZIP9 = document.getElementById('max:AccuData_CTL_RadiusList:0:MaxRadiusPrecisionDistance_ZIP9');
    var MaxRadiusPrecisionDistance_ZIPCRRT = document.getElementById('max:AccuData_CTL_RadiusList:0:MaxRadiusPrecisionDistance_ZIPCRRT');
    var MaxRadiusPrecisionDriveTime_ZIPCRRT = document.getElementById('max:AccuData_CTL_RadiusList:0:MaxRadiusPrecisionDriveTime_ZIPCRRT');
    var MaxRadiusPrecisionQuantity_ROOFTOP = document.getElementById('max:AccuData_CTL_RadiusList:0:MaxRadiusPrecisionQuantity_ROOFTOP');
    var MaxRadiusPrecisionQuantity_ZIP9 = document.getElementById('max:AccuData_CTL_RadiusList:0:MaxRadiusPrecisionQuantity_ZIP9');
    var MaxRadiusPrecisionQuantity_ZIPCRRT = document.getElementById('max:AccuData_CTL_RadiusList:0:MaxRadiusPrecisionQuantity_ZIPCRRT');

    var MultiQty = new Array();
    
    var b=0;
    for (var a=0; true; a++)
    {
        if (document.getElementById('max:AccuData_CTL_RadiusList:0:MultiKeyCd_' + a) != null) {
            if (document.getElementById('max:AccuData_CTL_RadiusList:0:MultiQuantity_' + a) != null) {
                MultiQty[b] = document.getElementById('max:AccuData_CTL_RadiusList:0:MultiQuantity_' + a);
                b++;
            }
        }
        else
            break;
    }

    var MultiDistance = new Array();
    var c = 0;
    for (var a = 0; true; a++) {
        if (document.getElementById('max:AccuData_CTL_RadiusList:0:MultiKeyCd_' + a) != null) {
            if (document.getElementById('max:AccuData_CTL_RadiusList:0:MultiDistance_' + a) != null) {
                MultiDistance[c] = document.getElementById('max:AccuData_CTL_RadiusList:0:MultiDistance_' + a);
                c++;
            }
        }
        else
            break;
    }

    var hasRoofTop = document.getElementById('max:AccuData_CTL_RadiusList:0:HasROOFTOP');
    var hasZIP9 = document.getElementById('max:AccuData_CTL_RadiusList:0:HasZIP9');
    
    var Distance = document.getElementById('max:AccuData_CTL_RadiusList:0:DISTANCE');
    var Quantity = document.getElementById('max:AccuData_CTL_RadiusList:0:QUANTITY');
    var DriveTime = document.getElementById('max:AccuData_CTL_RadiusList:0:DRIVETIME');
    var RadiusValueD = document.getElementById('max:AccuData_CTL_RadiusList:0:DISTANCEVALUE');
    var RadiusValueQty = document.getElementById('max:AccuData_CTL_RadiusList:0:QUANTITYVALUE');
    var RadiusValueDT = document.getElementById('max:AccuData_CTL_RadiusList:0:DRIVETIMEVALUE');
    var MaxDistance = document.getElementById('max:AccuData_CTL_RadiusList:0:QUANTITYMAXDISTANCE');
    var ROOFTOP = document.getElementById("max:AccuData_CTL_RadiusList:0:ROOFTOP");
    var ZIP9 = document.getElementById("max:AccuData_CTL_RadiusList:0:ZIP9");
    var ZIPCRRT = document.getElementById("max:AccuData_CTL_RadiusList:0:ZIPCRRT");
    var ZIP5 = document.getElementById("max:AccuData_CTL_RadiusList:0:ZIP5");

    var MaxDistanceVals = 0;
    for (Z in MultiDistance)
        if (!isNaN(MultiDistance[Z].value) && Number(MultiDistance[Z].value) > MaxDistanceVals) MaxDistanceVals = Number(MultiDistance[Z].value);

	if (ROOFTOP != null)
	{
        ROOFTOP.style.display = "inline";        
        var label = document.getElementById('max:AccuData_CTL_RadiusList:0:ROOFTOPLBL');
        label.style.display = "inline";
    }
    
    if (ZIP9 != null)
    {
        ZIP9.style.display = "inline";
		var label = document.getElementById('max:AccuData_CTL_RadiusList:0:ZIP9LBL');
        label.style.display = "inline";             
    }
      
    if (Distance.checked) {
        if (RadiusValueD!=null) RadiusValueD.disabled =false;
        if (RadiusValueQty != null) RadiusValueQty.disabled = true;
        else for (Z in MultiQty) MultiQty[Z].disabled = false;
        if (RadiusValueDT!=null) RadiusValueDT.disabled = true;
        if (MaxDistance!=null) MaxDistance.disabled = true;
        if (RadiusValueQty != null) RadiusValueQty.value = '';
        else if (document.getElementById("units") != null) document.getElementById("units").innerHTML = "(miles)";
        if (RadiusValueDT != null) RadiusValueDT.value = '';
        if (MaxDistance != null) MaxDistance.value = '';
        if (hasRoofTop.value != 1) {
            ROOFTOP.disabled = true;
            ROOFTOP.style.display = "none";
        }
        else {
            if (RadiusValueD != null) ROOFTOP.disabled = (Number(RadiusValueD.value) <= Number(MaxRadiusPrecisionDistance_ROOFTOP.value) ? false : true);
            else ROOFTOP.disabled = (Number(MaxDistanceVals) <= Number(MaxRadiusPrecisionDistance_ROOFTOP.value) ? false : true);
        }

        if (hasZIP9.value != 1) {
            ZIP9.disabled = true;
            ZIP9.style.display = "none";
        }
        else {
            if (RadiusValueD != null) ZIP9.disabled = (Number(RadiusValueD.value) <= Number(MaxRadiusPrecisionDistance_ZIP9.value) ? false : true);
            else ZIP9.disabled = (Number(MaxDistanceVals) <= Number(MaxRadiusPrecisionDistance_ZIP9.value) ? false : true);
        }


        if (RadiusValueD != null) ZIPCRRT.disabled = (Number(RadiusValueD.value) <= Number(MaxRadiusPrecisionDistance_ZIPCRRT.value) ? false : true);
        else ZIPCRRT.disabled = (Number(MaxDistanceVals) <= Number(MaxRadiusPrecisionDistance_ZIPCRRT.value) ? false : true);
        ZIP5.disabled = false;       
    }
    else if (Quantity!=null && Quantity.checked) {
    if (RadiusValueQty != null) {
        RadiusValueQty.disabled = false;
        RadiusValueD.disabled = true;
        RadiusValueDT.disabled = true;
        MaxDistance.disabled = false;
        RadiusValueD.value = '';
        RadiusValueDT.value = '';
    }
    
    if (hasRoofTop.value != 1) {
        ROOFTOP.disabled = true;
        ROOFTOP.style.display = "none";
    }
    else {
        if (MaxDistance != null) ROOFTOP.disabled = (Number(MaxDistance.value) <= Number(MaxRadiusPrecisionQuantity_ROOFTOP.value) ? false : true);
        else ROOFTOP.disabled = (Number(MaxDistanceVals) <= Number(MaxRadiusPrecisionQuantity_ROOFTOP.value) ? false : true);
    }
    if (hasZIP9.value != 1) {
        ZIP9.disabled = true;
        ZIP9.style.display = "none";
    }
    else {
        if (MaxDistance != null) ZIP9.disabled = (Number(MaxDistance.value) <= Number(MaxRadiusPrecisionQuantity_ZIP9.value) ? false : true);
        else ZIP9.disabled = (Number(MaxDistanceVals) <= Number(MaxRadiusPrecisionQuantity_ZIP9.value) ? false : true);
    }
    if (MaxDistance != null) ZIPCRRT.disabled = (Number(MaxDistance.value) <= Number(MaxRadiusPrecisionQuantity_ZIPCRRT.value) ? false : true);
    else ZIPCRRT.disabled = (Number(MaxDistanceVals) <= Number(MaxRadiusPrecisionQuantity_ZIPCRRT.value) ? false : true);
    
        ZIP5.disabled =false;
        
        if (MaxDistance!=null && MaxDistance.value.length == 0)
			MaxDistance.value = '5';
    }
    else if (DriveTime.checked) {
    if (RadiusValueQty != null) {
        RadiusValueDT.disabled = false;
        RadiusValueD.disabled = true;
        RadiusValueQty.disabled = true;
        MaxDistance.disabled = true;
        RadiusValueD.value = '';
        RadiusValueQty.value = '';
        MaxDistance.value = '';
    }
    else {
        for (Z in MultiQty) { MultiQty[Z].disabled=true; MultiQty[Z].value = ''; }
        if (document.getElementById("units") != null) document.getElementById("units").innerHTML = "(minutes)";
    }
        ROOFTOP.disabled = true;
        ZIP9.disabled = true;
        ROOFTOP.style.display = "none";
        ZIP9.style.display = "none";
        if (RadiusValueDT != null) ZIPCRRT.disabled = (Number(RadiusValueDT.value) <= Number(MaxRadiusPrecisionDriveTime_ZIPCRRT.value) ? false : true);
        else ZIPCRRT.disabled = (Number(MaxDistanceVals) <= Number(MaxRadiusPrecisionDriveTime_ZIPCRRT.value) ? false : true);
        ZIP5.disabled =false;
    }

    if (ROOFTOP.disabled && ROOFTOP.checked)
        ZIP5.checked = true;
    if (ZIP9.disabled && ZIP9.checked)
        ZIP5.checked = true;
    if (ZIPCRRT.disabled && ZIPCRRT.checked)
        ZIP5.checked = true;
        
    if (ROOFTOP.style.display == 'none') {
        var label = document.getElementById('max:AccuData_CTL_RadiusList:0:ROOFTOPLBL');
        label.style.display = "none";
    }

    if (ZIP9.style.display == 'none') {
        var label = document.getElementById('max:AccuData_CTL_RadiusList:0:ZIP9LBL');
        label.style.display = "none";
    }
}

function submitIf(question, obj) {
    if (confirm(question)) {
        _doPostBack(obj);
        toggleRecalc();
        return true;
    }
    else
        return false;
}

function RadiusPrioritySubmit(obj) {
    var i = 0;

    var pos;

    while (document.getElementById('max:AccuData_CTL_RadiusList:0:MultiPriority_' + i) !== null) {
       
            pos = document.getElementById('max:AccuData_CTL_RadiusList:0:MultiPriority_' + i) 


            if (pos !== null) {
                if (Trim(pos.value) === "") {
                    alert("Priority is required");
                    setTextFieldAlert(pos);
                    return false;
                }
                if (isNaN(pos.value)) {
                    alert("Invalid priority");
                    setTextFieldAlert(pos);
                    return false;
                }
                if (Trim(pos.value).indexOf('.') >= 0) {
                    alert("Invalid priority");
                    setTextFieldAlert(pos);
                    return false;
                }
                if ((+pos.value) <= 0) {
                    alert("Invalid priority");
                    setTextFieldAlert(pos);
                    return false;
                }
            }
            i++;
    }

    _doPostBack(obj);
    return true;
}
        
//_______________________________________________________
//
//	Verify user has entered valid radius information.
//_______________________________________________________
function validateRadius(obj)
{
	_doPostBack(obj);
}