function createRequestObject()
{
	switch( navigator.appName )
	{
		case "Microsoft Internet Explorer":
			return new ActiveXObject("Microsoft.XMLHTTP");
		default:
			return new XMLHttpRequest();
	}
}

var ajax = createRequestObject();

function ajax_get_states( country )
{
	ajax.open('get', '/ajax_locations.php?ajax=1&country='+escape(country));
	ajax.onreadystatechange = set_states;
	ajax.send(null);
}

function set_states()
{
	if( ajax.readyState == 4 )
	{
		if( ajax.responseText == "" )
		{
			document.getElementById('state').value = "";
			document.getElementById('state').style.display='';
			document.getElementById('state_select').style.display='none';
		}
		else if( ajax.responseText.indexOf('\n' != -1))
		{
			document.getElementById('state').style.display='none';
			document.getElementById('state_select').style.display='';
			document.getElementById('state_select').options.length = 0;
			document.getElementById('city_select').options.length = 0;
			var states = ajax.responseText.split('\n');
			for( var i=0;i<states.length;i++ )
			{
				if( states[i] != "" )
					document.getElementById('state_select').options[i] = new Option(states[i],states[i]);
			}
			i = document.getElementById('state_select').length;
			document.getElementById('state_select').options[i] = new Option('---','');
			document.getElementById('state_select').options[(i+1)] = new Option('Add state','add');
			document.getElementById('state').value = states[0];
			setTimeout("ajax_get_cities('"+states[0]+"')",50);
		}
	}
}

function change_state( state )
{
	if( state == "add" )
	{
		document.getElementById('state').style.display = '';
		document.getElementById('state').value = '';
		document.getElementById('city_select').style.display = 'none';
		change_city("add");
	}
	else if( state != "" )
	{
		document.getElementById('state').value = state;
		document.getElementById('state').style.display = 'none';
		ajax_get_cities( state );
	}
}

function ajax_get_cities( state )
{
	var country = document.getElementById('country').value;
	ajax.open('get', '/ajax_locations.php?ajax=1&country='+escape(country)+'&state='+escape(state));
	ajax.onreadystatechange = set_cities;
	ajax.send(null);
}

function set_cities()
{
	if( ajax.readyState == 4 )
	{
		if( ajax.responseText == "" )
		{
			document.getElementById('city').value = "";
			document.getElementById('city').style.display='';
			document.getElementById('city_select').style.display='none';
		}
		else if( ajax.responseText.indexOf('\n' != -1))
		{
			document.getElementById('city').style.display='none';
			document.getElementById('city_select').style.display='';
			document.getElementById('city_select').options.length = 0;
			var cities = ajax.responseText.split('\n');
			for( var i=0;i<cities.length;i++ )
			{
				if( cities[i] != "" )
					document.getElementById('city_select').options[i] = new Option(cities[i],cities[i]);
			}
			i = document.getElementById('city_select').length;
			document.getElementById('city_select').options[i] = new Option('---','');
			document.getElementById('city_select').options[(i+1)] = new Option('Add city','add');
			document.getElementById('city').value = cities[0];
		}
	}
}

function change_city( city )
{
	if( city == "add" )
	{
		document.getElementById('city').style.display = '';
		document.getElementById('city').value = '';
	}
	else if( city != "" )
	{
		document.getElementById('city').value = city;
		document.getElementById('city').style.display = 'none';
	}
}