var SMFront = {
	t1: null,
	busy: false,
	lastZip: null,
	lastRange: null,

	policeHideShow: function(flag) {
		if (flag) {
			$('police').style.display = 'block';
			$('zip').onkeypress = function(){
							if (SMFront.t1) clearTimeout(SMFront.t1);
							SMFront.t1 = setTimeout(function() { SMFront.loadCounties(); }, 500);
						}
			$('range').onchange = function() { if (_a.browser.msie) $('zip').focus(); SMFront.loadCounties(); }
			$('zip').onblur = function() { SMFront.loadCounties(); }
		} else {
			document.getElementById('police').style.display='block';		
			$('police').style.display = 'none';
			$('zip').onkeypress = null;
			$('zip').onchange = null;
			$('range').onchange = null;
		}

	},

	loadCounties: function() {
		if (SMFront.busy) return;

		var zip = $('zip').value.replace(/[^0-9]/gi,'');
		if (!zip.match(/^\d{5}$/)) return;

		if ( SMFront.lastZip == zip && SMFront.lastRange == $('range').value ) return;

		SMFront.lastZip = zip;
		SMFront.lastRange = $('range').value;

		var url = "/.ajax/?f=sm-county-lookup&zip="+zip+"&range="+$('range').value+"&cb=SMFront.loadCountiesCallback";
		$('counties').style.display = 'none';
		$('policeLoader').style.display = 'block';
		_a.fillTable($('countyTable'), [], false, true);
		loadXMLDoc(url);
		SMFront.busy = true;
		
	},

	loadCountiesCallback: function(data) {
		SMFront.busy = false;
		$('policeLoader').style.display = 'none';
		_a.fillTable($('countyTable'), data, false, true, null);
		$('counties').style.display = 'block';
	},

	validate: function(form) {
		var errors = Array();
		var anyPU = false;
		var anyC = false;
		for (var i=0;i<=form.elements.length;i++) {
			var e = form.elements[i];
			if (!e) continue;

			switch (e.id) {
				case 'firstName':
					if (!e.value.length) errors.push('First Name is a required field.');
				break;
				case 'lastName':
					if (!e.value.length) errors.push('Last Name is a required field.');
				break;
				case 'email':
					if (!e.value.match(/[\w\d-_\.]+@[\w\d-_\.]+\.[\w]+/)) errors.push('A valid e-mail address is required.');
				break;
				case 'firstName':
					if (!e.value.length) errors.push('First Name is required field.');
				break;
				//case 'profession':
				//	if (!parseInt(e.value)) errors.push('Industry is a required field.');
				//break;
			}

			if (e.id.match(/^productUsage/)) {
				if (e.checked) anyPU = true;
			}

			if (e.id.match(/^countyCheckbox\d+$/)) {
				if (e.checked) anyC = true;
			}
		}

		if (!anyPU) {
			errors.push('At least one product usage option must be checked');
		}

		if ($('police').style.display != 'none' && !anyC) {
			errors.push('At least one county must be checked');
		}



		if (errors.length) {
			alert(errors.join('\n'));
			return false;
		} else {
			return true;
		}

	}

}

