var UNIT_MILES = '0';
var UNIT_KM = '1';
var TYPE_QUICKEST = '0';
var TYPE_SHORTEST = '1';

// NOTE: endAddrUrlSnippet must be uri encoded!
function getDirectionUrl(address, city, state, postalCode, countryCode, endAddrUrlSnippet)
{	
	var url = encodeURI(MapDirBaseUrl) + '?';
	url += 'strt1=' + encodeURIComponent(address) + 
		'&city1=' + encodeURIComponent(city) + 
		'&stnm1=' + encodeURIComponent(state) +
		'&zipc1=' + encodeURIComponent(postalCode) + 
		'&cnty1=' + encodeURIComponent(countryCode);
	url += '&' + endAddrUrlSnippet;
	url += '&rtyp=' + TYPE_SHORTEST;
	
	if (countryCode == CANADA)
	{
		url += '&unit=' + UNIT_KM;	// unit in km
	}
	
	return url;
}

function btnGoOnClick(tbAddressID, tbCityID, tbStateID, tbPostalCodeID, ddlCountryID, defaultCountryCode, endAddrUrlSnippet)
{
	var address = document.getElementById(tbAddressID).value;
	var city = document.getElementById(tbCityID).value;
	var state = document.getElementById(tbStateID).value;
	var postalCode = document.getElementById(tbPostalCodeID).value;
	var countryCode = document.getElementById(ddlCountryID).selectedIndex;
	if (countryCode < 0)
	{
		countryCode = defaultCountryCode;
	}
	
	// one of these 3 must be present
	if (!validateNonemptyString(city) && !validateNonemptyString(state) && 
		!validateNonemptyString(postalCode))
	{
		//openMessageBox(L_MapFormCaption_ErrorMessage, L_MapFormErrHeader_HTMLText, '<p>' + L_MapReqFields_ErrorMessage + '</p>', 'error', L_MapError_Button);
		alert(L_MapReqFields_ErrorMessage);
		return false;
	}

	var url = getDirectionUrl(address, city, state, postalCode, countryCode, endAddrUrlSnippet);
	window.open(url, "_blank", "width=500, height=400, location=yes, menubar=yes, resizable=yes, scrollbars=yes");

	return true;
}

