function rh_js_PopWin(url,name,options){
  var ContextWindow = window.open(url,name,options);
  ContextWindow.focus();
  return false;
}
function validateEmail(email) {
	var illegalChars = /[ \(\)\<\>\[\]\,\;\:\\\/\"\#]/;
	var emailFilter=/^[^@]+@[^@]+\.[^@]{2,6}$/;
	if( email.match(illegalChars)) { alert( 'Your e-mail address may not contain any of the following: ()<>[],;:\/#"'); return false; }
	if( email != "" && !emailFilter.test(email)) { alert("Your e-mail address must contain '@' and end in dot-something (e.g. 'myname@domain.com')"); return false; }
	return true;
}
function validateCreate(form) {
	if( form.firstName.value == '') {
		alert( 'First Name is required');
		return false;
	}
	if( form.lastName.value == '') {
		alert( 'Last Name is required');
		return false;
	}
	if( form.street1.value == '') {
		alert( 'Address Line 1 is required');
		return false;
	}
	if( form.phoneNumber.value == '') {
		alert( 'Phone Number is required');
		return false;
	}
	if( form.password.value == '') {
		alert( 'Password is required');
		return false;
	}
	if( form.password.value != form.confirmPassword.value) {
		alert( 'Your two password entries do not match');
		return false;
	}
	if( validateAddress(form) && validateEmail(f.email.value)) {
		return true;
	}
	return false;
}
function validateAddress(form) {
	if( form.stateProvince.options[ form.stateProvince.selectedIndex].value == '') {
		alert( "You must select a State/Province");
		return false;
	}
	var zipTest = form.zipPostalCode.value;
	var zipFilterShort = /^[0-9]{5}$/
	var zipFilterLong = /^[0-9]{5}\-[0-9]{4}$/
	if( !zipFilterShort.test(zipTest) && !zipFilterLong.test(zipTest)) {
		alert( "Please use enter a 5 or 10-digit zip code (e.g. 01234-5678)");
		return false;
	}
	return true;
}
function feedbackOpen() {
	var href = "http://www.randomhouse.com/cgi-bin/feedback/feedback.php?loc=" + window.location.href;
	window.open(href, '450_cover', 'height=540,width=500,resizable=yes,scrollbars=no')
}
function ajaxAddressCheck(form) {
	var zip = form.zipPostalCode.value;
	var paramList = "zipcode=" + zip;
	var url = "/address-validator.do";
	var ajax = new Ajax.Request (
			url,
			{
				method: "get",
				parameters: paramList,
				onSuccess: function (transport) {
					handleZipResponse(transport.responseText,form);
				},
				onFailure: function() {
					form.submit();
				}
			}
		);
} 
function handleZipResponse(response,form) {
	var city = form.city.value;
	var state = form.stateProvince.options[form.stateProvince.selectedIndex].value;

	var citySearch = '';
	var stateSearch = '';
	if( response.match(/<CITY>([^<]*)<\/CITY>/) != null) {
		citySearch = RegExp.$1;
	}
	if( response.match(/<STATE>([^<]*)<\/STATE>/) != null) {
		stateSearch = RegExp.$1
	}

	// 1/30/08 consider -1 as not found
	if( citySearch == "-1") {
		alert( "Your zipcode was not found in our database");
	} else if ((citySearch != '' && stateSearch != '') && (city.toUpperCase() != citySearch || state.toUpperCase() != stateSearch)) {
		alert( "The city/state you entered does not match the pair returned by zip code verification: "+ citySearch +", " + stateSearch);
	} else {
		form.submit();
	}
}
