function _handleGLCountrySelection()
{
	// If the user has selected a country
	if (-1 != _getGLCountry().value){

		// disable the options until we have results
		_getGLSubmit().disabled = true;
		_getGLSubmit().className = 'button disabled';
		_getGLRegion().disabled = true;
		_getGLSubRegion().disabled = true;
		_getGLIndustry().disabled = true;
		_getGLDivision().disabled = true;

		// Enable elements
		_activateGLIndustry();
		_activateGLDivision();
		_getGLReset().disabled 	= false;
		_getGLReset().className = 'button';

		var xmlHttp = getXmlHttpRequest();

		var url = ctrlUrl + 'ajax/country/countrycode/' + _getGLCountry().value;

		xmlHttp.open("GET", url, true);

		xmlHttp.send(null);

		xmlHttp.onreadystatechange = function()
		{
			var regionDD = document.getElementById('statecode');

			if(xmlHttp.readyState < 4){
//
	//			document.write(xmlHttp.responseXML + '<br />');
				regionDD.innerHTML = '';
				var regionDDOpt = document.createElement('option');
				regionDDOpt.value = -1;
				var loadingMsg = loadingText;
				for(i=0;i < xmlHttp.readyState; i++){
					loadingMsg = loadingMsg + '.';
				}
				regionDDOpt.innerHTML = loadingMsg;
				regionDDOpt.selected = true;
				regionDD.appendChild(regionDDOpt);

			} else if (xmlHttp.readyState == 4){
				if (xmlHttp.status == 200){
					regionDD.innerHTML = '';

					// Fetch the response tag
					var rspXML = xmlHttp.responseXML;

					// Fetch the error tag
					var errTag = rspXML.getElementsByTagName('error');

					// Was there an error?
					if (errTag.length != 0){

						// No results found - set the region DD to NA
						makeDDNodeNA(_getGLRegion());

						// Now disable the region DD incase it's enabled
						_getGLRegion().disabled = true;

						// As there were no results found for the region we
						// can set the sub-region to NA
						makeDDNodeNA(_getGLSubRegion());

						// Now disable the sub region DD incase its enabled
						_getGLSubRegion().disabled = true;

					}else{

						// Else - no errors, regions found

						// Only enable regions for USA
						if ('US' == _getGLCountry().value){
							_getGLRegion().disabled = false;
						}
						
						// Firstly clear the list of drop down options
						var len = regionDD.childNodes.length;
						while (regionDD.hasChildNodes()){
							regionDD.removeChild(regionDD.firstChild);
						}

						if ('US' == _getGLCountry().value){

							// Force disable submit button as were
							_getGLSubmit().disabled = true;
							_getGLSubmit().className = 'button disabled';

							// Add the --SELECT-- option in
							var regionDDOpt = document.createElement('option');
							regionDDOpt.value = -1;
							regionDDOpt.innerHTML = pleaseSelectText;
							regionDD.appendChild(regionDDOpt);

						}else{
							// Add the --ALL-- option back in
							var regionDDOpt = document.createElement('option');
							regionDDOpt.value = 'all';
							regionDDOpt.innerHTML = allRegionsText;
							regionDD.appendChild(regionDDOpt);
						}

						// Now add the newly found options
						var region = rspXML.getElementsByTagName('region');
						for(var i = 0, j = region.length; i < j; i++){
							var statecode 	= nodeValue(region[i].getElementsByTagName('statecode')[0]);
							var country 	= nodeValue(region[i].getElementsByTagName('country')[0]);
							var state 		= nodeValue(region[i].getElementsByTagName('state')[0]);
							var regionDDOpt = document.createElement('option');
							regionDDOpt.value = statecode + '_' + country;
							regionDDOpt.id = statecode + '_' + country;
							regionDDOpt.innerHTML = toTitleCase(state);
							regionDD.appendChild(regionDDOpt);
						}

						// REQUEST PARAMS CODE
						// 'Select' the region
						if ( (-2 != glRequestParams['statecode']) && ('all' != glRequestParams['statecode']) ){
							if (document.getElementById(glRequestParams['statecode'])){
								try{
									document.getElementById(glRequestParams['statecode']).selected = true;
								}catch(e){
									// swallow for IE6
								};
								_handleGLRegionSelection()
							}
						}

					}

					// Always disable sub region when a contry has been selected.
					// Sub regions are handled on region selection
					makeDDNodeNA(_getGLSubRegion());
					_getGLSubRegion().disabled = true;

					// Activate the controls
					_activateGLControls();

				}else{
					// Non 200 HTTP status
				}
			}
		}
	} else {
		// Activate the controls
		_activateGLControls();
	}
}
