addDOMLoadEvent(function() { populateStates() });

/**
 * Special change: populate state only for united states, don't populate them
 * 	for UK and CAN
 * 
 */
function populateStates()
{
	var s = document.getElementById('countryCode');
	if (s == null)
		return;
	
	/* Special case: Bug (14208) */		
	var countryCode = s.options[s.selectedIndex].value;	
		
	if (countryCode == 'GBR')
		document.getElementById('widget-metro-label').innerHTML = 'City Area';
	else
		document.getElementById('widget-metro-label').innerHTML = 'Metro Area';	
		
	if (countryCode != 'USA')
	{
		document.getElementById('widget-state-container').style.display = 'none';
		populateRegions();
		return;
	}
	else
	{		
		document.getElementById('widget-state-container').style.display = '';
	}
	
	var url = '/ajax/regions.php?countryCode=' + countryCode;
	
	var parseRequest = function (response)
	{
		result = response.getElementsByTagName('result')[0] ?
					response.getElementsByTagName('result')[0].firstChild.nodeValue.toString() :
					'No States Found';
		
		document.getElementById('widget-search-regionSelect').innerHTML = 'Select a state.';
		document.getElementById('widget-search-stateSelect').innerHTML = result;
		
		populateRegions();
	}
	
	var xmlHttp = new XMLHttpRequestObject(null, null, parseRequest, url);
}

function populateRegions()
{
	var s = document.getElementById('countryCode');
	var countryCode = s.options[s.selectedIndex].value;
	
	var s = document.getElementById('state');
	var state = (s != null) ? s.options[s.selectedIndex].value : null;
	
	var url = '/ajax/regions.php?countryCode=' + countryCode + '&state=' + state;
	
	var parseRequest = function (response)
	{
		result = response.getElementsByTagName('result')[0] ?
					response.getElementsByTagName('result')[0].firstChild.nodeValue.toString() :
					'No Metro Area.';
		
		document.getElementById('widget-search-regionSelect').innerHTML = result;
	}
	
	var stateText = getSelectText('state');
	if (countryCode == 'USA' && stateText == 'All States')
	{
		hiddenStr = '<input type="hidden" value="' + state + '" name="regionIDhidden" id="regionIDhidden"/>';
		document.getElementById('widget-search-regionSelect').innerHTML = 'Entire Country' + hiddenStr;
	}
	else
	{
		//Error generating HTML. Our developers are working on it
		var xmlHttp = new XMLHttpRequestObject(null, null, parseRequest, url);
	}
}

function getSelectValue(selectID)
{
	var s = document.getElementById(selectID);
	var val = (s) ? s.options[s.selectedIndex].value : null;
	return val;	
}

function getSelectText(selectID)
{
	var s = document.getElementById(selectID);
	var val = (s) ? s.options[s.selectedIndex].text : null;
	return val;	
}

function getCheckValue(checkID)
{
	radioObj = document.getElementById(checkID);
	
	if(radioObj != null && radioObj.checked)
	{
		return 1;
	}
	return 0;
}

function getHiddenValue(hiddenID)
{
	hiddenObj = document.getElementById(hiddenID);
	if (hiddenObj)
		return hiddenObj.value;
	return null;
}

function generateHTML(isOnLoad)
{	
	var regionID = getSelectValue('regionID');
	if (regionID == null)
		regionID = getHiddenValue('regionIDhidden');		
		
	if (isOnLoad && regionID == null)
		regionID = -1;
	
	var category = getSelectValue('category');
	if (category == null) 
		category = getHiddenValue('categoryhidden');
		
	var style = getSelectValue('style');
	var color = getSelectValue('color');
	
	var isStyled = getCheckValue('isStyled');
	var isNewWindow = getCheckValue('isNewWindow');		
	
	var isShowWhere = 1;
	
	if (regionID || isOnLoad)
	{
		var url = '/ajax/search-widget.php';
		url = url + '?regionID=' + regionID;
		url = url + '&category=' + category;
		url = url + '&style=' + style;
		url = url + '&color=' + color;
		
		url = url + '&isStyled=' + isStyled;
		url = url + '&isNewWindow=' + isNewWindow;
		url = url + '&isShowWhere=' + isShowWhere;
		
		var parseRequest = function (response)
		{
			result = response.getElementsByTagName('result')[0] ?
						response.getElementsByTagName('result')[0].firstChild.nodeValue.toString() :
						'Error Generating HTML';
			
			document.getElementById('widget-search-sample').innerHTML = result;
			document.getElementById('widget-search-source-textarea').value = result;
		}
		
		var xmlHttp = new XMLHttpRequestObject(null, null, parseRequest, url);
	}
	else
	{
		msg = 'Please Select Metro Area.';
		msg = '<div class="widget-search-error">' + msg + ' </div>'
		document.getElementById('widget-search-sample').innerHTML = msg;
	}
}